@cavuno/board 4.38.0 → 4.41.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 (36) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/dist/{_spec-BcXYrhOP.d.mts → _spec-DRUEt9M3.d.mts} +2 -0
  3. package/dist/{_spec-BcXYrhOP.d.ts → _spec-DRUEt9M3.d.ts} +2 -0
  4. package/dist/{blog-PS7AwaF7.d.mts → blog-B0oLDN4M.d.mts} +1 -1
  5. package/dist/{blog-BLLQ5H5M.d.ts → blog-DZejMyq-.d.ts} +1 -1
  6. package/dist/{board-CTUrq9MP.d.ts → board-C-Hz8MMP.d.ts} +2 -2
  7. package/dist/{board-CK62f0G5.d.mts → board-Eusn8R9i.d.mts} +2 -2
  8. package/dist/{breadcrumbs-CwSd7BN1.d.mts → breadcrumbs-BTqDFpGD.d.mts} +2 -2
  9. package/dist/{breadcrumbs-Adrx69WV.d.ts → breadcrumbs-nX2svS5_.d.ts} +2 -2
  10. package/dist/browser/cavuno-board.global.min.js +1 -1
  11. package/dist/filters.d.mts +2 -2
  12. package/dist/filters.d.ts +2 -2
  13. package/dist/format.d.mts +4 -4
  14. package/dist/format.d.ts +4 -4
  15. package/dist/index.d.mts +21 -14
  16. package/dist/index.d.ts +21 -14
  17. package/dist/index.js +1 -1
  18. package/dist/index.mjs +1 -1
  19. package/dist/{jobs-Y9kacbM1.d.mts → jobs-B-imggAc.d.mts} +1 -1
  20. package/dist/{jobs--rvR1CgY.d.ts → jobs-jQwzYyvr.d.ts} +1 -1
  21. package/dist/{search-Dhy-RqrE.d.mts → search-C8uy6k8-.d.mts} +1 -1
  22. package/dist/{search-B-YDO3kN.d.ts → search-vXX_s6f5.d.ts} +1 -1
  23. package/dist/{seo-BiissB7X.d.ts → seo-BdNi6Eif.d.ts} +1 -1
  24. package/dist/{seo-C39S8YTH.d.mts → seo-D3AF4q7d.d.mts} +1 -1
  25. package/dist/seo-files.d.mts +2 -2
  26. package/dist/seo-files.d.ts +2 -2
  27. package/dist/seo.d.mts +6 -6
  28. package/dist/seo.d.ts +6 -6
  29. package/dist/server.d.mts +6 -6
  30. package/dist/server.d.ts +6 -6
  31. package/dist/sitemap.d.mts +6 -6
  32. package/dist/sitemap.d.ts +6 -6
  33. package/dist/suggest.d.mts +2 -2
  34. package/dist/suggest.d.ts +2 -2
  35. package/package.json +1 -1
  36. package/skills/manifest.json +1 -1
package/CHANGELOG.md CHANGED
@@ -3,6 +3,36 @@
3
3
  This changelog records changes that affect Board API compatibility, exported
4
4
  types, runtime behavior, or supported integration patterns.
5
5
 
6
+ ## 4.41.0 — 2026-10-07
7
+
8
+ - Categories: `taxonomy.categories.list({ topLevel: true })` lists only
9
+ top-level categories. It combines with `q` and `sort`, so
10
+ `{ topLevel: true, sort: 'jobCount' }` gives the busiest top-level
11
+ categories first.
12
+ - Every category and skill from `taxonomy.categories.list()` and
13
+ `taxonomy.skills.list()` carries `parentId`: the parent category's ID, or
14
+ `null` for top-level categories and for skills.
15
+
16
+ ## 4.40.0 — 2026-10-07
17
+
18
+ - Categories: `topLevel: true` lists only top-level categories, in full pages
19
+ with an exact `hasMore`. `parentId: null` still works as a deprecated alias.
20
+ - The board's password gate copy fields are deprecated. The gate now uses the
21
+ board's builder-designed coming-soon page; the fields are still accepted and
22
+ returned.
23
+ - Builder status includes the board's daily agent build and screenshot limits,
24
+ and submissions over 100 accepted builds per UTC day return `429
25
+ daily_build_limit`.
26
+
27
+ ## 4.39.0 — 2026-10-06
28
+
29
+ - Talent search: the `place`, `seniority`, `permitCountry` and
30
+ `interestedRole` filters now narrow results. Before, they were accepted but
31
+ ignored.
32
+ - API key permissions are inclusive: a key with `X.manage` can also read, and
33
+ a key with `X.publish` can also manage and read. Existing keys gain the
34
+ lower levels automatically.
35
+
6
36
  ## 4.38.0 — 2026-10-06
7
37
 
8
38
  - Company invites: `board.invites.preview({ token })` looks up a company
