@cavuno/board 4.28.0 → 4.29.1

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.
Files changed (58) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/dist/{_spec-DQvmsp5o.d.mts → _spec-CQx5p1cM.d.mts} +15 -0
  3. package/dist/{_spec-DQvmsp5o.d.ts → _spec-CQx5p1cM.d.ts} +15 -0
  4. package/dist/{blog-CUkvhn3c.d.ts → blog-BwyZQX_f.d.ts} +1 -1
  5. package/dist/{blog-CvuObn9O.d.mts → blog-DP06wTDw.d.mts} +1 -1
  6. package/dist/{board-CCG1pO6r.d.ts → board-C2Y5fz0m.d.ts} +2 -2
  7. package/dist/{board-D6xOidUX.d.mts → board-C7iju96a.d.mts} +2 -2
  8. package/dist/{breadcrumbs-D2Cwrju4.d.ts → breadcrumbs-BUzF85v3.d.ts} +2 -2
  9. package/dist/{breadcrumbs-BBvJ5gq-.d.mts → breadcrumbs-Db6UTihw.d.mts} +2 -2
  10. package/dist/browser/cavuno-board.global.min.js +1 -1
  11. package/dist/{chunk-T2KC6XGV.mjs → chunk-5KCWHENV.mjs} +53 -7
  12. package/dist/{chunk-OPMJ6YH5.mjs → chunk-KDFKVWTZ.mjs} +1 -1
  13. package/dist/{chunk-BGKNXG4H.mjs → chunk-XXQCESMU.mjs} +4 -0
  14. package/dist/filters.d.mts +2 -2
  15. package/dist/filters.d.ts +2 -2
  16. package/dist/format.d.mts +4 -4
  17. package/dist/format.d.ts +4 -4
  18. package/dist/format.mjs +2 -2
  19. package/dist/go.mjs +1 -1
  20. package/dist/index.d.mts +20 -13
  21. package/dist/index.d.ts +20 -13
  22. package/dist/index.js +1 -1
  23. package/dist/index.mjs +1 -1
  24. package/dist/{jobs-CEIuahbz.d.ts → jobs-BA_PnUCd.d.ts} +1 -1
  25. package/dist/{jobs-DjMcghv6.d.mts → jobs-BZqtb1gY.d.mts} +1 -1
  26. package/dist/paths.d.mts +8 -1
  27. package/dist/paths.d.ts +8 -1
  28. package/dist/paths.js +5 -1
  29. package/dist/paths.mjs +5 -3
  30. package/dist/{roles-DBgzkvEt.d.ts → roles-Bh3WNF9u.d.mts} +3 -1
  31. package/dist/{roles-DBgzkvEt.d.mts → roles-Bh3WNF9u.d.ts} +3 -1
  32. package/dist/route-contract.d.mts +10 -5
  33. package/dist/route-contract.d.ts +10 -5
  34. package/dist/route-contract.js +53 -5
  35. package/dist/route-contract.mjs +2 -2
  36. package/dist/{search-C0LiPXVb.d.mts → search-Da3TjcZ0.d.mts} +1 -1
  37. package/dist/{search-D-EjtZH3.d.ts → search-dsA-Cetf.d.ts} +1 -1
  38. package/dist/{seo-CjNGqZZH.d.ts → seo-D-n2g6X3.d.ts} +1 -1
  39. package/dist/{seo-DCQp8V1c.d.mts → seo-D3DhnHk8.d.mts} +1 -1
  40. package/dist/seo-files.d.mts +2 -2
  41. package/dist/seo-files.d.ts +2 -2
  42. package/dist/seo.d.mts +6 -6
  43. package/dist/seo.d.ts +6 -6
  44. package/dist/seo.mjs +2 -2
  45. package/dist/server.d.mts +6 -6
  46. package/dist/server.d.ts +6 -6
  47. package/dist/sitemap.d.mts +6 -6
  48. package/dist/sitemap.d.ts +6 -6
  49. package/dist/sitemap.mjs +1 -1
  50. package/dist/suggest.d.mts +2 -2
  51. package/dist/suggest.d.ts +2 -2
  52. package/dist/well-known.d.mts +4 -1
  53. package/dist/well-known.d.ts +4 -1
  54. package/dist/well-known.js +23 -1
  55. package/dist/well-known.mjs +7 -2
  56. package/package.json +1 -1
  57. package/skills/cavuno-board-talent-access/SKILL.md +7 -0
  58. package/skills/manifest.json +1 -1
@@ -12,8 +12,9 @@ import {
12
12
  jobsSkillPath,
13
13
  salaryLocationPath,
14
14
  salarySkillPath,
15
- salaryTitlePath
16
- } from "./chunk-BGKNXG4H.mjs";
15
+ salaryTitlePath,
16
+ talentProfilePath
17
+ } from "./chunk-XXQCESMU.mjs";
17
18
 
18
19
  // src/route-contract/roles.ts
