@cavuno/board 4.34.0 → 4.36.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.
Files changed (41) hide show
  1. package/CHANGELOG.md +47 -0
  2. package/dist/{_spec-Cz-yijWv.d.mts → _spec-C4T68Nnr.d.mts} +56 -8
  3. package/dist/{_spec-Cz-yijWv.d.ts → _spec-C4T68Nnr.d.ts} +56 -8
  4. package/dist/bin.mjs +32 -22
  5. package/dist/{blog-BtZXryRt.d.ts → blog-_LtV-JaY.d.ts} +1 -1
  6. package/dist/{blog-CA6EEkdC.d.mts → blog-bQmqKnw2.d.mts} +1 -1
  7. package/dist/{board-BKUGfCIT.d.mts → board-2UfZ7fZk.d.ts} +11 -3
  8. package/dist/{board-Dlv-nGl3.d.ts → board-CRgQjnrn.d.mts} +11 -3
  9. package/dist/{breadcrumbs-D9p_vb0h.d.ts → breadcrumbs-C_jNh4xd.d.ts} +2 -2
  10. package/dist/{breadcrumbs-w0szfoX0.d.mts → breadcrumbs-f7KFSWnx.d.mts} +2 -2
  11. package/dist/browser/cavuno-board.global.min.js +1 -1
  12. package/dist/doctor.d.mts +41 -1
  13. package/dist/doctor.d.ts +41 -1
  14. package/dist/doctor.js +59 -22
  15. package/dist/doctor.mjs +58 -22
  16. package/dist/filters.d.mts +2 -2
  17. package/dist/filters.d.ts +2 -2
  18. package/dist/format.d.mts +4 -4
  19. package/dist/format.d.ts +4 -4
  20. package/dist/index.d.mts +56 -12
  21. package/dist/index.d.ts +56 -12
  22. package/dist/index.js +4 -2
  23. package/dist/index.mjs +4 -2
  24. package/dist/{jobs-D0OqM6IS.d.ts → jobs-3Md7CCMl.d.ts} +13 -2
  25. package/dist/{jobs-DCeOWaPk.d.mts → jobs-Cg2d2oI4.d.mts} +13 -2
  26. package/dist/{search-pH_zLJ23.d.ts → search-15gcqPyt.d.ts} +1 -1
  27. package/dist/{search-DCRz5E-6.d.mts → search-CyDzceiR.d.mts} +1 -1
  28. package/dist/{seo-CO1235tn.d.ts → seo-CON8CLIF.d.ts} +1 -1
  29. package/dist/{seo-CRJDxQMf.d.mts → seo-DuWLAh1M.d.mts} +1 -1
  30. package/dist/seo-files.d.mts +2 -2
  31. package/dist/seo-files.d.ts +2 -2
  32. package/dist/seo.d.mts +6 -6
  33. package/dist/seo.d.ts +6 -6
  34. package/dist/server.d.mts +6 -6
  35. package/dist/server.d.ts +6 -6
  36. package/dist/sitemap.d.mts +6 -6
  37. package/dist/sitemap.d.ts +6 -6
  38. package/dist/suggest.d.mts +2 -2
  39. package/dist/suggest.d.ts +2 -2
  40. package/package.json +1 -1
  41. package/skills/manifest.json +1 -1
package/dist/doctor.mjs CHANGED
@@ -321,9 +321,16 @@ function truncate(line, max = 120) {
321
321
  const t = line.trim();
322
322
  return t.length > max ? `${t.slice(0, max)}\u2026` : t;
323
323
  }
