@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/paths.js
CHANGED
|
@@ -28,56 +28,104 @@ __export(paths_exports, {
|
|
|
28
28
|
companyMarketPath: () => companyMarketPath,
|
|
29
29
|
companyPath: () => companyPath,
|
|
30
30
|
companySalaryPath: () => companySalaryPath,
|
|
31
|
+
encodePathSegment: () => encodePathSegment,
|
|
31
32
|
goAlertsConfirmPath: () => goAlertsConfirmPath,
|
|
32
33
|
goAlertsManagePath: () => goAlertsManagePath,
|
|
33
34
|
goJobPath: () => goJobPath,
|
|
34
35
|
jobDetailPath: () => jobDetailPath,
|
|
35
36
|
jobsCategoryPath: () => jobsCategoryPath,
|
|
37
|
+
jobsLocationCategoryPath: () => jobsLocationCategoryPath,
|
|
36
38
|
jobsLocationPath: () => jobsLocationPath,
|
|
39
|
+
jobsLocationSkillPath: () => jobsLocationSkillPath,
|
|
37
40
|
jobsSkillPath: () => jobsSkillPath,
|
|
38
41
|
salaryLocationPath: () => salaryLocationPath,
|
|
39
42
|
salarySkillPath: () => salarySkillPath,
|
|
40
|
-
salaryTitlePath: () => salaryTitlePath
|
|
43
|
+
salaryTitlePath: () => salaryTitlePath,
|
|
44
|
+
suggestionPath: () => suggestionPath
|
|
41
45
|
});
|
|
42
46
|
module.exports = __toCommonJS(paths_exports);
|
|
47
|
+
function encodePathSegment(segment) {
|
|
48
|
+
try {
|
|
49
|
+
return encodeURIComponent(decodeURIComponent(segment)).replace(
|
|
50
|
+
/%3A/gi,
|
|
51
|
+
":"
|
|
52
|
+
);
|
|
53
|
+
} catch {
|
|
54
|
+
return encodeURIComponent(segment).replace(/%3A/gi, ":");
|
|
55
|
+
}
|
|
56
|
+
}
|
|
43
57
|
function jobDetailPath(companySlug, jobSlug) {
|
|
44
|
-
return `/companies/${companySlug}/jobs/${jobSlug}`;
|
|
58
|
+
return `/companies/${encodePathSegment(companySlug)}/jobs/${encodePathSegment(jobSlug)}`;
|
|
45
59
|
}
|
|
46
60
|
function jobsCategoryPath(categorySlug) {
|
|
47
|
-
return `/jobs/${categorySlug}`;
|
|
61
|
+
return `/jobs/${encodePathSegment(categorySlug)}`;
|
|
48
62
|
}
|
|
49
63
|
function jobsSkillPath(skillSlug) {
|
|
50
|
-
return `/jobs/skills/${skillSlug}`;
|
|
64
|
+
return `/jobs/skills/${encodePathSegment(skillSlug)}`;
|
|
51
65
|
}
|
|
52
66
|
function jobsLocationPath(placeSlug) {
|
|
53
|
-
return `/jobs/locations/${placeSlug}`;
|
|
67
|
+
return `/jobs/locations/${encodePathSegment(placeSlug)}`;
|
|
68
|
+
}
|
|
69
|
+
function jobsLocationCategoryPath(placeSlug, categorySlug) {
|
|
70
|
+
return `${jobsLocationPath(placeSlug)}/${encodePathSegment(categorySlug)}`;
|
|
71
|
+
}
|
|
72
|
+
function jobsLocationSkillPath(placeSlug, skillSlug) {
|
|
73
|
+
return `${jobsLocationPath(placeSlug)}/skills/${encodePathSegment(skillSlug)}`;
|
|
54
74
|
}
|
|
55
75
|
function companyPath(companySlug) {
|
|
56
|
-
return `/companies/${companySlug}`;
|
|
76
|
+
return `/companies/${encodePathSegment(companySlug)}`;
|
|
57
77
|
}
|
|
58
78
|
function companyMarketPath(marketSlug) {
|
|
59
|
-
return `/companies/markets/${marketSlug}`;
|
|
79
|
+
return `/companies/markets/${encodePathSegment(marketSlug)}`;
|
|
80
|
+
}
|
|
81
|
+
function suggestionPath(suggestion, options) {
|
|
82
|
+
const location = options.location?.trim() || void 0;
|
|
83
|
+
if (options.scope === "blog") {
|
|
84
|
+
if (suggestion.type === "post") {
|
|
85
|
+
return blogPostPath(suggestion.slug);
|
|
86
|
+
}
|
|
87
|
+
if (suggestion.type === "tag") {
|
|
88
|
+
return blogTagPath(suggestion.slug);
|
|
89
|
+
}
|
|
90
|
+
return null;
|
|
91
|
+
}
|
|
92
|
+
if (options.scope === "jobs") {
|
|
93
|
+
if (suggestion.type === "company" || suggestion.type === "market" || suggestion.type === "post" || suggestion.type === "tag") {
|
|
94
|
+
return null;
|
|
95
|
+
}
|
|
96
|
+
if (suggestion.termType === "skill") {
|
|
97
|
+
return location ? jobsLocationSkillPath(location, suggestion.canonicalSlug) : jobsSkillPath(suggestion.canonicalSlug);
|
|
98
|
+
}
|
|
99
|
+
return location ? jobsLocationCategoryPath(location, suggestion.canonicalSlug) : jobsCategoryPath(suggestion.canonicalSlug);
|
|
100
|
+
}
|
|
101
|
+
if (suggestion.type === "company") {
|
|
102
|
+
return companyPath(suggestion.slug);
|
|
103
|
+
}
|
|
104
|
+
if (suggestion.type === "market") {
|
|
105
|
+
return companyMarketPath(suggestion.slug);
|
|
106
|
+
}
|
|
107
|
+
return null;
|
|
60
108
|
}
|
|
61
109
|
function companySalaryPath(companySlug) {
|
|
62
|
-
return `/companies/${companySlug}/salaries`;
|
|
110
|
+
return `/companies/${encodePathSegment(companySlug)}/salaries`;
|
|
63
111
|
}
|
|
64
112
|
function salaryTitlePath(titleSlug) {
|
|
65
|
-
return `/salaries/titles/${titleSlug}`;
|
|
113
|
+
return `/salaries/titles/${encodePathSegment(titleSlug)}`;
|
|
66
114
|
}
|
|
67
115
|
function salarySkillPath(skillSlug) {
|
|
68
|
-
return `/salaries/skills/${skillSlug}`;
|
|
116
|
+
return `/salaries/skills/${encodePathSegment(skillSlug)}`;
|
|
69
117
|
}
|
|
70
118
|
function salaryLocationPath(placeSlug) {
|
|
71
|
-
return `/salaries/locations/${placeSlug}`;
|
|
119
|
+
return `/salaries/locations/${encodePathSegment(placeSlug)}`;
|
|
72
120
|
}
|
|
73
121
|
function blogPostPath(postSlug) {
|
|
74
|
-
return `/blog/${postSlug}`;
|
|
122
|
+
return `/blog/${encodePathSegment(postSlug)}`;
|
|
75
123
|
}
|
|
76
124
|
function blogTagPath(tagSlug) {
|
|
77
|
-
return `/blog/tag/${tagSlug}`;
|
|
125
|
+
return `/blog/tag/${encodePathSegment(tagSlug)}`;
|
|
78
126
|
}
|
|
79
127
|
function blogAuthorPath(authorSlug) {
|
|
80
|
-
return `/blog/author/${authorSlug}`;
|
|
128
|
+
return `/blog/author/${encodePathSegment(authorSlug)}`;
|
|
81
129
|
}
|
|
82
130
|
var BOARD_PATHS = {
|
|
83
131
|
home: "/",
|
package/dist/paths.mjs
CHANGED
|
@@ -1,80 +1,27 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
}
|
|
26
|
-
function salarySkillPath(skillSlug) {
|
|
27
|
-
return `/salaries/skills/${skillSlug}`;
|
|
28
|
-
}
|
|
29
|
-
function salaryLocationPath(placeSlug) {
|
|
30
|
-
return `/salaries/locations/${placeSlug}`;
|
|
31
|
-
}
|
|
32
|
-
function blogPostPath(postSlug) {
|
|
33
|
-
return `/blog/${postSlug}`;
|
|
34
|
-
}
|
|
35
|
-
function blogTagPath(tagSlug) {
|
|
36
|
-
return `/blog/tag/${tagSlug}`;
|
|
37
|
-
}
|
|
38
|
-
function blogAuthorPath(authorSlug) {
|
|
39
|
-
return `/blog/author/${authorSlug}`;
|
|
40
|
-
}
|
|
41
|
-
var BOARD_PATHS = {
|
|
42
|
-
home: "/",
|
|
43
|
-
jobs: "/jobs",
|
|
44
|
-
companies: "/companies",
|
|
45
|
-
salaries: "/salaries",
|
|
46
|
-
salaryCompanies: "/salaries/companies",
|
|
47
|
-
salaryTitles: "/salaries/titles",
|
|
48
|
-
salarySkills: "/salaries/skills",
|
|
49
|
-
salaryLocations: "/salaries/locations",
|
|
50
|
-
blog: "/blog",
|
|
51
|
-
about: "/about",
|
|
52
|
-
privacyPolicy: "/privacy-policy",
|
|
53
|
-
termsOfService: "/terms-of-service",
|
|
54
|
-
cookiePolicy: "/cookie-policy",
|
|
55
|
-
impressum: "/impressum",
|
|
56
|
-
talent: "/talent",
|
|
57
|
-
employers: "/employers",
|
|
58
|
-
/**
|
|
59
|
-
* Alert-email surfaces. Promoted out of raw literals in
|
|
60
|
-
* the job-alerts composer so /go indirection and email composition share
|
|
61
|
-
* one definition.
|
|
62
|
-
*/
|
|
63
|
-
alertsManage: "/alerts/manage",
|
|
64
|
-
alertsConfirm: "/alerts/confirm"
|
|
65
|
-
};
|
|
66
|
-
function goJobPath(jobId) {
|
|
67
|
-
return `/go/job/${jobId}`;
|
|
68
|
-
}
|
|
69
|
-
function goAlertsManagePath() {
|
|
70
|
-
return "/go/alerts-manage";
|
|
71
|
-
}
|
|
72
|
-
function goAlertsConfirmPath() {
|
|
73
|
-
return "/go/alerts-confirm";
|
|
74
|
-
}
|
|
75
|
-
function boardUrl(origin, path) {
|
|
76
|
-
return `${origin.replace(/\/+$/, "")}${path}`;
|
|
77
|
-
}
|
|
1
|
+
import {
|
|
2
|
+
BOARD_PATHS,
|
|
3
|
+
blogAuthorPath,
|
|
4
|
+
blogPostPath,
|
|
5
|
+
blogTagPath,
|
|
6
|
+
boardUrl,
|
|
7
|
+
companyMarketPath,
|
|
8
|
+
companyPath,
|
|
9
|
+
companySalaryPath,
|
|
10
|
+
encodePathSegment,
|
|
11
|
+
goAlertsConfirmPath,
|
|
12
|
+
goAlertsManagePath,
|
|
13
|
+
goJobPath,
|
|
14
|
+
jobDetailPath,
|
|
15
|
+
jobsCategoryPath,
|
|
16
|
+
jobsLocationCategoryPath,
|
|
17
|
+
jobsLocationPath,
|
|
18
|
+
jobsLocationSkillPath,
|
|
19
|
+
jobsSkillPath,
|
|
20
|
+
salaryLocationPath,
|
|
21
|
+
salarySkillPath,
|
|
22
|
+
salaryTitlePath,
|
|
23
|
+
suggestionPath
|
|
24
|
+
} from "./chunk-BGKNXG4H.mjs";
|
|
78
25
|
export {
|
|
79
26
|
BOARD_PATHS,
|
|
80
27
|
blogAuthorPath,
|
|
@@ -84,14 +31,18 @@ export {
|
|
|
84
31
|
companyMarketPath,
|
|
85
32
|
companyPath,
|
|
86
33
|
companySalaryPath,
|
|
34
|
+
encodePathSegment,
|
|
87
35
|
goAlertsConfirmPath,
|
|
88
36
|
goAlertsManagePath,
|
|
89
37
|
goJobPath,
|
|
90
38
|
jobDetailPath,
|
|
91
39
|
jobsCategoryPath,
|
|
40
|
+
jobsLocationCategoryPath,
|
|
92
41
|
jobsLocationPath,
|
|
42
|
+
jobsLocationSkillPath,
|
|
93
43
|
jobsSkillPath,
|
|
94
44
|
salaryLocationPath,
|
|
95
45
|
salarySkillPath,
|
|
96
|
-
salaryTitlePath
|
|
46
|
+
salaryTitlePath,
|
|
47
|
+
suggestionPath
|
|
97
48
|
};
|
package/dist/route-contract.js
CHANGED
|
@@ -51,44 +51,54 @@ __export(route_contract_exports, {
|
|
|
51
51
|
module.exports = __toCommonJS(route_contract_exports);
|
|
52
52
|
|
|
53
53
|
// src/paths/index.ts
|
|
54
|
+
function encodePathSegment(segment) {
|
|
55
|
+
try {
|
|
56
|
+
return encodeURIComponent(decodeURIComponent(segment)).replace(
|
|
57
|
+
/%3A/gi,
|
|
58
|
+
":"
|
|
59
|
+
);
|
|
60
|
+
} catch {
|
|
61
|
+
return encodeURIComponent(segment).replace(/%3A/gi, ":");
|
|
62
|
+
}
|
|
63
|
+
}
|
|
54
64
|
function jobDetailPath(companySlug, jobSlug) {
|
|
55
|
-
return `/companies/${companySlug}/jobs/${jobSlug}`;
|
|
65
|
+
return `/companies/${encodePathSegment(companySlug)}/jobs/${encodePathSegment(jobSlug)}`;
|
|
56
66
|
}
|
|
57
67
|
function jobsCategoryPath(categorySlug) {
|
|
58
|
-
return `/jobs/${categorySlug}`;
|
|
68
|
+
return `/jobs/${encodePathSegment(categorySlug)}`;
|
|
59
69
|
}
|
|
60
70
|
function jobsSkillPath(skillSlug) {
|
|
61
|
-
return `/jobs/skills/${skillSlug}`;
|
|
71
|
+
return `/jobs/skills/${encodePathSegment(skillSlug)}`;
|
|
62
72
|
}
|
|
63
73
|
function jobsLocationPath(placeSlug) {
|
|
64
|
-
return `/jobs/locations/${placeSlug}`;
|
|
74
|
+
return `/jobs/locations/${encodePathSegment(placeSlug)}`;
|
|
65
75
|
}
|
|
66
76
|
function companyPath(companySlug) {
|
|
67
|
-
return `/companies/${companySlug}`;
|
|
77
|
+
return `/companies/${encodePathSegment(companySlug)}`;
|
|
68
78
|
}
|
|
69
79
|
function companyMarketPath(marketSlug) {
|
|
70
|
-
return `/companies/markets/${marketSlug}`;
|
|
80
|
+
return `/companies/markets/${encodePathSegment(marketSlug)}`;
|
|
71
81
|
}
|
|
72
82
|
function companySalaryPath(companySlug) {
|
|
73
|
-
return `/companies/${companySlug}/salaries`;
|
|
83
|
+
return `/companies/${encodePathSegment(companySlug)}/salaries`;
|
|
74
84
|
}
|
|
75
85
|
function salaryTitlePath(titleSlug) {
|
|
76
|
-
return `/salaries/titles/${titleSlug}`;
|
|
86
|
+
return `/salaries/titles/${encodePathSegment(titleSlug)}`;
|
|
77
87
|
}
|
|
78
88
|
function salarySkillPath(skillSlug) {
|
|
79
|
-
return `/salaries/skills/${skillSlug}`;
|
|
89
|
+
return `/salaries/skills/${encodePathSegment(skillSlug)}`;
|
|
80
90
|
}
|
|
81
91
|
function salaryLocationPath(placeSlug) {
|
|
82
|
-
return `/salaries/locations/${placeSlug}`;
|
|
92
|
+
return `/salaries/locations/${encodePathSegment(placeSlug)}`;
|
|
83
93
|
}
|
|
84
94
|
function blogPostPath(postSlug) {
|
|
85
|
-
return `/blog/${postSlug}`;
|
|
95
|
+
return `/blog/${encodePathSegment(postSlug)}`;
|
|
86
96
|
}
|
|
87
97
|
function blogTagPath(tagSlug) {
|
|
88
|
-
return `/blog/tag/${tagSlug}`;
|
|
98
|
+
return `/blog/tag/${encodePathSegment(tagSlug)}`;
|
|
89
99
|
}
|
|
90
100
|
function blogAuthorPath(authorSlug) {
|
|
91
|
-
return `/blog/author/${authorSlug}`;
|
|
101
|
+
return `/blog/author/${encodePathSegment(authorSlug)}`;
|
|
92
102
|
}
|
|
93
103
|
var BOARD_PATHS = {
|
|
94
104
|
home: "/",
|