19
20
  var ROLE_PARAM_REGISTRY = {
@@ -30,6 +31,7 @@ var ROLE_PARAM_REGISTRY = {
30
31
  blogPost: ["postSlug"],
31
32
  blogTag: ["tagSlug"],
32
33
  blogAuthor: ["authorSlug"],
34
+ talentProfile: ["handle"],
33
35
  home: [],
34
36
  jobs: [],
35
37
  companies: [],
@@ -77,6 +79,7 @@ var CANONICAL_MANIFEST = {
77
79
  blogPost: blogPostPath(":postSlug"),
78
80
  blogTag: blogTagPath(":tagSlug"),
79
81
  blogAuthor: blogAuthorPath(":authorSlug"),
82
+ talentProfile: talentProfilePath(":handle"),
80
83
  home: BOARD_PATHS.home,
81
84
  jobs: BOARD_PATHS.jobs,
82
85
  companies: BOARD_PATHS.companies,
@@ -193,7 +196,8 @@ function classifyRoutes(routes, markers) {
193
196
  }
194
197
 
195
198
  // src/route-contract/validate.ts
196
- var TEMPLATE_CHARSET_RE = /^[A-Za-z0-9/_.:-]+$/;
199
+ var TEMPLATE_CHARSET_RE = /^[A-Za-z0-9/_.:@-]+$/;
200
+ var FIXED_TEXT_ROLES = /* @__PURE__ */ new Set(["talentProfile"]);
197
201
  function checkRoleTemplate(role, template) {
198
202
  const errors = [];
199
203
  if (typeof template !== "string" || template.length === 0) {
@@ -285,9 +289,19 @@ function checkRoleTemplate(role, template) {
285
289
  role
286
290
  });
287
291
  }
292
+ if (FIXED_TEXT_ROLES.has(role) && isParamsOnly(template)) {
293
+ errors.push({
294
+ code: "invalid_template",
295
+ message: `role '${role}' template must carry fixed text around its params (e.g. '/p/:handle' or '/@:handle'), got ${JSON.stringify(template)}`,
296
+ role
297
+ });
298
+ }
288
299
  }
289
300
  return errors;
290
301
  }
302
+ function isParamsOnly(template) {
303
+ return template.replace(/:[A-Za-z_][A-Za-z0-9_]*/g, "").replace(/\//g, "").length === 0;
304
+ }
291
305
  function validateManifest(value) {
292
306
  const errors = [];
293
307
  if (value === null || typeof value !== "object") {
@@ -784,7 +798,7 @@ function pathToRoute4(filePath) {
784
798
  if (rel === "route" || rel.endsWith("/route") || rel.endsWith(".route")) {
785
799
  return null;
786
800
  }
787
- if (rel.includes("[") || rel.includes("{")) return null;
801
+ if (rel.includes("[")) return null;
788
802
  const rawSegments = rel.split("/").flatMap((part) => part.split(".")).filter((seg) => seg.length > 0);
789
803
  const urlSegments = [];
790
804
  let hasDynamic = false;
@@ -798,6 +812,14 @@ function pathToRoute4(filePath) {
798
812
  hadIndex = true;
799
813
  continue;
800
814
  }
815
+ if (seg.includes("{") || seg.includes("}")) {
816
+ const pattern = tanStackBraceSegmentToPattern(seg);
817
+ if (pattern === null) return null;
818
+ hasDynamic = true;
819
+ hadConcrete = true;
820
+ urlSegments.push(pattern);
821
+ continue;
822
+ }
801
823
  if (seg.startsWith("$")) {
802
824
  hasDynamic = true;
803
825
  hadConcrete = true;
@@ -814,6 +836,15 @@ function pathToRoute4(filePath) {
814
836
  const path = urlSegments.length === 0 ? "/" : `/${urlSegments.join("/")}`;
815
837
  return { path, navigable: !hasDynamic, sourcePath: normalized };
816
838
  }
839
+ function tanStackBraceSegmentToPattern(segment) {
840
+ const match = /^([^{}$:]*)\{\$([A-Za-z_][A-Za-z0-9_]*)\}([^{}$:]*)$/.exec(
841
+ segment
842
+ );
843
+ if (match === null) return null;
844
+ const [, prefix = "", name = "", suffix = ""] = match;
845
+ if (suffix !== "") return null;
846
+ return `${prefix}:${name}`;
847
+ }
817
848
 
818
849
  // src/route-contract/enumerate/index.ts
819
850
  function enumerateDerived(paths) {
@@ -976,6 +1007,7 @@ var ROLE_INDEX_PATHS = {
976
1007
  blogTag: BOARD_PATHS.blog,
977
1008
  blogAuthor: BOARD_PATHS.blog,
978
1009
  blog: BOARD_PATHS.blog,
1010
+ talentProfile: BOARD_PATHS.talent,
979
1011
  home: BOARD_PATHS.home,
980
1012
  jobs: BOARD_PATHS.jobs,
981
1013
  companies: BOARD_PATHS.companies,
@@ -995,6 +1027,7 @@ function splitSegments(path) {
995
1027
  if (withoutTrailing === "") return [];
996
1028
  return withoutTrailing.split("/");
997
1029
  }
1030
+ var PREFIXED_PARAM_RE = /^([^:]+):([A-Za-z_][A-Za-z0-9_]*)(.*)$/;
998
1031
  function matchPathToTemplate(template, pathname) {
999
1032
  const templateSegs = splitSegments(template);
1000
1033
  const pathSegs = splitSegments(pathname);
@@ -1005,10 +1038,23 @@ function matchPathToTemplate(template, pathname) {
1005
1038
  for (let i = 0; i < templateSegs.length; i++) {
1006
1039
  const tSeg = templateSegs[i];
1007
1040
  const pSeg = pathSegs[i];
1041
+ let name = null;
1042
+ let value = pSeg;
1008
1043
  if (tSeg.startsWith(":") && tSeg.length > 1) {
1009
- if (pSeg.length === 0) return null;
1010
- if (pSeg.includes("/") || pSeg.includes("\\")) return null;
1011
- params[tSeg.slice(1)] = pSeg;
1044
+ name = tSeg.slice(1);
1045
+ } else {
1046
+ const prefixed = PREFIXED_PARAM_RE.exec(tSeg);
1047
+ if (prefixed) {
1048
+ const [, prefix = "", param = "", suffix = ""] = prefixed;
1049
+ if (!pSeg.startsWith(prefix) || !pSeg.endsWith(suffix)) return null;
1050
+ name = param;
1051
+ value = pSeg.slice(prefix.length, pSeg.length - suffix.length);
1052
+ }
1053
+ }
1054
+ if (name !== null) {
1055
+ if (value.length === 0) return null;
1056
+ if (value.includes("/") || value.includes("\\")) return null;
1057
+ params[name] = value;
1012
1058
  continue;
1013
1059
  }
1014
1060
  if (tSeg !== pSeg) return null;
@@ -3,7 +3,7 @@ import {
3
3
  jobsCategoryPath,
4
4
  jobsLocationCategoryPath,
5
5
  jobsLocationPath
6
- } from "./chunk-BGKNXG4H.mjs";
6
+ } from "./chunk-XXQCESMU.mjs";
7
7
 
8
8
  // src/format/locale.ts
9
9
  function normalizeLocale(language) {
@@ -82,6 +82,9 @@ function blogTagPath(tagSlug) {
82
82
  function blogAuthorPath(authorSlug) {
83
83
  return `/blog/author/${encodePathSegment(authorSlug)}`;
84
84
  }
85
+ function talentProfilePath(handle) {
86
+ return `/p/${encodePathSegment(handle)}`;
87
+ }
85
88
  var BOARD_PATHS = {
86
89
  home: "/",
87
90
  jobs: "/jobs",
@@ -138,6 +141,7 @@ export {
138
141
  blogPostPath,
139
142
  blogTagPath,
140
143
  blogAuthorPath,
144
+ talentProfilePath,
141
145
  BOARD_PATHS,
142
146
  goJobPath,
143
147
  goAlertsManagePath,
@@ -1,5 +1,5 @@
1
- import { J as JobSort, E as EmploymentType, R as RemoteOption, S as Seniority } from './jobs-DjMcghv6.mjs';
2
- import './_spec-DQvmsp5o.mjs';
1
+ import { J as JobSort, E as EmploymentType, R as RemoteOption, S as Seniority } from './jobs-BZqtb1gY.mjs';
2
+ import './_spec-CQx5p1cM.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-CEIuahbz.js';
2
- import './_spec-DQvmsp5o.js';
1
+ import { J as JobSort, E as EmploymentType, R as RemoteOption, S as Seniority } from './jobs-BA_PnUCd.js';
2
+ import './_spec-CQx5p1cM.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-BBvJ5gq-.mjs';
2
- import { C as CustomFieldDefinition } from './board-D6xOidUX.mjs';
3
- import { C as CustomFieldValues } from './jobs-DjMcghv6.mjs';
4
- import './_spec-DQvmsp5o.mjs';
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-Db6UTihw.mjs';
2
+ import { C as CustomFieldDefinition } from './board-C7iju96a.mjs';
3
+ import { C as CustomFieldValues } from './jobs-BZqtb1gY.mjs';
4
+ import './_spec-CQx5p1cM.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-D2Cwrju4.js';
2
- import { C as CustomFieldDefinition } from './board-CCG1pO6r.js';
3
- import { C as CustomFieldValues } from './jobs-CEIuahbz.js';
4
- import './_spec-DQvmsp5o.js';
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-BUzF85v3.js';
2
+ import { C as CustomFieldDefinition } from './board-C2Y5fz0m.js';
3
+ import { C as CustomFieldValues } from './jobs-BA_PnUCd.js';
4
+ import './_spec-CQx5p1cM.js';
5
5
 
6
6
  /**
7
7
  * Date display helpers in the board language (required leading parameter,
package/dist/format.mjs CHANGED
@@ -5,8 +5,8 @@ import {
5
5
  formatSalaryStatRange,
6
6
  normalizeLocale,
7
7
  normalizeWebsiteUrl
8
- } from "./chunk-OPMJ6YH5.mjs";
9
- import "./chunk-BGKNXG4H.mjs";
8
+ } from "./chunk-KDFKVWTZ.mjs";
9
+ import "./chunk-XXQCESMU.mjs";
10
10
 
11
11
  // src/format/dates.ts
12
12
  var rtfShortCache = /* @__PURE__ */ new Map();
package/dist/go.mjs CHANGED
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  BOARD_PATHS,
3
3
  jobDetailPath
4
- } from "./chunk-BGKNXG4H.mjs";
4
+ } from "./chunk-XXQCESMU.mjs";
5
5
 
6
6
  // src/go/create-go-handler.ts
7
7
  var NOINDEX_ROBOTS = "noindex, nofollow";
package/dist/index.d.mts CHANGED
@@ -1,13 +1,13 @@
1
- import { S as Schemas, c as components } from './_spec-DQvmsp5o.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-C0LiPXVb.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-C0LiPXVb.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-D6xOidUX.mjs';
5
- export { B as BoardFormBuiltinField, j as BoardFormField, k as BoardFormLayout, l as BoardFormLockReason, m as BoardJobFormField, n as BoardProfileFormField, a as CompanyCategorySalary, o as CompanyMarket, p as CompanyMarketRef, b as CompanySalary, q as CompanySalarySummary, C as CustomFieldDefinition, r as CustomFieldOption, s as CustomFieldType, L as LocationSalaryDetail, t as LocationSkillsIndex, u as LocationTitlesIndex, P as PublicBoard, v as PublicBoardAds, w as PublicBoardAnalytics, x as PublicBoardFeatures, y as PublicBoardJobForm, z as PublicCompany, A as PublicCompanyDetail, D as PublicCompanyMembership, E as SalaryCompany, F as SalaryLocation, G as SalarySkill, H as SalaryTitle, I as SkillLocationSalary, J as SkillLocationsIndex, S as SkillSalaryDetail, K as TitleLocationSalary, M as TitleLocationsIndex, T as TitleSalaryDetail } from './board-D6xOidUX.mjs';
6
- export { B as BoardSeo } from './seo-DCQp8V1c.mjs';
7
- import { R as RemoteOption, E as EmploymentType, S as Seniority, a as CustomFieldFilter, O as ObjectReferenceFilter, L as ListEnvelope, b as JobCollectionChoiceQuery, c as JobsListQuery, d as JobCardListEnvelope, e as JobsSearchBody, f as JobCardSearchEnvelope, g as JobsSimilarQuery, h as SearchEnvelope } from './jobs-DjMcghv6.mjs';
8
- export { i as CustomFieldValue, C as CustomFieldValues, j as CustomFilterValue, k as EducationRequirement, l as JobCatalogPagination, m as JobCollectionChoiceList, n as JobCollectionFieldDefinition, o as JobCompany, J as JobSort, p as OfficeLocation, q as OffsetPagination, P as PublicJob, r as PublicJobCard, s as RelatedSearch, t as RemotePermit, u as RemoteTimezone, v as ResolvedJobCollectionField, w as StorefrontPagination } from './jobs-DjMcghv6.mjs';
9
- import { a as BlogPostsListQuery, b as BlogSimilarQuery, c as BlogSearchBody } from './blog-CvuObn9O.mjs';
10
- export { B as BlogAuthorEmbed, d as BlogTagEmbed, e as PublicBlogAdjacentPosts, f as PublicBlogAuthor, g as PublicBlogPost, P as PublicBlogPostSummary, h as PublicBlogTag } from './blog-CvuObn9O.mjs';
1
+ import { S as Schemas, c as components } from './_spec-CQx5p1cM.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-Da3TjcZ0.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-Da3TjcZ0.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-C7iju96a.mjs';
5
+ export { B as BoardFormBuiltinField, j as BoardFormField, k as BoardFormLayout, l as BoardFormLockReason, m as BoardJobFormField, n as BoardProfileFormField, a as CompanyCategorySalary, o as CompanyMarket, p as CompanyMarketRef, b as CompanySalary, q as CompanySalarySummary, C as CustomFieldDefinition, r as CustomFieldOption, s as CustomFieldType, L as LocationSalaryDetail, t as LocationSkillsIndex, u as LocationTitlesIndex, P as PublicBoard, v as PublicBoardAds, w as PublicBoardAnalytics, x as PublicBoardFeatures, y as PublicBoardJobForm, z as PublicCompany, A as PublicCompanyDetail, D as PublicCompanyMembership, E as SalaryCompany, F as SalaryLocation, G as SalarySkill, H as SalaryTitle, I as SkillLocationSalary, J as SkillLocationsIndex, S as SkillSalaryDetail, K as TitleLocationSalary, M as TitleLocationsIndex, T as TitleSalaryDetail } from './board-C7iju96a.mjs';
6
+ export { B as BoardSeo } from './seo-D3DhnHk8.mjs';
7
+ import { R as RemoteOption, E as EmploymentType, S as Seniority, a as CustomFieldFilter, O as ObjectReferenceFilter, L as ListEnvelope, b as JobCollectionChoiceQuery, c as JobsListQuery, d as JobCardListEnvelope, e as JobsSearchBody, f as JobCardSearchEnvelope, g as JobsSimilarQuery, h as SearchEnvelope } from './jobs-BZqtb1gY.mjs';
8
+ export { i as CustomFieldValue, C as CustomFieldValues, j as CustomFilterValue, k as EducationRequirement, l as JobCatalogPagination, m as JobCollectionChoiceList, n as JobCollectionFieldDefinition, o as JobCompany, J as JobSort, p as OfficeLocation, q as OffsetPagination, P as PublicJob, r as PublicJobCard, s as RelatedSearch, t as RemotePermit, u as RemoteTimezone, v as ResolvedJobCollectionField, w as StorefrontPagination } from './jobs-BZqtb1gY.mjs';
9
+ import { a as BlogPostsListQuery, b as BlogSimilarQuery, c as BlogSearchBody } from './blog-DP06wTDw.mjs';
10
+ export { B as BlogAuthorEmbed, d as BlogTagEmbed, e as PublicBlogAdjacentPosts, f as PublicBlogAuthor, g as PublicBlogPost, P as PublicBlogPostSummary, h as PublicBlogTag } from './blog-DP06wTDw.mjs';
11
11
 
12
12
  /**
13
13
  * Well-known `<domain>_<snake_reason>` codes the Board API sends, grouped by
@@ -150,7 +150,7 @@ declare function paginate<Q extends Record<string, unknown>, P extends PageShape
150
150
  * constant because the package is platform-neutral and cannot read
151
151
  * package.json at runtime.
152
152
  */
153
- declare const SDK_VERSION = "4.28.0";
153
+ declare const SDK_VERSION = "4.29.1";
154
154
 
155
155
  type SavedJob = Schemas['SavedJob'];
156
156
  type SavedJobsListQuery = {
@@ -279,6 +279,7 @@ type ConversationsListQuery = {
279
279
  type Alert = Schemas['Alert'];
280
280
  /** Create/replace body for `board.me.alerts.create` / `board.me.alerts.update`. */
281
281
  type AlertBody = Schemas['AlertBody'];
282
+ type CreateAlertBody = Schemas['CreateAlertBody'];
282
283
  /** The candidate's own view of an application they submitted. */
283
284
  type Application = Schemas['Application'];
284
285
  /** Body for `board.jobs.apply` (name/email omitted when signed in). */
@@ -617,6 +618,8 @@ type RequestMagicLinkBody = Schemas['BoardAuthRequestMagicLinkBody'];
617
618
  type ConsumeMagicLinkBody = Schemas['BoardAuthConsumeMagicLinkBody'];
618
619
  type OAuthProvider = 'google' | 'linkedin';
619
620
  type OAuthAuthorizationQuery = {
621
+ /** JSON-encoded audience evidence captured after analytics consent. */
622
+ audienceAttribution?: string;
620
623
  returnTo?: string;
621
624
  /**
622
625
  * Role profile to create when the handshake signs up a NEW user; defaults
@@ -763,6 +766,9 @@ type AccessCheckoutBody = Schemas['AccessCheckoutBody'];
763
766
  type AccessPortalBody = Schemas['AccessPortalBody'];
764
767
  type PaywallOfferListEnvelope = ListEnvelope<PaywallOffer>;
765
768
 
769
+ /** First-touch signup evidence, supplied only when analytics capture is allowed. */
770
+ type AudienceAttribution = Schemas['AudienceAttribution'];
771
+
766
772
  type JobAlertFrequency = 'weekly';
767
773
  type JobAlertRemoteOption = 'on_site' | 'hybrid' | 'remote';
768
774
  /**
@@ -781,6 +787,7 @@ type JobAlertFiltersInput = {
781
787
  };
782
788
  /** Body for `jobAlerts.subscribe`. `consent` must be `true` (server-enforced). */
783
789
  type JobAlertSubscribeInput = {
790
+ audienceAttribution?: AudienceAttribution;
784
791
  email: string;
785
792
  consent: true;
786
793
  frequency?: JobAlertFrequency;
@@ -2631,7 +2638,7 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
2631
2638
  };
2632
2639
  lastSentAt: string | null;
2633
2640
  }>>;
2634
- create(body: AlertBody, options?: FetchOptions): Promise<{
2641
+ create(body: CreateAlertBody, options?: FetchOptions): Promise<{
2635
2642
  id: string;
2636
2643
  object: "alert";
2637
2644
  label: string | null;
@@ -3780,4 +3787,4 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
3780
3787
  };
3781
3788
  type BoardSdk = ReturnType<typeof createBoardClient>;
3782
3789
 
3783
- export { type AcceptCompanyMemberInviteBody, type AccessCheckoutBody, type AccessCheckoutSession, type AccessCheckoutSessionState, type AccessGrant, type AccessPortalBody, type AccessPortalSession, type AddApplicantNoteBody, type AddSourcedCandidateBody, type Alert, type AlertBody, type Application, type ApplicationsListQuery, type ApplyAction, type ApplyApprovalPlan, type ApplyApprovalReceipt, type ApplyBody, type ApplyDecisionState, type ApplyIntent, Awaitable, BOARD_API_ERROR_CODES, type Block, type BlockStatus, type BlockUserBody, type BlockedUser, BlogPostsListQuery, BlogSearchBody, BlogSimilarQuery, type BoardAccessGrant, BoardApiError, type BoardApiErrorCode, type BoardAuthSession, BoardClient, BoardRequest, type BoardSdk, type BoardSitemapBucketSummary, type BoardSitemapIndex, type BoardUser, type BulkMoveApplicantsBody, type BulkRejectApplicantsBody, type CandidateAvatar, type CandidateEducation, type CandidateExperience, type CandidateLanguage, type CandidateProfile, type CandidateSkill, type ClaimableCompany, CompaniesListQuery, CompaniesSearchBody, type CompanyBillingPortalBody, type CompanyBillingPortalSession, CompanyJobsListQuery, CompanyListEnvelope, CompanyMarketsListQuery, type CompanyMember, type CompanyMemberInvite, type CompanyMemberInviteAcceptance, type CompanyMembership, CompanySimilarQuery, type ConfirmEmailChangeBody, type ConfirmWorkEmailBody, type ConsumeMagicLinkBody, type Conversation, type ConversationArchive, type ConversationDetail, type ConversationRef, type ConversationsListQuery, type ConvertSourcedCandidateBody, type CreateApplyApprovalBody, type CreateApplyIntentBody, type CreateBoardClientOptions, type CreateCompanyBody, type CreateCompanyMemberInviteBody, type CreateEducationBody, type CreateEmployerJobBody, type CreateExperienceBody, type CreateJobPostingInput, type CreatePipelineStageBody, type CreateTalentListBody, CustomFieldFilter, type EditMessageBody, type EmbedJobsQuery, type EmployerApplicant, type EmployerBillingOption, type EmployerCheckout, type EmployerCheckoutBody, type EmployerCompany, type EmployerCompanySearchQuery, type EmployerJob, type EmployerJobStat, type EmployerJobStatsPoint, type EmployerJobStatsTimeseriesQuery, type EmployerJobSummary, type EmployerJobsListQuery, type EmployerPipeline, type EmployerPipelineQuery, type EmployerPipelineStage, type EmployerProfileStats, type EmployerProfileViewsPoint, type EmployerProfileViewsTimeseriesQuery, EmploymentType, FetchOptions, type FindExistingConversationQuery, type ForgotPasswordBody, type HandleAvailability, type JobAlertConfirmation, type JobAlertDeletePreferenceInput, type JobAlertFiltersInput, type JobAlertFrequency, type JobAlertManageQuery, type JobAlertManageResult, type JobAlertManageState, type JobAlertManageTokenInput, type JobAlertPreference, type JobAlertRemoteOption, type JobAlertResendResult, type JobAlertStoredFilters, type JobAlertSubscribeInput, type JobAlertSubscription, type JobAlertUpdatePreferenceInput, JobCardListEnvelope, JobCardSearchEnvelope, JobCollectionChoiceQuery, type JobPostingBillingOptions, type JobPostingBillingVerification, type JobPostingLogoResult, type JobPostingPlan, type JobPostingResult, JobsListQuery, JobsSearchBody, JobsSimilarQuery, ListEnvelope, type LocationResolveInput, type LocationSearchQuery, Logger, type LoginBody, type LogoutBody, type MarketingConsent, type MembershipCheckoutBody, type MembershipCheckoutSession, type MembershipCheckoutSessionState, type Message, type ModerationReport, type MoveApplicantStageBody, type NotificationPreference, type OAuthAuthorizationQuery, type OAuthAuthorizationUrl, type OAuthExchangeBody, type OAuthProvider, ObjectReferenceFilter, type Paginator, type PaywallOffer, type PaywallOfferListEnvelope, type PlacesListQuery, type Plan, type PlanListEnvelope, type PlansListQuery, type ProfileChoiceList, type ProfileChoiceQuery, type ProfileFieldEntity, type ProfileFieldValues, type ProfileObjectReferenceSelectionWrite, type ProfileObjectReferences, type PublicLocation, type PublicPlace, type PublicProfileFields, type PublicTaxonomyTerm, type ReadReceipt, type RecommendedJob, type RecommendedJobsListQuery, type RecommendedTalent, type RecommendedTalentListQuery, type RedirectResolution, type RefreshBody, type RegisterBody, RemoteOption, type RemotePermitTaxonomyEntry, type ReorderPipelineStagesBody, type ReplaceProfileObjectReferencesBody, type ReplyBody, type ReportBody, type RequestEmailChangeBody, type RequestMagicLinkBody, type ResetPasswordBody, type Resume, type ResumeUploadOptions, SDK_VERSION, SalaryDetailQuery, type SalesLedPlan, type SalesLedPlanListEnvelope, type SaveJobBody, type SavedJob, type SavedJobsListQuery, SearchEnvelope, SearchSuggestQuery, type SendWorkEmailBody, Seniority, type SitemapEntriesEnvelope, type SitemapEntriesQuery, type SitemapEntry, type SourcedCandidate, type StartAboutApplicationBody, type StartConversationBody, StorageMode, type TalentAccess, type TalentAccessCheckoutBody, type TalentAccessCheckoutSession, type TalentAccessCheckoutSessionState, type TalentAccessClaim, type TalentAccessClaimBody, type TalentAccessUpgrade, type TalentAccessUpgradeBody, type TalentCandidateAccess, type TalentDirectoryEntry, type TalentDirectoryListEnvelope, type TalentDirectoryQuery, type TalentList, type TalentListFilters, type TalentProfile, type TalentUnlock, type TalentUnlockBody, type TaxonomyGeo, type TaxonomyListQuery, type TaxonomyResolution, type ThreadMessagesQuery, type UnreadCount, type UnsubscribeBody, type UpdateApplicationFactsBody, type UpdateCandidateProfileBody, type UpdateCompanyMemberRoleBody, type UpdateEducationBody, type UpdateEmployerCompanyBody, type UpdateEmployerJobBody, type UpdateExperienceBody, type UpdateLanguagesBody, type UpdateNotificationPreferenceBody, type UpdatePasswordBody, type UpdatePipelineStageBody, type UpdateProfileFieldValuesBody, type UpdateSkillsBody, type UpdateTalentListBody, type VerifyEmailBody, createBoardClient, isBoardApiError, isBoardPasswordRequired, isColdRule, isConflict, isForbidden, isFreeEmailWebsiteError, isNotFound, isOwnMessage, isRateLimited, isSafeApplicationUrl, isUnauthorized, isValidationError, lastOwnMessageId, paginate, resolveApplyAction, resolveApplyDecision };
3790
+ export { type AcceptCompanyMemberInviteBody, type AccessCheckoutBody, type AccessCheckoutSession, type AccessCheckoutSessionState, type AccessGrant, type AccessPortalBody, type AccessPortalSession, type AddApplicantNoteBody, type AddSourcedCandidateBody, type Alert, type AlertBody, type Application, type ApplicationsListQuery, type ApplyAction, type ApplyApprovalPlan, type ApplyApprovalReceipt, type ApplyBody, type ApplyDecisionState, type ApplyIntent, type AudienceAttribution, Awaitable, BOARD_API_ERROR_CODES, type Block, type BlockStatus, type BlockUserBody, type BlockedUser, BlogPostsListQuery, BlogSearchBody, BlogSimilarQuery, type BoardAccessGrant, BoardApiError, type BoardApiErrorCode, type BoardAuthSession, BoardClient, BoardRequest, type BoardSdk, type BoardSitemapBucketSummary, type BoardSitemapIndex, type BoardUser, type BulkMoveApplicantsBody, type BulkRejectApplicantsBody, type CandidateAvatar, type CandidateEducation, type CandidateExperience, type CandidateLanguage, type CandidateProfile, type CandidateSkill, type ClaimableCompany, CompaniesListQuery, CompaniesSearchBody, type CompanyBillingPortalBody, type CompanyBillingPortalSession, CompanyJobsListQuery, CompanyListEnvelope, CompanyMarketsListQuery, type CompanyMember, type CompanyMemberInvite, type CompanyMemberInviteAcceptance, type CompanyMembership, CompanySimilarQuery, type ConfirmEmailChangeBody, type ConfirmWorkEmailBody, type ConsumeMagicLinkBody, type Conversation, type ConversationArchive, type ConversationDetail, type ConversationRef, type ConversationsListQuery, type ConvertSourcedCandidateBody, type CreateAlertBody, type CreateApplyApprovalBody, type CreateApplyIntentBody, type CreateBoardClientOptions, type CreateCompanyBody, type CreateCompanyMemberInviteBody, type CreateEducationBody, type CreateEmployerJobBody, type CreateExperienceBody, type CreateJobPostingInput, type CreatePipelineStageBody, type CreateTalentListBody, CustomFieldFilter, type EditMessageBody, type EmbedJobsQuery, type EmployerApplicant, type EmployerBillingOption, type EmployerCheckout, type EmployerCheckoutBody, type EmployerCompany, type EmployerCompanySearchQuery, type EmployerJob, type EmployerJobStat, type EmployerJobStatsPoint, type EmployerJobStatsTimeseriesQuery, type EmployerJobSummary, type EmployerJobsListQuery, type EmployerPipeline, type EmployerPipelineQuery, type EmployerPipelineStage, type EmployerProfileStats, type EmployerProfileViewsPoint, type EmployerProfileViewsTimeseriesQuery, EmploymentType, FetchOptions, type FindExistingConversationQuery, type ForgotPasswordBody, type HandleAvailability, type JobAlertConfirmation, type JobAlertDeletePreferenceInput, type JobAlertFiltersInput, type JobAlertFrequency, type JobAlertManageQuery, type JobAlertManageResult, type JobAlertManageState, type JobAlertManageTokenInput, type JobAlertPreference, type JobAlertRemoteOption, type JobAlertResendResult, type JobAlertStoredFilters, type JobAlertSubscribeInput, type JobAlertSubscription, type JobAlertUpdatePreferenceInput, JobCardListEnvelope, JobCardSearchEnvelope, JobCollectionChoiceQuery, type JobPostingBillingOptions, type JobPostingBillingVerification, type JobPostingLogoResult, type JobPostingPlan, type JobPostingResult, JobsListQuery, JobsSearchBody, JobsSimilarQuery, ListEnvelope, type LocationResolveInput, type LocationSearchQuery, Logger, type LoginBody, type LogoutBody, type MarketingConsent, type MembershipCheckoutBody, type MembershipCheckoutSession, type MembershipCheckoutSessionState, type Message, type ModerationReport, type MoveApplicantStageBody, type NotificationPreference, type OAuthAuthorizationQuery, type OAuthAuthorizationUrl, type OAuthExchangeBody, type OAuthProvider, ObjectReferenceFilter, type Paginator, type PaywallOffer, type PaywallOfferListEnvelope, type PlacesListQuery, type Plan, type PlanListEnvelope, type PlansListQuery, type ProfileChoiceList, type ProfileChoiceQuery, type ProfileFieldEntity, type ProfileFieldValues, type ProfileObjectReferenceSelectionWrite, type ProfileObjectReferences, type PublicLocation, type PublicPlace, type PublicProfileFields, type PublicTaxonomyTerm, type ReadReceipt, type RecommendedJob, type RecommendedJobsListQuery, type RecommendedTalent, type RecommendedTalentListQuery, type RedirectResolution, type RefreshBody, type RegisterBody, RemoteOption, type RemotePermitTaxonomyEntry, type ReorderPipelineStagesBody, type ReplaceProfileObjectReferencesBody, type ReplyBody, type ReportBody, type RequestEmailChangeBody, type RequestMagicLinkBody, type ResetPasswordBody, type Resume, type ResumeUploadOptions, SDK_VERSION, SalaryDetailQuery, type SalesLedPlan, type SalesLedPlanListEnvelope, type SaveJobBody, type SavedJob, type SavedJobsListQuery, SearchEnvelope, SearchSuggestQuery, type SendWorkEmailBody, Seniority, type SitemapEntriesEnvelope, type SitemapEntriesQuery, type SitemapEntry, type SourcedCandidate, type StartAboutApplicationBody, type StartConversationBody, StorageMode, type TalentAccess, type TalentAccessCheckoutBody, type TalentAccessCheckoutSession, type TalentAccessCheckoutSessionState, type TalentAccessClaim, type TalentAccessClaimBody, type TalentAccessUpgrade, type TalentAccessUpgradeBody, type TalentCandidateAccess, type TalentDirectoryEntry, type TalentDirectoryListEnvelope, type TalentDirectoryQuery, type TalentList, type TalentListFilters, type TalentProfile, type TalentUnlock, type TalentUnlockBody, type TaxonomyGeo, type TaxonomyListQuery, type TaxonomyResolution, type ThreadMessagesQuery, type UnreadCount, type UnsubscribeBody, type UpdateApplicationFactsBody, type UpdateCandidateProfileBody, type UpdateCompanyMemberRoleBody, type UpdateEducationBody, type UpdateEmployerCompanyBody, type UpdateEmployerJobBody, type UpdateExperienceBody, type UpdateLanguagesBody, type UpdateNotificationPreferenceBody, type UpdatePasswordBody, type UpdatePipelineStageBody, type UpdateProfileFieldValuesBody, type UpdateSkillsBody, type UpdateTalentListBody, type VerifyEmailBody, createBoardClient, isBoardApiError, isBoardPasswordRequired, isColdRule, isConflict, isForbidden, isFreeEmailWebsiteError, isNotFound, isOwnMessage, isRateLimited, isSafeApplicationUrl, isUnauthorized, isValidationError, lastOwnMessageId, paginate, resolveApplyAction, resolveApplyDecision };
package/dist/index.d.ts CHANGED
@@ -1,13 +1,13 @@
1
- import { S as Schemas, c as components } from './_spec-DQvmsp5o.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-D-EjtZH3.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-D-EjtZH3.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-CCG1pO6r.js';
5
- export { B as BoardFormBuiltinField, j as BoardFormField, k as BoardFormLayout, l as BoardFormLockReason, m as BoardJobFormField, n as BoardProfileFormField, a as CompanyCategorySalary, o as CompanyMarket, p as CompanyMarketRef, b as CompanySalary, q as CompanySalarySummary, C as CustomFieldDefinition, r as CustomFieldOption, s as CustomFieldType, L as LocationSalaryDetail, t as LocationSkillsIndex, u as LocationTitlesIndex, P as PublicBoard, v as PublicBoardAds, w as PublicBoardAnalytics, x as PublicBoardFeatures, y as PublicBoardJobForm, z as PublicCompany, A as PublicCompanyDetail, D as PublicCompanyMembership, E as SalaryCompany, F as SalaryLocation, G as SalarySkill, H as SalaryTitle, I as SkillLocationSalary, J as SkillLocationsIndex, S as SkillSalaryDetail, K as TitleLocationSalary, M as TitleLocationsIndex, T as TitleSalaryDetail } from './board-CCG1pO6r.js';
6
- export { B as BoardSeo } from './seo-CjNGqZZH.js';
7
- import { R as RemoteOption, E as EmploymentType, S as Seniority, a as CustomFieldFilter, O as ObjectReferenceFilter, L as ListEnvelope, b as JobCollectionChoiceQuery, c as JobsListQuery, d as JobCardListEnvelope, e as JobsSearchBody, f as JobCardSearchEnvelope, g as JobsSimilarQuery, h as SearchEnvelope } from './jobs-CEIuahbz.js';
8
- export { i as CustomFieldValue, C as CustomFieldValues, j as CustomFilterValue, k as EducationRequirement, l as JobCatalogPagination, m as JobCollectionChoiceList, n as JobCollectionFieldDefinition, o as JobCompany, J as JobSort, p as OfficeLocation, q as OffsetPagination, P as PublicJob, r as PublicJobCard, s as RelatedSearch, t as RemotePermit, u as RemoteTimezone, v as ResolvedJobCollectionField, w as StorefrontPagination } from './jobs-CEIuahbz.js';
9
- import { a as BlogPostsListQuery, b as BlogSimilarQuery, c as BlogSearchBody } from './blog-CUkvhn3c.js';
10
- export { B as BlogAuthorEmbed, d as BlogTagEmbed, e as PublicBlogAdjacentPosts, f as PublicBlogAuthor, g as PublicBlogPost, P as PublicBlogPostSummary, h as PublicBlogTag } from './blog-CUkvhn3c.js';
1
+ import { S as Schemas, c as components } from './_spec-CQx5p1cM.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-dsA-Cetf.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-dsA-Cetf.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-C2Y5fz0m.js';
5
+ export { B as BoardFormBuiltinField, j as BoardFormField, k as BoardFormLayout, l as BoardFormLockReason, m as BoardJobFormField, n as BoardProfileFormField, a as CompanyCategorySalary, o as CompanyMarket, p as CompanyMarketRef, b as CompanySalary, q as CompanySalarySummary, C as CustomFieldDefinition, r as CustomFieldOption, s as CustomFieldType, L as LocationSalaryDetail, t as LocationSkillsIndex, u as LocationTitlesIndex, P as PublicBoard, v as PublicBoardAds, w as PublicBoardAnalytics, x as PublicBoardFeatures, y as PublicBoardJobForm, z as PublicCompany, A as PublicCompanyDetail, D as PublicCompanyMembership, E as SalaryCompany, F as SalaryLocation, G as SalarySkill, H as SalaryTitle, I as SkillLocationSalary, J as SkillLocationsIndex, S as SkillSalaryDetail, K as TitleLocationSalary, M as TitleLocationsIndex, T as TitleSalaryDetail } from './board-C2Y5fz0m.js';
6
+ export { B as BoardSeo } from './seo-D-n2g6X3.js';
7
+ import { R as RemoteOption, E as EmploymentType, S as Seniority, a as CustomFieldFilter, O as ObjectReferenceFilter, L as ListEnvelope, b as JobCollectionChoiceQuery, c as JobsListQuery, d as JobCardListEnvelope, e as JobsSearchBody, f as JobCardSearchEnvelope, g as JobsSimilarQuery, h as SearchEnvelope } from './jobs-BA_PnUCd.js';
8
+ export { i as CustomFieldValue, C as CustomFieldValues, j as CustomFilterValue, k as EducationRequirement, l as JobCatalogPagination, m as JobCollectionChoiceList, n as JobCollectionFieldDefinition, o as JobCompany, J as JobSort, p as OfficeLocation, q as OffsetPagination, P as PublicJob, r as PublicJobCard, s as RelatedSearch, t as RemotePermit, u as RemoteTimezone, v as ResolvedJobCollectionField, w as StorefrontPagination } from './jobs-BA_PnUCd.js';
9
+ import { a as BlogPostsListQuery, b as BlogSimilarQuery, c as BlogSearchBody } from './blog-BwyZQX_f.js';
10
+ export { B as BlogAuthorEmbed, d as BlogTagEmbed, e as PublicBlogAdjacentPosts, f as PublicBlogAuthor, g as PublicBlogPost, P as PublicBlogPostSummary, h as PublicBlogTag } from './blog-BwyZQX_f.js';
11
11
 
12
12
  /**
13
13
  * Well-known `<domain>_<snake_reason>` codes the Board API sends, grouped by
@@ -150,7 +150,7 @@ declare function paginate<Q extends Record<string, unknown>, P extends PageShape
150
150
  * constant because the package is platform-neutral and cannot read
151
151
  * package.json at runtime.
152
152
  */
153
- declare const SDK_VERSION = "4.28.0";
153
+ declare const SDK_VERSION = "4.29.1";
154
154
 
155
155
  type SavedJob = Schemas['SavedJob'];
156
156
  type SavedJobsListQuery = {
@@ -279,6 +279,7 @@ type ConversationsListQuery = {
279
279
  type Alert = Schemas['Alert'];
280
280
  /** Create/replace body for `board.me.alerts.create` / `board.me.alerts.update`. */
281
281
  type AlertBody = Schemas['AlertBody'];
282
+ type CreateAlertBody = Schemas['CreateAlertBody'];
282
283
  /** The candidate's own view of an application they submitted. */
283
284
  type Application = Schemas['Application'];
284
285
  /** Body for `board.jobs.apply` (name/email omitted when signed in). */
@@ -617,6 +618,8 @@ type RequestMagicLinkBody = Schemas['BoardAuthRequestMagicLinkBody'];
617
618
  type ConsumeMagicLinkBody = Schemas['BoardAuthConsumeMagicLinkBody'];
618
619
  type OAuthProvider = 'google' | 'linkedin';
619
620
  type OAuthAuthorizationQuery = {
621
+ /** JSON-encoded audience evidence captured after analytics consent. */
622
+ audienceAttribution?: string;
620
623
  returnTo?: string;
621
624
  /**
622
625
  * Role profile to create when the handshake signs up a NEW user; defaults
@@ -763,6 +766,9 @@ type AccessCheckoutBody = Schemas['AccessCheckoutBody'];
763
766
  type AccessPortalBody = Schemas['AccessPortalBody'];
764
767
  type PaywallOfferListEnvelope = ListEnvelope<PaywallOffer>;
765
768
 
769
+ /** First-touch signup evidence, supplied only when analytics capture is allowed. */
770
+ type AudienceAttribution = Schemas['AudienceAttribution'];
771
+
766
772
  type JobAlertFrequency = 'weekly';
767
773
  type JobAlertRemoteOption = 'on_site' | 'hybrid' | 'remote';
768
774
  /**
@@ -781,6 +787,7 @@ type JobAlertFiltersInput = {
781
787
  };
782
788
  /** Body for `jobAlerts.subscribe`. `consent` must be `true` (server-enforced). */
783
789
  type JobAlertSubscribeInput = {
790
+ audienceAttribution?: AudienceAttribution;
784
791
  email: string;
785
792
  consent: true;
786
793
  frequency?: JobAlertFrequency;
@@ -2631,7 +2638,7 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
2631
2638
  };
2632
2639
  lastSentAt: string | null;
2633
2640
  }>>;
2634
- create(body: AlertBody, options?: FetchOptions): Promise<{
2641
+ create(body: CreateAlertBody, options?: FetchOptions): Promise<{
2635
2642
  id: string;
2636
2643
  object: "alert";
2637
2644
  label: string | null;
@@ -3780,4 +3787,4 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
3780
3787
  };
3781
3788
  type BoardSdk = ReturnType<typeof createBoardClient>;
3782
3789
 
3783
- export { type AcceptCompanyMemberInviteBody, type AccessCheckoutBody, type AccessCheckoutSession, type AccessCheckoutSessionState, type AccessGrant, type AccessPortalBody, type AccessPortalSession, type AddApplicantNoteBody, type AddSourcedCandidateBody, type Alert, type AlertBody, type Application, type ApplicationsListQuery, type ApplyAction, type ApplyApprovalPlan, type ApplyApprovalReceipt, type ApplyBody, type ApplyDecisionState, type ApplyIntent, Awaitable, BOARD_API_ERROR_CODES, type Block, type BlockStatus, type BlockUserBody, type BlockedUser, BlogPostsListQuery, BlogSearchBody, BlogSimilarQuery, type BoardAccessGrant, BoardApiError, type BoardApiErrorCode, type BoardAuthSession, BoardClient, BoardRequest, type BoardSdk, type BoardSitemapBucketSummary, type BoardSitemapIndex, type BoardUser, type BulkMoveApplicantsBody, type BulkRejectApplicantsBody, type CandidateAvatar, type CandidateEducation, type CandidateExperience, type CandidateLanguage, type CandidateProfile, type CandidateSkill, type ClaimableCompany, CompaniesListQuery, CompaniesSearchBody, type CompanyBillingPortalBody, type CompanyBillingPortalSession, CompanyJobsListQuery, CompanyListEnvelope, CompanyMarketsListQuery, type CompanyMember, type CompanyMemberInvite, type CompanyMemberInviteAcceptance, type CompanyMembership, CompanySimilarQuery, type ConfirmEmailChangeBody, type ConfirmWorkEmailBody, type ConsumeMagicLinkBody, type Conversation, type ConversationArchive, type ConversationDetail, type ConversationRef, type ConversationsListQuery, type ConvertSourcedCandidateBody, type CreateApplyApprovalBody, type CreateApplyIntentBody, type CreateBoardClientOptions, type CreateCompanyBody, type CreateCompanyMemberInviteBody, type CreateEducationBody, type CreateEmployerJobBody, type CreateExperienceBody, type CreateJobPostingInput, type CreatePipelineStageBody, type CreateTalentListBody, CustomFieldFilter, type EditMessageBody, type EmbedJobsQuery, type EmployerApplicant, type EmployerBillingOption, type EmployerCheckout, type EmployerCheckoutBody, type EmployerCompany, type EmployerCompanySearchQuery, type EmployerJob, type EmployerJobStat, type EmployerJobStatsPoint, type EmployerJobStatsTimeseriesQuery, type EmployerJobSummary, type EmployerJobsListQuery, type EmployerPipeline, type EmployerPipelineQuery, type EmployerPipelineStage, type EmployerProfileStats, type EmployerProfileViewsPoint, type EmployerProfileViewsTimeseriesQuery, EmploymentType, FetchOptions, type FindExistingConversationQuery, type ForgotPasswordBody, type HandleAvailability, type JobAlertConfirmation, type JobAlertDeletePreferenceInput, type JobAlertFiltersInput, type JobAlertFrequency, type JobAlertManageQuery, type JobAlertManageResult, type JobAlertManageState, type JobAlertManageTokenInput, type JobAlertPreference, type JobAlertRemoteOption, type JobAlertResendResult, type JobAlertStoredFilters, type JobAlertSubscribeInput, type JobAlertSubscription, type JobAlertUpdatePreferenceInput, JobCardListEnvelope, JobCardSearchEnvelope, JobCollectionChoiceQuery, type JobPostingBillingOptions, type JobPostingBillingVerification, type JobPostingLogoResult, type JobPostingPlan, type JobPostingResult, JobsListQuery, JobsSearchBody, JobsSimilarQuery, ListEnvelope, type LocationResolveInput, type LocationSearchQuery, Logger, type LoginBody, type LogoutBody, type MarketingConsent, type MembershipCheckoutBody, type MembershipCheckoutSession, type MembershipCheckoutSessionState, type Message, type ModerationReport, type MoveApplicantStageBody, type NotificationPreference, type OAuthAuthorizationQuery, type OAuthAuthorizationUrl, type OAuthExchangeBody, type OAuthProvider, ObjectReferenceFilter, type Paginator, type PaywallOffer, type PaywallOfferListEnvelope, type PlacesListQuery, type Plan, type PlanListEnvelope, type PlansListQuery, type ProfileChoiceList, type ProfileChoiceQuery, type ProfileFieldEntity, type ProfileFieldValues, type ProfileObjectReferenceSelectionWrite, type ProfileObjectReferences, type PublicLocation, type PublicPlace, type PublicProfileFields, type PublicTaxonomyTerm, type ReadReceipt, type RecommendedJob, type RecommendedJobsListQuery, type RecommendedTalent, type RecommendedTalentListQuery, type RedirectResolution, type RefreshBody, type RegisterBody, RemoteOption, type RemotePermitTaxonomyEntry, type ReorderPipelineStagesBody, type ReplaceProfileObjectReferencesBody, type ReplyBody, type ReportBody, type RequestEmailChangeBody, type RequestMagicLinkBody, type ResetPasswordBody, type Resume, type ResumeUploadOptions, SDK_VERSION, SalaryDetailQuery, type SalesLedPlan, type SalesLedPlanListEnvelope, type SaveJobBody, type SavedJob, type SavedJobsListQuery, SearchEnvelope, SearchSuggestQuery, type SendWorkEmailBody, Seniority, type SitemapEntriesEnvelope, type SitemapEntriesQuery, type SitemapEntry, type SourcedCandidate, type StartAboutApplicationBody, type StartConversationBody, StorageMode, type TalentAccess, type TalentAccessCheckoutBody, type TalentAccessCheckoutSession, type TalentAccessCheckoutSessionState, type TalentAccessClaim, type TalentAccessClaimBody, type TalentAccessUpgrade, type TalentAccessUpgradeBody, type TalentCandidateAccess, type TalentDirectoryEntry, type TalentDirectoryListEnvelope, type TalentDirectoryQuery, type TalentList, type TalentListFilters, type TalentProfile, type TalentUnlock, type TalentUnlockBody, type TaxonomyGeo, type TaxonomyListQuery, type TaxonomyResolution, type ThreadMessagesQuery, type UnreadCount, type UnsubscribeBody, type UpdateApplicationFactsBody, type UpdateCandidateProfileBody, type UpdateCompanyMemberRoleBody, type UpdateEducationBody, type UpdateEmployerCompanyBody, type UpdateEmployerJobBody, type UpdateExperienceBody, type UpdateLanguagesBody, type UpdateNotificationPreferenceBody, type UpdatePasswordBody, type UpdatePipelineStageBody, type UpdateProfileFieldValuesBody, type UpdateSkillsBody, type UpdateTalentListBody, type VerifyEmailBody, createBoardClient, isBoardApiError, isBoardPasswordRequired, isColdRule, isConflict, isForbidden, isFreeEmailWebsiteError, isNotFound, isOwnMessage, isRateLimited, isSafeApplicationUrl, isUnauthorized, isValidationError, lastOwnMessageId, paginate, resolveApplyAction, resolveApplyDecision };
3790
+ export { type AcceptCompanyMemberInviteBody, type AccessCheckoutBody, type AccessCheckoutSession, type AccessCheckoutSessionState, type AccessGrant, type AccessPortalBody, type AccessPortalSession, type AddApplicantNoteBody, type AddSourcedCandidateBody, type Alert, type AlertBody, type Application, type ApplicationsListQuery, type ApplyAction, type ApplyApprovalPlan, type ApplyApprovalReceipt, type ApplyBody, type ApplyDecisionState, type ApplyIntent, type AudienceAttribution, Awaitable, BOARD_API_ERROR_CODES, type Block, type BlockStatus, type BlockUserBody, type BlockedUser, BlogPostsListQuery, BlogSearchBody, BlogSimilarQuery, type BoardAccessGrant, BoardApiError, type BoardApiErrorCode, type BoardAuthSession, BoardClient, BoardRequest, type BoardSdk, type BoardSitemapBucketSummary, type BoardSitemapIndex, type BoardUser, type BulkMoveApplicantsBody, type BulkRejectApplicantsBody, type CandidateAvatar, type CandidateEducation, type CandidateExperience, type CandidateLanguage, type CandidateProfile, type CandidateSkill, type ClaimableCompany, CompaniesListQuery, CompaniesSearchBody, type CompanyBillingPortalBody, type CompanyBillingPortalSession, CompanyJobsListQuery, CompanyListEnvelope, CompanyMarketsListQuery, type CompanyMember, type CompanyMemberInvite, type CompanyMemberInviteAcceptance, type CompanyMembership, CompanySimilarQuery, type ConfirmEmailChangeBody, type ConfirmWorkEmailBody, type ConsumeMagicLinkBody, type Conversation, type ConversationArchive, type ConversationDetail, type ConversationRef, type ConversationsListQuery, type ConvertSourcedCandidateBody, type CreateAlertBody, type CreateApplyApprovalBody, type CreateApplyIntentBody, type CreateBoardClientOptions, type CreateCompanyBody, type CreateCompanyMemberInviteBody, type CreateEducationBody, type CreateEmployerJobBody, type CreateExperienceBody, type CreateJobPostingInput, type CreatePipelineStageBody, type CreateTalentListBody, CustomFieldFilter, type EditMessageBody, type EmbedJobsQuery, type EmployerApplicant, type EmployerBillingOption, type EmployerCheckout, type EmployerCheckoutBody, type EmployerCompany, type EmployerCompanySearchQuery, type EmployerJob, type EmployerJobStat, type EmployerJobStatsPoint, type EmployerJobStatsTimeseriesQuery, type EmployerJobSummary, type EmployerJobsListQuery, type EmployerPipeline, type EmployerPipelineQuery, type EmployerPipelineStage, type EmployerProfileStats, type EmployerProfileViewsPoint, type EmployerProfileViewsTimeseriesQuery, EmploymentType, FetchOptions, type FindExistingConversationQuery, type ForgotPasswordBody, type HandleAvailability, type JobAlertConfirmation, type JobAlertDeletePreferenceInput, type JobAlertFiltersInput, type JobAlertFrequency, type JobAlertManageQuery, type JobAlertManageResult, type JobAlertManageState, type JobAlertManageTokenInput, type JobAlertPreference, type JobAlertRemoteOption, type JobAlertResendResult, type JobAlertStoredFilters, type JobAlertSubscribeInput, type JobAlertSubscription, type JobAlertUpdatePreferenceInput, JobCardListEnvelope, JobCardSearchEnvelope, JobCollectionChoiceQuery, type JobPostingBillingOptions, type JobPostingBillingVerification, type JobPostingLogoResult, type JobPostingPlan, type JobPostingResult, JobsListQuery, JobsSearchBody, JobsSimilarQuery, ListEnvelope, type LocationResolveInput, type LocationSearchQuery, Logger, type LoginBody, type LogoutBody, type MarketingConsent, type MembershipCheckoutBody, type MembershipCheckoutSession, type MembershipCheckoutSessionState, type Message, type ModerationReport, type MoveApplicantStageBody, type NotificationPreference, type OAuthAuthorizationQuery, type OAuthAuthorizationUrl, type OAuthExchangeBody, type OAuthProvider, ObjectReferenceFilter, type Paginator, type PaywallOffer, type PaywallOfferListEnvelope, type PlacesListQuery, type Plan, type PlanListEnvelope, type PlansListQuery, type ProfileChoiceList, type ProfileChoiceQuery, type ProfileFieldEntity, type ProfileFieldValues, type ProfileObjectReferenceSelectionWrite, type ProfileObjectReferences, type PublicLocation, type PublicPlace, type PublicProfileFields, type PublicTaxonomyTerm, type ReadReceipt, type RecommendedJob, type RecommendedJobsListQuery, type RecommendedTalent, type RecommendedTalentListQuery, type RedirectResolution, type RefreshBody, type RegisterBody, RemoteOption, type RemotePermitTaxonomyEntry, type ReorderPipelineStagesBody, type ReplaceProfileObjectReferencesBody, type ReplyBody, type ReportBody, type RequestEmailChangeBody, type RequestMagicLinkBody, type ResetPasswordBody, type Resume, type ResumeUploadOptions, SDK_VERSION, SalaryDetailQuery, type SalesLedPlan, type SalesLedPlanListEnvelope, type SaveJobBody, type SavedJob, type SavedJobsListQuery, SearchEnvelope, SearchSuggestQuery, type SendWorkEmailBody, Seniority, type SitemapEntriesEnvelope, type SitemapEntriesQuery, type SitemapEntry, type SourcedCandidate, type StartAboutApplicationBody, type StartConversationBody, StorageMode, type TalentAccess, type TalentAccessCheckoutBody, type TalentAccessCheckoutSession, type TalentAccessCheckoutSessionState, type TalentAccessClaim, type TalentAccessClaimBody, type TalentAccessUpgrade, type TalentAccessUpgradeBody, type TalentCandidateAccess, type TalentDirectoryEntry, type TalentDirectoryListEnvelope, type TalentDirectoryQuery, type TalentList, type TalentListFilters, type TalentProfile, type TalentUnlock, type TalentUnlockBody, type TaxonomyGeo, type TaxonomyListQuery, type TaxonomyResolution, type ThreadMessagesQuery, type UnreadCount, type UnsubscribeBody, type UpdateApplicationFactsBody, type UpdateCandidateProfileBody, type UpdateCompanyMemberRoleBody, type UpdateEducationBody, type UpdateEmployerCompanyBody, type UpdateEmployerJobBody, type UpdateExperienceBody, type UpdateLanguagesBody, type UpdateNotificationPreferenceBody, type UpdatePasswordBody, type UpdatePipelineStageBody, type UpdateProfileFieldValuesBody, type UpdateSkillsBody, type UpdateTalentListBody, type VerifyEmailBody, createBoardClient, isBoardApiError, isBoardPasswordRequired, isColdRule, isConflict, isForbidden, isFreeEmailWebsiteError, isNotFound, isOwnMessage, isRateLimited, isSafeApplicationUrl, isUnauthorized, isValidationError, lastOwnMessageId, paginate, resolveApplyAction, resolveApplyDecision };
package/dist/index.js CHANGED
@@ -363,7 +363,7 @@ async function clearSession(storage) {
363
363
  }
364
364
 
365
365
  // src/version.ts
366
- var SDK_VERSION = "4.28.0";
366
+ var SDK_VERSION = "4.29.1";
367
367
 
368
368
  // src/client.ts
369
369
  function isRawBody(body) {
package/dist/index.mjs CHANGED
@@ -42,7 +42,7 @@ function toSearchParams(query) {
42
42
  }
43
43
 
44
44
  // src/version.ts
45
- var SDK_VERSION = "4.28.0";
45
+ var SDK_VERSION = "4.29.1";
46
46
 
47
47
  // src/client.ts
48
48
  function isRawBody(body) {
@@ -1,4 +1,4 @@
1
- import { S as Schemas } from './_spec-DQvmsp5o.js';
1
+ import { S as Schemas } from './_spec-CQx5p1cM.js';
2
2
 
3
3
  /**
4
4
  * Optional pagination metadata returned by Board API list operations.
@@ -1,4 +1,4 @@
1
- import { S as Schemas } from './_spec-DQvmsp5o.mjs';
1
+ import { S as Schemas } from './_spec-CQx5p1cM.mjs';
2
2
 
3
3
  /**
4
4
  * Optional pagination metadata returned by Board API list operations.
package/dist/paths.d.mts CHANGED
@@ -127,6 +127,13 @@ declare function blogPostPath(postSlug: string): string;
127
127
  declare function blogTagPath(tagSlug: string): string;
128
128
  /** Blog author archive. */
129
129
  declare function blogAuthorPath(authorSlug: string): string;
130
+ /**
131
+ * Candidate public profile (`/p/<handle>`). Always the default shape: a board
132
+ * that serves profiles elsewhere (e.g. `/@<handle>`, declared through the
133
+ * `talentProfile` route role) builds its links with its own helper, not this.
134
+ * Only the handle is encoded.
135
+ */
136
+ declare function talentProfilePath(handle: string): string;
130
137
  /**
131
138
  * Static top-level board paths (indexed marketing + index surfaces). Kept
132
139
  * here so the sitemap and consumers share one definition of the chrome
@@ -181,4 +188,4 @@ declare function goAlertsConfirmPath(): string;
181
188
  */
182
189
  declare function boardUrl(origin: string, path: string): string;
183
190
 
184
- export { BOARD_PATHS, type SuggestionPathInput, type SuggestionPathOptions, type SuggestionPathScope, blogAuthorPath, blogPostPath, blogTagPath, boardUrl, companyMarketPath, companyPath, companySalaryPath, encodePathSegment, goAlertsConfirmPath, goAlertsManagePath, goJobPath, jobDetailPath, jobsCategoryPath, jobsLocationCategoryPath, jobsLocationPath, jobsLocationSkillPath, jobsSkillPath, salaryLocationPath, salarySkillPath, salaryTitlePath, suggestionPath };
191
+ export { BOARD_PATHS, type SuggestionPathInput, type SuggestionPathOptions, type SuggestionPathScope, blogAuthorPath, blogPostPath, blogTagPath, boardUrl, companyMarketPath, companyPath, companySalaryPath, encodePathSegment, goAlertsConfirmPath, goAlertsManagePath, goJobPath, jobDetailPath, jobsCategoryPath, jobsLocationCategoryPath, jobsLocationPath, jobsLocationSkillPath, jobsSkillPath, salaryLocationPath, salarySkillPath, salaryTitlePath, suggestionPath, talentProfilePath };
package/dist/paths.d.ts CHANGED
@@ -127,6 +127,13 @@ declare function blogPostPath(postSlug: string): string;
127
127
  declare function blogTagPath(tagSlug: string): string;
128
128
  /** Blog author archive. */
129
129
  declare function blogAuthorPath(authorSlug: string): string;
130
+ /**
131
+ * Candidate public profile (`/p/<handle>`). Always the default shape: a board
132
+ * that serves profiles elsewhere (e.g. `/@<handle>`, declared through the
133
+ * `talentProfile` route role) builds its links with its own helper, not this.
134
+ * Only the handle is encoded.
135
+ */
136
+ declare function talentProfilePath(handle: string): string;
130
137
  /**
131
138
  * Static top-level board paths (indexed marketing + index surfaces). Kept
132
139
  * here so the sitemap and consumers share one definition of the chrome
@@ -181,4 +188,4 @@ declare function goAlertsConfirmPath(): string;
181
188
  */
182
189
  declare function boardUrl(origin: string, path: string): string;
183
190
 
184
- export { BOARD_PATHS, type SuggestionPathInput, type SuggestionPathOptions, type SuggestionPathScope, blogAuthorPath, blogPostPath, blogTagPath, boardUrl, companyMarketPath, companyPath, companySalaryPath, encodePathSegment, goAlertsConfirmPath, goAlertsManagePath, goJobPath, jobDetailPath, jobsCategoryPath, jobsLocationCategoryPath, jobsLocationPath, jobsLocationSkillPath, jobsSkillPath, salaryLocationPath, salarySkillPath, salaryTitlePath, suggestionPath };
191
+ export { BOARD_PATHS, type SuggestionPathInput, type SuggestionPathOptions, type SuggestionPathScope, blogAuthorPath, blogPostPath, blogTagPath, boardUrl, companyMarketPath, companyPath, companySalaryPath, encodePathSegment, goAlertsConfirmPath, goAlertsManagePath, goJobPath, jobDetailPath, jobsCategoryPath, jobsLocationCategoryPath, jobsLocationPath, jobsLocationSkillPath, jobsSkillPath, salaryLocationPath, salarySkillPath, salaryTitlePath, suggestionPath, talentProfilePath };
package/dist/paths.js CHANGED
@@ -41,7 +41,8 @@ __export(paths_exports, {
41
41
  salaryLocationPath: () => salaryLocationPath,
42
42
  salarySkillPath: () => salarySkillPath,
43
43
  salaryTitlePath: () => salaryTitlePath,
44
- suggestionPath: () => suggestionPath
44
+ suggestionPath: () => suggestionPath,
45
+ talentProfilePath: () => talentProfilePath
45
46
  });
46
47
  module.exports = __toCommonJS(paths_exports);
47
48
  function encodePathSegment(segment) {
@@ -127,6 +128,9 @@ function blogTagPath(tagSlug) {
127
128
  function blogAuthorPath(authorSlug) {
128
129
  return `/blog/author/${encodePathSegment(authorSlug)}`;
129
130
  }
131
+ function talentProfilePath(handle) {
132
+ return `/p/${encodePathSegment(handle)}`;
133
+ }
130
134
  var BOARD_PATHS = {
131
135
  home: "/",
132
136
  jobs: "/jobs",
package/dist/paths.mjs CHANGED
@@ -20,8 +20,9 @@ import {
20
20
  salaryLocationPath,
21
21
  salarySkillPath,
22
22
  salaryTitlePath,
23
- suggestionPath
24
- } from "./chunk-BGKNXG4H.mjs";
23
+ suggestionPath,
24
+ talentProfilePath
25
+ } from "./chunk-XXQCESMU.mjs";
25
26
  export {
26
27
  BOARD_PATHS,
27
28
  blogAuthorPath,
@@ -44,5 +45,6 @@ export {
44
45
  salaryLocationPath,
45
46
  salarySkillPath,
46
47
  salaryTitlePath,
47
- suggestionPath
48
+ suggestionPath,
49
+ talentProfilePath
48
50
  };
@@ -61,7 +61,9 @@ type ValidateManifestResult = {
61
61
  */
62
62
 
63
63
  /** Every role the compiler can assign. */
64
- type RouteRole = 'jobDetail' | 'jobsCategory' | 'jobsSkill' | 'jobsLocation' | 'company' | 'companyMarket' | 'companySalary' | 'salaryTitle' | 'salarySkill' | 'salaryLocation' | 'blogPost' | 'blogTag' | 'blogAuthor' | 'home' | 'jobs' | 'companies' | 'salaries' | 'salaryCompanies' | 'salaryTitles' | 'salarySkills' | 'salaryLocations' | 'blog' | 'about' | 'privacyPolicy' | 'termsOfService' | 'cookiePolicy' | 'impressum' | 'talent' | 'employers' | 'alertsManage' | 'alertsConfirm';
64
+ type RouteRole = 'jobDetail' | 'jobsCategory' | 'jobsSkill' | 'jobsLocation' | 'company' | 'companyMarket' | 'companySalary' | 'salaryTitle' | 'salarySkill' | 'salaryLocation' | 'blogPost' | 'blogTag' | 'blogAuthor'
65
+ /** One candidate's public profile; optional, never required. */
66
+ | 'talentProfile' | 'home' | 'jobs' | 'companies' | 'salaries' | 'salaryCompanies' | 'salaryTitles' | 'salarySkills' | 'salaryLocations' | 'blog' | 'about' | 'privacyPolicy' | 'termsOfService' | 'cookiePolicy' | 'impressum' | 'talent' | 'employers' | 'alertsManage' | 'alertsConfirm';
65
67
  /**
66
68
  * Exact param-name set per role, derived from each helper's signature.
67
69
  * Empty arrays = static / zero-param roles (never inferred by signature).
@@ -61,7 +61,9 @@ type ValidateManifestResult = {
61
61
  */
62
62
 
63
63
  /** Every role the compiler can assign. */
64
- type RouteRole = 'jobDetail' | 'jobsCategory' | 'jobsSkill' | 'jobsLocation' | 'company' | 'companyMarket' | 'companySalary' | 'salaryTitle' | 'salarySkill' | 'salaryLocation' | 'blogPost' | 'blogTag' | 'blogAuthor' | 'home' | 'jobs' | 'companies' | 'salaries' | 'salaryCompanies' | 'salaryTitles' | 'salarySkills' | 'salaryLocations' | 'blog' | 'about' | 'privacyPolicy' | 'termsOfService' | 'cookiePolicy' | 'impressum' | 'talent' | 'employers' | 'alertsManage' | 'alertsConfirm';
64
+ type RouteRole = 'jobDetail' | 'jobsCategory' | 'jobsSkill' | 'jobsLocation' | 'company' | 'companyMarket' | 'companySalary' | 'salaryTitle' | 'salarySkill' | 'salaryLocation' | 'blogPost' | 'blogTag' | 'blogAuthor'
65
+ /** One candidate's public profile; optional, never required. */
66
+ | 'talentProfile' | 'home' | 'jobs' | 'companies' | 'salaries' | 'salaryCompanies' | 'salaryTitles' | 'salarySkills' | 'salaryLocations' | 'blog' | 'about' | 'privacyPolicy' | 'termsOfService' | 'cookiePolicy' | 'impressum' | 'talent' | 'employers' | 'alertsManage' | 'alertsConfirm';
65
67
  /**
66
68
  * Exact param-name set per role, derived from each helper's signature.
67
69
  * Empty arrays = static / zero-param roles (never inferred by signature).