324
- function checkCookieCodecConformance(projectRoot) {
325
- const srcDir = join2(projectRoot, "src");
326
- if (!existsSync2(srcDir)) {
324
+ function isAppSourcePath(path) {
325
+ if (!path.startsWith("src/")) return false;
326
+ const parts = path.split("/");
327
+ const name = parts.at(-1);
328
+ return parts.slice(1, -1).every(
329
+ (part) => !part.startsWith(".") && part !== "node_modules" && !GENERATED_DIRS.has(part)
330
+ ) && !name.startsWith(".") && SOURCE_EXT2.test(name) && !GENERATED_FILE.test(name);
331
+ }
332
+ function checkCookieSourceText(files, hasSource, unreadable) {
333
+ if (!hasSource) {
327
334
  return [
328
335
  COOKIE(
329
336
  "skip",
@@ -331,33 +338,61 @@ function checkCookieCodecConformance(projectRoot) {
331
338
  )
332
339
  ];
333
340
  }
334
- const files = [];
335
- walkSourceFiles(srcDir, files);
336
341
  const findings = [];
337
- for (const file of files) {
338
- const rel = relative2(projectRoot, file).split("\\").join("/");
339
- let text;
340
- try {
341
- text = readFileSync3(file, "utf8");
342
- } catch {
343
- continue;
344
- }
342
+ for (const { path, text } of files) {
345
343
  if (hasGeneratedBanner(text)) continue;
346
344
  const lines = text.split(/\r?\n/);
347
345
  for (let i = 0; i < lines.length; i += 1) {
348
346
  if (!isOffendingSink(lines, i)) continue;
349
- findings.push(`${rel}:${i + 1} \u2014 ${truncate(lines[i])}`);
347
+ findings.push(`${path}:${i + 1} \u2014 ${truncate(lines[i])}`);
350
348
  }
351
349
  }
352
- if (findings.length === 0) {
353
- return [
354
- COOKIE(
355
- "pass",
356
- "no domain-scoped Set-Cookie or document.cookie writes in app-authored src/ (generated output skipped)"
357
- )
358
- ];
350
+ if (findings.length > 0) {
351
+ return [COOKIE("fail", `${findings.join("; ")}; ${REMEDIATION}`)];
352
+ }
353
+ if (unreadable) {
354
+ return [COOKIE("skip", "one or more source files could not be read")];
355
+ }
356
+ return [
357
+ COOKIE(
358
+ "pass",
359
+ "no domain-scoped Set-Cookie or document.cookie writes in app-authored src/ (generated output skipped)"
360
+ )
361
+ ];
362
+ }
363
+ function checkCookieCodecConformanceFiles(files) {
364
+ const hasSource = files.some((file) => file.path.startsWith("src/"));
365
+ const textFiles = [];
366
+ let unreadable = false;
367
+ for (const file of files) {
368
+ if (!isAppSourcePath(file.path)) continue;
369
+ try {
370
+ textFiles.push({
371
+ path: file.path,
372
+ text: typeof file.contents === "string" ? file.contents : new TextDecoder("utf-8", { fatal: true }).decode(file.contents)
373
+ });
374
+ } catch {
375
+ unreadable = true;
376
+ }
377
+ }
378
+ return checkCookieSourceText(textFiles, hasSource, unreadable);
379
+ }
380
+ function checkCookieCodecConformance(projectRoot) {
381
+ const srcDir = join2(projectRoot, "src");
382
+ if (!existsSync2(srcDir)) return checkCookieSourceText([], false, false);
383
+ const files = [];
384
+ walkSourceFiles(srcDir, files);
385
+ const textFiles = [];
386
+ let unreadable = false;
387
+ for (const file of files) {
388
+ const rel = relative2(projectRoot, file).split("\\").join("/");
389
+ try {
390
+ textFiles.push({ path: rel, text: readFileSync3(file, "utf8") });
391
+ } catch {
392
+ unreadable = true;
393
+ }
359
394
  }
360
- return [COOKIE("fail", `${findings.join("; ")}; ${REMEDIATION}`)];
395
+ return checkCookieSourceText(textFiles, true, unreadable);
361
396
  }
362
397
 
363
398
  // src/doctor/probe.ts
@@ -8810,5 +8845,6 @@ async function runDoctor(options) {
8810
8845
  return { results, summary: summarize(results) };
8811
8846
  }
8812
8847
  export {
8848
+ checkCookieCodecConformanceFiles,
8813
8849
  runDoctor
8814
8850
  };
@@ -1,5 +1,5 @@
1
- import { J as JobSort, E as EmploymentType, R as RemoteOption, S as Seniority } from './jobs-DCeOWaPk.mjs';
2
- import './_spec-Cz-yijWv.mjs';
1
+ import { J as JobSort, E as EmploymentType, R as RemoteOption, S as Seniority } from './jobs-Cg2d2oI4.mjs';
2
+ import './_spec-C4T68Nnr.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-D0OqM6IS.js';
2
- import './_spec-Cz-yijWv.js';
1
+ import { J as JobSort, E as EmploymentType, R as RemoteOption, S as Seniority } from './jobs-3Md7CCMl.js';
2
+ import './_spec-C4T68Nnr.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-w0szfoX0.mjs';
2
- import { C as CustomFieldDefinition } from './board-BKUGfCIT.mjs';
3
- import { C as CustomFieldValues } from './jobs-DCeOWaPk.mjs';
4
- import './_spec-Cz-yijWv.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-f7KFSWnx.mjs';
2
+ import { C as CustomFieldDefinition } from './board-CRgQjnrn.mjs';
3
+ import { C as CustomFieldValues } from './jobs-Cg2d2oI4.mjs';
4
+ import './_spec-C4T68Nnr.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-D9p_vb0h.js';
2
- import { C as CustomFieldDefinition } from './board-Dlv-nGl3.js';
3
- import { C as CustomFieldValues } from './jobs-D0OqM6IS.js';
4
- import './_spec-Cz-yijWv.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-C_jNh4xd.js';
2
+ import { C as CustomFieldDefinition } from './board-2UfZ7fZk.js';
3
+ import { C as CustomFieldValues } from './jobs-3Md7CCMl.js';
4
+ import './_spec-C4T68Nnr.js';
5
5
 
6
6
  /**
7
7
  * Date display helpers in the board language (required leading parameter,
package/dist/index.d.mts CHANGED
@@ -1,13 +1,13 @@
1
- import { S as Schemas, c as components } from './_spec-Cz-yijWv.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-DCRz5E-6.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-DCRz5E-6.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-BKUGfCIT.mjs';
5
- export { B as BoardFormBuiltinField, j as BoardFormField, k as BoardFormLayout, l as BoardFormLockReason, m as BoardJobFormField, n as BoardProfileFormField, o as BoardRoleSignIn, p as BoardSignInSsoConnection, a as CompanyCategorySalary, q as CompanyMarket, r as CompanyMarketRef, b as CompanySalary, s as CompanySalarySummary, C as CustomFieldDefinition, t as CustomFieldOption, u as CustomFieldType, L as LocationSalaryDetail, v as LocationSkillsIndex, w as LocationTitlesIndex, P as PublicBoard, x as PublicBoardAds, y as PublicBoardAnalytics, z as PublicBoardFeatures, A as PublicBoardJobForm, D as PublicBoardSignIn, E as PublicCompany, F as PublicCompanyDetail, G as PublicCompanyMembership, H as SalaryCompany, I as SalaryLocation, J as SalarySkill, K as SalaryTitle, M as SkillLocationSalary, N as SkillLocationsIndex, S as SkillSalaryDetail, O as TitleLocationSalary, Q as TitleLocationsIndex, T as TitleSalaryDetail } from './board-BKUGfCIT.mjs';
6
- export { B as BoardSeo } from './seo-CRJDxQMf.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-DCeOWaPk.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-DCeOWaPk.mjs';
9
- import { a as BlogPostsListQuery, b as BlogSimilarQuery, c as BlogSearchBody } from './blog-CA6EEkdC.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-CA6EEkdC.mjs';
1
+ import { S as Schemas, c as components } from './_spec-C4T68Nnr.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-CyDzceiR.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-CyDzceiR.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-CRgQjnrn.mjs';
5
+ export { B as BoardCustomEmploymentType, j as BoardFormBuiltinField, k as BoardFormField, l as BoardFormLayout, m as BoardFormLockReason, n as BoardJobFormField, o as BoardProfileFormField, p as BoardRoleSignIn, q as BoardSignInSsoConnection, a as CompanyCategorySalary, r as CompanyMarket, s as CompanyMarketRef, b as CompanySalary, t as CompanySalarySummary, C as CustomFieldDefinition, u as CustomFieldOption, v as CustomFieldType, L as LocationSalaryDetail, w as LocationSkillsIndex, x as LocationTitlesIndex, P as PublicBoard, y as PublicBoardAds, z as PublicBoardAnalytics, A as PublicBoardFeatures, D as PublicBoardJobForm, E as PublicBoardSignIn, F as PublicCompany, G as PublicCompanyDetail, H as PublicCompanyMembership, I as SalaryCompany, J as SalaryLocation, K as SalarySkill, M as SalaryTitle, N as SkillLocationSalary, O as SkillLocationsIndex, S as SkillSalaryDetail, Q as TitleLocationSalary, R as TitleLocationsIndex, T as TitleSalaryDetail } from './board-CRgQjnrn.mjs';
6
+ export { B as BoardSeo } from './seo-DuWLAh1M.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-Cg2d2oI4.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, p as JobCustomEmploymentType, J as JobSort, q as OfficeLocation, r as OffsetPagination, P as PublicJob, s as PublicJobCard, t as RelatedSearch, u as RemotePermit, v as RemoteTimezone, w as ResolvedJobCollectionField, x as StorefrontPagination } from './jobs-Cg2d2oI4.mjs';
9
+ import { a as BlogPostsListQuery, b as BlogSimilarQuery, c as BlogSearchBody } from './blog-bQmqKnw2.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-bQmqKnw2.mjs';
11
11
 
12
12
  /**
13
13
  * Well-known `<domain>_<snake_reason>` codes the Board API sends, grouped by
@@ -202,7 +202,7 @@ declare function paginate<Q extends Record<string, unknown>, P extends PageShape
202
202
  * constant because the package is platform-neutral and cannot read
203
203
  * package.json at runtime.
204
204
  */
205
- declare const SDK_VERSION = "4.34.0";
205
+ declare const SDK_VERSION = "4.36.0";
206
206
 
207
207
  type SavedJob = Schemas['SavedJob'];
208
208
  type SavedJobsListQuery = {
@@ -850,7 +850,10 @@ type EmbedJobsQuery = {
850
850
  /** Repeated param (up to 10) — OR-matched. Repeat `companyId` per value. */
851
851
  companyId?: string[];
852
852
  remoteOption?: RemoteOption[];
853
+ /** Built-in types; each matches jobs of that type with no custom type. */
853
854
  employmentType?: EmploymentType[];
855
+ /** Custom employment type keys, ORed with `employmentType`. Up to 10. */
856
+ customEmploymentType?: string[];
854
857
  seniority?: Seniority[];
855
858
  /** Place slug for a geo radius search; unresolvable slugs are ignored. */
856
859
  location?: string;
@@ -1192,7 +1195,9 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
1192
1195
  client: BoardClient;
1193
1196
  /**
1194
1197
  * Board context — identity, brand (`logoUrl` + favicon `icons`), language,
1195
- * features, analytics, and AdSense (`ads.enabled`, `ads.clientId`, and `ads.defaultSlotId`).
1198
+ * features, analytics, and AdSense (`ads.enabled`, `ads.clientId`, `ads.defaultSlotId`, and
1199
+ * `ads.googleConsentMessage`, which says whether EEA/UK/CH visitors get Google's consent
1200
+ * message instead of the board's cookie banner).
1196
1201
  * Per-placement slot ids are not on this resource.
1197
1202
  *
1198
1203
  * @example
@@ -1256,6 +1261,7 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
1256
1261
  enabled: boolean;
1257
1262
  clientId: string | null;
1258
1263
  defaultSlotId: string | null;
1264
+ googleConsentMessage: boolean;
1259
1265
  };
1260
1266
  customFields: {
1261
1267
  job: components["schemas"]["CustomFieldDefinition"][];
@@ -1286,6 +1292,8 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
1286
1292
  };
1287
1293
  employmentType: {
1288
1294
  allowedOptions: string[];
1295
+ customTypes: components["schemas"]["BoardCustomEmploymentType"][];
1296
+ order: string[];
1289
1297
  };
1290
1298
  };
1291
1299
  forms: components["schemas"]["BoardForms"];
@@ -1336,6 +1344,10 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
1336
1344
  status: "draft" | "published" | "expired" | "archived" | "pending_approval";
1337
1345
  companyId: string | null;
1338
1346
  employmentType: "full_time" | "part_time" | "contract" | "internship" | "temporary" | "volunteer" | "other" | null;
1347
+ customEmploymentType: {
1348
+ key: string;
1349
+ label: string;
1350
+ } | null;
1339
1351
  remoteOption: "on_site" | "hybrid" | "remote" | null;
1340
1352
  seniority: "entry_level" | "associate" | "mid_level" | "senior" | "lead" | "principal" | "director" | "executive" | null;
1341
1353
  salaryMin: number | null;
@@ -1398,6 +1410,10 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
1398
1410
  title: string;
1399
1411
  publishedAt: string | null;
1400
1412
  employmentType: "full_time" | "part_time" | "contract" | "internship" | "temporary" | "volunteer" | "other" | null;
1413
+ customEmploymentType: {
1414
+ key: string;
1415
+ label: string;
1416
+ } | null;
1401
1417
  remoteOption: "on_site" | "hybrid" | "remote" | null;
1402
1418
  remoteLocationLabel: string | null;
1403
1419
  remoteWorldwide: boolean | null;
@@ -1520,6 +1536,10 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
1520
1536
  title: string;
1521
1537
  publishedAt: string | null;
1522
1538
  employmentType: "full_time" | "part_time" | "contract" | "internship" | "temporary" | "volunteer" | "other" | null;
1539
+ customEmploymentType: {
1540
+ key: string;
1541
+ label: string;
1542
+ } | null;
1523
1543
  remoteOption: "on_site" | "hybrid" | "remote" | null;
1524
1544
  remoteLocationLabel: string | null;
1525
1545
  remoteWorldwide: boolean | null;
@@ -2417,6 +2437,10 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
2417
2437
  status: "draft" | "published" | "expired" | "archived" | "pending_approval";
2418
2438
  companyId: string | null;
2419
2439
  employmentType: "full_time" | "part_time" | "contract" | "internship" | "temporary" | "volunteer" | "other" | null;
2440
+ customEmploymentType: {
2441
+ key: string;
2442
+ label: string;
2443
+ } | null;
2420
2444
  remoteOption: "on_site" | "hybrid" | "remote" | null;
2421
2445
  seniority: "entry_level" | "associate" | "mid_level" | "senior" | "lead" | "principal" | "director" | "executive" | null;
2422
2446
  salaryMin: number | null;
@@ -2444,6 +2468,10 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
2444
2468
  status: "draft" | "published" | "expired" | "archived" | "pending_approval";
2445
2469
  companyId: string | null;
2446
2470
  employmentType: "full_time" | "part_time" | "contract" | "internship" | "temporary" | "volunteer" | "other" | null;
2471
+ customEmploymentType: {
2472
+ key: string;
2473
+ label: string;
2474
+ } | null;
2447
2475
  remoteOption: "on_site" | "hybrid" | "remote" | null;
2448
2476
  seniority: "entry_level" | "associate" | "mid_level" | "senior" | "lead" | "principal" | "director" | "executive" | null;
2449
2477
  salaryMin: number | null;
@@ -2496,6 +2524,10 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
2496
2524
  status: "draft" | "published" | "expired" | "archived" | "pending_approval";
2497
2525
  companyId: string | null;
2498
2526
  employmentType: "full_time" | "part_time" | "contract" | "internship" | "temporary" | "volunteer" | "other" | null;
2527
+ customEmploymentType: {
2528
+ key: string;
2529
+ label: string;
2530
+ } | null;
2499
2531
  remoteOption: "on_site" | "hybrid" | "remote" | null;
2500
2532
  seniority: "entry_level" | "associate" | "mid_level" | "senior" | "lead" | "principal" | "director" | "executive" | null;
2501
2533
  salaryMin: number | null;
@@ -2548,6 +2580,10 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
2548
2580
  status: "draft" | "published" | "expired" | "archived" | "pending_approval";
2549
2581
  companyId: string | null;
2550
2582
  employmentType: "full_time" | "part_time" | "contract" | "internship" | "temporary" | "volunteer" | "other" | null;
2583
+ customEmploymentType: {
2584
+ key: string;
2585
+ label: string;
2586
+ } | null;
2551
2587
  remoteOption: "on_site" | "hybrid" | "remote" | null;
2552
2588
  seniority: "entry_level" | "associate" | "mid_level" | "senior" | "lead" | "principal" | "director" | "executive" | null;
2553
2589
  salaryMin: number | null;
@@ -2601,6 +2637,10 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
2601
2637
  status: "draft" | "published" | "expired" | "archived" | "pending_approval";
2602
2638
  companyId: string | null;
2603
2639
  employmentType: "full_time" | "part_time" | "contract" | "internship" | "temporary" | "volunteer" | "other" | null;
2640
+ customEmploymentType: {
2641
+ key: string;
2642
+ label: string;
2643
+ } | null;
2604
2644
  remoteOption: "on_site" | "hybrid" | "remote" | null;
2605
2645
  seniority: "entry_level" | "associate" | "mid_level" | "senior" | "lead" | "principal" | "director" | "executive" | null;
2606
2646
  salaryMin: number | null;
@@ -2653,6 +2693,10 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
2653
2693
  status: "draft" | "published" | "expired" | "archived" | "pending_approval";
2654
2694
  companyId: string | null;
2655
2695
  employmentType: "full_time" | "part_time" | "contract" | "internship" | "temporary" | "volunteer" | "other" | null;
2696
+ customEmploymentType: {
2697
+ key: string;
2698
+ label: string;
2699
+ } | null;
2656
2700
  remoteOption: "on_site" | "hybrid" | "remote" | null;
2657
2701
  seniority: "entry_level" | "associate" | "mid_level" | "senior" | "lead" | "principal" | "director" | "executive" | null;
2658
2702
  salaryMin: number | null;
package/dist/index.d.ts CHANGED
@@ -1,13 +1,13 @@
1
- import { S as Schemas, c as components } from './_spec-Cz-yijWv.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-pH_zLJ23.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-pH_zLJ23.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-Dlv-nGl3.js';
5
- export { B as BoardFormBuiltinField, j as BoardFormField, k as BoardFormLayout, l as BoardFormLockReason, m as BoardJobFormField, n as BoardProfileFormField, o as BoardRoleSignIn, p as BoardSignInSsoConnection, a as CompanyCategorySalary, q as CompanyMarket, r as CompanyMarketRef, b as CompanySalary, s as CompanySalarySummary, C as CustomFieldDefinition, t as CustomFieldOption, u as CustomFieldType, L as LocationSalaryDetail, v as LocationSkillsIndex, w as LocationTitlesIndex, P as PublicBoard, x as PublicBoardAds, y as PublicBoardAnalytics, z as PublicBoardFeatures, A as PublicBoardJobForm, D as PublicBoardSignIn, E as PublicCompany, F as PublicCompanyDetail, G as PublicCompanyMembership, H as SalaryCompany, I as SalaryLocation, J as SalarySkill, K as SalaryTitle, M as SkillLocationSalary, N as SkillLocationsIndex, S as SkillSalaryDetail, O as TitleLocationSalary, Q as TitleLocationsIndex, T as TitleSalaryDetail } from './board-Dlv-nGl3.js';
6
- export { B as BoardSeo } from './seo-CO1235tn.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-D0OqM6IS.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-D0OqM6IS.js';
9
- import { a as BlogPostsListQuery, b as BlogSimilarQuery, c as BlogSearchBody } from './blog-BtZXryRt.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-BtZXryRt.js';
1
+ import { S as Schemas, c as components } from './_spec-C4T68Nnr.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-15gcqPyt.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-15gcqPyt.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-2UfZ7fZk.js';
5
+ export { B as BoardCustomEmploymentType, j as BoardFormBuiltinField, k as BoardFormField, l as BoardFormLayout, m as BoardFormLockReason, n as BoardJobFormField, o as BoardProfileFormField, p as BoardRoleSignIn, q as BoardSignInSsoConnection, a as CompanyCategorySalary, r as CompanyMarket, s as CompanyMarketRef, b as CompanySalary, t as CompanySalarySummary, C as CustomFieldDefinition, u as CustomFieldOption, v as CustomFieldType, L as LocationSalaryDetail, w as LocationSkillsIndex, x as LocationTitlesIndex, P as PublicBoard, y as PublicBoardAds, z as PublicBoardAnalytics, A as PublicBoardFeatures, D as PublicBoardJobForm, E as PublicBoardSignIn, F as PublicCompany, G as PublicCompanyDetail, H as PublicCompanyMembership, I as SalaryCompany, J as SalaryLocation, K as SalarySkill, M as SalaryTitle, N as SkillLocationSalary, O as SkillLocationsIndex, S as SkillSalaryDetail, Q as TitleLocationSalary, R as TitleLocationsIndex, T as TitleSalaryDetail } from './board-2UfZ7fZk.js';
6
+ export { B as BoardSeo } from './seo-CON8CLIF.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-3Md7CCMl.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, p as JobCustomEmploymentType, J as JobSort, q as OfficeLocation, r as OffsetPagination, P as PublicJob, s as PublicJobCard, t as RelatedSearch, u as RemotePermit, v as RemoteTimezone, w as ResolvedJobCollectionField, x as StorefrontPagination } from './jobs-3Md7CCMl.js';
9
+ import { a as BlogPostsListQuery, b as BlogSimilarQuery, c as BlogSearchBody } from './blog-_LtV-JaY.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-_LtV-JaY.js';
11
11
 
12
12
  /**
13
13
  * Well-known `<domain>_<snake_reason>` codes the Board API sends, grouped by
@@ -202,7 +202,7 @@ declare function paginate<Q extends Record<string, unknown>, P extends PageShape
202
202
  * constant because the package is platform-neutral and cannot read
203
203
  * package.json at runtime.
204
204
  */
205
- declare const SDK_VERSION = "4.34.0";
205
+ declare const SDK_VERSION = "4.36.0";
206
206
 
207
207
  type SavedJob = Schemas['SavedJob'];
208
208
  type SavedJobsListQuery = {
@@ -850,7 +850,10 @@ type EmbedJobsQuery = {
850
850
  /** Repeated param (up to 10) — OR-matched. Repeat `companyId` per value. */
851
851
  companyId?: string[];
852
852
  remoteOption?: RemoteOption[];
853
+ /** Built-in types; each matches jobs of that type with no custom type. */
853
854
  employmentType?: EmploymentType[];
855
+ /** Custom employment type keys, ORed with `employmentType`. Up to 10. */
856
+ customEmploymentType?: string[];
854
857
  seniority?: Seniority[];
855
858
  /** Place slug for a geo radius search; unresolvable slugs are ignored. */
856
859
  location?: string;
@@ -1192,7 +1195,9 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
1192
1195
  client: BoardClient;
1193
1196
  /**
1194
1197
  * Board context — identity, brand (`logoUrl` + favicon `icons`), language,
1195
- * features, analytics, and AdSense (`ads.enabled`, `ads.clientId`, and `ads.defaultSlotId`).
1198
+ * features, analytics, and AdSense (`ads.enabled`, `ads.clientId`, `ads.defaultSlotId`, and
1199
+ * `ads.googleConsentMessage`, which says whether EEA/UK/CH visitors get Google's consent
1200
+ * message instead of the board's cookie banner).
1196
1201
  * Per-placement slot ids are not on this resource.
1197
1202
  *
1198
1203
  * @example
@@ -1256,6 +1261,7 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
1256
1261
  enabled: boolean;
1257
1262
  clientId: string | null;
1258
1263
  defaultSlotId: string | null;
1264
+ googleConsentMessage: boolean;
1259
1265
  };
1260
1266
  customFields: {
1261
1267
  job: components["schemas"]["CustomFieldDefinition"][];
@@ -1286,6 +1292,8 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
1286
1292
  };
1287
1293
  employmentType: {
1288
1294
  allowedOptions: string[];
1295
+ customTypes: components["schemas"]["BoardCustomEmploymentType"][];
1296
+ order: string[];
1289
1297
  };
1290
1298
  };
1291
1299
  forms: components["schemas"]["BoardForms"];
@@ -1336,6 +1344,10 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
1336
1344
  status: "draft" | "published" | "expired" | "archived" | "pending_approval";
1337
1345
  companyId: string | null;
1338
1346
  employmentType: "full_time" | "part_time" | "contract" | "internship" | "temporary" | "volunteer" | "other" | null;
1347
+ customEmploymentType: {
1348
+ key: string;
1349
+ label: string;
1350
+ } | null;
1339
1351
  remoteOption: "on_site" | "hybrid" | "remote" | null;
1340
1352
  seniority: "entry_level" | "associate" | "mid_level" | "senior" | "lead" | "principal" | "director" | "executive" | null;
1341
1353
  salaryMin: number | null;
@@ -1398,6 +1410,10 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
1398
1410
  title: string;
1399
1411
  publishedAt: string | null;
1400
1412
  employmentType: "full_time" | "part_time" | "contract" | "internship" | "temporary" | "volunteer" | "other" | null;
1413
+ customEmploymentType: {
1414
+ key: string;
1415
+ label: string;
1416
+ } | null;
1401
1417
  remoteOption: "on_site" | "hybrid" | "remote" | null;
1402
1418
  remoteLocationLabel: string | null;
1403
1419
  remoteWorldwide: boolean | null;
@@ -1520,6 +1536,10 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
1520
1536
  title: string;
1521
1537
  publishedAt: string | null;
1522
1538
  employmentType: "full_time" | "part_time" | "contract" | "internship" | "temporary" | "volunteer" | "other" | null;
1539
+ customEmploymentType: {
1540
+ key: string;
1541
+ label: string;
1542
+ } | null;
1523
1543
  remoteOption: "on_site" | "hybrid" | "remote" | null;
1524
1544
  remoteLocationLabel: string | null;
1525
1545
  remoteWorldwide: boolean | null;
@@ -2417,6 +2437,10 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
2417
2437
  status: "draft" | "published" | "expired" | "archived" | "pending_approval";
2418
2438
  companyId: string | null;
2419
2439
  employmentType: "full_time" | "part_time" | "contract" | "internship" | "temporary" | "volunteer" | "other" | null;
2440
+ customEmploymentType: {
2441
+ key: string;
2442
+ label: string;
2443
+ } | null;
2420
2444
  remoteOption: "on_site" | "hybrid" | "remote" | null;
2421
2445
  seniority: "entry_level" | "associate" | "mid_level" | "senior" | "lead" | "principal" | "director" | "executive" | null;
2422
2446
  salaryMin: number | null;
@@ -2444,6 +2468,10 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
2444
2468
  status: "draft" | "published" | "expired" | "archived" | "pending_approval";
2445
2469
  companyId: string | null;
2446
2470
  employmentType: "full_time" | "part_time" | "contract" | "internship" | "temporary" | "volunteer" | "other" | null;
2471
+ customEmploymentType: {
2472
+ key: string;
2473
+ label: string;
2474
+ } | null;
2447
2475
  remoteOption: "on_site" | "hybrid" | "remote" | null;
2448
2476
  seniority: "entry_level" | "associate" | "mid_level" | "senior" | "lead" | "principal" | "director" | "executive" | null;
2449
2477
  salaryMin: number | null;
@@ -2496,6 +2524,10 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
2496
2524
  status: "draft" | "published" | "expired" | "archived" | "pending_approval";
2497
2525
  companyId: string | null;
2498
2526
  employmentType: "full_time" | "part_time" | "contract" | "internship" | "temporary" | "volunteer" | "other" | null;
2527
+ customEmploymentType: {
2528
+ key: string;
2529
+ label: string;
2530
+ } | null;
2499
2531
  remoteOption: "on_site" | "hybrid" | "remote" | null;
2500
2532
  seniority: "entry_level" | "associate" | "mid_level" | "senior" | "lead" | "principal" | "director" | "executive" | null;
2501
2533
  salaryMin: number | null;
@@ -2548,6 +2580,10 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
2548
2580
  status: "draft" | "published" | "expired" | "archived" | "pending_approval";
2549
2581
  companyId: string | null;
2550
2582
  employmentType: "full_time" | "part_time" | "contract" | "internship" | "temporary" | "volunteer" | "other" | null;
2583
+ customEmploymentType: {
2584
+ key: string;
2585
+ label: string;
2586
+ } | null;
2551
2587
  remoteOption: "on_site" | "hybrid" | "remote" | null;
2552
2588
  seniority: "entry_level" | "associate" | "mid_level" | "senior" | "lead" | "principal" | "director" | "executive" | null;
2553
2589
  salaryMin: number | null;
@@ -2601,6 +2637,10 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
2601
2637
  status: "draft" | "published" | "expired" | "archived" | "pending_approval";
2602
2638
  companyId: string | null;
2603
2639
  employmentType: "full_time" | "part_time" | "contract" | "internship" | "temporary" | "volunteer" | "other" | null;
2640
+ customEmploymentType: {
2641
+ key: string;
2642
+ label: string;
2643
+ } | null;
2604
2644
  remoteOption: "on_site" | "hybrid" | "remote" | null;
2605
2645
  seniority: "entry_level" | "associate" | "mid_level" | "senior" | "lead" | "principal" | "director" | "executive" | null;
2606
2646
  salaryMin: number | null;
@@ -2653,6 +2693,10 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
2653
2693
  status: "draft" | "published" | "expired" | "archived" | "pending_approval";
2654
2694
  companyId: string | null;
2655
2695
  employmentType: "full_time" | "part_time" | "contract" | "internship" | "temporary" | "volunteer" | "other" | null;
2696
+ customEmploymentType: {
2697
+ key: string;
2698
+ label: string;
2699
+ } | null;
2656
2700
  remoteOption: "on_site" | "hybrid" | "remote" | null;
2657
2701
  seniority: "entry_level" | "associate" | "mid_level" | "senior" | "lead" | "principal" | "director" | "executive" | null;
2658
2702
  salaryMin: number | null;
package/dist/index.js CHANGED
@@ -403,7 +403,7 @@ async function clearSession(storage) {
403
403
  }
404
404
 
405
405
  // src/version.ts
406
- var SDK_VERSION = "4.34.0";
406
+ var SDK_VERSION = "4.36.0";
407
407
 
408
408
  // src/client.ts
409
409
  function isRawBody(body) {
@@ -3924,7 +3924,9 @@ function createBoardClient(options) {
3924
3924
  client,
3925
3925
  /**
3926
3926
  * Board context — identity, brand (`logoUrl` + favicon `icons`), language,
3927
- * features, analytics, and AdSense (`ads.enabled`, `ads.clientId`, and `ads.defaultSlotId`).
3927
+ * features, analytics, and AdSense (`ads.enabled`, `ads.clientId`, `ads.defaultSlotId`, and
3928
+ * `ads.googleConsentMessage`, which says whether EEA/UK/CH visitors get Google's consent
3929
+ * message instead of the board's cookie banner).
3928
3930
  * Per-placement slot ids are not on this resource.
3929
3931
  *
3930
3932
  * @example
package/dist/index.mjs CHANGED
@@ -46,7 +46,7 @@ function toSearchParams(query) {
46
46
  }
47
47
 
48
48
  // src/version.ts
49
- var SDK_VERSION = "4.34.0";
49
+ var SDK_VERSION = "4.36.0";
50
50
 
51
51
  // src/client.ts
52
52
  function isRawBody(body) {
@@ -3537,7 +3537,9 @@ function createBoardClient(options) {
3537
3537
  client,
3538
3538
  /**
3539
3539
  * Board context — identity, brand (`logoUrl` + favicon `icons`), language,
3540
- * features, analytics, and AdSense (`ads.enabled`, `ads.clientId`, and `ads.defaultSlotId`).
3540
+ * features, analytics, and AdSense (`ads.enabled`, `ads.clientId`, `ads.defaultSlotId`, and
3541
+ * `ads.googleConsentMessage`, which says whether EEA/UK/CH visitors get Google's consent
3542
+ * message instead of the board's cookie banner).
3541
3543
  * Per-placement slot ids are not on this resource.
3542
3544
  *
3543
3545
  * @example
@@ -1,4 +1,4 @@
1
- import { S as Schemas } from './_spec-Cz-yijWv.js';
1
+ import { S as Schemas } from './_spec-C4T68Nnr.js';
2
2
 
3
3
  /**
4
4
  * Optional pagination metadata returned by Board API list operations.
@@ -53,6 +53,11 @@ type JobCompany = Schemas['JobCompany'];
53
53
  type OfficeLocation = Schemas['JobOfficeLocation'];
54
54
  type RemoteOption = NonNullable<PublicJob['remoteOption']>;
55
55
  type EmploymentType = NonNullable<PublicJob['employmentType']>;
56
+ /**
57
+ * A job's custom employment type (e.g. `Casual`): show its `label` in place
58
+ * of the built-in `employmentType`, which is its Google equivalent.
59
+ */
60
+ type JobCustomEmploymentType = NonNullable<PublicJob['customEmploymentType']>;
56
61
  type Seniority = NonNullable<PublicJob['seniority']>;
57
62
  /** Candidate-facing result ordering; `relevance` is the default. */
58
63
  type JobSort = NonNullable<Schemas['PublicSearchJobsBody']['sort']>;
@@ -91,7 +96,13 @@ type JobsListQuery = {
91
96
  */
92
97
  companySlug?: string[];
93
98
  remoteOption?: RemoteOption[];
99
+ /** Built-in types; each matches jobs of that type with no custom type. */
94
100
  employmentType?: EmploymentType[];
101
+ /**
102
+ * Custom employment type keys (`board.context().jobForm.employmentType
103
+ * .customTypes`), ORed with `employmentType`. Up to 10.
104
+ */
105
+ customEmploymentType?: string[];
95
106
  seniority?: Seniority[];
96
107
  /** Result ordering. Absent ⇒ `relevance` (the featured-ranked browse). */
97
108
  sort?: JobSort;
@@ -128,4 +139,4 @@ type ObjectReferenceFilter = {
128
139
  */
129
140
  type JobsSearchBody = Schemas['PublicSearchJobsBody'];
130
141
 
131
- export type { CustomFieldValues as C, EmploymentType as E, JobSort as J, ListEnvelope as L, ObjectReferenceFilter as O, PublicJob as P, RemoteOption as R, Seniority as S, CustomFieldFilter as a, JobCollectionChoiceQuery as b, JobsListQuery as c, JobCardListEnvelope as d, JobsSearchBody as e, JobCardSearchEnvelope as f, JobsSimilarQuery as g, SearchEnvelope as h, CustomFieldValue as i, CustomFilterValue as j, EducationRequirement as k, JobCatalogPagination as l, JobCollectionChoiceList as m, JobCollectionFieldDefinition as n, JobCompany as o, OfficeLocation as p, OffsetPagination as q, PublicJobCard as r, RelatedSearch as s, RemotePermit as t, RemoteTimezone as u, ResolvedJobCollectionField as v, StorefrontPagination as w };
142
+ export type { CustomFieldValues as C, EmploymentType as E, JobSort as J, ListEnvelope as L, ObjectReferenceFilter as O, PublicJob as P, RemoteOption as R, Seniority as S, CustomFieldFilter as a, JobCollectionChoiceQuery as b, JobsListQuery as c, JobCardListEnvelope as d, JobsSearchBody as e, JobCardSearchEnvelope as f, JobsSimilarQuery as g, SearchEnvelope as h, CustomFieldValue as i, CustomFilterValue as j, EducationRequirement as k, JobCatalogPagination as l, JobCollectionChoiceList as m, JobCollectionFieldDefinition as n, JobCompany as o, JobCustomEmploymentType as p, OfficeLocation as q, OffsetPagination as r, PublicJobCard as s, RelatedSearch as t, RemotePermit as u, RemoteTimezone as v, ResolvedJobCollectionField as w, StorefrontPagination as x };
@@ -1,4 +1,4 @@
1
- import { S as Schemas } from './_spec-Cz-yijWv.mjs';
1
+ import { S as Schemas } from './_spec-C4T68Nnr.mjs';
2
2
 
3
3
  /**
4
4
  * Optional pagination metadata returned by Board API list operations.
@@ -53,6 +53,11 @@ type JobCompany = Schemas['JobCompany'];
53
53
  type OfficeLocation = Schemas['JobOfficeLocation'];
54
54
  type RemoteOption = NonNullable<PublicJob['remoteOption']>;
55
55
  type EmploymentType = NonNullable<PublicJob['employmentType']>;
56
+ /**
57
+ * A job's custom employment type (e.g. `Casual`): show its `label` in place
58
+ * of the built-in `employmentType`, which is its Google equivalent.
59
+ */
60
+ type JobCustomEmploymentType = NonNullable<PublicJob['customEmploymentType']>;
56
61
  type Seniority = NonNullable<PublicJob['seniority']>;
57
62
  /** Candidate-facing result ordering; `relevance` is the default. */
58
63
  type JobSort = NonNullable<Schemas['PublicSearchJobsBody']['sort']>;
@@ -91,7 +96,13 @@ type JobsListQuery = {
91
96
  */
92
97
  companySlug?: string[];
93
98
  remoteOption?: RemoteOption[];
99
+ /** Built-in types; each matches jobs of that type with no custom type. */
94
100
  employmentType?: EmploymentType[];
101
+ /**
102
+ * Custom employment type keys (`board.context().jobForm.employmentType
103
+ * .customTypes`), ORed with `employmentType`. Up to 10.
104
+ */
105
+ customEmploymentType?: string[];
95
106
  seniority?: Seniority[];
96
107
  /** Result ordering. Absent ⇒ `relevance` (the featured-ranked browse). */
97
108
  sort?: JobSort;
@@ -128,4 +139,4 @@ type ObjectReferenceFilter = {
128
139
  */
129
140
  type JobsSearchBody = Schemas['PublicSearchJobsBody'];
130
141
 
131
- export type { CustomFieldValues as C, EmploymentType as E, JobSort as J, ListEnvelope as L, ObjectReferenceFilter as O, PublicJob as P, RemoteOption as R, Seniority as S, CustomFieldFilter as a, JobCollectionChoiceQuery as b, JobsListQuery as c, JobCardListEnvelope as d, JobsSearchBody as e, JobCardSearchEnvelope as f, JobsSimilarQuery as g, SearchEnvelope as h, CustomFieldValue as i, CustomFilterValue as j, EducationRequirement as k, JobCatalogPagination as l, JobCollectionChoiceList as m, JobCollectionFieldDefinition as n, JobCompany as o, OfficeLocation as p, OffsetPagination as q, PublicJobCard as r, RelatedSearch as s, RemotePermit as t, RemoteTimezone as u, ResolvedJobCollectionField as v, StorefrontPagination as w };
142
+ export type { CustomFieldValues as C, EmploymentType as E, JobSort as J, ListEnvelope as L, ObjectReferenceFilter as O, PublicJob as P, RemoteOption as R, Seniority as S, CustomFieldFilter as a, JobCollectionChoiceQuery as b, JobsListQuery as c, JobCardListEnvelope as d, JobsSearchBody as e, JobCardSearchEnvelope as f, JobsSimilarQuery as g, SearchEnvelope as h, CustomFieldValue as i, CustomFilterValue as j, EducationRequirement as k, JobCatalogPagination as l, JobCollectionChoiceList as m, JobCollectionFieldDefinition as n, JobCompany as o, JobCustomEmploymentType as p, OfficeLocation as q, OffsetPagination as r, PublicJobCard as s, RelatedSearch as t, RemotePermit as u, RemoteTimezone as v, ResolvedJobCollectionField as w, StorefrontPagination as x };
@@ -1,4 +1,4 @@
1
- import { S as Schemas } from './_spec-Cz-yijWv.js';
1
+ import { S as Schemas } from './_spec-C4T68Nnr.js';
2
2
 
3
3
  type Awaitable<T> = T | Promise<T>;
4
4
  /**