@@ -2947,6 +2947,8 @@ interface components {
2947
2947
  id: string;
2948
2948
  /** @enum {string} */
2949
2949
  type: "category" | "skill";
2950
+ /** @description ID of the parent category. `null` for top-level categories and for skills. */
2951
+ parentId: string | null;
2950
2952
  /** @description Current source-locale slug used by job search; old slugs may remain aliases. */
2951
2953
  sourceSlug: string;
2952
2954
  /** @description Board-language canonical URL slug. */
@@ -2947,6 +2947,8 @@ interface components {
2947
2947
  id: string;
2948
2948
  /** @enum {string} */
2949
2949
  type: "category" | "skill";
2950
+ /** @description ID of the parent category. `null` for top-level categories and for skills. */
2951
+ parentId: string | null;
2950
2952
  /** @description Current source-locale slug used by job search; old slugs may remain aliases. */
2951
2953
  sourceSlug: string;
2952
2954
  /** @description Board-language canonical URL slug. */
@@ -1,4 +1,4 @@
1
- import { S as Schemas } from './_spec-BcXYrhOP.mjs';
1
+ import { S as Schemas } from './_spec-DRUEt9M3.mjs';
2
2
 
3
3
  /** Author shape embedded on posts (no `object` discriminator). */
4
4
  type BlogAuthorEmbed = Schemas['PublicBlogAuthorEmbed'];
@@ -1,4 +1,4 @@
1
- import { S as Schemas } from './_spec-BcXYrhOP.js';
1
+ import { S as Schemas } from './_spec-DRUEt9M3.js';
2
2
 
3
3
  /** Author shape embedded on posts (no `object` discriminator). */
4
4
  type BlogAuthorEmbed = Schemas['PublicBlogAuthorEmbed'];
@@ -1,5 +1,5 @@
1
- import { S as Schemas } from './_spec-BcXYrhOP.js';
2
- import { L as ListEnvelope, t as RelatedSearch, a as CustomFieldFilter, O as ObjectReferenceFilter } from './jobs--rvR1CgY.js';
1
+ import { S as Schemas } from './_spec-DRUEt9M3.js';
2
+ import { L as ListEnvelope, t as RelatedSearch, a as CustomFieldFilter, O as ObjectReferenceFilter } from './jobs-jQwzYyvr.js';
3
3
 
4
4
  type PublicCompany = Schemas['CompanyPublic'];
5
5
  /** A market (sector) a company operates in — name + its source slug. */
@@ -1,5 +1,5 @@
1
- import { S as Schemas } from './_spec-BcXYrhOP.mjs';
2
- import { L as ListEnvelope, t as RelatedSearch, a as CustomFieldFilter, O as ObjectReferenceFilter } from './jobs-Y9kacbM1.mjs';
1
+ import { S as Schemas } from './_spec-DRUEt9M3.mjs';
2
+ import { L as ListEnvelope, t as RelatedSearch, a as CustomFieldFilter, O as ObjectReferenceFilter } from './jobs-B-imggAc.mjs';
3
3
 
4
4
  type PublicCompany = Schemas['CompanyPublic'];
5
5
  /** A market (sector) a company operates in — name + its source slug. */
@@ -1,5 +1,5 @@
1
- import { P as PublicBoard, a as CompanyCategorySalary, b as CompanySalary, L as LocationSalaryDetail, S as SkillSalaryDetail, T as TitleSalaryDetail } from './board-CK62f0G5.mjs';
2
- import { P as PublicJob } from './jobs-Y9kacbM1.mjs';
1
+ import { P as PublicBoard, a as CompanyCategorySalary, b as CompanySalary, L as LocationSalaryDetail, S as SkillSalaryDetail, T as TitleSalaryDetail } from './board-Eusn8R9i.mjs';
2
+ import { P as PublicJob } from './jobs-B-imggAc.mjs';
3
3
 
4
4
  /**
5
5
  * Wire enum for `salaryTimeframe`. Defined here (not re-exported from any
@@ -1,5 +1,5 @@
1
- import { P as PublicBoard, a as CompanyCategorySalary, b as CompanySalary, L as LocationSalaryDetail, S as SkillSalaryDetail, T as TitleSalaryDetail } from './board-CTUrq9MP.js';
2
- import { P as PublicJob } from './jobs--rvR1CgY.js';
1
+ import { P as PublicBoard, a as CompanyCategorySalary, b as CompanySalary, L as LocationSalaryDetail, S as SkillSalaryDetail, T as TitleSalaryDetail } from './board-C-Hz8MMP.js';
2
+ import { P as PublicJob } from './jobs-jQwzYyvr.js';
3
3
 
4
4
  /**
5
5
  * Wire enum for `salaryTimeframe`. Defined here (not re-exported from any
@@ -1 +1 @@
1
- "use strict";var CavunoBoard=(()=>{var w=Object.defineProperty;var yo=Object.getOwnPropertyDescriptor;var fo=Object.getOwnPropertyNames;var go=Object.prototype.hasOwnProperty;var ho=(e,t,o)=>t in e?w(e,t,{enumerable:!0,configurable:!0,writable:!0,value:o}):e[t]=o;var A=(e,t)=>{for(var o in t)w(e,o,{get:t[o],enumerable:!0})},bo=(e,t,o,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of fo(t))!go.call(e,r)&&r!==o&&w(e,r,{get:()=>t[r],enumerable:!(n=yo(t,r))||n.enumerable});return e};var So=e=>bo(w({},"__esModule",{value:!0}),e);var P=(e,t,o)=>ho(e,typeof t!="symbol"?t+"":t,o);var _n={};A(_n,{ACCESS_TOKEN_KEY:()=>T,BOARD_ACCESS_GRANT_KEY:()=>I,BOARD_API_ERROR_CODES:()=>Oe,BoardApiError:()=>v,BoardClient:()=>F,REFRESH_TOKEN_KEY:()=>L,SDK_VERSION:()=>D,SIGN_IN_REDIRECT_ERROR_CODES:()=>we,SSO_LINK_PROOF_BINDING_TTL_MS:()=>ne,createBoardClient:()=>Io,filters:()=>se,format:()=>be,isBoardApiError:()=>S,isBoardPasswordRequired:()=>Re,isColdRule:()=>ct,isConflict:()=>Ae,isForbidden:()=>Be,isFreeEmailWebsiteError:()=>Te,isNotFound:()=>_e,isOwnMessage:()=>lt,isRateLimited:()=>Ee,isSafeApplicationUrl:()=>re,isSignInMethodUnavailable:()=>oe,isSsoBrowserMismatch:()=>Ie,isSsoRequired:()=>Le,isUnauthorized:()=>Pe,isValidationError:()=>ve,lastOwnMessageId:()=>pt,paginate:()=>at,parseOAuthCompletion:()=>Je,paths:()=>ye,resolveApplyAction:()=>ut,resolveApplyDecision:()=>ie,seo:()=>Se,ssoLinkProofBindingStore:()=>$,suggest:()=>Ce});var Oe=["internal_error","validation_bad_request","validation_payload_too_large","rate_limited","rate_limit_unavailable","search_unavailable","search_filter_unavailable","too_many_filter_values","pagination_invalid_cursor","pagination_offset_too_large","auth_unauthenticated","auth_forbidden","plan_upgrade_required","unknown_error","boards_not_found","board_page_not_found","board_auth_account_not_found","board_auth_email_taken","board_auth_invalid_credentials","board_auth_invalid_token","board_auth_registration_disabled","board_auth_token_expired","board_development_origin_not_allowed_for_email","board_development_origin_not_registered","board_development_origin_requires_publishable_key","sso_required","board_auth_method_unavailable","board_auth_sso_connection_not_found","board_auth_sso_role_unavailable","board_auth_sso_provider_unavailable","board_auth_sso_browser_mismatch","board_auth_sso_not_provisioned","board_auth_sso_identity_linked_elsewhere","invalid_current_password","no_password","same_email","email_taken","invalid_token","board_password_required","board_password_invalid","jobs_not_found","jobs_invalid_filter","categories_not_found","skills_not_found","places_not_found","locations_invalid_id","locations_unavailable","companies_not_found","company_markets_not_found","company_salary_not_found","company_category_salary_not_found","salaries_title_not_found","salaries_skill_not_found","salaries_location_not_found","salaries_title_location_not_found","salaries_skill_location_not_found","blog_post_not_found","blog_author_not_found","blog_tag_not_found","feeds_not_found","feed_not_ready","talent_not_found","talent_directory_not_found","talent_directory_restricted","job_recommendations_not_found","recommended_talent_not_found","job_alert_not_found","job_alerts_disabled","candidate_alert_limit_reached","candidate_alert_not_found","candidate_entry_not_found","candidate_handle_taken","candidate_job_not_found","candidate_notification_preference_paused","candidate_profile_required","resume_invalid_file","resume_upload_forbidden","applications_external_apply_only","applications_country_not_allowed","applications_guest_not_allowed","applications_job_not_found","applications_not_found","applications_resume_invalid_file","applications_unprocessable","messaging_application_not_found","messaging_application_not_linked","messaging_blocked","messaging_cannot_block_self","messaging_cold_rule","messaging_conversation_not_found","messaging_disabled","messaging_edit_window_expired","messaging_message_deleted","messaging_message_not_found","messaging_not_author","messaging_not_participant","messaging_not_permitted","messaging_not_recipient","messaging_rate_limited","messaging_recipient_not_found","messaging_recipient_not_open","messaging_unsend_window_expired","employer_applicant_not_found","employer_ats_unprocessable","employer_checkout_failed","employer_company_exists","employer_free_email_website","employer_company_name_taken","employer_company_not_found","employer_job_not_found","employer_job_slug_taken","employer_jobs_quota_exceeded","membership_required","employer_not_member","employer_payment_required","employer_pipeline_stage_not_found","employer_member_not_found","employer_invite_not_found","not_company_admin","not_company_member","company_deletion_disabled","last_admin","already_member","already_invited","invalid_email","invite_email_mismatch","candidate_role","job_not_published","talent_list_not_found","sourced_candidate_not_found","sourced_convert_unavailable","candidate_paywall_access_required","paywall_already_active","paywall_disabled","paywall_invalid_checkout_session","paywall_no_candidate_profile","paywall_no_recurring_subscription","paywall_offer_not_found","talent_access_unavailable","company_required","already_on_plan","talent_access_required","messaging_talent_access_required","stripe_not_connected","membership_plan_not_found","membership_seat_taken","job_posting_logo_lookup_unavailable","job_posting_logo_not_found","job_posting_rejected"],v=class extends Error{constructor(o){super(o.message);P(this,"status");P(this,"code");P(this,"details");P(this,"requestId");P(this,"raw");this.name="BoardApiError",this.status=o.status,this.code=o.code,this.details=o.details,this.requestId=o.requestId,this.raw=o.raw}};function S(e){return e instanceof Error&&e.name==="BoardApiError"&&typeof e.status=="number"&&typeof e.code=="string"}function _e(e){return S(e)&&e.status===404}function Pe(e){return S(e)&&e.status===401}function Re(e){return S(e)&&e.status===401&&e.code==="board_password_required"}function Be(e){return S(e)&&e.status===403}function ve(e){return S(e)&&e.status===400&&e.code==="validation_bad_request"}function Ee(e){return S(e)&&e.status===429}function Ae(e){return S(e)&&e.status===409}function Te(e){return S(e)&&e.status===422&&e.code==="employer_free_email_website"}function Le(e){if(!S(e)||e.status!==403)return!1;let t=e.details?.connectionIds;return Array.isArray(t)&&t.every(o=>typeof o=="string")&&(e.code==="sso_required"||oe(e)&&e.details.availableMethods.methods.length===0)}function oe(e){if(!S(e)||e.status!==403||e.code!=="board_auth_method_unavailable")return!1;let t=e.details?.availableMethods;if(!t||typeof t!="object")return!1;let{methods:o,ssoConnectionIds:n}=t;return Array.isArray(o)&&o.every(r=>typeof r=="string")&&Array.isArray(n)&&n.every(r=>typeof r=="string")}function Ie(e){return S(e)&&e.status===403&&e.code==="board_auth_sso_browser_mismatch"}function Fe(e){let t=new URLSearchParams;if(!e)return t;for(let[o,n]of Object.entries(e))if(n!=null)if(Array.isArray(n))for(let r of n)r!=null&&t.append(o,String(r));else t.append(o,String(n));return t}function J(e){let t=5381;for(let n=0;n<e.length;n++)t=(t<<5)+t+e.charCodeAt(n)>>>0;return`${e.replace(/[^a-zA-Z0-9_-]/g,"_")}-${t.toString(36)}`}var T="cavuno_board_access_token",L="cavuno_board_refresh_token",I="cavuno_board_access_grant";function ke(){return typeof globalThis.document<"u"}function Co(){let e=new Map;return{getItem:t=>e.get(t)??null,setItem:(t,o)=>{e.set(t,o)},removeItem:t=>{e.delete(t)}}}function Oo(e,t){if(!ke())throw new Error(`storage mode '${e}' is browser-only \u2014 use 'nostore' + per-call headers on the server`);let o;try{if(o=e==="local"?globalThis.localStorage:globalThis.sessionStorage,!o)throw new Error("unavailable")}catch{throw new Error(`storage mode '${e}' is unavailable in this browsing context (storage access is blocked \u2014 e.g. a sandboxed or third-party iframe). Use 'memory', or 'nostore' + per-call headers.`)}let n=t?`:${J(t)}`:"";return{getItem:r=>o.getItem(`${r}${n}`),setItem:(r,i)=>{o.setItem(`${r}${n}`,i)},removeItem:r=>{o.removeItem(`${r}${n}`)}}}var _o=Symbol.for("@cavuno/board:nostore");var Po={[_o]:!0,getItem:()=>null,setItem:()=>{},removeItem:()=>{}};function xe(e,t){let o=e??(ke()?"memory":"nostore");if(typeof o=="object")return o;switch(o){case"memory":return Co();case"nostore":return Po;case"local":case"session":return Oo(o,t);default:throw new Error(`Unknown storage mode '${String(o)}'`)}}async function N(e,t){await e.setItem(T,t.accessToken),await e.setItem(L,t.refreshToken)}async function Ue(e){await e.removeItem(T),await e.removeItem(L)}var D="4.38.0";function Ro(e){return typeof e=="string"||e instanceof URLSearchParams||typeof FormData<"u"&&e instanceof FormData||typeof Blob<"u"&&e instanceof Blob||e instanceof ArrayBuffer||typeof ReadableStream<"u"&&e instanceof ReadableStream}function Bo(e){try{let t=new URL(e);for(let o of new Set(t.searchParams.keys()))t.searchParams.delete(o),t.searchParams.set(o,"[REDACTED]");return t.toString()}catch{return e.replace(/([?&][^=&#]+)=([^&#]*)/g,"$1=[REDACTED]")}}var F=class{constructor(t){P(this,"storage");P(this,"basePath");P(this,"options");this.options=t,this.storage=t.storage;let o=t.baseUrl.replace(/\/+$/,"");this.basePath=`${o}/v1/boards/${encodeURIComponent(t.board)}`}async fetch(t,o={}){let{body:n,query:r,headers:i,...s}=o,a=(o.method??"GET").toUpperCase(),l=`${this.basePath}${t}`,p=Fe(r).toString();p&&(l+=`?${p}`);let m=n!==void 0&&!Ro(n),d=n===void 0?void 0:m?JSON.stringify(n):n,y=new Headers({accept:"application/json"});m&&y.set("content-type","application/json");for(let[B,te]of Object.entries(this.options.globalHeaders??{}))y.set(B,te);let f=await this.storage.getItem(T);f!==null&&y.set("authorization",`Bearer ${f}`);let O=await this.storage.getItem(I);O!==null&&y.set("x-board-access",O),i&&new Headers(i).forEach((B,te)=>{y.set(te,B)}),(a!=="GET"||y.has("authorization")||y.has("x-board-access"))&&!y.has("x-cavuno-sdk")&&y.set("x-cavuno-sdk",`board@${D}`);let g={url:l,init:{...s,method:a,headers:y,body:d}};this.options.onRequest&&(g=await this.options.onRequest(g));let R=Bo(g.url);this.options.logger?.debug(`${a} ${R}`);let u=await globalThis.fetch(g.url,g.init);if(this.options.logger?.debug(`${u.status} ${a} ${R}`),this.options.onResponse&&await this.options.onResponse(u.clone(),g),u.status===204)return;if(u.ok)return await u.json();let b;try{b=await u.json()}catch{b=void 0}let _=b?.error,E=_&&typeof _.code=="string"&&typeof _.message=="string"?new v({status:u.status,code:_.code,message:_.message,details:_.details,requestId:_.requestId,raw:b}):new v({status:u.status,code:"unknown_error",message:u.statusText||"Request failed",raw:b});throw this.options.logger?.error(`${E.status} ${E.code} ${a} ${R}`),E}};var Me="https://api.cavuno.com";var we=["oauth_cancelled","oauth_failed","oauth_email_unverified","role_disabled","method_unavailable","sso_required","sso_state_invalid","sso_cancelled","sso_failed","sso_connection_unavailable","sso_not_provisioned","sso_email_required","sso_account_disabled","sso_identity_linked_elsewhere","sso_link_proof_rate_limited","sso_development_origin_not_allowed_for_email"];function vo(e){if(e instanceof URLSearchParams)return e;if(typeof e=="string"){let o=e.includes("?")?e.slice(e.indexOf("?")):e;return new URLSearchParams(o)}let t=new URLSearchParams;for(let[o,n]of Object.entries(e))n!==void 0&&t.set(o,n);return t}function Eo(e){return!e||!e.startsWith("/")||e.startsWith("//")||e.startsWith("/\\")||e.includes("://")||/[\u0000-\u001F\u007F]/.test(e)?"/":e}function Ao(e){return e==="candidate"||e==="employer"?e:null}function Je(e){let t=vo(e),o=c=>{let p=t.get(c);return p&&p.length>0?p:null},n=Eo(o("returnTo")),r=Ao(o("role")),i=o("error");if(i)return{kind:"error",error:i,returnTo:n};let s=o("linkProof");if(s)return{kind:"link_proof",linkProof:s,role:r,returnTo:n};let a=o("linkProofBinding");if(o("status")==="sso_link_proof_sent"&&a)return{kind:"link_proof_sent",linkProofBinding:a,role:r,returnTo:n};let l=o("token");return l?{kind:"token",token:l,method:o("method"),role:r,returnTo:n,isNewUser:o("isNew")==="1"}:{kind:"invalid",returnTo:n}}var ne=1500*1e3,To="cavuno_board_sso_link_proof_binding";function Lo(){try{return globalThis.localStorage??null}catch{return null}}function $(e,t={}){let o=`${To}:${J(e)}`,n=t.now??Date.now,r=()=>t.storage??Lo(),i=()=>{try{r()?.removeItem(o)}catch{}};return{begin(){let s=globalThis.crypto.getRandomValues(new Uint8Array(32)),a=Array.from(s,c=>c.toString(16).padStart(2,"0")).join(""),l=r();if(!l)throw new Error("SSO requires browser storage or an explicit browser proof");return l.setItem(o,JSON.stringify({binding:a,expiresAt:n()+ne})),a},save(s){},read(){let s=null;try{s=r()?.getItem(o)??null}catch{return null}if(!s)return null;try{let a=JSON.parse(s);if(typeof a.binding=="string"&&typeof a.expiresAt=="number"&&a.expiresAt>n())return a.binding}catch{}return i(),null},clear:i}}function Ne(e,t=""){let o=()=>$(t);async function n(i){return await N(e.storage,i),i}async function r(i){if(i?.refreshToken)return i.refreshToken;let s=await e.storage.getItem(L);if(s===null)throw new Error("No refresh token available \u2014 pass { refreshToken } or configure auth.storage");return s}return{async register(i,s){let a=await e.fetch("/auth/register",{...s,method:"POST",body:i});return n(a)},async login(i,s){let a=await e.fetch("/auth/login",{...s,method:"POST",body:i});return n(a)},async refresh(i,s){let a=await r(i),l=await e.fetch("/auth/refresh",{...s,method:"POST",body:{refreshToken:a}});return n(l)},async logout(i,s){let a=await r(i);await e.fetch("/auth/logout",{...s,method:"POST",body:{refreshToken:a}}),await Ue(e.storage)},verifyEmail(i,s){return e.fetch("/auth/verify-email",{...s,method:"POST",body:i})},verifyWorkEmail(i,s){return e.fetch("/auth/verify-work-email",{...s,method:"POST",body:i})},verifyEmailWithCode(i,s){return e.fetch("/auth/verify-email/otp",{...s,method:"POST",body:i})},resendVerification(i){return e.fetch("/auth/verify-email/resend",{...i,method:"POST"})},forgotPassword(i,s){return e.fetch("/auth/forgot-password",{...s,method:"POST",body:i})},resetPassword(i,s){return e.fetch("/auth/reset-password",{...s,method:"POST",body:i})},requestMagicLink(i,s){return e.fetch("/auth/magic-link",{...s,method:"POST",body:i})},async consumeMagicLink(i,s){let a=await e.fetch("/auth/magic-link/consume",{...s,method:"POST",body:i});return n(a)},getOAuthAuthorizationUrl(i,s,a){return e.fetch(`/auth/oauth/${i}`,{...a,method:"GET",query:s})},async exchangeOAuth(i,s){let a=await e.fetch("/auth/oauth/exchange",{...s,method:"POST",body:{...i,browserBinding:i.browserBinding??o().read()??void 0}});return n(a)},async getSsoAuthorizationUrl(i,s,a){let l=s?.browserBindingHash;if(!l){let c=o().begin(),p=await globalThis.crypto.subtle.digest("SHA-256",new TextEncoder().encode(c));l=Array.from(new Uint8Array(p),m=>m.toString(16).padStart(2,"0")).join("")}return e.fetch(`/auth/sso/${encodeURIComponent(i)}`,{...a,method:"GET",query:{...s,browserBindingHash:l}})},async consumeSsoLinkProof(i,s){let a=await e.fetch("/auth/sso/link-proof",{...s,method:"POST",body:{...i,browserBinding:i.browserBinding??o().read()??void 0}});return n(a)}}}function De(e){return{posts:{list(t,o){return e.fetch("/blog/posts",{...o,query:t})},retrieve(t,o,n){return e.fetch(`/blog/posts/${encodeURIComponent(t)}`,{...n,query:o})},adjacent(t,o){return e.fetch(`/blog/posts/${encodeURIComponent(t)}/adjacent`,o)},similar(t,o,n){return e.fetch(`/blog/posts/${encodeURIComponent(t)}/similar`,{...n,query:o})}},tags:{list(t,o){return e.fetch("/blog/tags",{...o,query:t})},retrieve(t,o,n){return e.fetch(`/blog/tags/${encodeURIComponent(t)}`,{...n,query:o})}},authors:{list(t,o){return e.fetch("/blog/authors",{...o,query:t})},retrieve(t,o,n){return e.fetch(`/blog/authors/${encodeURIComponent(t)}`,{...n,query:o})}},search(t,o,n){return e.fetch("/blog/search",{...n,method:"POST",body:t,query:o})}}}function $e(e){let t=Object.assign((n,r)=>e.fetch("/companies/markets",{...r,query:n}),{resolve(n,r){return e.fetch(`/companies/markets/${encodeURIComponent(n)}`,r)}}),o=Object.assign((n,r)=>e.fetch(`/companies/${encodeURIComponent(n)}/salaries`,r),{summary(n,r){return e.fetch(`/companies/${encodeURIComponent(n)}/salaries/summary`,r)},category(n,r,i,s){return e.fetch(`/companies/${encodeURIComponent(n)}/salaries/${encodeURIComponent(r)}`,{...s,query:i})}});return{list(n,r){return e.fetch("/companies",{...r,query:n})},retrieve(n,r,i){return e.fetch(`/companies/${encodeURIComponent(n)}`,{...i,query:r})},search(n,r,i){return e.fetch("/companies/search",{...i,method:"POST",body:n,query:r})},listJobs(n,r,i){return e.fetch(`/companies/${encodeURIComponent(n)}/jobs`,{...i,query:r})},similar(n,r,i){return e.fetch(`/companies/${encodeURIComponent(n)}/similar`,{...i,query:r})},markets:t,salaries:o}}function je(e){return{jobs(t,o){return e.fetch("/embed/jobs",{...o,query:t})}}}function Qe(e){return{preview(t,o){return e.fetch("/invites/preview",{...o,method:"POST",body:t})}}}function qe(e){return{subscribe(t,o){return e.fetch("/job-alerts",{...o,method:"POST",body:t})},confirm(t,o){return e.fetch("/job-alerts/confirm",{...o,method:"POST",body:t})},resendConfirmation(t,o){return e.fetch("/job-alerts/resend-confirmation",{...o,method:"POST",body:t})},manage(t,o){return e.fetch("/job-alerts/manage",{...o,query:t})},unsubscribe(t,o){return e.fetch("/job-alerts/unsubscribe",{...o,method:"POST",body:t})},resubscribe(t,o){return e.fetch("/job-alerts/resubscribe",{...o,method:"POST",body:t})},updatePreference(t,o){return e.fetch("/job-alerts/preferences",{...o,method:"POST",body:t})},deletePreference(t,o){return e.fetch("/job-alerts/preferences",{...o,method:"DELETE",body:t})}}}function Ge(e){return{plans(t,o){return e.fetch("/job-postings/plans",{...o,query:t})},create(t,o){return e.fetch("/job-postings",{...o,method:"POST",body:t})},uploadLogo(t,o){let n=new FormData;return n.append("file",t),e.fetch("/job-postings/logo",{...o,method:"POST",body:n})},fetchLogoByDomain(t,o){return e.fetch("/job-postings/logo/fetch",{...o,query:{domain:t}})},sendBillingVerification(t,o){return e.fetch("/job-postings/send-verification",{...o,method:"POST",body:t})},getBillingOptions(t,o){return e.fetch("/job-postings/billing-options",{...o,method:"POST",body:t})}}}function He(e){return{collectionChoices(t,o,n){return e.fetch(`/job-fields/${encodeURIComponent(t)}/choices`,{...n,query:o})},list(t,o){return e.fetch("/jobs",{...o,query:t})},retrieve(t,o,n){return e.fetch(`/jobs/${encodeURIComponent(t)}`,{...n,query:o})},search(t,o,n){return e.fetch("/jobs/search",{...n,method:"POST",body:t,query:o})},similar(t,o,n){return e.fetch(`/jobs/${encodeURIComponent(t)}/similar`,{...n,query:o})},apply(t,o,n){return e.fetch(`/jobs/${encodeURIComponent(t)}/apply`,{...n,method:"POST",body:o??{}})},createApplyIntent(t,o,n){return e.fetch(`/jobs/${encodeURIComponent(t)}/apply-intents`,{...n,method:"POST",body:o})},prepareApplyApproval(t,o,n){return e.fetch(`/jobs/${encodeURIComponent(t)}/apply-approvals`,{...n,method:"POST",body:o})},uploadApplicationResume(t,o,n,r){let i=new FormData;return i.append("file",o),n?.applicationId&&i.append("applicationId",n.applicationId),e.fetch(`/jobs/${encodeURIComponent(t)}/apply/resume`,{...r,method:"POST",body:i})},myApplication(t,o){return e.fetch(`/jobs/${encodeURIComponent(t)}/application`,o)}}}function Ke(e){return{search(t,o){return e.fetch("/locations/search",{...o,query:t})},resolve(t,o){return e.fetch("/locations/resolve",{...o,method:"POST",body:t})}}}function Ve(e){return{retrieve(t,o){return e.fetch("/me",{...o,query:t})},delete(t){return e.fetch("/me",{...t,method:"DELETE"})},async updatePassword(t,o){let n=await e.fetch("/me/password",{...o,method:"POST",body:t});return await N(e.storage,n),n},requestEmailChange(t,o){return e.fetch("/me/email",{...o,method:"POST",body:t})},confirmEmailChange(t,o){return e.fetch("/me/email/confirm",{...o,method:"POST",body:t})},acceptInvite(t,o){return e.fetch("/me/invites/accept",{...o,method:"POST",body:t})},profile:{listObjectReferenceChoices(t,o,n){return e.fetch("/me/profile/object-references/choices",{...n,query:{...o,fieldKey:t}})},retrieve(t,o){return e.fetch("/me/profile",{...o,query:t})},update(t,o,n){return e.fetch("/me/profile",{...n,method:"PATCH",body:t,query:o})},retrieveCustomFields(t){return e.fetch("/me/profile/custom-fields",{...t})},updateCustomFields(t,o){return e.fetch("/me/profile/custom-fields",{...o,method:"PATCH",body:t})},retrieveObjectReferences(t){return e.fetch("/me/profile/object-references",t)},updateObjectReferences(t,o){return e.fetch("/me/profile/object-references",{...o,method:"PUT",body:t})},handleAvailable(t,o){return e.fetch("/me/profile/handle-available",{...o,query:{handle:t}})},listExperience(t){return e.fetch("/me/profile/experience",t)},createExperience(t,o){return e.fetch("/me/profile/experience",{...o,method:"POST",body:t})},updateExperience(t,o,n){return e.fetch(`/me/profile/experience/${encodeURIComponent(t)}`,{...n,method:"PATCH",body:o})},deleteExperience(t,o){return e.fetch(`/me/profile/experience/${encodeURIComponent(t)}`,{...o,method:"DELETE"})},listEducation(t){return e.fetch("/me/profile/education",t)},createEducation(t,o){return e.fetch("/me/profile/education",{...o,method:"POST",body:t})},updateEducation(t,o,n){return e.fetch(`/me/profile/education/${encodeURIComponent(t)}`,{...n,method:"PATCH",body:o})},deleteEducation(t,o){return e.fetch(`/me/profile/education/${encodeURIComponent(t)}`,{...o,method:"DELETE"})},listSkills(t){return e.fetch("/me/profile/skills",t)},updateSkills(t,o){return e.fetch("/me/profile/skills",{...o,method:"PUT",body:t})},listLanguages(t){return e.fetch("/me/profile/languages",t)},updateLanguages(t,o){return e.fetch("/me/profile/languages",{...o,method:"PUT",body:t})},uploadAvatar(t,o){let n=new FormData;return n.append("file",t),e.fetch("/me/profile/avatar",{...o,method:"POST",body:n})}},notificationPreferences:{retrieve(t){return e.fetch("/me/notification-preferences",t)},update(t,o){return e.fetch("/me/notification-preferences",{...o,method:"PUT",body:t})},unsubscribeWithToken(t,o){return e.fetch("/me/notification-preferences/unsubscribe",{...o,method:"POST",body:t})}},companies:{listObjectReferenceChoices(t,o,n,r){return e.fetch(`/me/companies/${encodeURIComponent(t)}/object-references/choices`,{...r,query:{...n,fieldKey:o}})},retrieveObjectReferences(t,o){return e.fetch(`/me/companies/${encodeURIComponent(t)}/object-references`,o)},updateObjectReferences(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/object-references`,{...n,method:"PUT",body:o})},search(t,o){return e.fetch("/me/companies/search",{...o,query:t})},list(t){return e.fetch("/me/companies",t)},create(t,o){return e.fetch("/me/companies",{...o,method:"POST",body:t})},claim(t,o){return e.fetch(`/me/companies/${encodeURIComponent(t)}/claim`,{...o,method:"POST"})},cancelClaim(t,o){return e.fetch(`/me/companies/${encodeURIComponent(t)}/claim`,{...o,method:"DELETE"})},retrieve(t,o){return e.fetch(`/me/companies/${encodeURIComponent(t)}`,o)},update(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}`,{...n,method:"PATCH",body:o})},retrieveCustomFields(t,o){return e.fetch(`/me/companies/${encodeURIComponent(t)}/custom-fields`,o)},updateCustomFields(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/custom-fields`,{...n,method:"PATCH",body:o})},delete(t,o){return e.fetch(`/me/companies/${encodeURIComponent(t)}`,{...o,method:"DELETE"})},listMembers(t,o){return e.fetch(`/me/companies/${encodeURIComponent(t)}/members`,o)},updateMemberRole(t,o,n,r){return e.fetch(`/me/companies/${encodeURIComponent(t)}/members/${encodeURIComponent(o)}`,{...r,method:"PATCH",body:n})},removeMember(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/members/${encodeURIComponent(o)}`,{...n,method:"DELETE"})},leave(t,o){return e.fetch(`/me/companies/${encodeURIComponent(t)}/membership`,{...o,method:"DELETE"})},startMembershipCheckout(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/membership/checkout`,{...n,method:"POST",body:o})},retrieveMembershipCheckout(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/membership/checkout/${encodeURIComponent(o)}`,n)},listInvites(t,o){return e.fetch(`/me/companies/${encodeURIComponent(t)}/invites`,o)},createInvite(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/invites`,{...n,method:"POST",body:o})},revokeInvite(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/invites/${encodeURIComponent(o)}`,{...n,method:"DELETE"})},uploadLogo(t,o,n){let r=new FormData;return r.append("file",o),e.fetch(`/me/companies/${encodeURIComponent(t)}/logo`,{...n,method:"POST",body:r})},workEmail:{verify(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/work-email/verify`,{...n,method:"POST",body:o})},confirm(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/work-email/confirm`,{...n,method:"POST",body:o})}},jobs:{list(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/jobs`,{...n,query:o})},retrieve(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/jobs/${encodeURIComponent(o)}`,n)},create(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/jobs`,{...n,method:"POST",body:o})},update(t,o,n,r){return e.fetch(`/me/companies/${encodeURIComponent(t)}/jobs/${encodeURIComponent(o)}`,{...r,method:"PATCH",body:n})},delete(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/jobs/${encodeURIComponent(o)}`,{...n,method:"DELETE"})},publish(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/jobs/${encodeURIComponent(o)}/publish`,{...n,method:"POST"})},unpublish(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/jobs/${encodeURIComponent(o)}/unpublish`,{...n,method:"POST"})},checkout(t,o,n,r){return e.fetch(`/me/companies/${encodeURIComponent(t)}/jobs/${encodeURIComponent(o)}/checkout`,{...r,method:"POST",body:n})}},billingOptions:{list(t,o){return e.fetch(`/me/companies/${encodeURIComponent(t)}/billing-options`,o)}},billingPortal:{create(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/billing-portal`,{...n,method:"POST",body:o})}},jobStats:{retrieve(t,o){return e.fetch(`/me/companies/${encodeURIComponent(t)}/job-stats`,o)},timeseries(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/job-stats/timeseries`,{...n,query:o})}},profileStats:{retrieve(t,o){return e.fetch(`/me/companies/${encodeURIComponent(t)}/profile-stats`,o)},timeseries(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/profile-stats/timeseries`,{...n,query:o})}},recommendedTalent:{list(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/recommended-talent`,{...n,query:o})}},talentLists:{list(t,o){return e.fetch(`/me/companies/${encodeURIComponent(t)}/talent-lists`,o)},create(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/talent-lists`,{...n,method:"POST",body:o})},update(t,o,n,r){return e.fetch(`/me/companies/${encodeURIComponent(t)}/talent-lists/${encodeURIComponent(o)}`,{...r,method:"PATCH",body:n})},remove(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/talent-lists/${encodeURIComponent(o)}`,{...n,method:"DELETE"})}},sourcedCandidates:{list(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/sourced-candidates`,{...n,query:o})},add(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/sourced-candidates`,{...n,method:"POST",body:o})},remove(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/sourced-candidates/${encodeURIComponent(o)}`,{...n,method:"DELETE"})},convert(t,o,n,r){return e.fetch(`/me/companies/${encodeURIComponent(t)}/sourced-candidates/${encodeURIComponent(o)}/convert`,{...r,method:"POST",body:n})}},applicants:{list(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/applicants`,{...n,query:o})},move(t,o,n,r){return e.fetch(`/me/companies/${encodeURIComponent(t)}/applicants/${encodeURIComponent(o)}/stage`,{...r,method:"PATCH",body:n})},bulkMove(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/applicants/bulk/move`,{...n,method:"POST",body:o})},bulkReject(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/applicants/bulk/reject`,{...n,method:"POST",body:o})},addNote(t,o,n,r){return e.fetch(`/me/companies/${encodeURIComponent(t)}/applicants/${encodeURIComponent(o)}/notes`,{...r,method:"POST",body:n})}},pipelineStages:{create(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/pipeline-stages`,{...n,method:"POST",body:o})},update(t,o,n,r){return e.fetch(`/me/companies/${encodeURIComponent(t)}/pipeline-stages/${encodeURIComponent(o)}`,{...r,method:"PATCH",body:n})},remove(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/pipeline-stages/${encodeURIComponent(o)}`,{...n,method:"DELETE"})},reorder(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/pipeline-stages/reorder`,{...n,method:"PUT",body:o})}}},talentAccess:{retrieve(t){return e.fetch("/me/talent-access",t)},retrieveCandidate(t,o){return e.fetch(`/me/talent-access/candidates/${encodeURIComponent(t)}`,o)},checkout(t,o){return e.fetch("/me/talent-access/checkout",{...o,method:"POST",body:t})},claim(t,o){return e.fetch("/me/talent-access/claim",{...o,method:"POST",body:t})},retrieveCheckout(t,o){return e.fetch(`/me/talent-access/checkout/${encodeURIComponent(t)}`,o)},unlock(t,o){return e.fetch("/me/talent-access/unlocks",{...o,method:"POST",body:t})},upgrade(t,o){return e.fetch("/me/talent-access/upgrade",{...o,method:"POST",body:t})}},alerts:{list(t){return e.fetch("/me/alerts",t)},create(t,o){return e.fetch("/me/alerts",{...o,method:"POST",body:t})},retrieve(t,o){return e.fetch(`/me/alerts/${encodeURIComponent(t)}`,o)},update(t,o,n){return e.fetch(`/me/alerts/${encodeURIComponent(t)}`,{...n,method:"PUT",body:o})},remove(t,o){return e.fetch(`/me/alerts/${encodeURIComponent(t)}`,{...o,method:"DELETE"})}},applications:{list(t,o){return e.fetch("/me/applications",{...o,query:t})},retrieve(t,o){return e.fetch(`/me/applications/${encodeURIComponent(t)}`,o)},updateFacts(t,o,n){return e.fetch(`/me/applications/${encodeURIComponent(t)}`,{...n,method:"PATCH",body:o})},withdraw(t,o){return e.fetch(`/me/applications/${encodeURIComponent(t)}/withdraw`,{...o,method:"POST"})}},resume:{upload(t,o,n){let r=new FormData;return r.append("resume",t),o?.keepResumeOnFile&&r.append("keepResumeOnFile","true"),o?.importMode&&r.append("importMode",o.importMode),o?.confirmReplaceAll&&r.append("confirmReplaceAll","true"),e.fetch("/me/resume",{...n,method:"POST",body:r})},retrieve(t){return e.fetch("/me/resume",t)},delete(t){return e.fetch("/me/resume",{...t,method:"DELETE"})}},recommendedJobs:{list(t,o){return e.fetch("/me/recommended-jobs",{...o,query:t})}},savedJobs:{list(t,o){return e.fetch("/me/saved-jobs",{...o,query:t})},save(t,o,n){return e.fetch("/me/saved-jobs",{...n,method:"POST",body:t,query:o})},unsave(t,o,n){return e.fetch(`/me/saved-jobs/${encodeURIComponent(t)}`,{...n,method:"DELETE",query:o})}},conversations:{list(t,o){return e.fetch("/me/conversations",{...o,query:t})},unreadCount(t){return e.fetch("/me/conversations/unread-count",t)},retrieve(t,o){return e.fetch(`/me/conversations/${encodeURIComponent(t)}`,o)},listMessages(t,o,n){return e.fetch(`/me/conversations/${encodeURIComponent(t)}/messages`,{...n,query:o})},start(t,o){return e.fetch("/me/conversations",{...o,method:"POST",body:t})},startAboutApplication(t,o){return e.fetch("/me/conversations/about-application",{...o,method:"POST",body:t})},reply(t,o,n){return e.fetch(`/me/conversations/${encodeURIComponent(t)}/reply`,{...n,method:"POST",body:o})},markRead(t,o){return e.fetch(`/me/conversations/${encodeURIComponent(t)}/read`,{...o,method:"POST"})},archive(t,o){return e.fetch(`/me/conversations/${encodeURIComponent(t)}/archive`,{...o,method:"POST"})},unarchive(t,o){return e.fetch(`/me/conversations/${encodeURIComponent(t)}/unarchive`,{...o,method:"POST"})},findExisting(t,o){return e.fetch("/me/conversations/find-existing",{...o,query:t})}},blocks:{list(t){return e.fetch("/me/blocks",t)},create(t,o){return e.fetch("/me/blocks",{...o,method:"POST",body:t})},remove(t,o){return e.fetch(`/me/blocks/${encodeURIComponent(t)}`,{...o,method:"DELETE"})},status(t,o){return e.fetch(`/me/blocks/${encodeURIComponent(t)}`,o)}},messages:{edit(t,o,n){return e.fetch(`/me/messages/${encodeURIComponent(t)}`,{...n,method:"PATCH",body:o})},unsend(t,o){return e.fetch(`/me/messages/${encodeURIComponent(t)}`,{...o,method:"DELETE"})},report(t,o,n){return e.fetch(`/me/messages/${encodeURIComponent(t)}/report`,{...n,method:"POST",body:o})}},marketingConsent:{retrieve(t){return e.fetch("/me/marketing-consent",t)},grant(t){return e.fetch("/me/marketing-consent/grant",{...t,method:"POST"})},withdraw(t){return e.fetch("/me/marketing-consent/withdraw",{...t,method:"POST"})}},access:{checkout(t,o){return e.fetch("/me/access/checkout",{...o,method:"POST",body:t})},retrieveCheckout(t,o){return e.fetch(`/me/access/checkout/${encodeURIComponent(t)}`,o)},grant(t){return e.fetch("/me/access/grant",t)},portal(t,o){return e.fetch("/me/access/portal",{...o,method:"POST",body:t})}}}}function Ye(e){return{async verify(t,o){let n=await e.fetch("/password/verify",{...o,method:"POST",body:{password:t}});return await e.storage.setItem(I,n.token),n}}}function ze(e){return{offers(t){return e.fetch("/paywall/offers/enabled",t)}}}function We(e){return{list(t,o){return e.fetch("/plans",{...o,query:t})},salesLed(t){return e.fetch("/sales-led-plans",t)}}}function Ze(e){return{retrieve(t,o){return e.fetch(`/profile-fields/${encodeURIComponent(t)}`,o)},choices(t,o,n,r){return e.fetch(`/profile-fields/${encodeURIComponent(t)}/${encodeURIComponent(o)}/choices`,{...r,query:n})}}}function Xe(e){return{resolve(t,o){return e.fetch("/redirects/resolve",{...o,query:{path:t}})}}}function et(e){return{companies:{list(t){return e.fetch("/salaries/companies",t)}},titles:{list(t,o){return e.fetch("/salaries/titles",{...o,query:t})},retrieve(t,o,n){return e.fetch(`/salaries/titles/${encodeURIComponent(t)}`,{...n,query:o})},locations(t,o,n){return e.fetch(`/salaries/titles/${encodeURIComponent(t)}/locations`,{...n,query:o})},location(t,o,n,r){return e.fetch(`/salaries/titles/${encodeURIComponent(t)}/${encodeURIComponent(o)}`,{...r,query:n})}},skills:{list(t,o){return e.fetch("/salaries/skills",{...o,query:t})},retrieve(t,o,n){return e.fetch(`/salaries/skills/${encodeURIComponent(t)}`,{...n,query:o})},locations(t,o,n){return e.fetch(`/salaries/skills/${encodeURIComponent(t)}/locations`,{...n,query:o})},location(t,o,n,r){return e.fetch(`/salaries/skills/${encodeURIComponent(t)}/${encodeURIComponent(o)}`,{...r,query:n})}},locations:{list(t,o){return e.fetch("/salaries/locations",{...o,query:t})},retrieve(t,o,n){return e.fetch(`/salaries/locations/${encodeURIComponent(t)}`,{...n,query:o})},titles(t,o,n){return e.fetch(`/salaries/locations/${encodeURIComponent(t)}/titles`,{...n,query:o})},skills(t,o,n){return e.fetch(`/salaries/locations/${encodeURIComponent(t)}/skills`,{...n,query:o})}}}}function tt(e){return{suggest(t,o){return e.fetch("/search/suggest",{...o,query:t})}}}function ot(e){return Object.assign(t=>e.fetch("/sitemap",t),{entries(t,o,n){return e.fetch(`/sitemap/${encodeURIComponent(t)}`,{...n,query:o})}})}function nt(e){return{list(t,o){let n=t?{...t,customFields:t.customFields?JSON.stringify(t.customFields):void 0,objectReferences:t.objectReferences?JSON.stringify(t.objectReferences):void 0}:void 0;return e.fetch("/talent",{...o,query:n})},retrieve(t,o){return e.fetch(`/talent/${encodeURIComponent(t)}`,o)}}}function it(e,t){return{resolve(o,n){return e.fetch(`/${t}/${encodeURIComponent(o)}`,n)}}}function rt(e,t){return{...it(e,t),list(o,n){return e.fetch(`/${t}`,{...n,query:o})}}}function st(e){return{categories:rt(e,"categories"),skills:rt(e,"skills"),remotePermits:{list(t){return e.fetch("/remote-permits",t)}},places:{...it(e,"places"),list(t,o){return e.fetch("/places",{...o,query:t})}}}}function at(e,t,o){async function*n(){let r=t;for(;;){let i=await e(r,o);if(yield i,!i.hasMore||i.nextCursor===null)return;let{offset:s,...a}=r??{};r={...a,cursor:i.nextCursor}}}return{pages:n,async*[Symbol.asyncIterator](){for await(let r of n())yield*r.data},async toArray({limit:r}){let i=[];for await(let s of n())if(i.push(...s.data),i.length>=r)break;return i.slice(0,r)}}}function lt(e,t){return e.authorBoardUserId!==t}function ct(e,t){let o=e.some(r=>r.authorBoardUserId===t);return e.some(r=>r.authorBoardUserId!==t)&&!o}function pt(e,t){for(let o=e.length-1;o>=0;o--){let n=e[o];if(n.authorBoardUserId!==t)return n.id}return null}function re(e){let t=e.replace(/^[\u0000-\u0020]+|[\u0000-\u0020]+$/g,"").replace(/[\t\n\r]/g,""),o=/^([a-z][a-z0-9+.-]*):/i.exec(t)?.[1]?.toLowerCase();return o===void 0?!0:o==="http"||o==="https"||o==="mailto"}function ie(e){let t=e.applicationUrl&&re(e.applicationUrl)?e.applicationUrl:null;return!t&&!e.jobSlug?{kind:"none"}:e.registrationWall&&!e.viewer?{kind:"sign-in",reason:"registration-wall"}:t?{kind:"external",url:t}:e.jobSlug?e.viewer?e.viewer.emailVerified?e.applied?{kind:"applied"}:{kind:"native",jobSlug:e.jobSlug}:{kind:"verify-email"}:e.allowGuestApply?{kind:"guest",jobSlug:e.jobSlug}:{kind:"sign-in",reason:"native-apply"}:{kind:"none"}}function ut(e){let t=ie({...e,registrationWall:!1,allowGuestApply:!1});return t.kind==="sign-in"?{kind:"sign-in"}:t}function Io(e){let t=new F({baseUrl:e.baseUrl??Me,board:e.board,storage:xe(e.auth?.storage,e.board),globalHeaders:e.globalHeaders,onRequest:e.onRequest,onResponse:e.onResponse,logger:e.logger});return{client:t,context(o){return t.fetch("",o)},seo(o){return t.fetch("/seo",o)},jobs:He(t),embed:je(t),companies:$e(t),blog:De(t),auth:Ne(t,e.board),me:Ve(t),invites:Qe(t),password:Ye(t),taxonomy:st(t),search:tt(t),locations:Ke(t),redirects:Xe(t),jobAlerts:qe(t),jobPosting:Ge(t),salaries:et(t),talent:nt(t),profileFields:Ze(t),plans:We(t),paywall:ze(t),sitemap:ot(t)}}var se={};A(se,{DEFAULT_SORT:()=>Fo,EMPLOYMENT_TYPES:()=>dt,JOB_SORTS:()=>ft,REMOTE_OPTIONS:()=>mt,SENIORITIES:()=>yt,parseCategory:()=>bt,parseCompany:()=>ht,parseListingFilters:()=>xo,parseSeniority:()=>gt});var mt=["on_site","hybrid","remote"],dt=["full_time","part_time","contract","internship","temporary"],yt=["entry_level","associate","mid_level","senior","lead","principal","director","executive"],ft=["relevance","newest","salary_high"],Fo="relevance";var ko=new Set(yt);function gt(e){let t=Array.isArray(e)?e:typeof e=="string"&&e?e.split(","):[],o=[],n=new Set;for(let r of t){if(typeof r!="string")continue;let i=r.trim().toLowerCase().normalize("NFC");!i||n.has(i)||ko.has(i)&&(n.add(i),o.push(i))}return o.length>0?o:void 0}function ht(e){return St(e,10)}function bt(e){return St(e,10)}function St(e,t){let o=Array.isArray(e)?e:typeof e=="string"&&e?e.split(","):[],n=[],r=new Set;for(let i of o){if(typeof i!="string")continue;let s=i.trim().toLowerCase().normalize("NFC");if(!(!s||r.has(s))&&(r.add(s),n.push(s),n.length>=t))break}return n.length>0?n:void 0}function xo(e){return{q:typeof e.q=="string"&&e.q?e.q:void 0,remoteOption:mt.includes(e.remoteOption)?e.remoteOption:void 0,employmentType:dt.includes(e.employmentType)?e.employmentType:void 0,seniority:gt(e.seniority),company:ht(e.company),category:bt(e.category),sort:ft.includes(e.sort)?e.sort:void 0}}var be={};A(be,{COMMUTE_RADIUS_MAX_KM:()=>eo,COMMUTE_RADIUS_MIN_KM:()=>Xt,COUNTRY_CODES:()=>Z,MILES_COUNTRIES:()=>fe,buildJobBreadcrumbs:()=>W,countryOptions:()=>Wt,defaultCommuteRadiusKm:()=>no,defaultSearchRadius:()=>so,distanceUnitForCountry:()=>oo,distanceUnitToKm:()=>X,formatDate:()=>Rt,formatDistance:()=>ao,formatMonthYear:()=>vt,formatPublishedRelativeDate:()=>Bt,formatSalaryRange:()=>Et,formatSalaryStat:()=>q,formatSalaryStatRange:()=>k,kmToDistanceUnit:()=>ro,kmToMiles:()=>he,milesToKm:()=>ge,normalizeWebsiteUrl:()=>U,resolveCustomFieldDisplay:()=>Zt,searchRadiusOptions:()=>io});function C(e){let t=e.trim();if(!t)return null;try{let o=t.replace(/_/g,"-"),[n]=Intl.getCanonicalLocales(o);if(!n)return null;let[r]=Intl.NumberFormat.supportedLocalesOf([n]);return r??null}catch{return null}}var Ct=new Map,Ot=new Map,_t=new Map,Pt=new Map;function Uo(e){let t=Ct.get(e);return t||(t=new Intl.RelativeTimeFormat(e,{numeric:"always",style:"short"}),Ct.set(e,t)),t}function Mo(e){let t=Ot.get(e);return t||(t=new Intl.RelativeTimeFormat(e,{numeric:"auto",style:"short"}),Ot.set(e,t)),t}function wo(e){let t=_t.get(e);return t||(t=new Intl.DateTimeFormat(e,{dateStyle:"medium",timeZone:"UTC"}),_t.set(e,t)),t}function Jo(e){let t=Pt.get(e);return t||(t=new Intl.DateTimeFormat(e,{month:"short",year:"numeric",timeZone:"UTC"}),Pt.set(e,t)),t}function ae(e,t,o){try{return Uo(o).format(e,t)}catch{return null}}function Rt(e,t){if(!t)return null;let o=new Date(t);if(Number.isNaN(o.getTime()))return null;let n=C(e);if(!n)return null;try{return wo(n).format(o)}catch{return o.toISOString().split("T")[0]}}function Bt(e,t,o=Date.now()){if(!t)return null;let n=new Date(t);if(Number.isNaN(n.getTime()))return null;let r=C(e);if(!r)return null;let i=o-n.getTime(),s=Math.abs(i),a=60*1e3,l=60*a,c=24*l,p=7*c,m=30*c,d=365*c;if(s<a)try{return Mo(r).format(0,"second")}catch{return ae(0,"second",r)}let y=[{unit:"year",ms:d},{unit:"month",ms:m},{unit:"week",ms:p},{unit:"day",ms:c},{unit:"hour",ms:l},{unit:"minute",ms:a}];for(let g of y)if(s>=g.ms){let R=Math.round(s/g.ms),u=i>=0?-R:R;return ae(u,g.unit,r)}let f=Math.round(s/1e3),O=i>=0?-f:f;return ae(O,"second",r)}function vt(e,t){if(!t)return null;let n=/^\d{4}-\d{2}(-\d{2})?$/.test(t)?new Date(t.length===7?`${t}-01T00:00:00.000Z`:`${t}T00:00:00.000Z`):new Date(t);if(Number.isNaN(n.getTime()))return null;let r=C(e);if(!r)return null;try{return Jo(r).format(n)}catch{return null}}var j=new Map;function le(e,t,o,n="symbol",r="compact"){let i=`${t}:${o}:${n}:${r}`,s=j.get(i);if(s===void 0){try{let a={style:"currency",currency:o,currencyDisplay:n,notation:r};r==="compact"&&(a.compactDisplay="short",a.maximumFractionDigits=1,a.minimumFractionDigits=0),s=new Intl.NumberFormat(t,a)}catch{s=null}j.set(i,s)}return s?s.format(e):null}function ce(e,t,o){if(typeof e.formatRange=="function")try{return e.formatRange(t,o)}catch{}try{return`${e.format(t)}\u2013${e.format(o)}`}catch{return null}}function No(e,t,o,n,r="symbol",i="compact"){let s=`${o}:${n}:${r}:${i}:range`,a=j.get(s);if(a===void 0){try{let l={style:"currency",currency:n,currencyDisplay:r,notation:i};i==="compact"&&(l.compactDisplay="short",l.maximumFractionDigits=1,l.minimumFractionDigits=0),a=new Intl.NumberFormat(o,l)}catch{a=null}j.set(s,a)}return a?ce(a,e,t):null}var Do=new Set(["per_year","per_month","per_week","per_day","per_hour"]);function $o(...e){let t=!1;for(let o of e)if(!(o==null||!Number.isFinite(o))&&(t=!0,Math.abs(o)>=1e3))return"compact";return t?"standard":"compact"}function Et(e,t,o,n,r=null,i="symbol",s){let a=t==null||Number.isFinite(t),l=o==null||Number.isFinite(o);if(!a||!l||t==null&&o==null)return null;let c=r?.trim().toUpperCase()||null;if(!c)return null;let p=C(e);if(!p)return null;let m=s??$o(t,o),d=typeof n=="string"&&Do.has(n)?n:null;if(t!=null&&o!=null){let f=t<=o?t:o,O=t<=o?o:t,g=f===O?le(f,p,c,i,m):No(f,O,p,c,i,m);return g?{text:g,timeframe:d,bound:"range"}:null}if(t!=null){let f=le(t,p,c,i,m);return f?{text:f,timeframe:d,bound:"from"}:null}let y=le(o,p,c,i,m);return y?{text:y,timeframe:d,bound:"upTo"}:null}var At=new Map;function Tt(...e){let t=!1;for(let o of e)if(!(o==null||!Number.isFinite(o))&&(t=!0,Math.abs(o)>=1e3))return"compact";return t?"standard":"compact"}function Lt(e,t,o){let n=`${e}:${t}:${o}`,r=At.get(n);if(r!==void 0)return r;let i;try{let s={style:"currency",currency:t,notation:o};o==="compact"&&(s.compactDisplay="short",s.minimumFractionDigits=0,s.maximumFractionDigits=1),i=new Intl.NumberFormat(e,s)}catch{i=null}return At.set(n,i),i}function q(e,t,o,n){if(!Number.isFinite(t))return null;let r=o?.trim().toUpperCase()||null;if(!r)return null;let i=C(e);if(!i)return null;let s=n??Tt(t),a=Lt(i,r,s);return a?a.format(t):null}function k(e,t,o,n,r){if(!Number.isFinite(t)||!Number.isFinite(o))return null;let i=n?.trim().toUpperCase()||null;if(!i)return null;let s=C(e);if(!s)return null;let a=r??Tt(t,o),l=Lt(s,i,a);if(!l)return null;let c=Math.min(t,o),p=Math.max(t,o);return c===p?l.format(c):ce(l,c,p)}var Q=["entry_level","associate","mid_level","senior","lead","principal","director","executive"];function It(e){return[...e].sort((t,o)=>{let n=Q.indexOf(t.seniority),r=Q.indexOf(o.seniority);return(n===-1?999:n)-(r===-1?999:r)})}var jo={unitText:"YEAR",duration:"P1Y"};function x(e,t,o,n,r={}){return{"@type":"MonetaryAmountDistribution",...e!==void 0?{name:e}:{},currency:t,minValue:o,maxValue:n,...r,...jo}}function pe(e,t,o,n){return e.map(r=>{let i=n?.seniorityName?.({seniority:r.seniority,entity:o});return x(i,t,r.avgSalaryMin,r.avgSalaryMax)})}function G(e,t,o,n){return{"@context":"https://schema.org","@type":e,name:t,...o,estimatedSalary:n}}function Ft(e,t,o,n){if(!o)return[];let r=k(e,o.avgMin,o.avgMax,n);return[{kind:"average",label:t,range:r,avgMin:o.avgMin,avgMax:o.avgMax,currency:n,jobCount:o.jobCount},{kind:"methodology",label:t}]}function H(e){return e.length===0?null:{"@context":"https://schema.org","@type":"ItemList",numberOfItems:e.length,itemListElement:e.map((t,o)=>({"@type":"ListItem",position:o+1,name:t.name,url:t.url}))}}function kt(e){return e.length===0?null:{"@context":"https://schema.org","@type":"FAQPage",mainEntity:e.map(t=>({"@type":"Question",name:t.q,acceptedAnswer:{"@type":"Answer",text:t.a}}))}}function xt(e,t){return e.overallSalary?G("Occupation",e.categoryName,{},[x(e.categoryName,e.currency,e.overallSalary.avgMin,e.overallSalary.avgMax,{...e.boardP25Min?{percentile25:e.boardP25Min}:{},...e.boardP75Max?{percentile75:e.boardP75Max}:{}}),...pe(e.bySeniority,e.currency,e.categoryName,t)]):null}function Ut(e){return e.overallSalary?G("Occupation",e.skillName,{},[x(e.skillName,e.currency,e.overallSalary.avgMin,e.overallSalary.avgMax,{median:Math.round((e.overallSalary.medianMin+e.overallSalary.medianMax)/2)})]):null}function Mt(e,t){return!t?.occupationUrl||!(e.adminLevel==="city"||e.adminLevel==="locality")?null:H(e.topCategories.map(n=>({name:n.categoryName,url:t.occupationUrl(n)})))}function wt(e,t){return e.overall?G("Occupation",e.name,{occupationLocation:{"@type":"AdministrativeArea",name:e.placeName,address:{"@type":"PostalAddress",addressCountry:e.countryCode}}},[x(e.name,e.currency,e.overall.avgMin,e.overall.avgMax,{...e.overall.p25Min?{percentile25:e.overall.p25Min}:{},...e.overall.p75Max?{percentile75:e.overall.p75Max}:{}}),...pe(e.bySeniority,e.currency,e.name,t)]):null}function Jt(e,t){return t?.occupationUrl?H(e.byCategory.map(o=>({name:o.categoryName,url:t.occupationUrl(o)}))):null}function Nt(e,t){return e.overallSalary?G("Occupation",e.categoryName,{occupationalCategory:e.categoryName,hiringOrganization:{"@type":"Organization",name:e.companyName}},[x(e.categoryName,e.currency,e.overallSalary.avgMin,e.overallSalary.avgMax,{...e.boardCategoryP25Min?{percentile25:e.boardCategoryP25Min}:{},...e.boardCategoryP75Max?{percentile75:e.boardCategoryP75Max}:{}}),...pe(e.bySeniority,e.currency,e.categoryName,t)]):null}function jt(e,t){return e.company?.name??t.legalName??t.contact?.legalName??t.name??null}var Dt={high_school:"high school",associate_degree:"associate degree",bachelor_degree:"bachelor degree",professional_certificate:"professional certificate",postgraduate_degree:"postgraduate degree"},Qo={full_time:"FULL_TIME",part_time:"PART_TIME",contract:"CONTRACTOR",internship:"INTERN",temporary:"TEMPORARY",volunteer:"VOLUNTEER",other:"OTHER"},qo={per_year:"YEAR",per_month:"MONTH",per_week:"WEEK",per_day:"DAY",per_hour:"HOUR"},me=["AF","AX","AL","DZ","AS","AD","AO","AI","AQ","AG","AR","AM","AW","AU","AT","AZ","BS","BH","BD","BB","BY","BE","BZ","BJ","BM","BT","BO","BA","BW","BV","BR","IO","VG","BN","BG","BF","BI","KH","CM","CA","CV","BQ","KY","CF","TD","CL","CN","CX","CC","CO","KM","CK","CR","HR","CU","CW","CY","CZ","DK","DJ","DM","DO","CD","EC","EG","SV","GQ","ER","EE","SZ","ET","FK","FO","FJ","FI","FR","GF","PF","TF","GA","GM","GE","DE","GH","GI","GR","GL","GD","GP","GU","GT","GG","GN","GW","GY","HT","HM","HN","HK","HU","IS","IN","ID","IR","IQ","IE","IM","IL","IT","CI","JM","JP","JE","JO","KZ","KE","KI","XK","KW","KG","LA","LV","LB","LS","LR","LY","LI","LT","LU","MO","MG","MW","MY","MV","ML","MT","MH","MQ","MR","MU","YT","MX","FM","MD","MC","MN","ME","MS","MA","MZ","MM","NA","NR","NP","NL","NC","NZ","NI","NE","NG","NU","NF","MK","MP","NO","OM","PK","PW","PS","PA","PG","PY","PE","PH","PN","PL","PT","PR","QA","CG","RE","RO","RU","RW","BL","SH","KN","LC","MF","PM","VC","WS","SM","ST","SA","SN","RS","SC","SL","SG","SX","SK","SI","SB","SO","ZA","GS","KR","SS","ES","LK","SD","SR","SJ","SE","CH","SY","TW","TJ","TZ","TH","TL","TG","TK","TO","TT","TN","TR","TM","TC","TV","UG","UA","AE","GB","US","UM","VI","UY","UZ","VU","VA","VE","VN","WF","EH","YE","ZM","ZW"];function Qt({job:e,board:t,shareUrl:o}){let n=Wo(e),r=Zo(e),i=ue({"@context":"https://schema.org/","@type":"JobPosting",title:e.title,description:e.description??"",identifier:Go(e,t),datePosted:$t(e.publishedAt),validThrough:$t(e.expiresAt),employmentType:e.employmentType?Qo[e.employmentType]??"OTHER":"OTHER",hiringOrganization:Ho(e,t),jobLocation:Vo(e),jobLocationType:e.remoteOption==="remote"?"TELECOMMUTE":void 0,applicantLocationRequirements:e.remoteOption==="remote"?zo(e):null,baseSalary:Ko(e),educationRequirements:n,experienceRequirements:r,experienceInPlaceOfEducation:e.experienceInPlaceOfEducation===!0&&n&&r?!0:void 0,url:o});return!i||Array.isArray(i)||Object.keys(i).length===0?null:i}function Go(e,t){let o=jt(e,t),n={"@type":"PropertyValue",value:e.id};return o&&(n.name=o),n}function Ho(e,t){let o=jt(e,t);if(!o)return null;let n={"@type":"Organization",name:o},r=e.company?.website??null,i=r?U(r):null;i&&(n.sameAs=i);let s=e.company?.logoUrl??t.logoUrl??null;return s&&(n.logo=s),n}function U(e){let t=e.trim();return t?/^https?:\/\//i.test(t)?t:`https://${t}`:null}function Ko(e){let t=e.salaryCurrency?.trim(),o=typeof e.salaryMin=="number",n=typeof e.salaryMax=="number";if(!t||!o&&!n)return null;let r={"@type":"QuantitativeValue"};o&&(r.minValue=e.salaryMin),n&&(r.maxValue=e.salaryMax);let i=e.salaryTimeframe?qo[e.salaryTimeframe]:void 0;return i&&(r.unitText=i),!o&&n&&typeof e.salaryMax=="number"?(r.value=e.salaryMax,r.minValue=e.salaryMax):!n&&o&&typeof e.salaryMin=="number"&&(r.value=e.salaryMin,r.maxValue=e.salaryMin),{"@type":"MonetaryAmount",currency:t.toUpperCase(),value:r}}function Vo(e){let t=e.officeLocations.map(o=>Yo({countryCode:o.countryCode,region:o.region,locality:o.city??o.locality,postalCode:o.postalCode,name:o.displayName})).filter(o=>o!==null);return t.length===0?null:t.length===1?t[0]:t}function Yo({countryCode:e,region:t,locality:o,postalCode:n,name:r}){let i={"@type":"PostalAddress"},s=e?.trim(),a=t?.trim(),l=o?.trim(),c=n?.trim(),p=r?.trim();s&&(i.addressCountry=s.toUpperCase()),a&&(i.addressRegion=a),l&&(i.addressLocality=l),c&&(i.postalCode=c);let m=Object.keys(i).length>1;if(!m&&!p)return null;let d={"@type":"Place"};return p&&(d.name=p),m&&(d.address=i),d}function zo(e){if(e.remoteWorldwide)return me.map(n=>({"@type":"Country",name:n}));let t=[],o=new Set;for(let n of e.remoteWorkPermitCountryCodes??[]){let r=n?.trim().toUpperCase();!r||o.has(r)||(o.add(r),t.push({"@type":"Country",name:r}))}for(let n of e.remoteWorkPermitSubdivisionCodes??[]){let r=n?.split("-")[0]?.trim().toUpperCase();!r||o.has(r)||(o.add(r),t.push({"@type":"Country",name:r}))}return t.length===0?null:t.length===1?t[0]:t}function Wo(e){let t=e.educationRequirements;if(!t||t.length===0)return null;if(t.includes("no_requirements"))return"no requirements";let o=t.filter(n=>n in Dt).map(n=>({"@type":"EducationalOccupationalCredential",credentialCategory:Dt[n]}));return o.length>0?o:null}function Zo(e){let t=e.experienceMonths;return typeof t!="number"?null:t===0?"no requirements":{"@type":"OccupationalExperienceRequirements",monthsOfExperience:t}}function $t(e){if(!e)return null;let t=new Date(e);return Number.isNaN(t.getTime())?null:t.toISOString()}function ue(e){let t=o=>o==null?!1:Array.isArray(o)?o.length>0:typeof o=="object"?Object.keys(o).length>0:!0;if(Array.isArray(e))return e.map(o=>ue(o)).filter(t);if(e&&typeof e=="object"){let o=Object.entries(e).map(([n,r])=>[n,ue(r)]).filter(([,n])=>t(n));return Object.fromEntries(o)}return e}var ye={};A(ye,{BOARD_PATHS:()=>Y,blogAuthorPath:()=>rn,blogPostPath:()=>Vt,blogTagPath:()=>Yt,boardUrl:()=>z,companyMarketPath:()=>Kt,companyPath:()=>Ht,companySalaryPath:()=>en,encodePathSegment:()=>h,goAlertsConfirmPath:()=>cn,goAlertsManagePath:()=>ln,goJobPath:()=>an,jobDetailPath:()=>de,jobsCategoryPath:()=>K,jobsLocationCategoryPath:()=>V,jobsLocationPath:()=>M,jobsLocationSkillPath:()=>Gt,jobsSkillPath:()=>qt,salaryLocationPath:()=>nn,salarySkillPath:()=>on,salaryTitlePath:()=>tn,suggestionPath:()=>Xo,talentProfilePath:()=>sn});function h(e){try{return encodeURIComponent(decodeURIComponent(e)).replace(/%3A/gi,":")}catch{return encodeURIComponent(e).replace(/%3A/gi,":")}}function de(e,t){return`/companies/${h(e)}/jobs/${h(t)}`}function K(e){return`/jobs/${h(e)}`}function qt(e){return`/jobs/skills/${h(e)}`}function M(e){return`/jobs/locations/${h(e)}`}function V(e,t){return`${M(e)}/${h(t)}`}function Gt(e,t){return`${M(e)}/skills/${h(t)}`}function Ht(e){return`/companies/${h(e)}`}function Kt(e){return`/companies/markets/${h(e)}`}function Xo(e,t){let o=t.location?.trim()||void 0;return t.scope==="blog"?e.type==="post"?Vt(e.slug):e.type==="tag"?Yt(e.slug):null:t.scope==="jobs"?e.type==="company"||e.type==="market"||e.type==="post"||e.type==="tag"?null:e.termType==="skill"?o?Gt(o,e.canonicalSlug):qt(e.canonicalSlug):o?V(o,e.canonicalSlug):K(e.canonicalSlug):e.type==="company"?Ht(e.slug):e.type==="market"?Kt(e.slug):null}function en(e){return`/companies/${h(e)}/salaries`}function tn(e){return`/salaries/titles/${h(e)}`}function on(e){return`/salaries/skills/${h(e)}`}function nn(e){return`/salaries/locations/${h(e)}`}function Vt(e){return`/blog/${h(e)}`}function Yt(e){return`/blog/tag/${h(e)}`}function rn(e){return`/blog/author/${h(e)}`}function sn(e){return`/p/${h(e)}`}var Y={home:"/",jobs:"/jobs",companies:"/companies",salaries:"/salaries",salaryCompanies:"/salaries/companies",salaryTitles:"/salaries/titles",salarySkills:"/salaries/skills",salaryLocations:"/salaries/locations",blog:"/blog",about:"/about",privacyPolicy:"/privacy-policy",termsOfService:"/terms-of-service",cookiePolicy:"/cookie-policy",impressum:"/impressum",talent:"/talent",employers:"/employers",alertsManage:"/alerts/manage",alertsConfirm:"/alerts/confirm"};function an(e){return`/go/job/${e}`}function ln(){return"/go/alerts-manage"}function cn(){return"/go/alerts-confirm"}function z(e,t){return`${e.replace(/\/+$/,"")}${t}`}function zt(e,t={}){let o=e.map(r=>{let i=r.label?.trim();return i?{name:i,href:r.href?.trim()??null}:null}).filter(r=>!!r);return o.length<2?null:{"@context":"https://schema.org","@type":"BreadcrumbList",itemListElement:o.map((r,i)=>{let s=r.href?pn(r.href,t.origin??null):null,a={"@type":"ListItem",position:i+1,name:r.name};return s&&(a.item=s),a})}}function pn(e,t){if(un(e))return e;if(!t)return null;let o=e.startsWith("/")?e:`/${e}`;return`${t}${o}`}function un(e){return/^https?:\/\//i.test(e)}function W(e){let t=[{kind:"home",path:Y.home},{kind:"jobs",path:Y.jobs}],o=null;for(let r of e.placeHierarchy)o=r.slug,t.push({kind:"place",name:r.name,path:M(r.slug)});let n=e.categories[0];return n&&t.push({kind:"category",name:n.name,path:o?V(o,n.slug):K(n.slug)}),t.push({kind:"job",name:e.title}),t}var Z=["AD","AE","AF","AG","AI","AL","AM","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CR","CU","CV","CW","CX","CY","CZ","DE","DJ","DK","DM","DO","DZ","EC","EE","EG","EH","ER","ES","ET","FI","FJ","FK","FM","FO","FR","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SV","SX","SY","SZ","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TR","TT","TV","TW","TZ","UA","UG","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XK","YE","YT","ZA","ZM","ZW"];function mn(e){try{return new Intl.DisplayNames([e],{type:"region"})}catch{return null}}function dn(e){try{return new Intl.Collator(e)}catch{return new Intl.Collator}}function Wt(e){let t=C(e);if(!t)return Z.map(r=>({code:r,name:r})).sort((r,i)=>r.code<i.code?-1:r.code>i.code?1:0);let o=mn(t),n=dn(t).compare;return Z.map(r=>({code:r,name:o?.of(r)??r})).sort((r,i)=>n(r.name,i.name))}function yn(e,t){if(!Array.isArray(t)||t.length===0)return null;let o=t.map(n=>e.options?.find(r=>r.key===n)?.label).filter(n=>!!n);return o.length>0?o:null}function fn(e,t){switch(e.type){case"number":return null;case"multi_select":return null;case"single_select":return typeof t!="string"?null:e.options?.find(o=>o.key===t)?.label??null;default:return typeof t=="string"&&t.trim()!==""?t:null}}function Zt(e,t,o){let n=[];for(let r of t??[]){let i=o?.[r.key];if(r.type==="boolean"){typeof i=="boolean"&&n.push({key:r.key,label:r.label,kind:"boolean",value:i});continue}if(r.type==="number"){typeof i=="number"&&Number.isFinite(i)&&n.push({key:r.key,label:r.label,kind:"number",value:i});continue}if(r.type==="multi_select"){let a=yn(r,i);a&&n.push({key:r.key,label:r.label,kind:"multi_select",values:a});continue}let s=fn(r,i);s!==null&&n.push({key:r.key,label:r.label,kind:"text",value:s})}return n}var fe=["US","GB","LR","MM"],Xt=1,eo=250;var gn=new Set(fe);function to(e){return typeof e=="string"&&gn.has(e.trim().toUpperCase())}function oo(e){return to(e)?"mi":"km"}function no(e){return to(e)?40:50}function ge(e){return e*1.609344}function he(e){return e/1.609344}function ro(e,t){return t==="mi"?he(e):e}function X(e,t){return t==="mi"?ge(e):e}var hn=[5,10,25,50,100];function io(e){return hn.map(t=>({value:t,unit:e,km:X(t,e)}))}function so(e){let t=e==="mi"?25:50;return{value:t,unit:e,km:X(t,e)}}function ao(e,t,o){return new Intl.NumberFormat(o,{style:"unit",unit:t==="mi"?"mile":"kilometer",unitDisplay:"short",maximumFractionDigits:1}).format(e)}var Se={};A(Se,{ALL_COUNTRY_CODES:()=>me,SENIORITY_ORDER:()=>Q,buildJobBreadcrumbs:()=>W,buildSalaryFaq:()=>Ft,companyCategorySalaryJsonLd:()=>Nt,companySalaryJsonLd:()=>Jt,createAuthorProfileJsonLd:()=>co,createBlogArticleJsonLd:()=>lo,createBreadcrumbJsonLd:()=>zt,createJobPostingJsonLd:()=>Qt,crossAxisSalaryJsonLd:()=>wt,faqJsonLd:()=>kt,formatSalaryStat:()=>q,formatSalaryStatRange:()=>k,itemListJsonLd:()=>H,listingHead:()=>po,listingJsonLd:()=>uo,locationSalaryJsonLd:()=>Mt,normalizeWebsiteUrl:()=>U,skillSalaryJsonLd:()=>Ut,sortBySeniority:()=>It,titleSalaryJsonLd:()=>xt});function lo({post:e,boardName:t,permalink:o,ogImageUrl:n}){let r={"@context":"https://schema.org","@type":"Article",headline:e.title,url:o,mainEntityOfPage:{"@type":"WebPage","@id":o},publisher:{"@type":"Organization",name:t}};e.customExcerpt&&(r.description=e.customExcerpt),e.publishedAt&&(r.datePublished=e.publishedAt);let i=e.coverUrl??n;i&&(r.image=i);let s=e.authors[0];return s&&(r.author={"@type":"Person",name:s.name,...s.websiteUrl?{url:s.websiteUrl}:{}}),r}function co({author:e,canonical:t,description:o,origin:n,posts:r,totalPosts:i}){if(!e.name)return null;let s=o.trim(),a=[ee(e.websiteUrl),ee(e.twitterUrl),ee(e.linkedinUrl),ee(e.githubUrl)].filter(d=>!!d),l=`${t}#profile`,c=r.slice(0,5).map(d=>{let y=bn(n,`/blog/${d.slug}`);return y?{"@type":"Article",headline:d.title,url:y,datePublished:d.publishedAt,author:{"@id":l}}:null}).filter(d=>d!==null),p=i>0?{"@type":"InteractionCounter",interactionType:"https://schema.org/WriteAction",userInteractionCount:i}:void 0,m={"@context":"https://schema.org","@type":"ProfilePage",url:t,mainEntity:{"@type":"Person","@id":l,name:e.name,alternateName:e.slug??void 0,identifier:e.id??void 0,description:s||void 0,image:e.avatarUrl??void 0,sameAs:a.length>0?a:void 0,url:t,mainEntityOfPage:t,agentInteractionStatistic:p}};return c.length>0&&(m.hasPart=c),m}function ee(e){if(!e)return null;let t=e.trim();if(!t)return null;try{let o=t.startsWith("http://")||t.startsWith("https://")?t:`https://${t}`;return new URL(o).toString()}catch{return null}}function bn(e,t){if(!e||!t)return null;try{return new URL(t,e).toString()}catch{return null}}function po(e){let t=e.title,o=e.description,n=`${e.origin}${e.path}`;return{meta:[{title:t},{name:"description",content:o},{property:"og:title",content:t},{property:"og:description",content:o},{property:"og:type",content:"website"},{property:"og:url",content:n}],links:[{rel:"canonical",href:n}]}}function uo(e){let t=[];e.breadcrumbs.length>=2&&t.push({"@context":"https://schema.org","@type":"BreadcrumbList",itemListElement:e.breadcrumbs.map((n,r)=>({"@type":"ListItem",position:r+1,name:n.name,...n.path?{item:z(e.origin,n.path)}:{}}))});let o=(e.jobs??[]).filter(n=>n.company!=null&&!!n.company.slug);return o.length>0&&t.push({"@context":"https://schema.org","@type":"ItemList",itemListElement:o.map((n,r)=>({"@type":"ListItem",position:r+1,url:z(e.origin,de(n.company.slug,n.slug))}))}),t}var Ce={};A(Ce,{createSuggestController:()=>On});function Sn(e){return typeof DOMException<"u"&&e instanceof DOMException&&e.name==="AbortError"||e instanceof Error&&e.name==="AbortError"}function Cn(e){try{let t=0;for(let o of new Intl.Segmenter(void 0,{granularity:"grapheme"}).segment(e))t+=1;return t}catch{return[...e].length}}function mo(e,t){return t.size===0?e.slice():e.filter(o=>!(o.type==="company"&&t.has(o.slug.toLowerCase().normalize("NFC"))))}function On(e,t){let o=t?.minChars??2,n=t?.debounceMs??250,r=t?.limit,i=!1,s={query:"",items:[],status:"idle",error:null},a=[],l=new Set,c=0,p=null,m=null,d=new Set;function y(){for(let u of d)u()}function f(u){s=u,y()}function O(){p!==null&&(globalThis.clearTimeout(p),p=null)}function g(){m&&(m.abort(),m=null)}function R(u){let b=++c;g();let _=new AbortController;m=_;let E={q:u};r!==void 0&&(E.limit=r),e.search.suggest(E,{signal:_.signal}).then(B=>{i||b!==c||(m=null,a=B.items,f({query:s.query,items:mo(a,l),status:"ready",error:null}))}).catch(B=>{i||b!==c||Sn(B)||(m=null,f({query:s.query,items:s.items,status:"error",error:B}))})}return{setQuery(u){if(i)return;let b=u.trim();if(O(),Cn(b)<o){c+=1,g(),a=[],f({query:u,items:[],status:"idle",error:null});return}c+=1,g(),f({query:u,items:s.items,status:"loading",error:null}),p=globalThis.setTimeout(()=>{p=null,!i&&R(b)},n)},setExcludedCompanySlugs(u){i||(l=new Set(u.map(b=>b.trim().toLowerCase().normalize("NFC")).filter(Boolean)),f({query:s.query,items:mo(a,l),status:s.status,error:s.error}))},getState(){return s},subscribe(u){return i?()=>{}:(d.add(u),()=>{d.delete(u)})},dispose(){i||(i=!0,O(),g(),c+=1,d.clear())}}}return So(_n);})();
1
+ "use strict";var CavunoBoard=(()=>{var w=Object.defineProperty;var yo=Object.getOwnPropertyDescriptor;var fo=Object.getOwnPropertyNames;var go=Object.prototype.hasOwnProperty;var ho=(e,t,o)=>t in e?w(e,t,{enumerable:!0,configurable:!0,writable:!0,value:o}):e[t]=o;var A=(e,t)=>{for(var o in t)w(e,o,{get:t[o],enumerable:!0})},bo=(e,t,o,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of fo(t))!go.call(e,r)&&r!==o&&w(e,r,{get:()=>t[r],enumerable:!(n=yo(t,r))||n.enumerable});return e};var So=e=>bo(w({},"__esModule",{value:!0}),e);var P=(e,t,o)=>ho(e,typeof t!="symbol"?t+"":t,o);var _n={};A(_n,{ACCESS_TOKEN_KEY:()=>T,BOARD_ACCESS_GRANT_KEY:()=>I,BOARD_API_ERROR_CODES:()=>Oe,BoardApiError:()=>v,BoardClient:()=>F,REFRESH_TOKEN_KEY:()=>L,SDK_VERSION:()=>D,SIGN_IN_REDIRECT_ERROR_CODES:()=>we,SSO_LINK_PROOF_BINDING_TTL_MS:()=>ne,createBoardClient:()=>Io,filters:()=>se,format:()=>be,isBoardApiError:()=>S,isBoardPasswordRequired:()=>Re,isColdRule:()=>ct,isConflict:()=>Ae,isForbidden:()=>Be,isFreeEmailWebsiteError:()=>Te,isNotFound:()=>_e,isOwnMessage:()=>lt,isRateLimited:()=>Ee,isSafeApplicationUrl:()=>re,isSignInMethodUnavailable:()=>oe,isSsoBrowserMismatch:()=>Ie,isSsoRequired:()=>Le,isUnauthorized:()=>Pe,isValidationError:()=>ve,lastOwnMessageId:()=>pt,paginate:()=>at,parseOAuthCompletion:()=>Je,paths:()=>ye,resolveApplyAction:()=>ut,resolveApplyDecision:()=>ie,seo:()=>Se,ssoLinkProofBindingStore:()=>$,suggest:()=>Ce});var Oe=["internal_error","validation_bad_request","validation_payload_too_large","rate_limited","rate_limit_unavailable","search_unavailable","search_filter_unavailable","too_many_filter_values","pagination_invalid_cursor","pagination_offset_too_large","auth_unauthenticated","auth_forbidden","plan_upgrade_required","unknown_error","boards_not_found","board_page_not_found","board_auth_account_not_found","board_auth_email_taken","board_auth_invalid_credentials","board_auth_invalid_token","board_auth_registration_disabled","board_auth_token_expired","board_development_origin_not_allowed_for_email","board_development_origin_not_registered","board_development_origin_requires_publishable_key","sso_required","board_auth_method_unavailable","board_auth_sso_connection_not_found","board_auth_sso_role_unavailable","board_auth_sso_provider_unavailable","board_auth_sso_browser_mismatch","board_auth_sso_not_provisioned","board_auth_sso_identity_linked_elsewhere","invalid_current_password","no_password","same_email","email_taken","invalid_token","board_password_required","board_password_invalid","jobs_not_found","jobs_invalid_filter","categories_not_found","skills_not_found","places_not_found","locations_invalid_id","locations_unavailable","companies_not_found","company_markets_not_found","company_salary_not_found","company_category_salary_not_found","salaries_title_not_found","salaries_skill_not_found","salaries_location_not_found","salaries_title_location_not_found","salaries_skill_location_not_found","blog_post_not_found","blog_author_not_found","blog_tag_not_found","feeds_not_found","feed_not_ready","talent_not_found","talent_directory_not_found","talent_directory_restricted","job_recommendations_not_found","recommended_talent_not_found","job_alert_not_found","job_alerts_disabled","candidate_alert_limit_reached","candidate_alert_not_found","candidate_entry_not_found","candidate_handle_taken","candidate_job_not_found","candidate_notification_preference_paused","candidate_profile_required","resume_invalid_file","resume_upload_forbidden","applications_external_apply_only","applications_country_not_allowed","applications_guest_not_allowed","applications_job_not_found","applications_not_found","applications_resume_invalid_file","applications_unprocessable","messaging_application_not_found","messaging_application_not_linked","messaging_blocked","messaging_cannot_block_self","messaging_cold_rule","messaging_conversation_not_found","messaging_disabled","messaging_edit_window_expired","messaging_message_deleted","messaging_message_not_found","messaging_not_author","messaging_not_participant","messaging_not_permitted","messaging_not_recipient","messaging_rate_limited","messaging_recipient_not_found","messaging_recipient_not_open","messaging_unsend_window_expired","employer_applicant_not_found","employer_ats_unprocessable","employer_checkout_failed","employer_company_exists","employer_free_email_website","employer_company_name_taken","employer_company_not_found","employer_job_not_found","employer_job_slug_taken","employer_jobs_quota_exceeded","membership_required","employer_not_member","employer_payment_required","employer_pipeline_stage_not_found","employer_member_not_found","employer_invite_not_found","not_company_admin","not_company_member","company_deletion_disabled","last_admin","already_member","already_invited","invalid_email","invite_email_mismatch","candidate_role","job_not_published","talent_list_not_found","sourced_candidate_not_found","sourced_convert_unavailable","candidate_paywall_access_required","paywall_already_active","paywall_disabled","paywall_invalid_checkout_session","paywall_no_candidate_profile","paywall_no_recurring_subscription","paywall_offer_not_found","talent_access_unavailable","company_required","already_on_plan","talent_access_required","messaging_talent_access_required","stripe_not_connected","membership_plan_not_found","membership_seat_taken","job_posting_logo_lookup_unavailable","job_posting_logo_not_found","job_posting_rejected"],v=class extends Error{constructor(o){super(o.message);P(this,"status");P(this,"code");P(this,"details");P(this,"requestId");P(this,"raw");this.name="BoardApiError",this.status=o.status,this.code=o.code,this.details=o.details,this.requestId=o.requestId,this.raw=o.raw}};function S(e){return e instanceof Error&&e.name==="BoardApiError"&&typeof e.status=="number"&&typeof e.code=="string"}function _e(e){return S(e)&&e.status===404}function Pe(e){return S(e)&&e.status===401}function Re(e){return S(e)&&e.status===401&&e.code==="board_password_required"}function Be(e){return S(e)&&e.status===403}function ve(e){return S(e)&&e.status===400&&e.code==="validation_bad_request"}function Ee(e){return S(e)&&e.status===429}function Ae(e){return S(e)&&e.status===409}function Te(e){return S(e)&&e.status===422&&e.code==="employer_free_email_website"}function Le(e){if(!S(e)||e.status!==403)return!1;let t=e.details?.connectionIds;return Array.isArray(t)&&t.every(o=>typeof o=="string")&&(e.code==="sso_required"||oe(e)&&e.details.availableMethods.methods.length===0)}function oe(e){if(!S(e)||e.status!==403||e.code!=="board_auth_method_unavailable")return!1;let t=e.details?.availableMethods;if(!t||typeof t!="object")return!1;let{methods:o,ssoConnectionIds:n}=t;return Array.isArray(o)&&o.every(r=>typeof r=="string")&&Array.isArray(n)&&n.every(r=>typeof r=="string")}function Ie(e){return S(e)&&e.status===403&&e.code==="board_auth_sso_browser_mismatch"}function Fe(e){let t=new URLSearchParams;if(!e)return t;for(let[o,n]of Object.entries(e))if(n!=null)if(Array.isArray(n))for(let r of n)r!=null&&t.append(o,String(r));else t.append(o,String(n));return t}function J(e){let t=5381;for(let n=0;n<e.length;n++)t=(t<<5)+t+e.charCodeAt(n)>>>0;return`${e.replace(/[^a-zA-Z0-9_-]/g,"_")}-${t.toString(36)}`}var T="cavuno_board_access_token",L="cavuno_board_refresh_token",I="cavuno_board_access_grant";function ke(){return typeof globalThis.document<"u"}function Co(){let e=new Map;return{getItem:t=>e.get(t)??null,setItem:(t,o)=>{e.set(t,o)},removeItem:t=>{e.delete(t)}}}function Oo(e,t){if(!ke())throw new Error(`storage mode '${e}' is browser-only \u2014 use 'nostore' + per-call headers on the server`);let o;try{if(o=e==="local"?globalThis.localStorage:globalThis.sessionStorage,!o)throw new Error("unavailable")}catch{throw new Error(`storage mode '${e}' is unavailable in this browsing context (storage access is blocked \u2014 e.g. a sandboxed or third-party iframe). Use 'memory', or 'nostore' + per-call headers.`)}let n=t?`:${J(t)}`:"";return{getItem:r=>o.getItem(`${r}${n}`),setItem:(r,i)=>{o.setItem(`${r}${n}`,i)},removeItem:r=>{o.removeItem(`${r}${n}`)}}}var _o=Symbol.for("@cavuno/board:nostore");var Po={[_o]:!0,getItem:()=>null,setItem:()=>{},removeItem:()=>{}};function xe(e,t){let o=e??(ke()?"memory":"nostore");if(typeof o=="object")return o;switch(o){case"memory":return Co();case"nostore":return Po;case"local":case"session":return Oo(o,t);default:throw new Error(`Unknown storage mode '${String(o)}'`)}}async function N(e,t){await e.setItem(T,t.accessToken),await e.setItem(L,t.refreshToken)}async function Ue(e){await e.removeItem(T),await e.removeItem(L)}var D="4.41.0";function Ro(e){return typeof e=="string"||e instanceof URLSearchParams||typeof FormData<"u"&&e instanceof FormData||typeof Blob<"u"&&e instanceof Blob||e instanceof ArrayBuffer||typeof ReadableStream<"u"&&e instanceof ReadableStream}function Bo(e){try{let t=new URL(e);for(let o of new Set(t.searchParams.keys()))t.searchParams.delete(o),t.searchParams.set(o,"[REDACTED]");return t.toString()}catch{return e.replace(/([?&][^=&#]+)=([^&#]*)/g,"$1=[REDACTED]")}}var F=class{constructor(t){P(this,"storage");P(this,"basePath");P(this,"options");this.options=t,this.storage=t.storage;let o=t.baseUrl.replace(/\/+$/,"");this.basePath=`${o}/v1/boards/${encodeURIComponent(t.board)}`}async fetch(t,o={}){let{body:n,query:r,headers:i,...s}=o,a=(o.method??"GET").toUpperCase(),l=`${this.basePath}${t}`,p=Fe(r).toString();p&&(l+=`?${p}`);let m=n!==void 0&&!Ro(n),d=n===void 0?void 0:m?JSON.stringify(n):n,y=new Headers({accept:"application/json"});m&&y.set("content-type","application/json");for(let[B,te]of Object.entries(this.options.globalHeaders??{}))y.set(B,te);let f=await this.storage.getItem(T);f!==null&&y.set("authorization",`Bearer ${f}`);let O=await this.storage.getItem(I);O!==null&&y.set("x-board-access",O),i&&new Headers(i).forEach((B,te)=>{y.set(te,B)}),(a!=="GET"||y.has("authorization")||y.has("x-board-access"))&&!y.has("x-cavuno-sdk")&&y.set("x-cavuno-sdk",`board@${D}`);let g={url:l,init:{...s,method:a,headers:y,body:d}};this.options.onRequest&&(g=await this.options.onRequest(g));let R=Bo(g.url);this.options.logger?.debug(`${a} ${R}`);let u=await globalThis.fetch(g.url,g.init);if(this.options.logger?.debug(`${u.status} ${a} ${R}`),this.options.onResponse&&await this.options.onResponse(u.clone(),g),u.status===204)return;if(u.ok)return await u.json();let b;try{b=await u.json()}catch{b=void 0}let _=b?.error,E=_&&typeof _.code=="string"&&typeof _.message=="string"?new v({status:u.status,code:_.code,message:_.message,details:_.details,requestId:_.requestId,raw:b}):new v({status:u.status,code:"unknown_error",message:u.statusText||"Request failed",raw:b});throw this.options.logger?.error(`${E.status} ${E.code} ${a} ${R}`),E}};var Me="https://api.cavuno.com";var we=["oauth_cancelled","oauth_failed","oauth_email_unverified","role_disabled","method_unavailable","sso_required","sso_state_invalid","sso_cancelled","sso_failed","sso_connection_unavailable","sso_not_provisioned","sso_email_required","sso_account_disabled","sso_identity_linked_elsewhere","sso_link_proof_rate_limited","sso_development_origin_not_allowed_for_email"];function vo(e){if(e instanceof URLSearchParams)return e;if(typeof e=="string"){let o=e.includes("?")?e.slice(e.indexOf("?")):e;return new URLSearchParams(o)}let t=new URLSearchParams;for(let[o,n]of Object.entries(e))n!==void 0&&t.set(o,n);return t}function Eo(e){return!e||!e.startsWith("/")||e.startsWith("//")||e.startsWith("/\\")||e.includes("://")||/[\u0000-\u001F\u007F]/.test(e)?"/":e}function Ao(e){return e==="candidate"||e==="employer"?e:null}function Je(e){let t=vo(e),o=c=>{let p=t.get(c);return p&&p.length>0?p:null},n=Eo(o("returnTo")),r=Ao(o("role")),i=o("error");if(i)return{kind:"error",error:i,returnTo:n};let s=o("linkProof");if(s)return{kind:"link_proof",linkProof:s,role:r,returnTo:n};let a=o("linkProofBinding");if(o("status")==="sso_link_proof_sent"&&a)return{kind:"link_proof_sent",linkProofBinding:a,role:r,returnTo:n};let l=o("token");return l?{kind:"token",token:l,method:o("method"),role:r,returnTo:n,isNewUser:o("isNew")==="1"}:{kind:"invalid",returnTo:n}}var ne=1500*1e3,To="cavuno_board_sso_link_proof_binding";function Lo(){try{return globalThis.localStorage??null}catch{return null}}function $(e,t={}){let o=`${To}:${J(e)}`,n=t.now??Date.now,r=()=>t.storage??Lo(),i=()=>{try{r()?.removeItem(o)}catch{}};return{begin(){let s=globalThis.crypto.getRandomValues(new Uint8Array(32)),a=Array.from(s,c=>c.toString(16).padStart(2,"0")).join(""),l=r();if(!l)throw new Error("SSO requires browser storage or an explicit browser proof");return l.setItem(o,JSON.stringify({binding:a,expiresAt:n()+ne})),a},save(s){},read(){let s=null;try{s=r()?.getItem(o)??null}catch{return null}if(!s)return null;try{let a=JSON.parse(s);if(typeof a.binding=="string"&&typeof a.expiresAt=="number"&&a.expiresAt>n())return a.binding}catch{}return i(),null},clear:i}}function Ne(e,t=""){let o=()=>$(t);async function n(i){return await N(e.storage,i),i}async function r(i){if(i?.refreshToken)return i.refreshToken;let s=await e.storage.getItem(L);if(s===null)throw new Error("No refresh token available \u2014 pass { refreshToken } or configure auth.storage");return s}return{async register(i,s){let a=await e.fetch("/auth/register",{...s,method:"POST",body:i});return n(a)},async login(i,s){let a=await e.fetch("/auth/login",{...s,method:"POST",body:i});return n(a)},async refresh(i,s){let a=await r(i),l=await e.fetch("/auth/refresh",{...s,method:"POST",body:{refreshToken:a}});return n(l)},async logout(i,s){let a=await r(i);await e.fetch("/auth/logout",{...s,method:"POST",body:{refreshToken:a}}),await Ue(e.storage)},verifyEmail(i,s){return e.fetch("/auth/verify-email",{...s,method:"POST",body:i})},verifyWorkEmail(i,s){return e.fetch("/auth/verify-work-email",{...s,method:"POST",body:i})},verifyEmailWithCode(i,s){return e.fetch("/auth/verify-email/otp",{...s,method:"POST",body:i})},resendVerification(i){return e.fetch("/auth/verify-email/resend",{...i,method:"POST"})},forgotPassword(i,s){return e.fetch("/auth/forgot-password",{...s,method:"POST",body:i})},resetPassword(i,s){return e.fetch("/auth/reset-password",{...s,method:"POST",body:i})},requestMagicLink(i,s){return e.fetch("/auth/magic-link",{...s,method:"POST",body:i})},async consumeMagicLink(i,s){let a=await e.fetch("/auth/magic-link/consume",{...s,method:"POST",body:i});return n(a)},getOAuthAuthorizationUrl(i,s,a){return e.fetch(`/auth/oauth/${i}`,{...a,method:"GET",query:s})},async exchangeOAuth(i,s){let a=await e.fetch("/auth/oauth/exchange",{...s,method:"POST",body:{...i,browserBinding:i.browserBinding??o().read()??void 0}});return n(a)},async getSsoAuthorizationUrl(i,s,a){let l=s?.browserBindingHash;if(!l){let c=o().begin(),p=await globalThis.crypto.subtle.digest("SHA-256",new TextEncoder().encode(c));l=Array.from(new Uint8Array(p),m=>m.toString(16).padStart(2,"0")).join("")}return e.fetch(`/auth/sso/${encodeURIComponent(i)}`,{...a,method:"GET",query:{...s,browserBindingHash:l}})},async consumeSsoLinkProof(i,s){let a=await e.fetch("/auth/sso/link-proof",{...s,method:"POST",body:{...i,browserBinding:i.browserBinding??o().read()??void 0}});return n(a)}}}function De(e){return{posts:{list(t,o){return e.fetch("/blog/posts",{...o,query:t})},retrieve(t,o,n){return e.fetch(`/blog/posts/${encodeURIComponent(t)}`,{...n,query:o})},adjacent(t,o){return e.fetch(`/blog/posts/${encodeURIComponent(t)}/adjacent`,o)},similar(t,o,n){return e.fetch(`/blog/posts/${encodeURIComponent(t)}/similar`,{...n,query:o})}},tags:{list(t,o){return e.fetch("/blog/tags",{...o,query:t})},retrieve(t,o,n){return e.fetch(`/blog/tags/${encodeURIComponent(t)}`,{...n,query:o})}},authors:{list(t,o){return e.fetch("/blog/authors",{...o,query:t})},retrieve(t,o,n){return e.fetch(`/blog/authors/${encodeURIComponent(t)}`,{...n,query:o})}},search(t,o,n){return e.fetch("/blog/search",{...n,method:"POST",body:t,query:o})}}}function $e(e){let t=Object.assign((n,r)=>e.fetch("/companies/markets",{...r,query:n}),{resolve(n,r){return e.fetch(`/companies/markets/${encodeURIComponent(n)}`,r)}}),o=Object.assign((n,r)=>e.fetch(`/companies/${encodeURIComponent(n)}/salaries`,r),{summary(n,r){return e.fetch(`/companies/${encodeURIComponent(n)}/salaries/summary`,r)},category(n,r,i,s){return e.fetch(`/companies/${encodeURIComponent(n)}/salaries/${encodeURIComponent(r)}`,{...s,query:i})}});return{list(n,r){return e.fetch("/companies",{...r,query:n})},retrieve(n,r,i){return e.fetch(`/companies/${encodeURIComponent(n)}`,{...i,query:r})},search(n,r,i){return e.fetch("/companies/search",{...i,method:"POST",body:n,query:r})},listJobs(n,r,i){return e.fetch(`/companies/${encodeURIComponent(n)}/jobs`,{...i,query:r})},similar(n,r,i){return e.fetch(`/companies/${encodeURIComponent(n)}/similar`,{...i,query:r})},markets:t,salaries:o}}function je(e){return{jobs(t,o){return e.fetch("/embed/jobs",{...o,query:t})}}}function Qe(e){return{preview(t,o){return e.fetch("/invites/preview",{...o,method:"POST",body:t})}}}function qe(e){return{subscribe(t,o){return e.fetch("/job-alerts",{...o,method:"POST",body:t})},confirm(t,o){return e.fetch("/job-alerts/confirm",{...o,method:"POST",body:t})},resendConfirmation(t,o){return e.fetch("/job-alerts/resend-confirmation",{...o,method:"POST",body:t})},manage(t,o){return e.fetch("/job-alerts/manage",{...o,query:t})},unsubscribe(t,o){return e.fetch("/job-alerts/unsubscribe",{...o,method:"POST",body:t})},resubscribe(t,o){return e.fetch("/job-alerts/resubscribe",{...o,method:"POST",body:t})},updatePreference(t,o){return e.fetch("/job-alerts/preferences",{...o,method:"POST",body:t})},deletePreference(t,o){return e.fetch("/job-alerts/preferences",{...o,method:"DELETE",body:t})}}}function Ge(e){return{plans(t,o){return e.fetch("/job-postings/plans",{...o,query:t})},create(t,o){return e.fetch("/job-postings",{...o,method:"POST",body:t})},uploadLogo(t,o){let n=new FormData;return n.append("file",t),e.fetch("/job-postings/logo",{...o,method:"POST",body:n})},fetchLogoByDomain(t,o){return e.fetch("/job-postings/logo/fetch",{...o,query:{domain:t}})},sendBillingVerification(t,o){return e.fetch("/job-postings/send-verification",{...o,method:"POST",body:t})},getBillingOptions(t,o){return e.fetch("/job-postings/billing-options",{...o,method:"POST",body:t})}}}function He(e){return{collectionChoices(t,o,n){return e.fetch(`/job-fields/${encodeURIComponent(t)}/choices`,{...n,query:o})},list(t,o){return e.fetch("/jobs",{...o,query:t})},retrieve(t,o,n){return e.fetch(`/jobs/${encodeURIComponent(t)}`,{...n,query:o})},search(t,o,n){return e.fetch("/jobs/search",{...n,method:"POST",body:t,query:o})},similar(t,o,n){return e.fetch(`/jobs/${encodeURIComponent(t)}/similar`,{...n,query:o})},apply(t,o,n){return e.fetch(`/jobs/${encodeURIComponent(t)}/apply`,{...n,method:"POST",body:o??{}})},createApplyIntent(t,o,n){return e.fetch(`/jobs/${encodeURIComponent(t)}/apply-intents`,{...n,method:"POST",body:o})},prepareApplyApproval(t,o,n){return e.fetch(`/jobs/${encodeURIComponent(t)}/apply-approvals`,{...n,method:"POST",body:o})},uploadApplicationResume(t,o,n,r){let i=new FormData;return i.append("file",o),n?.applicationId&&i.append("applicationId",n.applicationId),e.fetch(`/jobs/${encodeURIComponent(t)}/apply/resume`,{...r,method:"POST",body:i})},myApplication(t,o){return e.fetch(`/jobs/${encodeURIComponent(t)}/application`,o)}}}function Ke(e){return{search(t,o){return e.fetch("/locations/search",{...o,query:t})},resolve(t,o){return e.fetch("/locations/resolve",{...o,method:"POST",body:t})}}}function Ve(e){return{retrieve(t,o){return e.fetch("/me",{...o,query:t})},delete(t){return e.fetch("/me",{...t,method:"DELETE"})},async updatePassword(t,o){let n=await e.fetch("/me/password",{...o,method:"POST",body:t});return await N(e.storage,n),n},requestEmailChange(t,o){return e.fetch("/me/email",{...o,method:"POST",body:t})},confirmEmailChange(t,o){return e.fetch("/me/email/confirm",{...o,method:"POST",body:t})},acceptInvite(t,o){return e.fetch("/me/invites/accept",{...o,method:"POST",body:t})},profile:{listObjectReferenceChoices(t,o,n){return e.fetch("/me/profile/object-references/choices",{...n,query:{...o,fieldKey:t}})},retrieve(t,o){return e.fetch("/me/profile",{...o,query:t})},update(t,o,n){return e.fetch("/me/profile",{...n,method:"PATCH",body:t,query:o})},retrieveCustomFields(t){return e.fetch("/me/profile/custom-fields",{...t})},updateCustomFields(t,o){return e.fetch("/me/profile/custom-fields",{...o,method:"PATCH",body:t})},retrieveObjectReferences(t){return e.fetch("/me/profile/object-references",t)},updateObjectReferences(t,o){return e.fetch("/me/profile/object-references",{...o,method:"PUT",body:t})},handleAvailable(t,o){return e.fetch("/me/profile/handle-available",{...o,query:{handle:t}})},listExperience(t){return e.fetch("/me/profile/experience",t)},createExperience(t,o){return e.fetch("/me/profile/experience",{...o,method:"POST",body:t})},updateExperience(t,o,n){return e.fetch(`/me/profile/experience/${encodeURIComponent(t)}`,{...n,method:"PATCH",body:o})},deleteExperience(t,o){return e.fetch(`/me/profile/experience/${encodeURIComponent(t)}`,{...o,method:"DELETE"})},listEducation(t){return e.fetch("/me/profile/education",t)},createEducation(t,o){return e.fetch("/me/profile/education",{...o,method:"POST",body:t})},updateEducation(t,o,n){return e.fetch(`/me/profile/education/${encodeURIComponent(t)}`,{...n,method:"PATCH",body:o})},deleteEducation(t,o){return e.fetch(`/me/profile/education/${encodeURIComponent(t)}`,{...o,method:"DELETE"})},listSkills(t){return e.fetch("/me/profile/skills",t)},updateSkills(t,o){return e.fetch("/me/profile/skills",{...o,method:"PUT",body:t})},listLanguages(t){return e.fetch("/me/profile/languages",t)},updateLanguages(t,o){return e.fetch("/me/profile/languages",{...o,method:"PUT",body:t})},uploadAvatar(t,o){let n=new FormData;return n.append("file",t),e.fetch("/me/profile/avatar",{...o,method:"POST",body:n})}},notificationPreferences:{retrieve(t){return e.fetch("/me/notification-preferences",t)},update(t,o){return e.fetch("/me/notification-preferences",{...o,method:"PUT",body:t})},unsubscribeWithToken(t,o){return e.fetch("/me/notification-preferences/unsubscribe",{...o,method:"POST",body:t})}},companies:{listObjectReferenceChoices(t,o,n,r){return e.fetch(`/me/companies/${encodeURIComponent(t)}/object-references/choices`,{...r,query:{...n,fieldKey:o}})},retrieveObjectReferences(t,o){return e.fetch(`/me/companies/${encodeURIComponent(t)}/object-references`,o)},updateObjectReferences(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/object-references`,{...n,method:"PUT",body:o})},search(t,o){return e.fetch("/me/companies/search",{...o,query:t})},list(t){return e.fetch("/me/companies",t)},create(t,o){return e.fetch("/me/companies",{...o,method:"POST",body:t})},claim(t,o){return e.fetch(`/me/companies/${encodeURIComponent(t)}/claim`,{...o,method:"POST"})},cancelClaim(t,o){return e.fetch(`/me/companies/${encodeURIComponent(t)}/claim`,{...o,method:"DELETE"})},retrieve(t,o){return e.fetch(`/me/companies/${encodeURIComponent(t)}`,o)},update(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}`,{...n,method:"PATCH",body:o})},retrieveCustomFields(t,o){return e.fetch(`/me/companies/${encodeURIComponent(t)}/custom-fields`,o)},updateCustomFields(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/custom-fields`,{...n,method:"PATCH",body:o})},delete(t,o){return e.fetch(`/me/companies/${encodeURIComponent(t)}`,{...o,method:"DELETE"})},listMembers(t,o){return e.fetch(`/me/companies/${encodeURIComponent(t)}/members`,o)},updateMemberRole(t,o,n,r){return e.fetch(`/me/companies/${encodeURIComponent(t)}/members/${encodeURIComponent(o)}`,{...r,method:"PATCH",body:n})},removeMember(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/members/${encodeURIComponent(o)}`,{...n,method:"DELETE"})},leave(t,o){return e.fetch(`/me/companies/${encodeURIComponent(t)}/membership`,{...o,method:"DELETE"})},startMembershipCheckout(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/membership/checkout`,{...n,method:"POST",body:o})},retrieveMembershipCheckout(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/membership/checkout/${encodeURIComponent(o)}`,n)},listInvites(t,o){return e.fetch(`/me/companies/${encodeURIComponent(t)}/invites`,o)},createInvite(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/invites`,{...n,method:"POST",body:o})},revokeInvite(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/invites/${encodeURIComponent(o)}`,{...n,method:"DELETE"})},uploadLogo(t,o,n){let r=new FormData;return r.append("file",o),e.fetch(`/me/companies/${encodeURIComponent(t)}/logo`,{...n,method:"POST",body:r})},workEmail:{verify(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/work-email/verify`,{...n,method:"POST",body:o})},confirm(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/work-email/confirm`,{...n,method:"POST",body:o})}},jobs:{list(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/jobs`,{...n,query:o})},retrieve(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/jobs/${encodeURIComponent(o)}`,n)},create(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/jobs`,{...n,method:"POST",body:o})},update(t,o,n,r){return e.fetch(`/me/companies/${encodeURIComponent(t)}/jobs/${encodeURIComponent(o)}`,{...r,method:"PATCH",body:n})},delete(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/jobs/${encodeURIComponent(o)}`,{...n,method:"DELETE"})},publish(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/jobs/${encodeURIComponent(o)}/publish`,{...n,method:"POST"})},unpublish(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/jobs/${encodeURIComponent(o)}/unpublish`,{...n,method:"POST"})},checkout(t,o,n,r){return e.fetch(`/me/companies/${encodeURIComponent(t)}/jobs/${encodeURIComponent(o)}/checkout`,{...r,method:"POST",body:n})}},billingOptions:{list(t,o){return e.fetch(`/me/companies/${encodeURIComponent(t)}/billing-options`,o)}},billingPortal:{create(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/billing-portal`,{...n,method:"POST",body:o})}},jobStats:{retrieve(t,o){return e.fetch(`/me/companies/${encodeURIComponent(t)}/job-stats`,o)},timeseries(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/job-stats/timeseries`,{...n,query:o})}},profileStats:{retrieve(t,o){return e.fetch(`/me/companies/${encodeURIComponent(t)}/profile-stats`,o)},timeseries(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/profile-stats/timeseries`,{...n,query:o})}},recommendedTalent:{list(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/recommended-talent`,{...n,query:o})}},talentLists:{list(t,o){return e.fetch(`/me/companies/${encodeURIComponent(t)}/talent-lists`,o)},create(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/talent-lists`,{...n,method:"POST",body:o})},update(t,o,n,r){return e.fetch(`/me/companies/${encodeURIComponent(t)}/talent-lists/${encodeURIComponent(o)}`,{...r,method:"PATCH",body:n})},remove(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/talent-lists/${encodeURIComponent(o)}`,{...n,method:"DELETE"})}},sourcedCandidates:{list(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/sourced-candidates`,{...n,query:o})},add(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/sourced-candidates`,{...n,method:"POST",body:o})},remove(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/sourced-candidates/${encodeURIComponent(o)}`,{...n,method:"DELETE"})},convert(t,o,n,r){return e.fetch(`/me/companies/${encodeURIComponent(t)}/sourced-candidates/${encodeURIComponent(o)}/convert`,{...r,method:"POST",body:n})}},applicants:{list(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/applicants`,{...n,query:o})},move(t,o,n,r){return e.fetch(`/me/companies/${encodeURIComponent(t)}/applicants/${encodeURIComponent(o)}/stage`,{...r,method:"PATCH",body:n})},bulkMove(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/applicants/bulk/move`,{...n,method:"POST",body:o})},bulkReject(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/applicants/bulk/reject`,{...n,method:"POST",body:o})},addNote(t,o,n,r){return e.fetch(`/me/companies/${encodeURIComponent(t)}/applicants/${encodeURIComponent(o)}/notes`,{...r,method:"POST",body:n})}},pipelineStages:{create(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/pipeline-stages`,{...n,method:"POST",body:o})},update(t,o,n,r){return e.fetch(`/me/companies/${encodeURIComponent(t)}/pipeline-stages/${encodeURIComponent(o)}`,{...r,method:"PATCH",body:n})},remove(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/pipeline-stages/${encodeURIComponent(o)}`,{...n,method:"DELETE"})},reorder(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/pipeline-stages/reorder`,{...n,method:"PUT",body:o})}}},talentAccess:{retrieve(t){return e.fetch("/me/talent-access",t)},retrieveCandidate(t,o){return e.fetch(`/me/talent-access/candidates/${encodeURIComponent(t)}`,o)},checkout(t,o){return e.fetch("/me/talent-access/checkout",{...o,method:"POST",body:t})},claim(t,o){return e.fetch("/me/talent-access/claim",{...o,method:"POST",body:t})},retrieveCheckout(t,o){return e.fetch(`/me/talent-access/checkout/${encodeURIComponent(t)}`,o)},unlock(t,o){return e.fetch("/me/talent-access/unlocks",{...o,method:"POST",body:t})},upgrade(t,o){return e.fetch("/me/talent-access/upgrade",{...o,method:"POST",body:t})}},alerts:{list(t){return e.fetch("/me/alerts",t)},create(t,o){return e.fetch("/me/alerts",{...o,method:"POST",body:t})},retrieve(t,o){return e.fetch(`/me/alerts/${encodeURIComponent(t)}`,o)},update(t,o,n){return e.fetch(`/me/alerts/${encodeURIComponent(t)}`,{...n,method:"PUT",body:o})},remove(t,o){return e.fetch(`/me/alerts/${encodeURIComponent(t)}`,{...o,method:"DELETE"})}},applications:{list(t,o){return e.fetch("/me/applications",{...o,query:t})},retrieve(t,o){return e.fetch(`/me/applications/${encodeURIComponent(t)}`,o)},updateFacts(t,o,n){return e.fetch(`/me/applications/${encodeURIComponent(t)}`,{...n,method:"PATCH",body:o})},withdraw(t,o){return e.fetch(`/me/applications/${encodeURIComponent(t)}/withdraw`,{...o,method:"POST"})}},resume:{upload(t,o,n){let r=new FormData;return r.append("resume",t),o?.keepResumeOnFile&&r.append("keepResumeOnFile","true"),o?.importMode&&r.append("importMode",o.importMode),o?.confirmReplaceAll&&r.append("confirmReplaceAll","true"),e.fetch("/me/resume",{...n,method:"POST",body:r})},retrieve(t){return e.fetch("/me/resume",t)},delete(t){return e.fetch("/me/resume",{...t,method:"DELETE"})}},recommendedJobs:{list(t,o){return e.fetch("/me/recommended-jobs",{...o,query:t})}},savedJobs:{list(t,o){return e.fetch("/me/saved-jobs",{...o,query:t})},save(t,o,n){return e.fetch("/me/saved-jobs",{...n,method:"POST",body:t,query:o})},unsave(t,o,n){return e.fetch(`/me/saved-jobs/${encodeURIComponent(t)}`,{...n,method:"DELETE",query:o})}},conversations:{list(t,o){return e.fetch("/me/conversations",{...o,query:t})},unreadCount(t){return e.fetch("/me/conversations/unread-count",t)},retrieve(t,o){return e.fetch(`/me/conversations/${encodeURIComponent(t)}`,o)},listMessages(t,o,n){return e.fetch(`/me/conversations/${encodeURIComponent(t)}/messages`,{...n,query:o})},start(t,o){return e.fetch("/me/conversations",{...o,method:"POST",body:t})},startAboutApplication(t,o){return e.fetch("/me/conversations/about-application",{...o,method:"POST",body:t})},reply(t,o,n){return e.fetch(`/me/conversations/${encodeURIComponent(t)}/reply`,{...n,method:"POST",body:o})},markRead(t,o){return e.fetch(`/me/conversations/${encodeURIComponent(t)}/read`,{...o,method:"POST"})},archive(t,o){return e.fetch(`/me/conversations/${encodeURIComponent(t)}/archive`,{...o,method:"POST"})},unarchive(t,o){return e.fetch(`/me/conversations/${encodeURIComponent(t)}/unarchive`,{...o,method:"POST"})},findExisting(t,o){return e.fetch("/me/conversations/find-existing",{...o,query:t})}},blocks:{list(t){return e.fetch("/me/blocks",t)},create(t,o){return e.fetch("/me/blocks",{...o,method:"POST",body:t})},remove(t,o){return e.fetch(`/me/blocks/${encodeURIComponent(t)}`,{...o,method:"DELETE"})},status(t,o){return e.fetch(`/me/blocks/${encodeURIComponent(t)}`,o)}},messages:{edit(t,o,n){return e.fetch(`/me/messages/${encodeURIComponent(t)}`,{...n,method:"PATCH",body:o})},unsend(t,o){return e.fetch(`/me/messages/${encodeURIComponent(t)}`,{...o,method:"DELETE"})},report(t,o,n){return e.fetch(`/me/messages/${encodeURIComponent(t)}/report`,{...n,method:"POST",body:o})}},marketingConsent:{retrieve(t){return e.fetch("/me/marketing-consent",t)},grant(t){return e.fetch("/me/marketing-consent/grant",{...t,method:"POST"})},withdraw(t){return e.fetch("/me/marketing-consent/withdraw",{...t,method:"POST"})}},access:{checkout(t,o){return e.fetch("/me/access/checkout",{...o,method:"POST",body:t})},retrieveCheckout(t,o){return e.fetch(`/me/access/checkout/${encodeURIComponent(t)}`,o)},grant(t){return e.fetch("/me/access/grant",t)},portal(t,o){return e.fetch("/me/access/portal",{...o,method:"POST",body:t})}}}}function Ye(e){return{async verify(t,o){let n=await e.fetch("/password/verify",{...o,method:"POST",body:{password:t}});return await e.storage.setItem(I,n.token),n}}}function ze(e){return{offers(t){return e.fetch("/paywall/offers/enabled",t)}}}function We(e){return{list(t,o){return e.fetch("/plans",{...o,query:t})},salesLed(t){return e.fetch("/sales-led-plans",t)}}}function Ze(e){return{retrieve(t,o){return e.fetch(`/profile-fields/${encodeURIComponent(t)}`,o)},choices(t,o,n,r){return e.fetch(`/profile-fields/${encodeURIComponent(t)}/${encodeURIComponent(o)}/choices`,{...r,query:n})}}}function Xe(e){return{resolve(t,o){return e.fetch("/redirects/resolve",{...o,query:{path:t}})}}}function et(e){return{companies:{list(t){return e.fetch("/salaries/companies",t)}},titles:{list(t,o){return e.fetch("/salaries/titles",{...o,query:t})},retrieve(t,o,n){return e.fetch(`/salaries/titles/${encodeURIComponent(t)}`,{...n,query:o})},locations(t,o,n){return e.fetch(`/salaries/titles/${encodeURIComponent(t)}/locations`,{...n,query:o})},location(t,o,n,r){return e.fetch(`/salaries/titles/${encodeURIComponent(t)}/${encodeURIComponent(o)}`,{...r,query:n})}},skills:{list(t,o){return e.fetch("/salaries/skills",{...o,query:t})},retrieve(t,o,n){return e.fetch(`/salaries/skills/${encodeURIComponent(t)}`,{...n,query:o})},locations(t,o,n){return e.fetch(`/salaries/skills/${encodeURIComponent(t)}/locations`,{...n,query:o})},location(t,o,n,r){return e.fetch(`/salaries/skills/${encodeURIComponent(t)}/${encodeURIComponent(o)}`,{...r,query:n})}},locations:{list(t,o){return e.fetch("/salaries/locations",{...o,query:t})},retrieve(t,o,n){return e.fetch(`/salaries/locations/${encodeURIComponent(t)}`,{...n,query:o})},titles(t,o,n){return e.fetch(`/salaries/locations/${encodeURIComponent(t)}/titles`,{...n,query:o})},skills(t,o,n){return e.fetch(`/salaries/locations/${encodeURIComponent(t)}/skills`,{...n,query:o})}}}}function tt(e){return{suggest(t,o){return e.fetch("/search/suggest",{...o,query:t})}}}function ot(e){return Object.assign(t=>e.fetch("/sitemap",t),{entries(t,o,n){return e.fetch(`/sitemap/${encodeURIComponent(t)}`,{...n,query:o})}})}function nt(e){return{list(t,o){let n=t?{...t,customFields:t.customFields?JSON.stringify(t.customFields):void 0,objectReferences:t.objectReferences?JSON.stringify(t.objectReferences):void 0}:void 0;return e.fetch("/talent",{...o,query:n})},retrieve(t,o){return e.fetch(`/talent/${encodeURIComponent(t)}`,o)}}}function it(e,t){return{resolve(o,n){return e.fetch(`/${t}/${encodeURIComponent(o)}`,n)}}}function rt(e,t){return{...it(e,t),list(o,n){return e.fetch(`/${t}`,{...n,query:o})}}}function st(e){return{categories:rt(e,"categories"),skills:rt(e,"skills"),remotePermits:{list(t){return e.fetch("/remote-permits",t)}},places:{...it(e,"places"),list(t,o){return e.fetch("/places",{...o,query:t})}}}}function at(e,t,o){async function*n(){let r=t;for(;;){let i=await e(r,o);if(yield i,!i.hasMore||i.nextCursor===null)return;let{offset:s,...a}=r??{};r={...a,cursor:i.nextCursor}}}return{pages:n,async*[Symbol.asyncIterator](){for await(let r of n())yield*r.data},async toArray({limit:r}){let i=[];for await(let s of n())if(i.push(...s.data),i.length>=r)break;return i.slice(0,r)}}}function lt(e,t){return e.authorBoardUserId!==t}function ct(e,t){let o=e.some(r=>r.authorBoardUserId===t);return e.some(r=>r.authorBoardUserId!==t)&&!o}function pt(e,t){for(let o=e.length-1;o>=0;o--){let n=e[o];if(n.authorBoardUserId!==t)return n.id}return null}function re(e){let t=e.replace(/^[\u0000-\u0020]+|[\u0000-\u0020]+$/g,"").replace(/[\t\n\r]/g,""),o=/^([a-z][a-z0-9+.-]*):/i.exec(t)?.[1]?.toLowerCase();return o===void 0?!0:o==="http"||o==="https"||o==="mailto"}function ie(e){let t=e.applicationUrl&&re(e.applicationUrl)?e.applicationUrl:null;return!t&&!e.jobSlug?{kind:"none"}:e.registrationWall&&!e.viewer?{kind:"sign-in",reason:"registration-wall"}:t?{kind:"external",url:t}:e.jobSlug?e.viewer?e.viewer.emailVerified?e.applied?{kind:"applied"}:{kind:"native",jobSlug:e.jobSlug}:{kind:"verify-email"}:e.allowGuestApply?{kind:"guest",jobSlug:e.jobSlug}:{kind:"sign-in",reason:"native-apply"}:{kind:"none"}}function ut(e){let t=ie({...e,registrationWall:!1,allowGuestApply:!1});return t.kind==="sign-in"?{kind:"sign-in"}:t}function Io(e){let t=new F({baseUrl:e.baseUrl??Me,board:e.board,storage:xe(e.auth?.storage,e.board),globalHeaders:e.globalHeaders,onRequest:e.onRequest,onResponse:e.onResponse,logger:e.logger});return{client:t,context(o){return t.fetch("",o)},seo(o){return t.fetch("/seo",o)},jobs:He(t),embed:je(t),companies:$e(t),blog:De(t),auth:Ne(t,e.board),me:Ve(t),invites:Qe(t),password:Ye(t),taxonomy:st(t),search:tt(t),locations:Ke(t),redirects:Xe(t),jobAlerts:qe(t),jobPosting:Ge(t),salaries:et(t),talent:nt(t),profileFields:Ze(t),plans:We(t),paywall:ze(t),sitemap:ot(t)}}var se={};A(se,{DEFAULT_SORT:()=>Fo,EMPLOYMENT_TYPES:()=>dt,JOB_SORTS:()=>ft,REMOTE_OPTIONS:()=>mt,SENIORITIES:()=>yt,parseCategory:()=>bt,parseCompany:()=>ht,parseListingFilters:()=>xo,parseSeniority:()=>gt});var mt=["on_site","hybrid","remote"],dt=["full_time","part_time","contract","internship","temporary"],yt=["entry_level","associate","mid_level","senior","lead","principal","director","executive"],ft=["relevance","newest","salary_high"],Fo="relevance";var ko=new Set(yt);function gt(e){let t=Array.isArray(e)?e:typeof e=="string"&&e?e.split(","):[],o=[],n=new Set;for(let r of t){if(typeof r!="string")continue;let i=r.trim().toLowerCase().normalize("NFC");!i||n.has(i)||ko.has(i)&&(n.add(i),o.push(i))}return o.length>0?o:void 0}function ht(e){return St(e,10)}function bt(e){return St(e,10)}function St(e,t){let o=Array.isArray(e)?e:typeof e=="string"&&e?e.split(","):[],n=[],r=new Set;for(let i of o){if(typeof i!="string")continue;let s=i.trim().toLowerCase().normalize("NFC");if(!(!s||r.has(s))&&(r.add(s),n.push(s),n.length>=t))break}return n.length>0?n:void 0}function xo(e){return{q:typeof e.q=="string"&&e.q?e.q:void 0,remoteOption:mt.includes(e.remoteOption)?e.remoteOption:void 0,employmentType:dt.includes(e.employmentType)?e.employmentType:void 0,seniority:gt(e.seniority),company:ht(e.company),category:bt(e.category),sort:ft.includes(e.sort)?e.sort:void 0}}var be={};A(be,{COMMUTE_RADIUS_MAX_KM:()=>eo,COMMUTE_RADIUS_MIN_KM:()=>Xt,COUNTRY_CODES:()=>Z,MILES_COUNTRIES:()=>fe,buildJobBreadcrumbs:()=>W,countryOptions:()=>Wt,defaultCommuteRadiusKm:()=>no,defaultSearchRadius:()=>so,distanceUnitForCountry:()=>oo,distanceUnitToKm:()=>X,formatDate:()=>Rt,formatDistance:()=>ao,formatMonthYear:()=>vt,formatPublishedRelativeDate:()=>Bt,formatSalaryRange:()=>Et,formatSalaryStat:()=>q,formatSalaryStatRange:()=>k,kmToDistanceUnit:()=>ro,kmToMiles:()=>he,milesToKm:()=>ge,normalizeWebsiteUrl:()=>U,resolveCustomFieldDisplay:()=>Zt,searchRadiusOptions:()=>io});function C(e){let t=e.trim();if(!t)return null;try{let o=t.replace(/_/g,"-"),[n]=Intl.getCanonicalLocales(o);if(!n)return null;let[r]=Intl.NumberFormat.supportedLocalesOf([n]);return r??null}catch{return null}}var Ct=new Map,Ot=new Map,_t=new Map,Pt=new Map;function Uo(e){let t=Ct.get(e);return t||(t=new Intl.RelativeTimeFormat(e,{numeric:"always",style:"short"}),Ct.set(e,t)),t}function Mo(e){let t=Ot.get(e);return t||(t=new Intl.RelativeTimeFormat(e,{numeric:"auto",style:"short"}),Ot.set(e,t)),t}function wo(e){let t=_t.get(e);return t||(t=new Intl.DateTimeFormat(e,{dateStyle:"medium",timeZone:"UTC"}),_t.set(e,t)),t}function Jo(e){let t=Pt.get(e);return t||(t=new Intl.DateTimeFormat(e,{month:"short",year:"numeric",timeZone:"UTC"}),Pt.set(e,t)),t}function ae(e,t,o){try{return Uo(o).format(e,t)}catch{return null}}function Rt(e,t){if(!t)return null;let o=new Date(t);if(Number.isNaN(o.getTime()))return null;let n=C(e);if(!n)return null;try{return wo(n).format(o)}catch{return o.toISOString().split("T")[0]}}function Bt(e,t,o=Date.now()){if(!t)return null;let n=new Date(t);if(Number.isNaN(n.getTime()))return null;let r=C(e);if(!r)return null;let i=o-n.getTime(),s=Math.abs(i),a=60*1e3,l=60*a,c=24*l,p=7*c,m=30*c,d=365*c;if(s<a)try{return Mo(r).format(0,"second")}catch{return ae(0,"second",r)}let y=[{unit:"year",ms:d},{unit:"month",ms:m},{unit:"week",ms:p},{unit:"day",ms:c},{unit:"hour",ms:l},{unit:"minute",ms:a}];for(let g of y)if(s>=g.ms){let R=Math.round(s/g.ms),u=i>=0?-R:R;return ae(u,g.unit,r)}let f=Math.round(s/1e3),O=i>=0?-f:f;return ae(O,"second",r)}function vt(e,t){if(!t)return null;let n=/^\d{4}-\d{2}(-\d{2})?$/.test(t)?new Date(t.length===7?`${t}-01T00:00:00.000Z`:`${t}T00:00:00.000Z`):new Date(t);if(Number.isNaN(n.getTime()))return null;let r=C(e);if(!r)return null;try{return Jo(r).format(n)}catch{return null}}var j=new Map;function le(e,t,o,n="symbol",r="compact"){let i=`${t}:${o}:${n}:${r}`,s=j.get(i);if(s===void 0){try{let a={style:"currency",currency:o,currencyDisplay:n,notation:r};r==="compact"&&(a.compactDisplay="short",a.maximumFractionDigits=1,a.minimumFractionDigits=0),s=new Intl.NumberFormat(t,a)}catch{s=null}j.set(i,s)}return s?s.format(e):null}function ce(e,t,o){if(typeof e.formatRange=="function")try{return e.formatRange(t,o)}catch{}try{return`${e.format(t)}\u2013${e.format(o)}`}catch{return null}}function No(e,t,o,n,r="symbol",i="compact"){let s=`${o}:${n}:${r}:${i}:range`,a=j.get(s);if(a===void 0){try{let l={style:"currency",currency:n,currencyDisplay:r,notation:i};i==="compact"&&(l.compactDisplay="short",l.maximumFractionDigits=1,l.minimumFractionDigits=0),a=new Intl.NumberFormat(o,l)}catch{a=null}j.set(s,a)}return a?ce(a,e,t):null}var Do=new Set(["per_year","per_month","per_week","per_day","per_hour"]);function $o(...e){let t=!1;for(let o of e)if(!(o==null||!Number.isFinite(o))&&(t=!0,Math.abs(o)>=1e3))return"compact";return t?"standard":"compact"}function Et(e,t,o,n,r=null,i="symbol",s){let a=t==null||Number.isFinite(t),l=o==null||Number.isFinite(o);if(!a||!l||t==null&&o==null)return null;let c=r?.trim().toUpperCase()||null;if(!c)return null;let p=C(e);if(!p)return null;let m=s??$o(t,o),d=typeof n=="string"&&Do.has(n)?n:null;if(t!=null&&o!=null){let f=t<=o?t:o,O=t<=o?o:t,g=f===O?le(f,p,c,i,m):No(f,O,p,c,i,m);return g?{text:g,timeframe:d,bound:"range"}:null}if(t!=null){let f=le(t,p,c,i,m);return f?{text:f,timeframe:d,bound:"from"}:null}let y=le(o,p,c,i,m);return y?{text:y,timeframe:d,bound:"upTo"}:null}var At=new Map;function Tt(...e){let t=!1;for(let o of e)if(!(o==null||!Number.isFinite(o))&&(t=!0,Math.abs(o)>=1e3))return"compact";return t?"standard":"compact"}function Lt(e,t,o){let n=`${e}:${t}:${o}`,r=At.get(n);if(r!==void 0)return r;let i;try{let s={style:"currency",currency:t,notation:o};o==="compact"&&(s.compactDisplay="short",s.minimumFractionDigits=0,s.maximumFractionDigits=1),i=new Intl.NumberFormat(e,s)}catch{i=null}return At.set(n,i),i}function q(e,t,o,n){if(!Number.isFinite(t))return null;let r=o?.trim().toUpperCase()||null;if(!r)return null;let i=C(e);if(!i)return null;let s=n??Tt(t),a=Lt(i,r,s);return a?a.format(t):null}function k(e,t,o,n,r){if(!Number.isFinite(t)||!Number.isFinite(o))return null;let i=n?.trim().toUpperCase()||null;if(!i)return null;let s=C(e);if(!s)return null;let a=r??Tt(t,o),l=Lt(s,i,a);if(!l)return null;let c=Math.min(t,o),p=Math.max(t,o);return c===p?l.format(c):ce(l,c,p)}var Q=["entry_level","associate","mid_level","senior","lead","principal","director","executive"];function It(e){return[...e].sort((t,o)=>{let n=Q.indexOf(t.seniority),r=Q.indexOf(o.seniority);return(n===-1?999:n)-(r===-1?999:r)})}var jo={unitText:"YEAR",duration:"P1Y"};function x(e,t,o,n,r={}){return{"@type":"MonetaryAmountDistribution",...e!==void 0?{name:e}:{},currency:t,minValue:o,maxValue:n,...r,...jo}}function pe(e,t,o,n){return e.map(r=>{let i=n?.seniorityName?.({seniority:r.seniority,entity:o});return x(i,t,r.avgSalaryMin,r.avgSalaryMax)})}function G(e,t,o,n){return{"@context":"https://schema.org","@type":e,name:t,...o,estimatedSalary:n}}function Ft(e,t,o,n){if(!o)return[];let r=k(e,o.avgMin,o.avgMax,n);return[{kind:"average",label:t,range:r,avgMin:o.avgMin,avgMax:o.avgMax,currency:n,jobCount:o.jobCount},{kind:"methodology",label:t}]}function H(e){return e.length===0?null:{"@context":"https://schema.org","@type":"ItemList",numberOfItems:e.length,itemListElement:e.map((t,o)=>({"@type":"ListItem",position:o+1,name:t.name,url:t.url}))}}function kt(e){return e.length===0?null:{"@context":"https://schema.org","@type":"FAQPage",mainEntity:e.map(t=>({"@type":"Question",name:t.q,acceptedAnswer:{"@type":"Answer",text:t.a}}))}}function xt(e,t){return e.overallSalary?G("Occupation",e.categoryName,{},[x(e.categoryName,e.currency,e.overallSalary.avgMin,e.overallSalary.avgMax,{...e.boardP25Min?{percentile25:e.boardP25Min}:{},...e.boardP75Max?{percentile75:e.boardP75Max}:{}}),...pe(e.bySeniority,e.currency,e.categoryName,t)]):null}function Ut(e){return e.overallSalary?G("Occupation",e.skillName,{},[x(e.skillName,e.currency,e.overallSalary.avgMin,e.overallSalary.avgMax,{median:Math.round((e.overallSalary.medianMin+e.overallSalary.medianMax)/2)})]):null}function Mt(e,t){return!t?.occupationUrl||!(e.adminLevel==="city"||e.adminLevel==="locality")?null:H(e.topCategories.map(n=>({name:n.categoryName,url:t.occupationUrl(n)})))}function wt(e,t){return e.overall?G("Occupation",e.name,{occupationLocation:{"@type":"AdministrativeArea",name:e.placeName,address:{"@type":"PostalAddress",addressCountry:e.countryCode}}},[x(e.name,e.currency,e.overall.avgMin,e.overall.avgMax,{...e.overall.p25Min?{percentile25:e.overall.p25Min}:{},...e.overall.p75Max?{percentile75:e.overall.p75Max}:{}}),...pe(e.bySeniority,e.currency,e.name,t)]):null}function Jt(e,t){return t?.occupationUrl?H(e.byCategory.map(o=>({name:o.categoryName,url:t.occupationUrl(o)}))):null}function Nt(e,t){return e.overallSalary?G("Occupation",e.categoryName,{occupationalCategory:e.categoryName,hiringOrganization:{"@type":"Organization",name:e.companyName}},[x(e.categoryName,e.currency,e.overallSalary.avgMin,e.overallSalary.avgMax,{...e.boardCategoryP25Min?{percentile25:e.boardCategoryP25Min}:{},...e.boardCategoryP75Max?{percentile75:e.boardCategoryP75Max}:{}}),...pe(e.bySeniority,e.currency,e.categoryName,t)]):null}function jt(e,t){return e.company?.name??t.legalName??t.contact?.legalName??t.name??null}var Dt={high_school:"high school",associate_degree:"associate degree",bachelor_degree:"bachelor degree",professional_certificate:"professional certificate",postgraduate_degree:"postgraduate degree"},Qo={full_time:"FULL_TIME",part_time:"PART_TIME",contract:"CONTRACTOR",internship:"INTERN",temporary:"TEMPORARY",volunteer:"VOLUNTEER",other:"OTHER"},qo={per_year:"YEAR",per_month:"MONTH",per_week:"WEEK",per_day:"DAY",per_hour:"HOUR"},me=["AF","AX","AL","DZ","AS","AD","AO","AI","AQ","AG","AR","AM","AW","AU","AT","AZ","BS","BH","BD","BB","BY","BE","BZ","BJ","BM","BT","BO","BA","BW","BV","BR","IO","VG","BN","BG","BF","BI","KH","CM","CA","CV","BQ","KY","CF","TD","CL","CN","CX","CC","CO","KM","CK","CR","HR","CU","CW","CY","CZ","DK","DJ","DM","DO","CD","EC","EG","SV","GQ","ER","EE","SZ","ET","FK","FO","FJ","FI","FR","GF","PF","TF","GA","GM","GE","DE","GH","GI","GR","GL","GD","GP","GU","GT","GG","GN","GW","GY","HT","HM","HN","HK","HU","IS","IN","ID","IR","IQ","IE","IM","IL","IT","CI","JM","JP","JE","JO","KZ","KE","KI","XK","KW","KG","LA","LV","LB","LS","LR","LY","LI","LT","LU","MO","MG","MW","MY","MV","ML","MT","MH","MQ","MR","MU","YT","MX","FM","MD","MC","MN","ME","MS","MA","MZ","MM","NA","NR","NP","NL","NC","NZ","NI","NE","NG","NU","NF","MK","MP","NO","OM","PK","PW","PS","PA","PG","PY","PE","PH","PN","PL","PT","PR","QA","CG","RE","RO","RU","RW","BL","SH","KN","LC","MF","PM","VC","WS","SM","ST","SA","SN","RS","SC","SL","SG","SX","SK","SI","SB","SO","ZA","GS","KR","SS","ES","LK","SD","SR","SJ","SE","CH","SY","TW","TJ","TZ","TH","TL","TG","TK","TO","TT","TN","TR","TM","TC","TV","UG","UA","AE","GB","US","UM","VI","UY","UZ","VU","VA","VE","VN","WF","EH","YE","ZM","ZW"];function Qt({job:e,board:t,shareUrl:o}){let n=Wo(e),r=Zo(e),i=ue({"@context":"https://schema.org/","@type":"JobPosting",title:e.title,description:e.description??"",identifier:Go(e,t),datePosted:$t(e.publishedAt),validThrough:$t(e.expiresAt),employmentType:e.employmentType?Qo[e.employmentType]??"OTHER":"OTHER",hiringOrganization:Ho(e,t),jobLocation:Vo(e),jobLocationType:e.remoteOption==="remote"?"TELECOMMUTE":void 0,applicantLocationRequirements:e.remoteOption==="remote"?zo(e):null,baseSalary:Ko(e),educationRequirements:n,experienceRequirements:r,experienceInPlaceOfEducation:e.experienceInPlaceOfEducation===!0&&n&&r?!0:void 0,url:o});return!i||Array.isArray(i)||Object.keys(i).length===0?null:i}function Go(e,t){let o=jt(e,t),n={"@type":"PropertyValue",value:e.id};return o&&(n.name=o),n}function Ho(e,t){let o=jt(e,t);if(!o)return null;let n={"@type":"Organization",name:o},r=e.company?.website??null,i=r?U(r):null;i&&(n.sameAs=i);let s=e.company?.logoUrl??t.logoUrl??null;return s&&(n.logo=s),n}function U(e){let t=e.trim();return t?/^https?:\/\//i.test(t)?t:`https://${t}`:null}function Ko(e){let t=e.salaryCurrency?.trim(),o=typeof e.salaryMin=="number",n=typeof e.salaryMax=="number";if(!t||!o&&!n)return null;let r={"@type":"QuantitativeValue"};o&&(r.minValue=e.salaryMin),n&&(r.maxValue=e.salaryMax);let i=e.salaryTimeframe?qo[e.salaryTimeframe]:void 0;return i&&(r.unitText=i),!o&&n&&typeof e.salaryMax=="number"?(r.value=e.salaryMax,r.minValue=e.salaryMax):!n&&o&&typeof e.salaryMin=="number"&&(r.value=e.salaryMin,r.maxValue=e.salaryMin),{"@type":"MonetaryAmount",currency:t.toUpperCase(),value:r}}function Vo(e){let t=e.officeLocations.map(o=>Yo({countryCode:o.countryCode,region:o.region,locality:o.city??o.locality,postalCode:o.postalCode,name:o.displayName})).filter(o=>o!==null);return t.length===0?null:t.length===1?t[0]:t}function Yo({countryCode:e,region:t,locality:o,postalCode:n,name:r}){let i={"@type":"PostalAddress"},s=e?.trim(),a=t?.trim(),l=o?.trim(),c=n?.trim(),p=r?.trim();s&&(i.addressCountry=s.toUpperCase()),a&&(i.addressRegion=a),l&&(i.addressLocality=l),c&&(i.postalCode=c);let m=Object.keys(i).length>1;if(!m&&!p)return null;let d={"@type":"Place"};return p&&(d.name=p),m&&(d.address=i),d}function zo(e){if(e.remoteWorldwide)return me.map(n=>({"@type":"Country",name:n}));let t=[],o=new Set;for(let n of e.remoteWorkPermitCountryCodes??[]){let r=n?.trim().toUpperCase();!r||o.has(r)||(o.add(r),t.push({"@type":"Country",name:r}))}for(let n of e.remoteWorkPermitSubdivisionCodes??[]){let r=n?.split("-")[0]?.trim().toUpperCase();!r||o.has(r)||(o.add(r),t.push({"@type":"Country",name:r}))}return t.length===0?null:t.length===1?t[0]:t}function Wo(e){let t=e.educationRequirements;if(!t||t.length===0)return null;if(t.includes("no_requirements"))return"no requirements";let o=t.filter(n=>n in Dt).map(n=>({"@type":"EducationalOccupationalCredential",credentialCategory:Dt[n]}));return o.length>0?o:null}function Zo(e){let t=e.experienceMonths;return typeof t!="number"?null:t===0?"no requirements":{"@type":"OccupationalExperienceRequirements",monthsOfExperience:t}}function $t(e){if(!e)return null;let t=new Date(e);return Number.isNaN(t.getTime())?null:t.toISOString()}function ue(e){let t=o=>o==null?!1:Array.isArray(o)?o.length>0:typeof o=="object"?Object.keys(o).length>0:!0;if(Array.isArray(e))return e.map(o=>ue(o)).filter(t);if(e&&typeof e=="object"){let o=Object.entries(e).map(([n,r])=>[n,ue(r)]).filter(([,n])=>t(n));return Object.fromEntries(o)}return e}var ye={};A(ye,{BOARD_PATHS:()=>Y,blogAuthorPath:()=>rn,blogPostPath:()=>Vt,blogTagPath:()=>Yt,boardUrl:()=>z,companyMarketPath:()=>Kt,companyPath:()=>Ht,companySalaryPath:()=>en,encodePathSegment:()=>h,goAlertsConfirmPath:()=>cn,goAlertsManagePath:()=>ln,goJobPath:()=>an,jobDetailPath:()=>de,jobsCategoryPath:()=>K,jobsLocationCategoryPath:()=>V,jobsLocationPath:()=>M,jobsLocationSkillPath:()=>Gt,jobsSkillPath:()=>qt,salaryLocationPath:()=>nn,salarySkillPath:()=>on,salaryTitlePath:()=>tn,suggestionPath:()=>Xo,talentProfilePath:()=>sn});function h(e){try{return encodeURIComponent(decodeURIComponent(e)).replace(/%3A/gi,":")}catch{return encodeURIComponent(e).replace(/%3A/gi,":")}}function de(e,t){return`/companies/${h(e)}/jobs/${h(t)}`}function K(e){return`/jobs/${h(e)}`}function qt(e){return`/jobs/skills/${h(e)}`}function M(e){return`/jobs/locations/${h(e)}`}function V(e,t){return`${M(e)}/${h(t)}`}function Gt(e,t){return`${M(e)}/skills/${h(t)}`}function Ht(e){return`/companies/${h(e)}`}function Kt(e){return`/companies/markets/${h(e)}`}function Xo(e,t){let o=t.location?.trim()||void 0;return t.scope==="blog"?e.type==="post"?Vt(e.slug):e.type==="tag"?Yt(e.slug):null:t.scope==="jobs"?e.type==="company"||e.type==="market"||e.type==="post"||e.type==="tag"?null:e.termType==="skill"?o?Gt(o,e.canonicalSlug):qt(e.canonicalSlug):o?V(o,e.canonicalSlug):K(e.canonicalSlug):e.type==="company"?Ht(e.slug):e.type==="market"?Kt(e.slug):null}function en(e){return`/companies/${h(e)}/salaries`}function tn(e){return`/salaries/titles/${h(e)}`}function on(e){return`/salaries/skills/${h(e)}`}function nn(e){return`/salaries/locations/${h(e)}`}function Vt(e){return`/blog/${h(e)}`}function Yt(e){return`/blog/tag/${h(e)}`}function rn(e){return`/blog/author/${h(e)}`}function sn(e){return`/p/${h(e)}`}var Y={home:"/",jobs:"/jobs",companies:"/companies",salaries:"/salaries",salaryCompanies:"/salaries/companies",salaryTitles:"/salaries/titles",salarySkills:"/salaries/skills",salaryLocations:"/salaries/locations",blog:"/blog",about:"/about",privacyPolicy:"/privacy-policy",termsOfService:"/terms-of-service",cookiePolicy:"/cookie-policy",impressum:"/impressum",talent:"/talent",employers:"/employers",alertsManage:"/alerts/manage",alertsConfirm:"/alerts/confirm"};function an(e){return`/go/job/${e}`}function ln(){return"/go/alerts-manage"}function cn(){return"/go/alerts-confirm"}function z(e,t){return`${e.replace(/\/+$/,"")}${t}`}function zt(e,t={}){let o=e.map(r=>{let i=r.label?.trim();return i?{name:i,href:r.href?.trim()??null}:null}).filter(r=>!!r);return o.length<2?null:{"@context":"https://schema.org","@type":"BreadcrumbList",itemListElement:o.map((r,i)=>{let s=r.href?pn(r.href,t.origin??null):null,a={"@type":"ListItem",position:i+1,name:r.name};return s&&(a.item=s),a})}}function pn(e,t){if(un(e))return e;if(!t)return null;let o=e.startsWith("/")?e:`/${e}`;return`${t}${o}`}function un(e){return/^https?:\/\//i.test(e)}function W(e){let t=[{kind:"home",path:Y.home},{kind:"jobs",path:Y.jobs}],o=null;for(let r of e.placeHierarchy)o=r.slug,t.push({kind:"place",name:r.name,path:M(r.slug)});let n=e.categories[0];return n&&t.push({kind:"category",name:n.name,path:o?V(o,n.slug):K(n.slug)}),t.push({kind:"job",name:e.title}),t}var Z=["AD","AE","AF","AG","AI","AL","AM","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CR","CU","CV","CW","CX","CY","CZ","DE","DJ","DK","DM","DO","DZ","EC","EE","EG","EH","ER","ES","ET","FI","FJ","FK","FM","FO","FR","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SV","SX","SY","SZ","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TR","TT","TV","TW","TZ","UA","UG","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XK","YE","YT","ZA","ZM","ZW"];function mn(e){try{return new Intl.DisplayNames([e],{type:"region"})}catch{return null}}function dn(e){try{return new Intl.Collator(e)}catch{return new Intl.Collator}}function Wt(e){let t=C(e);if(!t)return Z.map(r=>({code:r,name:r})).sort((r,i)=>r.code<i.code?-1:r.code>i.code?1:0);let o=mn(t),n=dn(t).compare;return Z.map(r=>({code:r,name:o?.of(r)??r})).sort((r,i)=>n(r.name,i.name))}function yn(e,t){if(!Array.isArray(t)||t.length===0)return null;let o=t.map(n=>e.options?.find(r=>r.key===n)?.label).filter(n=>!!n);return o.length>0?o:null}function fn(e,t){switch(e.type){case"number":return null;case"multi_select":return null;case"single_select":return typeof t!="string"?null:e.options?.find(o=>o.key===t)?.label??null;default:return typeof t=="string"&&t.trim()!==""?t:null}}function Zt(e,t,o){let n=[];for(let r of t??[]){let i=o?.[r.key];if(r.type==="boolean"){typeof i=="boolean"&&n.push({key:r.key,label:r.label,kind:"boolean",value:i});continue}if(r.type==="number"){typeof i=="number"&&Number.isFinite(i)&&n.push({key:r.key,label:r.label,kind:"number",value:i});continue}if(r.type==="multi_select"){let a=yn(r,i);a&&n.push({key:r.key,label:r.label,kind:"multi_select",values:a});continue}let s=fn(r,i);s!==null&&n.push({key:r.key,label:r.label,kind:"text",value:s})}return n}var fe=["US","GB","LR","MM"],Xt=1,eo=250;var gn=new Set(fe);function to(e){return typeof e=="string"&&gn.has(e.trim().toUpperCase())}function oo(e){return to(e)?"mi":"km"}function no(e){return to(e)?40:50}function ge(e){return e*1.609344}function he(e){return e/1.609344}function ro(e,t){return t==="mi"?he(e):e}function X(e,t){return t==="mi"?ge(e):e}var hn=[5,10,25,50,100];function io(e){return hn.map(t=>({value:t,unit:e,km:X(t,e)}))}function so(e){let t=e==="mi"?25:50;return{value:t,unit:e,km:X(t,e)}}function ao(e,t,o){return new Intl.NumberFormat(o,{style:"unit",unit:t==="mi"?"mile":"kilometer",unitDisplay:"short",maximumFractionDigits:1}).format(e)}var Se={};A(Se,{ALL_COUNTRY_CODES:()=>me,SENIORITY_ORDER:()=>Q,buildJobBreadcrumbs:()=>W,buildSalaryFaq:()=>Ft,companyCategorySalaryJsonLd:()=>Nt,companySalaryJsonLd:()=>Jt,createAuthorProfileJsonLd:()=>co,createBlogArticleJsonLd:()=>lo,createBreadcrumbJsonLd:()=>zt,createJobPostingJsonLd:()=>Qt,crossAxisSalaryJsonLd:()=>wt,faqJsonLd:()=>kt,formatSalaryStat:()=>q,formatSalaryStatRange:()=>k,itemListJsonLd:()=>H,listingHead:()=>po,listingJsonLd:()=>uo,locationSalaryJsonLd:()=>Mt,normalizeWebsiteUrl:()=>U,skillSalaryJsonLd:()=>Ut,sortBySeniority:()=>It,titleSalaryJsonLd:()=>xt});function lo({post:e,boardName:t,permalink:o,ogImageUrl:n}){let r={"@context":"https://schema.org","@type":"Article",headline:e.title,url:o,mainEntityOfPage:{"@type":"WebPage","@id":o},publisher:{"@type":"Organization",name:t}};e.customExcerpt&&(r.description=e.customExcerpt),e.publishedAt&&(r.datePublished=e.publishedAt);let i=e.coverUrl??n;i&&(r.image=i);let s=e.authors[0];return s&&(r.author={"@type":"Person",name:s.name,...s.websiteUrl?{url:s.websiteUrl}:{}}),r}function co({author:e,canonical:t,description:o,origin:n,posts:r,totalPosts:i}){if(!e.name)return null;let s=o.trim(),a=[ee(e.websiteUrl),ee(e.twitterUrl),ee(e.linkedinUrl),ee(e.githubUrl)].filter(d=>!!d),l=`${t}#profile`,c=r.slice(0,5).map(d=>{let y=bn(n,`/blog/${d.slug}`);return y?{"@type":"Article",headline:d.title,url:y,datePublished:d.publishedAt,author:{"@id":l}}:null}).filter(d=>d!==null),p=i>0?{"@type":"InteractionCounter",interactionType:"https://schema.org/WriteAction",userInteractionCount:i}:void 0,m={"@context":"https://schema.org","@type":"ProfilePage",url:t,mainEntity:{"@type":"Person","@id":l,name:e.name,alternateName:e.slug??void 0,identifier:e.id??void 0,description:s||void 0,image:e.avatarUrl??void 0,sameAs:a.length>0?a:void 0,url:t,mainEntityOfPage:t,agentInteractionStatistic:p}};return c.length>0&&(m.hasPart=c),m}function ee(e){if(!e)return null;let t=e.trim();if(!t)return null;try{let o=t.startsWith("http://")||t.startsWith("https://")?t:`https://${t}`;return new URL(o).toString()}catch{return null}}function bn(e,t){if(!e||!t)return null;try{return new URL(t,e).toString()}catch{return null}}function po(e){let t=e.title,o=e.description,n=`${e.origin}${e.path}`;return{meta:[{title:t},{name:"description",content:o},{property:"og:title",content:t},{property:"og:description",content:o},{property:"og:type",content:"website"},{property:"og:url",content:n}],links:[{rel:"canonical",href:n}]}}function uo(e){let t=[];e.breadcrumbs.length>=2&&t.push({"@context":"https://schema.org","@type":"BreadcrumbList",itemListElement:e.breadcrumbs.map((n,r)=>({"@type":"ListItem",position:r+1,name:n.name,...n.path?{item:z(e.origin,n.path)}:{}}))});let o=(e.jobs??[]).filter(n=>n.company!=null&&!!n.company.slug);return o.length>0&&t.push({"@context":"https://schema.org","@type":"ItemList",itemListElement:o.map((n,r)=>({"@type":"ListItem",position:r+1,url:z(e.origin,de(n.company.slug,n.slug))}))}),t}var Ce={};A(Ce,{createSuggestController:()=>On});function Sn(e){return typeof DOMException<"u"&&e instanceof DOMException&&e.name==="AbortError"||e instanceof Error&&e.name==="AbortError"}function Cn(e){try{let t=0;for(let o of new Intl.Segmenter(void 0,{granularity:"grapheme"}).segment(e))t+=1;return t}catch{return[...e].length}}function mo(e,t){return t.size===0?e.slice():e.filter(o=>!(o.type==="company"&&t.has(o.slug.toLowerCase().normalize("NFC"))))}function On(e,t){let o=t?.minChars??2,n=t?.debounceMs??250,r=t?.limit,i=!1,s={query:"",items:[],status:"idle",error:null},a=[],l=new Set,c=0,p=null,m=null,d=new Set;function y(){for(let u of d)u()}function f(u){s=u,y()}function O(){p!==null&&(globalThis.clearTimeout(p),p=null)}function g(){m&&(m.abort(),m=null)}function R(u){let b=++c;g();let _=new AbortController;m=_;let E={q:u};r!==void 0&&(E.limit=r),e.search.suggest(E,{signal:_.signal}).then(B=>{i||b!==c||(m=null,a=B.items,f({query:s.query,items:mo(a,l),status:"ready",error:null}))}).catch(B=>{i||b!==c||Sn(B)||(m=null,f({query:s.query,items:s.items,status:"error",error:B}))})}return{setQuery(u){if(i)return;let b=u.trim();if(O(),Cn(b)<o){c+=1,g(),a=[],f({query:u,items:[],status:"idle",error:null});return}c+=1,g(),f({query:u,items:s.items,status:"loading",error:null}),p=globalThis.setTimeout(()=>{p=null,!i&&R(b)},n)},setExcludedCompanySlugs(u){i||(l=new Set(u.map(b=>b.trim().toLowerCase().normalize("NFC")).filter(Boolean)),f({query:s.query,items:mo(a,l),status:s.status,error:s.error}))},getState(){return s},subscribe(u){return i?()=>{}:(d.add(u),()=>{d.delete(u)})},dispose(){i||(i=!0,O(),g(),c+=1,d.clear())}}}return So(_n);})();
@@ -1,5 +1,5 @@
1
- import { J as JobSort, E as EmploymentType, R as RemoteOption, S as Seniority } from './jobs-Y9kacbM1.mjs';
2
- import './_spec-BcXYrhOP.mjs';
1
+ import { J as JobSort, E as EmploymentType, R as RemoteOption, S as Seniority } from './jobs-B-imggAc.mjs';
2
+ import './_spec-DRUEt9M3.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--rvR1CgY.js';
2
- import './_spec-BcXYrhOP.js';
1
+ import { J as JobSort, E as EmploymentType, R as RemoteOption, S as Seniority } from './jobs-jQwzYyvr.js';
2
+ import './_spec-DRUEt9M3.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-CwSd7BN1.mjs';
2
- import { C as CustomFieldDefinition } from './board-CK62f0G5.mjs';
3
- import { C as CustomFieldValues } from './jobs-Y9kacbM1.mjs';
4
- import './_spec-BcXYrhOP.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-BTqDFpGD.mjs';
2
+ import { C as CustomFieldDefinition } from './board-Eusn8R9i.mjs';
3
+ import { C as CustomFieldValues } from './jobs-B-imggAc.mjs';
4
+ import './_spec-DRUEt9M3.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-Adrx69WV.js';
2
- import { C as CustomFieldDefinition } from './board-CTUrq9MP.js';
3
- import { C as CustomFieldValues } from './jobs--rvR1CgY.js';
4
- import './_spec-BcXYrhOP.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-nX2svS5_.js';
2
+ import { C as CustomFieldDefinition } from './board-C-Hz8MMP.js';
3
+ import { C as CustomFieldValues } from './jobs-jQwzYyvr.js';
4
+ import './_spec-DRUEt9M3.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-BcXYrhOP.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-Dhy-RqrE.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-Dhy-RqrE.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-CK62f0G5.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-CK62f0G5.mjs';
6
- export { B as BoardSeo } from './seo-C39S8YTH.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-Y9kacbM1.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-Y9kacbM1.mjs';
9
- import { a as BlogPostsListQuery, b as BlogSimilarQuery, c as BlogSearchBody } from './blog-PS7AwaF7.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-PS7AwaF7.mjs';
1
+ import { S as Schemas, c as components } from './_spec-DRUEt9M3.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-C8uy6k8-.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-C8uy6k8-.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-Eusn8R9i.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-Eusn8R9i.mjs';
6
+ export { B as BoardSeo } from './seo-D3AF4q7d.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-B-imggAc.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-B-imggAc.mjs';
9
+ import { a as BlogPostsListQuery, b as BlogSimilarQuery, c as BlogSearchBody } from './blog-B0oLDN4M.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-B0oLDN4M.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.38.0";
205
+ declare const SDK_VERSION = "4.41.0";
206
206
 
207
207
  type SavedJob = Schemas['SavedJob'];
208
208
  type SavedJobsListQuery = {
@@ -1097,6 +1097,11 @@ type TaxonomyListQuery = {
1097
1097
  /** `name` (default) or `jobCount` (highest published-job count first). */
1098
1098
  sort?: 'name' | 'jobCount';
1099
1099
  };
1100
+ /** Query for `taxonomy.categories.list()`. */
1101
+ type CategoryListQuery = TaxonomyListQuery & {
1102
+ /** `true` returns only top-level categories (those with no parent). */
1103
+ topLevel?: boolean;
1104
+ };
1100
1105
  /**
1101
1106
  * Query for `taxonomy.places.list()`. Omit it (or `q`) for the full
1102
1107
  * locations directory; pass `q` (≥2 chars) for location autocomplete — the
@@ -3343,10 +3348,11 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
3343
3348
  };
3344
3349
  taxonomy: {
3345
3350
  categories: {
3346
- list(query?: TaxonomyListQuery, options?: FetchOptions): Promise<ListEnvelope<{
3351
+ list(query?: CategoryListQuery | undefined, options?: FetchOptions): Promise<ListEnvelope<{
3347
3352
  object: "taxonomy_term";
3348
3353
  id: string;
3349
3354
  type: "category" | "skill";
3355
+ parentId: string | null;
3350
3356
  sourceSlug: string;
3351
3357
  canonicalSlug: string;
3352
3358
  displayName: string;
@@ -3363,10 +3369,11 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
3363
3369
  }>;
3364
3370
  };
3365
3371
  skills: {
3366
- list(query?: TaxonomyListQuery, options?: FetchOptions): Promise<ListEnvelope<{
3372
+ list(query?: TaxonomyListQuery | undefined, options?: FetchOptions): Promise<ListEnvelope<{
3367
3373
  object: "taxonomy_term";
3368
3374
  id: string;
3369
3375
  type: "category" | "skill";
3376
+ parentId: string | null;
3370
3377
  sourceSlug: string;
3371
3378
  canonicalSlug: string;
3372
3379
  displayName: string;
@@ -4109,4 +4116,4 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
4109
4116
  };
4110
4117
  type BoardSdk = ReturnType<typeof createBoardClient>;
4111
4118
 
4112
- 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, type AvailableSignInMethods, Awaitable, BOARD_API_ERROR_CODES, type BindingStorage, 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 BuiltInSignInMethod, 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 CompanyMemberInvitePreview, 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 OAuthCompletion, type OAuthExchangeBody, type OAuthProvider, ObjectReferenceFilter, type Paginator, type PaywallOffer, type PaywallOfferListEnvelope, type PlacesListQuery, type Plan, type PlanListEnvelope, type PlansListQuery, type PreviewCompanyMemberInviteBody, 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, SIGN_IN_REDIRECT_ERROR_CODES, SSO_LINK_PROOF_BINDING_TTL_MS, SalaryDetailQuery, type SalesLedPlan, type SalesLedPlanListEnvelope, type SaveJobBody, type SavedJob, type SavedJobsListQuery, SearchEnvelope, SearchSuggestQuery, type SendWorkEmailBody, Seniority, type SignInRedirectErrorCode, type SignInRole, type SitemapEntriesEnvelope, type SitemapEntriesQuery, type SitemapEntry, type SourcedCandidate, type SsoAuthorizationQuery, type SsoAuthorizationUrl, type SsoLinkProofBindingStore, type SsoLinkProofBody, 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, isSignInMethodUnavailable, isSsoBrowserMismatch, isSsoRequired, isUnauthorized, isValidationError, lastOwnMessageId, paginate, parseOAuthCompletion, resolveApplyAction, resolveApplyDecision, ssoLinkProofBindingStore };
4119
+ 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, type AvailableSignInMethods, Awaitable, BOARD_API_ERROR_CODES, type BindingStorage, 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 BuiltInSignInMethod, type BulkMoveApplicantsBody, type BulkRejectApplicantsBody, type CandidateAvatar, type CandidateEducation, type CandidateExperience, type CandidateLanguage, type CandidateProfile, type CandidateSkill, type CategoryListQuery, type ClaimableCompany, CompaniesListQuery, CompaniesSearchBody, type CompanyBillingPortalBody, type CompanyBillingPortalSession, CompanyJobsListQuery, CompanyListEnvelope, CompanyMarketsListQuery, type CompanyMember, type CompanyMemberInvite, type CompanyMemberInviteAcceptance, type CompanyMemberInvitePreview, 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 OAuthCompletion, type OAuthExchangeBody, type OAuthProvider, ObjectReferenceFilter, type Paginator, type PaywallOffer, type PaywallOfferListEnvelope, type PlacesListQuery, type Plan, type PlanListEnvelope, type PlansListQuery, type PreviewCompanyMemberInviteBody, 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, SIGN_IN_REDIRECT_ERROR_CODES, SSO_LINK_PROOF_BINDING_TTL_MS, SalaryDetailQuery, type SalesLedPlan, type SalesLedPlanListEnvelope, type SaveJobBody, type SavedJob, type SavedJobsListQuery, SearchEnvelope, SearchSuggestQuery, type SendWorkEmailBody, Seniority, type SignInRedirectErrorCode, type SignInRole, type SitemapEntriesEnvelope, type SitemapEntriesQuery, type SitemapEntry, type SourcedCandidate, type SsoAuthorizationQuery, type SsoAuthorizationUrl, type SsoLinkProofBindingStore, type SsoLinkProofBody, 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, isSignInMethodUnavailable, isSsoBrowserMismatch, isSsoRequired, isUnauthorized, isValidationError, lastOwnMessageId, paginate, parseOAuthCompletion, resolveApplyAction, resolveApplyDecision, ssoLinkProofBindingStore };
package/dist/index.d.ts CHANGED
@@ -1,13 +1,13 @@
1
- import { S as Schemas, c as components } from './_spec-BcXYrhOP.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-B-YDO3kN.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-B-YDO3kN.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-CTUrq9MP.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-CTUrq9MP.js';
6
- export { B as BoardSeo } from './seo-BiissB7X.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--rvR1CgY.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--rvR1CgY.js';
9
- import { a as BlogPostsListQuery, b as BlogSimilarQuery, c as BlogSearchBody } from './blog-BLLQ5H5M.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-BLLQ5H5M.js';
1
+ import { S as Schemas, c as components } from './_spec-DRUEt9M3.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-vXX_s6f5.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-vXX_s6f5.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-C-Hz8MMP.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-C-Hz8MMP.js';
6
+ export { B as BoardSeo } from './seo-BdNi6Eif.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-jQwzYyvr.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-jQwzYyvr.js';
9
+ import { a as BlogPostsListQuery, b as BlogSimilarQuery, c as BlogSearchBody } from './blog-DZejMyq-.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-DZejMyq-.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.38.0";
205
+ declare const SDK_VERSION = "4.41.0";
206
206
 
207
207
  type SavedJob = Schemas['SavedJob'];
208
208
  type SavedJobsListQuery = {
@@ -1097,6 +1097,11 @@ type TaxonomyListQuery = {
1097
1097
  /** `name` (default) or `jobCount` (highest published-job count first). */
1098
1098
  sort?: 'name' | 'jobCount';
1099
1099
  };
1100
+ /** Query for `taxonomy.categories.list()`. */
1101
+ type CategoryListQuery = TaxonomyListQuery & {
1102
+ /** `true` returns only top-level categories (those with no parent). */
1103
+ topLevel?: boolean;
1104
+ };
1100
1105
  /**
1101
1106
  * Query for `taxonomy.places.list()`. Omit it (or `q`) for the full
1102
1107
  * locations directory; pass `q` (≥2 chars) for location autocomplete — the
@@ -3343,10 +3348,11 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
3343
3348
  };
3344
3349
  taxonomy: {
3345
3350
  categories: {
3346
- list(query?: TaxonomyListQuery, options?: FetchOptions): Promise<ListEnvelope<{
3351
+ list(query?: CategoryListQuery | undefined, options?: FetchOptions): Promise<ListEnvelope<{
3347
3352
  object: "taxonomy_term";
3348
3353
  id: string;
3349
3354
  type: "category" | "skill";
3355
+ parentId: string | null;
3350
3356
  sourceSlug: string;
3351
3357
  canonicalSlug: string;
3352
3358
  displayName: string;
@@ -3363,10 +3369,11 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
3363
3369
  }>;
3364
3370
  };
3365
3371
  skills: {
3366
- list(query?: TaxonomyListQuery, options?: FetchOptions): Promise<ListEnvelope<{
3372
+ list(query?: TaxonomyListQuery | undefined, options?: FetchOptions): Promise<ListEnvelope<{
3367
3373
  object: "taxonomy_term";
3368
3374
  id: string;
3369
3375
  type: "category" | "skill";
3376
+ parentId: string | null;
3370
3377
  sourceSlug: string;
3371
3378
  canonicalSlug: string;
3372
3379
  displayName: string;
@@ -4109,4 +4116,4 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
4109
4116
  };
4110
4117
  type BoardSdk = ReturnType<typeof createBoardClient>;
4111
4118
 
4112
- 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, type AvailableSignInMethods, Awaitable, BOARD_API_ERROR_CODES, type BindingStorage, 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 BuiltInSignInMethod, 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 CompanyMemberInvitePreview, 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 OAuthCompletion, type OAuthExchangeBody, type OAuthProvider, ObjectReferenceFilter, type Paginator, type PaywallOffer, type PaywallOfferListEnvelope, type PlacesListQuery, type Plan, type PlanListEnvelope, type PlansListQuery, type PreviewCompanyMemberInviteBody, 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, SIGN_IN_REDIRECT_ERROR_CODES, SSO_LINK_PROOF_BINDING_TTL_MS, SalaryDetailQuery, type SalesLedPlan, type SalesLedPlanListEnvelope, type SaveJobBody, type SavedJob, type SavedJobsListQuery, SearchEnvelope, SearchSuggestQuery, type SendWorkEmailBody, Seniority, type SignInRedirectErrorCode, type SignInRole, type SitemapEntriesEnvelope, type SitemapEntriesQuery, type SitemapEntry, type SourcedCandidate, type SsoAuthorizationQuery, type SsoAuthorizationUrl, type SsoLinkProofBindingStore, type SsoLinkProofBody, 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, isSignInMethodUnavailable, isSsoBrowserMismatch, isSsoRequired, isUnauthorized, isValidationError, lastOwnMessageId, paginate, parseOAuthCompletion, resolveApplyAction, resolveApplyDecision, ssoLinkProofBindingStore };
4119
+ 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, type AvailableSignInMethods, Awaitable, BOARD_API_ERROR_CODES, type BindingStorage, 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 BuiltInSignInMethod, type BulkMoveApplicantsBody, type BulkRejectApplicantsBody, type CandidateAvatar, type CandidateEducation, type CandidateExperience, type CandidateLanguage, type CandidateProfile, type CandidateSkill, type CategoryListQuery, type ClaimableCompany, CompaniesListQuery, CompaniesSearchBody, type CompanyBillingPortalBody, type CompanyBillingPortalSession, CompanyJobsListQuery, CompanyListEnvelope, CompanyMarketsListQuery, type CompanyMember, type CompanyMemberInvite, type CompanyMemberInviteAcceptance, type CompanyMemberInvitePreview, 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 OAuthCompletion, type OAuthExchangeBody, type OAuthProvider, ObjectReferenceFilter, type Paginator, type PaywallOffer, type PaywallOfferListEnvelope, type PlacesListQuery, type Plan, type PlanListEnvelope, type PlansListQuery, type PreviewCompanyMemberInviteBody, 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, SIGN_IN_REDIRECT_ERROR_CODES, SSO_LINK_PROOF_BINDING_TTL_MS, SalaryDetailQuery, type SalesLedPlan, type SalesLedPlanListEnvelope, type SaveJobBody, type SavedJob, type SavedJobsListQuery, SearchEnvelope, SearchSuggestQuery, type SendWorkEmailBody, Seniority, type SignInRedirectErrorCode, type SignInRole, type SitemapEntriesEnvelope, type SitemapEntriesQuery, type SitemapEntry, type SourcedCandidate, type SsoAuthorizationQuery, type SsoAuthorizationUrl, type SsoLinkProofBindingStore, type SsoLinkProofBody, 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, isSignInMethodUnavailable, isSsoBrowserMismatch, isSsoRequired, isUnauthorized, isValidationError, lastOwnMessageId, paginate, parseOAuthCompletion, resolveApplyAction, resolveApplyDecision, ssoLinkProofBindingStore };
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.38.0";
406
+ var SDK_VERSION = "4.41.0";
407
407
 
408
408
  // src/client.ts
409
409
  function isRawBody(body) {
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.38.0";
49
+ var SDK_VERSION = "4.41.0";
50
50
 
51
51
  // src/client.ts
52
52
  function isRawBody(body) {
@@ -1,4 +1,4 @@
1
- import { S as Schemas } from './_spec-BcXYrhOP.mjs';
1
+ import { S as Schemas } from './_spec-DRUEt9M3.mjs';
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-BcXYrhOP.js';
1
+ import { S as Schemas } from './_spec-DRUEt9M3.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-BcXYrhOP.mjs';
1
+ import { S as Schemas } from './_spec-DRUEt9M3.mjs';
2
2
 
3
3
  type Awaitable<T> = T | Promise<T>;
4
4
  /**
@@ -1,4 +1,4 @@
1
- import { S as Schemas } from './_spec-BcXYrhOP.js';
1
+ import { S as Schemas } from './_spec-DRUEt9M3.js';
2
2
 
3
3
  type Awaitable<T> = T | Promise<T>;
4
4
  /**
@@ -1,4 +1,4 @@
1
- import { S as Schemas } from './_spec-BcXYrhOP.js';
1
+ import { S as Schemas } from './_spec-DRUEt9M3.js';
2
2
 
3
3
  /**
4
4
  * The public SEO-infra payload (`board.seo()`) — platform infrastructure a
@@ -1,4 +1,4 @@
1
- import { S as Schemas } from './_spec-BcXYrhOP.mjs';
1
+ import { S as Schemas } from './_spec-DRUEt9M3.mjs';
2
2
 
3
3
  /**
4
4
  * The public SEO-infra payload (`board.seo()`) — platform infrastructure a
@@ -1,5 +1,5 @@
1
- import { B as BoardSeo } from './seo-C39S8YTH.mjs';
2
- import './_spec-BcXYrhOP.mjs';
1
+ import { B as BoardSeo } from './seo-D3AF4q7d.mjs';
2
+ import './_spec-DRUEt9M3.mjs';
3
3
 
4
4
  /**
5
5
  * `@cavuno/board/seo-files` — platform-owned crawler/identity file bodies
@@ -1,5 +1,5 @@
1
- import { B as BoardSeo } from './seo-BiissB7X.js';
2
- import './_spec-BcXYrhOP.js';
1
+ import { B as BoardSeo } from './seo-BdNi6Eif.js';
2
+ import './_spec-DRUEt9M3.js';
3
3
 
4
4
  /**
5
5
  * `@cavuno/board/seo-files` — platform-owned crawler/identity file bodies
package/dist/seo.d.mts CHANGED
@@ -1,9 +1,9 @@
1
- import { P as PublicBlogPostSummary, B as BlogAuthorEmbed } from './blog-PS7AwaF7.mjs';
2
- import { e as JsonLdObject } from './breadcrumbs-CwSd7BN1.mjs';
3
- export { A as ALL_COUNTRY_CODES, B as BreadcrumbItemInput, g as FaqItem, J as JobBreadcrumb, h as JsonLdBoard, N as NumberNotation, i as SENIORITY_ORDER, j as SalaryFaqEntry, k as SalaryJsonLdOptions, l as SalaryOccupationListOptions, b as buildJobBreadcrumbs, m as buildSalaryFaq, o as companyCategorySalaryJsonLd, p as companySalaryJsonLd, q as createBreadcrumbJsonLd, r as createJobPostingJsonLd, s as crossAxisSalaryJsonLd, t as faqJsonLd, c as formatSalaryStat, d as formatSalaryStatRange, u as itemListJsonLd, v as locationSalaryJsonLd, n as normalizeWebsiteUrl, w as skillSalaryJsonLd, x as sortBySeniority, y as titleSalaryJsonLd } from './breadcrumbs-CwSd7BN1.mjs';
4
- import './_spec-BcXYrhOP.mjs';
5
- import './board-CK62f0G5.mjs';
6
- import './jobs-Y9kacbM1.mjs';
1
+ import { P as PublicBlogPostSummary, B as BlogAuthorEmbed } from './blog-B0oLDN4M.mjs';
2
+ import { e as JsonLdObject } from './breadcrumbs-BTqDFpGD.mjs';
3
+ export { A as ALL_COUNTRY_CODES, B as BreadcrumbItemInput, g as FaqItem, J as JobBreadcrumb, h as JsonLdBoard, N as NumberNotation, i as SENIORITY_ORDER, j as SalaryFaqEntry, k as SalaryJsonLdOptions, l as SalaryOccupationListOptions, b as buildJobBreadcrumbs, m as buildSalaryFaq, o as companyCategorySalaryJsonLd, p as companySalaryJsonLd, q as createBreadcrumbJsonLd, r as createJobPostingJsonLd, s as crossAxisSalaryJsonLd, t as faqJsonLd, c as formatSalaryStat, d as formatSalaryStatRange, u as itemListJsonLd, v as locationSalaryJsonLd, n as normalizeWebsiteUrl, w as skillSalaryJsonLd, x as sortBySeniority, y as titleSalaryJsonLd } from './breadcrumbs-BTqDFpGD.mjs';
4
+ import './_spec-DRUEt9M3.mjs';
5
+ import './board-Eusn8R9i.mjs';
6
+ import './jobs-B-imggAc.mjs';
7
7
 
8
8
  /**
9
9
  * Blog structured data on the `@cavuno/board` wire types, transcribed from
package/dist/seo.d.ts CHANGED
@@ -1,9 +1,9 @@
1
- import { P as PublicBlogPostSummary, B as BlogAuthorEmbed } from './blog-BLLQ5H5M.js';
2
- import { e as JsonLdObject } from './breadcrumbs-Adrx69WV.js';
3
- export { A as ALL_COUNTRY_CODES, B as BreadcrumbItemInput, g as FaqItem, J as JobBreadcrumb, h as JsonLdBoard, N as NumberNotation, i as SENIORITY_ORDER, j as SalaryFaqEntry, k as SalaryJsonLdOptions, l as SalaryOccupationListOptions, b as buildJobBreadcrumbs, m as buildSalaryFaq, o as companyCategorySalaryJsonLd, p as companySalaryJsonLd, q as createBreadcrumbJsonLd, r as createJobPostingJsonLd, s as crossAxisSalaryJsonLd, t as faqJsonLd, c as formatSalaryStat, d as formatSalaryStatRange, u as itemListJsonLd, v as locationSalaryJsonLd, n as normalizeWebsiteUrl, w as skillSalaryJsonLd, x as sortBySeniority, y as titleSalaryJsonLd } from './breadcrumbs-Adrx69WV.js';
4
- import './_spec-BcXYrhOP.js';
5
- import './board-CTUrq9MP.js';
6
- import './jobs--rvR1CgY.js';
1
+ import { P as PublicBlogPostSummary, B as BlogAuthorEmbed } from './blog-DZejMyq-.js';
2
+ import { e as JsonLdObject } from './breadcrumbs-nX2svS5_.js';
3
+ export { A as ALL_COUNTRY_CODES, B as BreadcrumbItemInput, g as FaqItem, J as JobBreadcrumb, h as JsonLdBoard, N as NumberNotation, i as SENIORITY_ORDER, j as SalaryFaqEntry, k as SalaryJsonLdOptions, l as SalaryOccupationListOptions, b as buildJobBreadcrumbs, m as buildSalaryFaq, o as companyCategorySalaryJsonLd, p as companySalaryJsonLd, q as createBreadcrumbJsonLd, r as createJobPostingJsonLd, s as crossAxisSalaryJsonLd, t as faqJsonLd, c as formatSalaryStat, d as formatSalaryStatRange, u as itemListJsonLd, v as locationSalaryJsonLd, n as normalizeWebsiteUrl, w as skillSalaryJsonLd, x as sortBySeniority, y as titleSalaryJsonLd } from './breadcrumbs-nX2svS5_.js';
4
+ import './_spec-DRUEt9M3.js';
5
+ import './board-C-Hz8MMP.js';
6
+ import './jobs-jQwzYyvr.js';
7
7
 
8
8
  /**
9
9
  * Blog structured data on the `@cavuno/board` wire types, transcribed from
package/dist/server.d.mts CHANGED
@@ -1,10 +1,10 @@
1
1
  import { BoardSdk } from './index.mjs';
2
- import './_spec-BcXYrhOP.mjs';
3
- import './search-Dhy-RqrE.mjs';
4
- import './board-CK62f0G5.mjs';
5
- import './jobs-Y9kacbM1.mjs';
6
- import './seo-C39S8YTH.mjs';
7
- import './blog-PS7AwaF7.mjs';
2
+ import './_spec-DRUEt9M3.mjs';
3
+ import './search-C8uy6k8-.mjs';
4
+ import './board-Eusn8R9i.mjs';
5
+ import './jobs-B-imggAc.mjs';
6
+ import './seo-D3AF4q7d.mjs';
7
+ import './blog-B0oLDN4M.mjs';
8
8
 
9
9
  /**
10
10
  * Session cookie codec — pure (no framework imports, no node imports) so it
package/dist/server.d.ts CHANGED
@@ -1,10 +1,10 @@
1
1
  import { BoardSdk } from './index.js';
2
- import './_spec-BcXYrhOP.js';
3
- import './search-B-YDO3kN.js';
4
- import './board-CTUrq9MP.js';
5
- import './jobs--rvR1CgY.js';
6
- import './seo-BiissB7X.js';
7
- import './blog-BLLQ5H5M.js';
2
+ import './_spec-DRUEt9M3.js';
3
+ import './search-vXX_s6f5.js';
4
+ import './board-C-Hz8MMP.js';
5
+ import './jobs-jQwzYyvr.js';
6
+ import './seo-BdNi6Eif.js';
7
+ import './blog-DZejMyq-.js';
8
8
 
9
9
  /**
10
10
  * Session cookie codec — pure (no framework imports, no node imports) so it
@@ -1,10 +1,10 @@
1
1
  import { BoardSdk } from './index.mjs';
2
- import './_spec-BcXYrhOP.mjs';
3
- import './search-Dhy-RqrE.mjs';
4
- import './board-CK62f0G5.mjs';
5
- import './jobs-Y9kacbM1.mjs';
6
- import './seo-C39S8YTH.mjs';
7
- import './blog-PS7AwaF7.mjs';
2
+ import './_spec-DRUEt9M3.mjs';
3
+ import './search-C8uy6k8-.mjs';
4
+ import './board-Eusn8R9i.mjs';
5
+ import './jobs-B-imggAc.mjs';
6
+ import './seo-D3AF4q7d.mjs';
7
+ import './blog-B0oLDN4M.mjs';
8
8
 
9
9
  /**
10
10
  * Sitemap primitives — the pure XML + bucket-filename logic behind a board
package/dist/sitemap.d.ts CHANGED
@@ -1,10 +1,10 @@
1
1
  import { BoardSdk } from './index.js';
2
- import './_spec-BcXYrhOP.js';
3
- import './search-B-YDO3kN.js';
4
- import './board-CTUrq9MP.js';
5
- import './jobs--rvR1CgY.js';
6
- import './seo-BiissB7X.js';
7
- import './blog-BLLQ5H5M.js';
2
+ import './_spec-DRUEt9M3.js';
3
+ import './search-vXX_s6f5.js';
4
+ import './board-C-Hz8MMP.js';
5
+ import './jobs-jQwzYyvr.js';
6
+ import './seo-BdNi6Eif.js';
7
+ import './blog-DZejMyq-.js';
8
8
 
9
9
  /**
10
10
  * Sitemap primitives — the pure XML + bucket-filename logic behind a board
@@ -1,5 +1,5 @@
1
- import { h as SuggestionItem, b as SearchSuggestQuery, F as FetchOptions, g as SuggestResult } from './search-Dhy-RqrE.mjs';
2
- import './_spec-BcXYrhOP.mjs';
1
+ import { h as SuggestionItem, b as SearchSuggestQuery, F as FetchOptions, g as SuggestResult } from './search-C8uy6k8-.mjs';
2
+ import './_spec-DRUEt9M3.mjs';
3
3
 
4
4
  /**
5
5
  * `@cavuno/board/suggest` — framework-agnostic headless search-suggest
package/dist/suggest.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { h as SuggestionItem, b as SearchSuggestQuery, F as FetchOptions, g as SuggestResult } from './search-B-YDO3kN.js';
2
- import './_spec-BcXYrhOP.js';
1
+ import { h as SuggestionItem, b as SearchSuggestQuery, F as FetchOptions, g as SuggestResult } from './search-vXX_s6f5.js';
2
+ import './_spec-DRUEt9M3.js';
3
3
 
4
4
  /**
5
5
  * `@cavuno/board/suggest` — framework-agnostic headless search-suggest
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cavuno/board",
3
- "version": "4.38.0",
3
+ "version": "4.41.0",
4
4
  "description": "Build custom job boards and careers pages with Cavuno’s TypeScript SDK.",
5
5
  "keywords": [
6
6
  "api-client",
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "4.38.0",
2
+ "version": "4.41.0",
3
3
  "skills": [
4
4
  {
5
5
  "name": "cavuno-board-account",