@cavuno/board 4.26.0 → 4.28.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 (53) hide show
  1. package/CHANGELOG.md +134 -0
  2. package/dist/{_spec-EgN7VmAI.d.mts → _spec-DQvmsp5o.d.mts} +589 -67
  3. package/dist/{_spec-EgN7VmAI.d.ts → _spec-DQvmsp5o.d.ts} +589 -67
  4. package/dist/bin.mjs +7989 -10
  5. package/dist/{blog-BIjFcNcm.d.ts → blog-CUkvhn3c.d.ts} +1 -1
  6. package/dist/{blog-T7gQ0ciz.d.mts → blog-CvuObn9O.d.mts} +1 -1
  7. package/dist/{board-CsEAgsKh.d.ts → board-CCG1pO6r.d.ts} +25 -4
  8. package/dist/{board-q0svBKW3.d.mts → board-D6xOidUX.d.mts} +25 -4
  9. package/dist/{breadcrumbs-CFcCjuG7.d.mts → breadcrumbs-BBvJ5gq-.d.mts} +2 -2
  10. package/dist/{breadcrumbs-xuDid8BS.d.ts → breadcrumbs-D2Cwrju4.d.ts} +2 -2
  11. package/dist/browser/cavuno-board.global.min.js +1 -1
  12. package/dist/{chunk-DP2ZZZEO.mjs → chunk-EHSB2VAJ.mjs} +5 -0
  13. package/dist/doctor.js +7989 -10
  14. package/dist/doctor.mjs +7989 -10
  15. package/dist/filters.d.mts +19 -3
  16. package/dist/filters.d.ts +19 -3
  17. package/dist/filters.js +10 -1
  18. package/dist/filters.mjs +10 -1
  19. package/dist/format.d.mts +4 -4
  20. package/dist/format.d.ts +4 -4
  21. package/dist/index.d.mts +251 -14
  22. package/dist/index.d.ts +251 -14
  23. package/dist/index.js +218 -26
  24. package/dist/index.mjs +214 -27
  25. package/dist/{jobs-ub3gywNQ.d.ts → jobs-CEIuahbz.d.ts} +26 -2
  26. package/dist/{jobs-CfrxlDMU.d.mts → jobs-DjMcghv6.d.mts} +26 -2
  27. package/dist/{search-DKS7OIn2.d.mts → search-C0LiPXVb.d.mts} +1 -1
  28. package/dist/{search-Dx1TiAZk.d.ts → search-D-EjtZH3.d.ts} +1 -1
  29. package/dist/{seo-BbG2Ujyo.d.ts → seo-CjNGqZZH.d.ts} +1 -1
  30. package/dist/{seo-CI3wLKUW.d.mts → seo-DCQp8V1c.d.mts} +1 -1
  31. package/dist/seo-files.d.mts +2 -2
  32. package/dist/seo-files.d.ts +2 -2
  33. package/dist/seo.d.mts +6 -6
  34. package/dist/seo.d.ts +6 -6
  35. package/dist/server.d.mts +6 -6
  36. package/dist/server.d.ts +6 -6
  37. package/dist/server.mjs +1 -1
  38. package/dist/sitemap.d.mts +6 -6
  39. package/dist/sitemap.d.ts +6 -6
  40. package/dist/sitemap.mjs +1 -1
  41. package/dist/suggest.d.mts +2 -2
  42. package/dist/suggest.d.ts +2 -2
  43. package/package.json +2 -1
  44. package/skills/cavuno-board-account/SKILL.md +122 -1
  45. package/skills/cavuno-board-collections/SKILL.md +148 -0
  46. package/skills/cavuno-board-companies/SKILL.md +43 -1
  47. package/skills/cavuno-board-errors/SKILL.md +1 -1
  48. package/skills/cavuno-board-filters/SKILL.md +160 -1
  49. package/skills/cavuno-board-format/SKILL.md +52 -0
  50. package/skills/cavuno-board-paywall/SKILL.md +5 -2
  51. package/skills/cavuno-board-post-a-job/SKILL.md +88 -0
  52. package/skills/cavuno-board-salaries/SKILL.md +7 -0
  53. package/skills/manifest.json +11 -4
@@ -1,4 +1,4 @@
1
- import { S as Schemas } from './_spec-EgN7VmAI.js';
1
+ import { S as Schemas } from './_spec-DQvmsp5o.js';
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-EgN7VmAI.mjs';
1
+ import { S as Schemas } from './_spec-DQvmsp5o.mjs';
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-EgN7VmAI.js';
2
- import { L as ListEnvelope, m as RelatedSearch } from './jobs-ub3gywNQ.js';
1
+ import { S as Schemas } from './_spec-DQvmsp5o.js';
2
+ import { L as ListEnvelope, s as RelatedSearch, a as CustomFieldFilter, O as ObjectReferenceFilter } from './jobs-CEIuahbz.js';
3
3
 
4
4
  type PublicCompany = Schemas['CompanyPublic'];
5
5
  /** A market (sector) a company operates in — name + its source slug. */
@@ -76,7 +76,10 @@ type CompanyMarketsListQuery = {
76
76
  cursor?: string;
77
77
  search?: string;
78
78
  };
79
- type CompaniesSearchBody = Schemas['PublicCompaniesSearchBody'];
79
+ type CompaniesSearchBody = Schemas['PublicCompaniesSearchBody'] & {
80
+ customFields?: CustomFieldFilter[];
81
+ objectReferences?: ObjectReferenceFilter[];
82
+ };
80
83
 
81
84
  /** A job title's salary breakdown (overall + by-seniority + top rails). */
82
85
  type TitleSalaryDetail = Schemas['TitleSalaryDetail'];
@@ -120,6 +123,24 @@ type PublicBoardFeatures = PublicBoard['features'];
120
123
  type PublicBoardAnalytics = PublicBoard['analytics'];
121
124
  type PublicBoardAds = PublicBoard['ads'];
122
125
  type PublicBoardJobForm = PublicBoard['jobForm'];
126
+ /**
127
+ * The operator's job, company and talent forms from
128
+ * `board.context().forms`: one ordered field list per form. Render each list
129
+ * in order, skip entries with `visible: false`, draw built-ins by `key` with
130
+ * your own controls, and draw custom and collection fields from their inlined
131
+ * `definition`. A locked built-in is always shown and required.
132
+ */
133
+ type BoardFormLayout = PublicBoard['forms'];
134
+ /** One entry of `forms.job`: a built-in, a custom field or a collection field. */
135
+ type BoardJobFormField = Schemas['BoardJobFormField'];
136
+ /** One entry of `forms.company` or `forms.talent`. */
137
+ type BoardProfileFormField = Schemas['BoardProfileFormField'];
138
+ /** Any form entry, from any of the three forms. */
139
+ type BoardFormField = BoardJobFormField | BoardProfileFormField;
140
+ /** A built-in form entry, identified by `key`. */
141
+ type BoardFormBuiltinField = Schemas['BoardFormBuiltinField'];
142
+ /** Why a built-in is locked; `null` on an unlocked built-in. */
143
+ type BoardFormLockReason = Schemas['FormFieldLockReason'];
123
144
  /**
124
145
  * An operator-defined custom field definition. Board-wide and
125
146
  * model-scoped under `board.context().customFields` (today only `job`);
@@ -131,4 +152,4 @@ type CustomFieldDefinition = Schemas['CustomFieldDefinition'];
131
152
  type CustomFieldType = CustomFieldDefinition['type'];
132
153
  type CustomFieldOption = Schemas['CustomFieldOption'];
133
154
 
134
- export type { SalaryTitle as A, SkillLocationSalary as B, CustomFieldDefinition as C, SkillLocationsIndex as D, TitleLocationSalary as E, TitleLocationsIndex as F, LocationSalaryDetail as L, PublicBoard as P, SkillSalaryDetail as S, TitleSalaryDetail as T, CompanyCategorySalary as a, CompanySalary as b, CompaniesListQuery as c, CompanyListEnvelope as d, CompaniesSearchBody as e, CompanyJobsListQuery as f, CompanySimilarQuery as g, CompanyMarketsListQuery as h, SalaryDetailQuery as i, CompanyMarket as j, CompanyMarketRef as k, CompanySalarySummary as l, CustomFieldOption as m, CustomFieldType as n, LocationSkillsIndex as o, LocationTitlesIndex as p, PublicBoardAds as q, PublicBoardAnalytics as r, PublicBoardFeatures as s, PublicBoardJobForm as t, PublicCompany as u, PublicCompanyDetail as v, PublicCompanyMembership as w, SalaryCompany as x, SalaryLocation as y, SalarySkill as z };
155
+ export type { PublicCompanyDetail as A, BoardFormBuiltinField as B, CustomFieldDefinition as C, PublicCompanyMembership as D, SalaryCompany as E, SalaryLocation as F, SalarySkill as G, SalaryTitle as H, SkillLocationSalary as I, SkillLocationsIndex as J, TitleLocationSalary as K, LocationSalaryDetail as L, TitleLocationsIndex as M, PublicBoard as P, SkillSalaryDetail as S, TitleSalaryDetail as T, CompanyCategorySalary as a, CompanySalary as b, CompaniesListQuery as c, CompanyListEnvelope as d, CompaniesSearchBody as e, CompanyJobsListQuery as f, CompanySimilarQuery as g, CompanyMarketsListQuery as h, SalaryDetailQuery as i, BoardFormField as j, BoardFormLayout as k, BoardFormLockReason as l, BoardJobFormField as m, BoardProfileFormField as n, CompanyMarket as o, CompanyMarketRef as p, CompanySalarySummary as q, CustomFieldOption as r, CustomFieldType as s, LocationSkillsIndex as t, LocationTitlesIndex as u, PublicBoardAds as v, PublicBoardAnalytics as w, PublicBoardFeatures as x, PublicBoardJobForm as y, PublicCompany as z };
@@ -1,5 +1,5 @@
1
- import { S as Schemas } from './_spec-EgN7VmAI.mjs';
2
- import { L as ListEnvelope, m as RelatedSearch } from './jobs-CfrxlDMU.mjs';
1
+ import { S as Schemas } from './_spec-DQvmsp5o.mjs';
2
+ import { L as ListEnvelope, s as RelatedSearch, a as CustomFieldFilter, O as ObjectReferenceFilter } from './jobs-DjMcghv6.mjs';
3
3
 
4
4
  type PublicCompany = Schemas['CompanyPublic'];
5
5
  /** A market (sector) a company operates in — name + its source slug. */
@@ -76,7 +76,10 @@ type CompanyMarketsListQuery = {
76
76
  cursor?: string;
77
77
  search?: string;
78
78
  };
79
- type CompaniesSearchBody = Schemas['PublicCompaniesSearchBody'];
79
+ type CompaniesSearchBody = Schemas['PublicCompaniesSearchBody'] & {
80
+ customFields?: CustomFieldFilter[];
81
+ objectReferences?: ObjectReferenceFilter[];
82
+ };
80
83
 
81
84
  /** A job title's salary breakdown (overall + by-seniority + top rails). */
82
85
  type TitleSalaryDetail = Schemas['TitleSalaryDetail'];
@@ -120,6 +123,24 @@ type PublicBoardFeatures = PublicBoard['features'];
120
123
  type PublicBoardAnalytics = PublicBoard['analytics'];
121
124
  type PublicBoardAds = PublicBoard['ads'];
122
125
  type PublicBoardJobForm = PublicBoard['jobForm'];
126
+ /**
127
+ * The operator's job, company and talent forms from
128
+ * `board.context().forms`: one ordered field list per form. Render each list
129
+ * in order, skip entries with `visible: false`, draw built-ins by `key` with
130
+ * your own controls, and draw custom and collection fields from their inlined
131
+ * `definition`. A locked built-in is always shown and required.
132
+ */
133
+ type BoardFormLayout = PublicBoard['forms'];
134
+ /** One entry of `forms.job`: a built-in, a custom field or a collection field. */
135
+ type BoardJobFormField = Schemas['BoardJobFormField'];
136
+ /** One entry of `forms.company` or `forms.talent`. */
137
+ type BoardProfileFormField = Schemas['BoardProfileFormField'];
138
+ /** Any form entry, from any of the three forms. */
139
+ type BoardFormField = BoardJobFormField | BoardProfileFormField;
140
+ /** A built-in form entry, identified by `key`. */
141
+ type BoardFormBuiltinField = Schemas['BoardFormBuiltinField'];
142
+ /** Why a built-in is locked; `null` on an unlocked built-in. */
143
+ type BoardFormLockReason = Schemas['FormFieldLockReason'];
123
144
  /**
124
145
  * An operator-defined custom field definition. Board-wide and
125
146
  * model-scoped under `board.context().customFields` (today only `job`);
@@ -131,4 +152,4 @@ type CustomFieldDefinition = Schemas['CustomFieldDefinition'];
131
152
  type CustomFieldType = CustomFieldDefinition['type'];
132
153
  type CustomFieldOption = Schemas['CustomFieldOption'];
133
154
 
134
- export type { SalaryTitle as A, SkillLocationSalary as B, CustomFieldDefinition as C, SkillLocationsIndex as D, TitleLocationSalary as E, TitleLocationsIndex as F, LocationSalaryDetail as L, PublicBoard as P, SkillSalaryDetail as S, TitleSalaryDetail as T, CompanyCategorySalary as a, CompanySalary as b, CompaniesListQuery as c, CompanyListEnvelope as d, CompaniesSearchBody as e, CompanyJobsListQuery as f, CompanySimilarQuery as g, CompanyMarketsListQuery as h, SalaryDetailQuery as i, CompanyMarket as j, CompanyMarketRef as k, CompanySalarySummary as l, CustomFieldOption as m, CustomFieldType as n, LocationSkillsIndex as o, LocationTitlesIndex as p, PublicBoardAds as q, PublicBoardAnalytics as r, PublicBoardFeatures as s, PublicBoardJobForm as t, PublicCompany as u, PublicCompanyDetail as v, PublicCompanyMembership as w, SalaryCompany as x, SalaryLocation as y, SalarySkill as z };
155
+ export type { PublicCompanyDetail as A, BoardFormBuiltinField as B, CustomFieldDefinition as C, PublicCompanyMembership as D, SalaryCompany as E, SalaryLocation as F, SalarySkill as G, SalaryTitle as H, SkillLocationSalary as I, SkillLocationsIndex as J, TitleLocationSalary as K, LocationSalaryDetail as L, TitleLocationsIndex as M, PublicBoard as P, SkillSalaryDetail as S, TitleSalaryDetail as T, CompanyCategorySalary as a, CompanySalary as b, CompaniesListQuery as c, CompanyListEnvelope as d, CompaniesSearchBody as e, CompanyJobsListQuery as f, CompanySimilarQuery as g, CompanyMarketsListQuery as h, SalaryDetailQuery as i, BoardFormField as j, BoardFormLayout as k, BoardFormLockReason as l, BoardJobFormField as m, BoardProfileFormField as n, CompanyMarket as o, CompanyMarketRef as p, CompanySalarySummary as q, CustomFieldOption as r, CustomFieldType as s, LocationSkillsIndex as t, LocationTitlesIndex as u, PublicBoardAds as v, PublicBoardAnalytics as w, PublicBoardFeatures as x, PublicBoardJobForm as y, PublicCompany as z };
@@ -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-q0svBKW3.mjs';
2
- import { P as PublicJob } from './jobs-CfrxlDMU.mjs';
1
+ import { P as PublicBoard, a as CompanyCategorySalary, b as CompanySalary, L as LocationSalaryDetail, S as SkillSalaryDetail, T as TitleSalaryDetail } from './board-D6xOidUX.mjs';
2
+ import { P as PublicJob } from './jobs-DjMcghv6.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-CsEAgsKh.js';
2
- import { P as PublicJob } from './jobs-ub3gywNQ.js';
1
+ import { P as PublicBoard, a as CompanyCategorySalary, b as CompanySalary, L as LocationSalaryDetail, S as SkillSalaryDetail, T as TitleSalaryDetail } from './board-CCG1pO6r.js';
2
+ import { P as PublicJob } from './jobs-CEIuahbz.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 J=Object.defineProperty;var jt=Object.getOwnPropertyDescriptor;var Qt=Object.getOwnPropertyNames;var qt=Object.prototype.hasOwnProperty;var Gt=(t,e,o)=>e in t?J(t,e,{enumerable:!0,configurable:!0,writable:!0,value:o}):t[e]=o;var _=(t,e)=>{for(var o in e)J(t,o,{get:e[o],enumerable:!0})},Ht=(t,e,o,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of Qt(e))!qt.call(t,r)&&r!==o&&J(t,r,{get:()=>e[r],enumerable:!(n=jt(e,r))||n.enumerable});return t};var Vt=t=>Ht(J({},"__esModule",{value:!0}),t);var E=(t,e,o)=>Gt(t,typeof e!="symbol"?e+"":e,o);var jo={};_(jo,{ACCESS_TOKEN_KEY:()=>T,BOARD_ACCESS_GRANT_KEY:()=>F,BOARD_API_ERROR_CODES:()=>de,BoardApiError:()=>A,BoardClient:()=>I,REFRESH_TOKEN_KEY:()=>L,SDK_VERSION:()=>N,createBoardClient:()=>eo,filters:()=>te,format:()=>ce,isBoardApiError:()=>B,isBoardPasswordRequired:()=>fe,isColdRule:()=>Ye,isConflict:()=>Se,isForbidden:()=>he,isFreeEmailWebsiteError:()=>Oe,isNotFound:()=>ye,isOwnMessage:()=>Ke,isRateLimited:()=>Ce,isSafeApplicationUrl:()=>X,isUnauthorized:()=>ge,isValidationError:()=>be,lastOwnMessageId:()=>We,paginate:()=>Ve,paths:()=>pe,resolveApplyAction:()=>ze,resolveApplyDecision:()=>ee,seo:()=>ue,suggest:()=>me});var de=["internal_error","validation_bad_request","validation_payload_too_large","rate_limited","rate_limit_unavailable","search_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","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","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","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","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"],A=class extends Error{constructor(o){super(o.message);E(this,"status");E(this,"code");E(this,"details");E(this,"requestId");E(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 B(t){return t instanceof Error&&t.name==="BoardApiError"&&typeof t.status=="number"&&typeof t.code=="string"}function ye(t){return B(t)&&t.status===404}function ge(t){return B(t)&&t.status===401}function fe(t){return B(t)&&t.status===401&&t.code==="board_password_required"}function he(t){return B(t)&&t.status===403}function be(t){return B(t)&&t.status===400&&t.code==="validation_bad_request"}function Ce(t){return B(t)&&t.status===429}function Se(t){return B(t)&&t.status===409}function Oe(t){return B(t)&&t.status===422&&t.code==="employer_free_email_website"}function Ee(t){let e=new URLSearchParams;if(!t)return e;for(let[o,n]of Object.entries(t))if(n!=null)if(Array.isArray(n))for(let r of n)r!=null&&e.append(o,String(r));else e.append(o,String(n));return e}function Be(t){let e=5381;for(let n=0;n<t.length;n++)e=(e<<5)+e+t.charCodeAt(n)>>>0;return`${t.replace(/[^a-zA-Z0-9_-]/g,"_")}-${e.toString(36)}`}var T="cavuno_board_access_token",L="cavuno_board_refresh_token",F="cavuno_board_access_grant";function Pe(){return typeof globalThis.document<"u"}function Kt(){let t=new Map;return{getItem:e=>t.get(e)??null,setItem:(e,o)=>{t.set(e,o)},removeItem:e=>{t.delete(e)}}}function Yt(t,e){if(!Pe())throw new Error(`storage mode '${t}' is browser-only \u2014 use 'nostore' + per-call headers on the server`);let o;try{if(o=t==="local"?globalThis.localStorage:globalThis.sessionStorage,!o)throw new Error("unavailable")}catch{throw new Error(`storage mode '${t}' 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=e?`:${Be(e)}`:"";return{getItem:r=>o.getItem(`${r}${n}`),setItem:(r,i)=>{o.setItem(`${r}${n}`,i)},removeItem:r=>{o.removeItem(`${r}${n}`)}}}var Wt=Symbol.for("@cavuno/board:nostore");var zt={[Wt]:!0,getItem:()=>null,setItem:()=>{},removeItem:()=>{}};function ve(t,e){let o=t??(Pe()?"memory":"nostore");if(typeof o=="object")return o;switch(o){case"memory":return Kt();case"nostore":return zt;case"local":case"session":return Yt(o,e);default:throw new Error(`Unknown storage mode '${String(o)}'`)}}async function w(t,e){await t.setItem(T,e.accessToken),await t.setItem(L,e.refreshToken)}async function Ae(t){await t.removeItem(T),await t.removeItem(L)}var N="4.26.0";function Zt(t){return typeof t=="string"||t instanceof URLSearchParams||typeof FormData<"u"&&t instanceof FormData||typeof Blob<"u"&&t instanceof Blob||t instanceof ArrayBuffer||typeof ReadableStream<"u"&&t instanceof ReadableStream}function Xt(t){try{let e=new URL(t);for(let o of new Set(e.searchParams.keys()))e.searchParams.delete(o),e.searchParams.set(o,"[REDACTED]");return e.toString()}catch{return t.replace(/([?&][^=&#]+)=([^&#]*)/g,"$1=[REDACTED]")}}var I=class{constructor(e){E(this,"storage");E(this,"basePath");E(this,"options");this.options=e,this.storage=e.storage;let o=e.baseUrl.replace(/\/+$/,"");this.basePath=`${o}/v1/boards/${encodeURIComponent(e.board)}`}async fetch(e,o={}){let{body:n,query:r,headers:i,...a}=o,s=(o.method??"GET").toUpperCase(),p=`${this.basePath}${e}`,u=Ee(r).toString();u&&(p+=`?${u}`);let d=n!==void 0&&!Zt(n),m=n===void 0?void 0:d?JSON.stringify(n):n,y=new Headers({accept:"application/json"});d&&y.set("content-type","application/json");for(let[v,Z]of Object.entries(this.options.globalHeaders??{}))y.set(v,Z);let g=await this.storage.getItem(T);g!==null&&y.set("authorization",`Bearer ${g}`);let S=await this.storage.getItem(F);S!==null&&y.set("x-board-access",S),i&&new Headers(i).forEach((v,Z)=>{y.set(Z,v)}),(s!=="GET"||y.has("authorization")||y.has("x-board-access"))&&!y.has("x-cavuno-sdk")&&y.set("x-cavuno-sdk",`board@${N}`);let f={url:p,init:{...a,method:s,headers:y,body:m}};this.options.onRequest&&(f=await this.options.onRequest(f));let P=Xt(f.url);this.options.logger?.debug(`${s} ${P}`);let c=await globalThis.fetch(f.url,f.init);if(this.options.logger?.debug(`${c.status} ${s} ${P}`),this.options.onResponse&&await this.options.onResponse(c.clone(),f),c.status===204)return;if(c.ok)return await c.json();let b;try{b=await c.json()}catch{b=void 0}let O=b?.error,R=O&&typeof O.code=="string"&&typeof O.message=="string"?new A({status:c.status,code:O.code,message:O.message,details:O.details,requestId:O.requestId,raw:b}):new A({status:c.status,code:"unknown_error",message:c.statusText||"Request failed",raw:b});throw this.options.logger?.error(`${R.status} ${R.code} ${s} ${P}`),R}};var Re="https://api.cavuno.com";function _e(t){async function e(n){return await w(t.storage,n),n}async function o(n){if(n?.refreshToken)return n.refreshToken;let r=await t.storage.getItem(L);if(r===null)throw new Error("No refresh token available \u2014 pass { refreshToken } or configure auth.storage");return r}return{async register(n,r){let i=await t.fetch("/auth/register",{...r,method:"POST",body:n});return e(i)},async login(n,r){let i=await t.fetch("/auth/login",{...r,method:"POST",body:n});return e(i)},async refresh(n,r){let i=await o(n),a=await t.fetch("/auth/refresh",{...r,method:"POST",body:{refreshToken:i}});return e(a)},async logout(n,r){let i=await o(n);await t.fetch("/auth/logout",{...r,method:"POST",body:{refreshToken:i}}),await Ae(t.storage)},verifyEmail(n,r){return t.fetch("/auth/verify-email",{...r,method:"POST",body:n})},verifyWorkEmail(n,r){return t.fetch("/auth/verify-work-email",{...r,method:"POST",body:n})},verifyEmailWithCode(n,r){return t.fetch("/auth/verify-email/otp",{...r,method:"POST",body:n})},resendVerification(n){return t.fetch("/auth/verify-email/resend",{...n,method:"POST"})},forgotPassword(n,r){return t.fetch("/auth/forgot-password",{...r,method:"POST",body:n})},resetPassword(n,r){return t.fetch("/auth/reset-password",{...r,method:"POST",body:n})},requestMagicLink(n,r){return t.fetch("/auth/magic-link",{...r,method:"POST",body:n})},async consumeMagicLink(n,r){let i=await t.fetch("/auth/magic-link/consume",{...r,method:"POST",body:n});return e(i)},getOAuthAuthorizationUrl(n,r,i){return t.fetch(`/auth/oauth/${n}`,{...i,method:"GET",query:r})},async exchangeOAuth(n,r){let i=await t.fetch("/auth/oauth/exchange",{...r,method:"POST",body:n});return e(i)}}}function Te(t){return{posts:{list(e,o){return t.fetch("/blog/posts",{...o,query:e})},retrieve(e,o,n){return t.fetch(`/blog/posts/${encodeURIComponent(e)}`,{...n,query:o})},adjacent(e,o){return t.fetch(`/blog/posts/${encodeURIComponent(e)}/adjacent`,o)},similar(e,o,n){return t.fetch(`/blog/posts/${encodeURIComponent(e)}/similar`,{...n,query:o})}},tags:{list(e,o){return t.fetch("/blog/tags",{...o,query:e})},retrieve(e,o,n){return t.fetch(`/blog/tags/${encodeURIComponent(e)}`,{...n,query:o})}},authors:{list(e,o){return t.fetch("/blog/authors",{...o,query:e})},retrieve(e,o,n){return t.fetch(`/blog/authors/${encodeURIComponent(e)}`,{...n,query:o})}},search(e,o,n){return t.fetch("/blog/search",{...n,method:"POST",body:e,query:o})}}}function Le(t){let e=Object.assign((n,r)=>t.fetch("/companies/markets",{...r,query:n}),{resolve(n,r){return t.fetch(`/companies/markets/${encodeURIComponent(n)}`,r)}}),o=Object.assign((n,r)=>t.fetch(`/companies/${encodeURIComponent(n)}/salaries`,r),{summary(n,r){return t.fetch(`/companies/${encodeURIComponent(n)}/salaries/summary`,r)},category(n,r,i,a){return t.fetch(`/companies/${encodeURIComponent(n)}/salaries/${encodeURIComponent(r)}`,{...a,query:i})}});return{list(n,r){return t.fetch("/companies",{...r,query:n})},retrieve(n,r,i){return t.fetch(`/companies/${encodeURIComponent(n)}`,{...i,query:r})},search(n,r,i){return t.fetch("/companies/search",{...i,method:"POST",body:n,query:r})},listJobs(n,r,i){return t.fetch(`/companies/${encodeURIComponent(n)}/jobs`,{...i,query:r})},similar(n,r,i){return t.fetch(`/companies/${encodeURIComponent(n)}/similar`,{...i,query:r})},markets:e,salaries:o}}function Fe(t){return{jobs(e,o){return t.fetch("/embed/jobs",{...o,query:e})}}}function Ie(t){return{subscribe(e,o){return t.fetch("/job-alerts",{...o,method:"POST",body:e})},confirm(e,o){return t.fetch("/job-alerts/confirm",{...o,method:"POST",body:e})},resendConfirmation(e,o){return t.fetch("/job-alerts/resend-confirmation",{...o,method:"POST",body:e})},manage(e,o){return t.fetch("/job-alerts/manage",{...o,query:e})},unsubscribe(e,o){return t.fetch("/job-alerts/unsubscribe",{...o,method:"POST",body:e})},resubscribe(e,o){return t.fetch("/job-alerts/resubscribe",{...o,method:"POST",body:e})},updatePreference(e,o){return t.fetch("/job-alerts/preferences",{...o,method:"POST",body:e})},deletePreference(e,o){return t.fetch("/job-alerts/preferences",{...o,method:"DELETE",body:e})}}}function xe(t){return{plans(e,o){return t.fetch("/job-postings/plans",{...o,query:e})},create(e,o){return t.fetch("/job-postings",{...o,method:"POST",body:e})},uploadLogo(e,o){let n=new FormData;return n.append("file",e),t.fetch("/job-postings/logo",{...o,method:"POST",body:n})},fetchLogoByDomain(e,o){return t.fetch("/job-postings/logo/fetch",{...o,query:{domain:e}})},sendBillingVerification(e,o){return t.fetch("/job-postings/send-verification",{...o,method:"POST",body:e})},getBillingOptions(e,o){return t.fetch("/job-postings/billing-options",{...o,method:"POST",body:e})}}}function ke(t){return{list(e,o){return t.fetch("/jobs",{...o,query:e})},retrieve(e,o,n){return t.fetch(`/jobs/${encodeURIComponent(e)}`,{...n,query:o})},search(e,o,n){return t.fetch("/jobs/search",{...n,method:"POST",body:e,query:o})},similar(e,o,n){return t.fetch(`/jobs/${encodeURIComponent(e)}/similar`,{...n,query:o})},apply(e,o,n){return t.fetch(`/jobs/${encodeURIComponent(e)}/apply`,{...n,method:"POST",body:o??{}})},createApplyIntent(e,o,n){return t.fetch(`/jobs/${encodeURIComponent(e)}/apply-intents`,{...n,method:"POST",body:o})},prepareApplyApproval(e,o,n){return t.fetch(`/jobs/${encodeURIComponent(e)}/apply-approvals`,{...n,method:"POST",body:o})},uploadApplicationResume(e,o,n,r){let i=new FormData;return i.append("file",o),n?.applicationId&&i.append("applicationId",n.applicationId),t.fetch(`/jobs/${encodeURIComponent(e)}/apply/resume`,{...r,method:"POST",body:i})},myApplication(e,o){return t.fetch(`/jobs/${encodeURIComponent(e)}/application`,o)}}}function Ue(t){return{retrieve(e,o){return t.fetch("/me",{...o,query:e})},delete(e){return t.fetch("/me",{...e,method:"DELETE"})},async updatePassword(e,o){let n=await t.fetch("/me/password",{...o,method:"POST",body:e});return await w(t.storage,n),n},requestEmailChange(e,o){return t.fetch("/me/email",{...o,method:"POST",body:e})},confirmEmailChange(e,o){return t.fetch("/me/email/confirm",{...o,method:"POST",body:e})},acceptInvite(e,o){return t.fetch("/me/invites/accept",{...o,method:"POST",body:e})},profile:{retrieve(e,o){return t.fetch("/me/profile",{...o,query:e})},update(e,o,n){return t.fetch("/me/profile",{...n,method:"PATCH",body:e,query:o})},handleAvailable(e,o){return t.fetch("/me/profile/handle-available",{...o,query:{handle:e}})},listExperience(e){return t.fetch("/me/profile/experience",e)},createExperience(e,o){return t.fetch("/me/profile/experience",{...o,method:"POST",body:e})},updateExperience(e,o,n){return t.fetch(`/me/profile/experience/${encodeURIComponent(e)}`,{...n,method:"PATCH",body:o})},deleteExperience(e,o){return t.fetch(`/me/profile/experience/${encodeURIComponent(e)}`,{...o,method:"DELETE"})},listEducation(e){return t.fetch("/me/profile/education",e)},createEducation(e,o){return t.fetch("/me/profile/education",{...o,method:"POST",body:e})},updateEducation(e,o,n){return t.fetch(`/me/profile/education/${encodeURIComponent(e)}`,{...n,method:"PATCH",body:o})},deleteEducation(e,o){return t.fetch(`/me/profile/education/${encodeURIComponent(e)}`,{...o,method:"DELETE"})},listSkills(e){return t.fetch("/me/profile/skills",e)},updateSkills(e,o){return t.fetch("/me/profile/skills",{...o,method:"PUT",body:e})},listLanguages(e){return t.fetch("/me/profile/languages",e)},updateLanguages(e,o){return t.fetch("/me/profile/languages",{...o,method:"PUT",body:e})},uploadAvatar(e,o){let n=new FormData;return n.append("file",e),t.fetch("/me/profile/avatar",{...o,method:"POST",body:n})}},notificationPreferences:{retrieve(e){return t.fetch("/me/notification-preferences",e)},update(e,o){return t.fetch("/me/notification-preferences",{...o,method:"PUT",body:e})},unsubscribeWithToken(e,o){return t.fetch("/me/notification-preferences/unsubscribe",{...o,method:"POST",body:e})}},companies:{search(e,o){return t.fetch("/me/companies/search",{...o,query:e})},list(e){return t.fetch("/me/companies",e)},create(e,o){return t.fetch("/me/companies",{...o,method:"POST",body:e})},claim(e,o){return t.fetch(`/me/companies/${encodeURIComponent(e)}/claim`,{...o,method:"POST"})},cancelClaim(e,o){return t.fetch(`/me/companies/${encodeURIComponent(e)}/claim`,{...o,method:"DELETE"})},retrieve(e,o){return t.fetch(`/me/companies/${encodeURIComponent(e)}`,o)},update(e,o,n){return t.fetch(`/me/companies/${encodeURIComponent(e)}`,{...n,method:"PATCH",body:o})},delete(e,o){return t.fetch(`/me/companies/${encodeURIComponent(e)}`,{...o,method:"DELETE"})},listMembers(e,o){return t.fetch(`/me/companies/${encodeURIComponent(e)}/members`,o)},updateMemberRole(e,o,n,r){return t.fetch(`/me/companies/${encodeURIComponent(e)}/members/${encodeURIComponent(o)}`,{...r,method:"PATCH",body:n})},removeMember(e,o,n){return t.fetch(`/me/companies/${encodeURIComponent(e)}/members/${encodeURIComponent(o)}`,{...n,method:"DELETE"})},leave(e,o){return t.fetch(`/me/companies/${encodeURIComponent(e)}/membership`,{...o,method:"DELETE"})},startMembershipCheckout(e,o,n){return t.fetch(`/me/companies/${encodeURIComponent(e)}/membership/checkout`,{...n,method:"POST",body:o})},retrieveMembershipCheckout(e,o,n){return t.fetch(`/me/companies/${encodeURIComponent(e)}/membership/checkout/${encodeURIComponent(o)}`,n)},listInvites(e,o){return t.fetch(`/me/companies/${encodeURIComponent(e)}/invites`,o)},createInvite(e,o,n){return t.fetch(`/me/companies/${encodeURIComponent(e)}/invites`,{...n,method:"POST",body:o})},revokeInvite(e,o,n){return t.fetch(`/me/companies/${encodeURIComponent(e)}/invites/${encodeURIComponent(o)}`,{...n,method:"DELETE"})},uploadLogo(e,o,n){let r=new FormData;return r.append("file",o),t.fetch(`/me/companies/${encodeURIComponent(e)}/logo`,{...n,method:"POST",body:r})},workEmail:{verify(e,o,n){return t.fetch(`/me/companies/${encodeURIComponent(e)}/work-email/verify`,{...n,method:"POST",body:o})},confirm(e,o,n){return t.fetch(`/me/companies/${encodeURIComponent(e)}/work-email/confirm`,{...n,method:"POST",body:o})}},jobs:{list(e,o,n){return t.fetch(`/me/companies/${encodeURIComponent(e)}/jobs`,{...n,query:o})},retrieve(e,o,n){return t.fetch(`/me/companies/${encodeURIComponent(e)}/jobs/${encodeURIComponent(o)}`,n)},create(e,o,n){return t.fetch(`/me/companies/${encodeURIComponent(e)}/jobs`,{...n,method:"POST",body:o})},update(e,o,n,r){return t.fetch(`/me/companies/${encodeURIComponent(e)}/jobs/${encodeURIComponent(o)}`,{...r,method:"PATCH",body:n})},delete(e,o,n){return t.fetch(`/me/companies/${encodeURIComponent(e)}/jobs/${encodeURIComponent(o)}`,{...n,method:"DELETE"})},publish(e,o,n){return t.fetch(`/me/companies/${encodeURIComponent(e)}/jobs/${encodeURIComponent(o)}/publish`,{...n,method:"POST"})},unpublish(e,o,n){return t.fetch(`/me/companies/${encodeURIComponent(e)}/jobs/${encodeURIComponent(o)}/unpublish`,{...n,method:"POST"})},checkout(e,o,n,r){return t.fetch(`/me/companies/${encodeURIComponent(e)}/jobs/${encodeURIComponent(o)}/checkout`,{...r,method:"POST",body:n})}},billingOptions:{list(e,o){return t.fetch(`/me/companies/${encodeURIComponent(e)}/billing-options`,o)}},billingPortal:{create(e,o,n){return t.fetch(`/me/companies/${encodeURIComponent(e)}/billing-portal`,{...n,method:"POST",body:o})}},jobStats:{retrieve(e,o){return t.fetch(`/me/companies/${encodeURIComponent(e)}/job-stats`,o)},timeseries(e,o,n){return t.fetch(`/me/companies/${encodeURIComponent(e)}/job-stats/timeseries`,{...n,query:o})}},profileStats:{retrieve(e,o){return t.fetch(`/me/companies/${encodeURIComponent(e)}/profile-stats`,o)},timeseries(e,o,n){return t.fetch(`/me/companies/${encodeURIComponent(e)}/profile-stats/timeseries`,{...n,query:o})}},recommendedTalent:{list(e,o,n){return t.fetch(`/me/companies/${encodeURIComponent(e)}/recommended-talent`,{...n,query:o})}},talentLists:{list(e,o){return t.fetch(`/me/companies/${encodeURIComponent(e)}/talent-lists`,o)},create(e,o,n){return t.fetch(`/me/companies/${encodeURIComponent(e)}/talent-lists`,{...n,method:"POST",body:o})},update(e,o,n,r){return t.fetch(`/me/companies/${encodeURIComponent(e)}/talent-lists/${encodeURIComponent(o)}`,{...r,method:"PATCH",body:n})},remove(e,o,n){return t.fetch(`/me/companies/${encodeURIComponent(e)}/talent-lists/${encodeURIComponent(o)}`,{...n,method:"DELETE"})}},sourcedCandidates:{list(e,o,n){return t.fetch(`/me/companies/${encodeURIComponent(e)}/sourced-candidates`,{...n,query:o})},add(e,o,n){return t.fetch(`/me/companies/${encodeURIComponent(e)}/sourced-candidates`,{...n,method:"POST",body:o})},remove(e,o,n){return t.fetch(`/me/companies/${encodeURIComponent(e)}/sourced-candidates/${encodeURIComponent(o)}`,{...n,method:"DELETE"})},convert(e,o,n,r){return t.fetch(`/me/companies/${encodeURIComponent(e)}/sourced-candidates/${encodeURIComponent(o)}/convert`,{...r,method:"POST",body:n})}},applicants:{list(e,o,n){return t.fetch(`/me/companies/${encodeURIComponent(e)}/applicants`,{...n,query:o})},move(e,o,n,r){return t.fetch(`/me/companies/${encodeURIComponent(e)}/applicants/${encodeURIComponent(o)}/stage`,{...r,method:"PATCH",body:n})},bulkMove(e,o,n){return t.fetch(`/me/companies/${encodeURIComponent(e)}/applicants/bulk/move`,{...n,method:"POST",body:o})},bulkReject(e,o,n){return t.fetch(`/me/companies/${encodeURIComponent(e)}/applicants/bulk/reject`,{...n,method:"POST",body:o})},addNote(e,o,n,r){return t.fetch(`/me/companies/${encodeURIComponent(e)}/applicants/${encodeURIComponent(o)}/notes`,{...r,method:"POST",body:n})}},pipelineStages:{create(e,o,n){return t.fetch(`/me/companies/${encodeURIComponent(e)}/pipeline-stages`,{...n,method:"POST",body:o})},update(e,o,n,r){return t.fetch(`/me/companies/${encodeURIComponent(e)}/pipeline-stages/${encodeURIComponent(o)}`,{...r,method:"PATCH",body:n})},remove(e,o,n){return t.fetch(`/me/companies/${encodeURIComponent(e)}/pipeline-stages/${encodeURIComponent(o)}`,{...n,method:"DELETE"})},reorder(e,o,n){return t.fetch(`/me/companies/${encodeURIComponent(e)}/pipeline-stages/reorder`,{...n,method:"PUT",body:o})}}},talentAccess:{retrieve(e){return t.fetch("/me/talent-access",e)},retrieveCandidate(e,o){return t.fetch(`/me/talent-access/candidates/${encodeURIComponent(e)}`,o)},checkout(e,o){return t.fetch("/me/talent-access/checkout",{...o,method:"POST",body:e})},claim(e,o){return t.fetch("/me/talent-access/claim",{...o,method:"POST",body:e})},retrieveCheckout(e,o){return t.fetch(`/me/talent-access/checkout/${encodeURIComponent(e)}`,o)},unlock(e,o){return t.fetch("/me/talent-access/unlocks",{...o,method:"POST",body:e})},upgrade(e,o){return t.fetch("/me/talent-access/upgrade",{...o,method:"POST",body:e})}},alerts:{list(e){return t.fetch("/me/alerts",e)},create(e,o){return t.fetch("/me/alerts",{...o,method:"POST",body:e})},retrieve(e,o){return t.fetch(`/me/alerts/${encodeURIComponent(e)}`,o)},update(e,o,n){return t.fetch(`/me/alerts/${encodeURIComponent(e)}`,{...n,method:"PUT",body:o})},remove(e,o){return t.fetch(`/me/alerts/${encodeURIComponent(e)}`,{...o,method:"DELETE"})}},applications:{list(e,o){return t.fetch("/me/applications",{...o,query:e})},retrieve(e,o){return t.fetch(`/me/applications/${encodeURIComponent(e)}`,o)},updateFacts(e,o,n){return t.fetch(`/me/applications/${encodeURIComponent(e)}`,{...n,method:"PATCH",body:o})},withdraw(e,o){return t.fetch(`/me/applications/${encodeURIComponent(e)}/withdraw`,{...o,method:"POST"})}},resume:{upload(e,o,n){let r=new FormData;return r.append("resume",e),o?.keepResumeOnFile&&r.append("keepResumeOnFile","true"),o?.importMode&&r.append("importMode",o.importMode),o?.confirmReplaceAll&&r.append("confirmReplaceAll","true"),t.fetch("/me/resume",{...n,method:"POST",body:r})},retrieve(e){return t.fetch("/me/resume",e)},delete(e){return t.fetch("/me/resume",{...e,method:"DELETE"})}},recommendedJobs:{list(e,o){return t.fetch("/me/recommended-jobs",{...o,query:e})}},savedJobs:{list(e,o){return t.fetch("/me/saved-jobs",{...o,query:e})},save(e,o,n){return t.fetch("/me/saved-jobs",{...n,method:"POST",body:e,query:o})},unsave(e,o,n){return t.fetch(`/me/saved-jobs/${encodeURIComponent(e)}`,{...n,method:"DELETE",query:o})}},conversations:{list(e,o){return t.fetch("/me/conversations",{...o,query:e})},unreadCount(e){return t.fetch("/me/conversations/unread-count",e)},retrieve(e,o){return t.fetch(`/me/conversations/${encodeURIComponent(e)}`,o)},listMessages(e,o,n){return t.fetch(`/me/conversations/${encodeURIComponent(e)}/messages`,{...n,query:o})},start(e,o){return t.fetch("/me/conversations",{...o,method:"POST",body:e})},startAboutApplication(e,o){return t.fetch("/me/conversations/about-application",{...o,method:"POST",body:e})},reply(e,o,n){return t.fetch(`/me/conversations/${encodeURIComponent(e)}/reply`,{...n,method:"POST",body:o})},markRead(e,o){return t.fetch(`/me/conversations/${encodeURIComponent(e)}/read`,{...o,method:"POST"})},archive(e,o){return t.fetch(`/me/conversations/${encodeURIComponent(e)}/archive`,{...o,method:"POST"})},unarchive(e,o){return t.fetch(`/me/conversations/${encodeURIComponent(e)}/unarchive`,{...o,method:"POST"})},findExisting(e,o){return t.fetch("/me/conversations/find-existing",{...o,query:e})}},blocks:{list(e){return t.fetch("/me/blocks",e)},create(e,o){return t.fetch("/me/blocks",{...o,method:"POST",body:e})},remove(e,o){return t.fetch(`/me/blocks/${encodeURIComponent(e)}`,{...o,method:"DELETE"})},status(e,o){return t.fetch(`/me/blocks/${encodeURIComponent(e)}`,o)}},messages:{edit(e,o,n){return t.fetch(`/me/messages/${encodeURIComponent(e)}`,{...n,method:"PATCH",body:o})},unsend(e,o){return t.fetch(`/me/messages/${encodeURIComponent(e)}`,{...o,method:"DELETE"})},report(e,o,n){return t.fetch(`/me/messages/${encodeURIComponent(e)}/report`,{...n,method:"POST",body:o})}},marketingConsent:{retrieve(e){return t.fetch("/me/marketing-consent",e)},grant(e){return t.fetch("/me/marketing-consent/grant",{...e,method:"POST"})},withdraw(e){return t.fetch("/me/marketing-consent/withdraw",{...e,method:"POST"})}},access:{checkout(e,o){return t.fetch("/me/access/checkout",{...o,method:"POST",body:e})},retrieveCheckout(e,o){return t.fetch(`/me/access/checkout/${encodeURIComponent(e)}`,o)},grant(e){return t.fetch("/me/access/grant",e)},portal(e,o){return t.fetch("/me/access/portal",{...o,method:"POST",body:e})}}}}function Me(t){return{async verify(e,o){let n=await t.fetch("/password/verify",{...o,method:"POST",body:{password:e}});return await t.storage.setItem(F,n.token),n}}}function Je(t){return{offers(e){return t.fetch("/paywall/offers/enabled",e)}}}function we(t){return{list(e,o){return t.fetch("/plans",{...o,query:e})},salesLed(e){return t.fetch("/sales-led-plans",e)}}}function Ne(t){return{resolve(e,o){return t.fetch("/redirects/resolve",{...o,query:{path:e}})}}}function $e(t){return{companies:{list(e){return t.fetch("/salaries/companies",e)}},titles:{list(e,o){return t.fetch("/salaries/titles",{...o,query:e})},retrieve(e,o,n){return t.fetch(`/salaries/titles/${encodeURIComponent(e)}`,{...n,query:o})},locations(e,o,n){return t.fetch(`/salaries/titles/${encodeURIComponent(e)}/locations`,{...n,query:o})},location(e,o,n,r){return t.fetch(`/salaries/titles/${encodeURIComponent(e)}/${encodeURIComponent(o)}`,{...r,query:n})}},skills:{list(e,o){return t.fetch("/salaries/skills",{...o,query:e})},retrieve(e,o,n){return t.fetch(`/salaries/skills/${encodeURIComponent(e)}`,{...n,query:o})},locations(e,o,n){return t.fetch(`/salaries/skills/${encodeURIComponent(e)}/locations`,{...n,query:o})},location(e,o,n,r){return t.fetch(`/salaries/skills/${encodeURIComponent(e)}/${encodeURIComponent(o)}`,{...r,query:n})}},locations:{list(e,o){return t.fetch("/salaries/locations",{...o,query:e})},retrieve(e,o,n){return t.fetch(`/salaries/locations/${encodeURIComponent(e)}`,{...n,query:o})},titles(e,o,n){return t.fetch(`/salaries/locations/${encodeURIComponent(e)}/titles`,{...n,query:o})},skills(e,o,n){return t.fetch(`/salaries/locations/${encodeURIComponent(e)}/skills`,{...n,query:o})}}}}function De(t){return{suggest(e,o){return t.fetch("/search/suggest",{...o,query:e})}}}function je(t){return Object.assign(e=>t.fetch("/sitemap",e),{entries(e,o,n){return t.fetch(`/sitemap/${encodeURIComponent(e)}`,{...n,query:o})}})}function Qe(t){return{list(e,o){return t.fetch("/talent",{...o,query:e})},retrieve(e,o){return t.fetch(`/talent/${encodeURIComponent(e)}`,o)}}}function Ge(t,e){return{resolve(o,n){return t.fetch(`/${e}/${encodeURIComponent(o)}`,n)}}}function qe(t,e){return{...Ge(t,e),list(o,n){return t.fetch(`/${e}`,{...n,query:o})}}}function He(t){return{categories:qe(t,"categories"),skills:qe(t,"skills"),remotePermits:{list(e){return t.fetch("/remote-permits",e)}},places:{...Ge(t,"places"),list(e,o){return t.fetch("/places",{...o,query:e})}}}}function Ve(t,e,o){async function*n(){let r=e;for(;;){let i=await t(r,o);if(yield i,!i.hasMore||i.nextCursor===null)return;let{offset:a,...s}=r??{};r={...s,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 a of n())if(i.push(...a.data),i.length>=r)break;return i.slice(0,r)}}}function Ke(t,e){return t.authorBoardUserId!==e}function Ye(t,e){let o=t.some(r=>r.authorBoardUserId===e);return t.some(r=>r.authorBoardUserId!==e)&&!o}function We(t,e){for(let o=t.length-1;o>=0;o--){let n=t[o];if(n.authorBoardUserId!==e)return n.id}return null}function X(t){let e=t.replace(/^[\u0000-\u0020]+|[\u0000-\u0020]+$/g,"").replace(/[\t\n\r]/g,""),o=/^([a-z][a-z0-9+.-]*):/i.exec(e)?.[1]?.toLowerCase();return o===void 0?!0:o==="http"||o==="https"||o==="mailto"}function ee(t){let e=t.applicationUrl&&X(t.applicationUrl)?t.applicationUrl:null;return!e&&!t.jobSlug?{kind:"none"}:t.registrationWall&&!t.viewer?{kind:"sign-in",reason:"registration-wall"}:e?{kind:"external",url:e}:t.jobSlug?t.viewer?t.viewer.emailVerified?t.applied?{kind:"applied"}:{kind:"native",jobSlug:t.jobSlug}:{kind:"verify-email"}:t.allowGuestApply?{kind:"guest",jobSlug:t.jobSlug}:{kind:"sign-in",reason:"native-apply"}:{kind:"none"}}function ze(t){let e=ee({...t,registrationWall:!1,allowGuestApply:!1});return e.kind==="sign-in"?{kind:"sign-in"}:e}function eo(t){let e=new I({baseUrl:t.baseUrl??Re,board:t.board,storage:ve(t.auth?.storage,t.board),globalHeaders:t.globalHeaders,onRequest:t.onRequest,onResponse:t.onResponse,logger:t.logger});return{client:e,context(o){return e.fetch("",o)},seo(o){return e.fetch("/seo",o)},jobs:ke(e),embed:Fe(e),companies:Le(e),blog:Te(e),auth:_e(e),me:Ue(e),password:Me(e),taxonomy:He(e),search:De(e),redirects:Ne(e),jobAlerts:Ie(e),jobPosting:xe(e),salaries:$e(e),talent:Qe(e),plans:we(e),paywall:Je(e),sitemap:je(e)}}var te={};_(te,{DEFAULT_SORT:()=>to,EMPLOYMENT_TYPES:()=>Xe,JOB_SORTS:()=>tt,REMOTE_OPTIONS:()=>Ze,SENIORITIES:()=>et,parseCompany:()=>nt,parseListingFilters:()=>no,parseSeniority:()=>ot});var Ze=["on_site","hybrid","remote"],Xe=["full_time","part_time","contract","internship","temporary"],et=["entry_level","associate","mid_level","senior","lead","principal","director","executive"],tt=["relevance","newest","salary_high"],to="relevance";var oo=new Set(et);function ot(t){let e=Array.isArray(t)?t:typeof t=="string"&&t?t.split(","):[],o=[],n=new Set;for(let r of e){if(typeof r!="string")continue;let i=r.trim().toLowerCase().normalize("NFC");!i||n.has(i)||oo.has(i)&&(n.add(i),o.push(i))}return o.length>0?o:void 0}function nt(t){let e=Array.isArray(t)?t:typeof t=="string"&&t?t.split(","):[],o=[],n=new Set;for(let r of e){if(typeof r!="string")continue;let i=r.trim().toLowerCase().normalize("NFC");if(!(!i||n.has(i))&&(n.add(i),o.push(i),o.length>=10))break}return o.length>0?o:void 0}function no(t){return{q:typeof t.q=="string"&&t.q?t.q:void 0,remoteOption:Ze.includes(t.remoteOption)?t.remoteOption:void 0,employmentType:Xe.includes(t.employmentType)?t.employmentType:void 0,seniority:ot(t.seniority),company:nt(t.company),sort:tt.includes(t.sort)?t.sort:void 0}}var ce={};_(ce,{COUNTRY_CODES:()=>W,buildJobBreadcrumbs:()=>Y,countryOptions:()=>Ut,formatDate:()=>lt,formatMonthYear:()=>ct,formatPublishedRelativeDate:()=>pt,formatSalaryRange:()=>ut,formatSalaryStat:()=>j,formatSalaryStatRange:()=>x,normalizeWebsiteUrl:()=>U,resolveCustomFieldDisplay:()=>Mt});function C(t){let e=t.trim();if(!e)return null;try{let o=e.replace(/_/g,"-"),[n]=Intl.getCanonicalLocales(o);if(!n)return null;let[r]=Intl.NumberFormat.supportedLocalesOf([n]);return r??null}catch{return null}}var rt=new Map,it=new Map,at=new Map,st=new Map;function ro(t){let e=rt.get(t);return e||(e=new Intl.RelativeTimeFormat(t,{numeric:"always",style:"short"}),rt.set(t,e)),e}function io(t){let e=it.get(t);return e||(e=new Intl.RelativeTimeFormat(t,{numeric:"auto",style:"short"}),it.set(t,e)),e}function ao(t){let e=at.get(t);return e||(e=new Intl.DateTimeFormat(t,{dateStyle:"medium",timeZone:"UTC"}),at.set(t,e)),e}function so(t){let e=st.get(t);return e||(e=new Intl.DateTimeFormat(t,{month:"short",year:"numeric",timeZone:"UTC"}),st.set(t,e)),e}function oe(t,e,o){try{return ro(o).format(t,e)}catch{return null}}function lt(t,e){if(!e)return null;let o=new Date(e);if(Number.isNaN(o.getTime()))return null;let n=C(t);if(!n)return null;try{return ao(n).format(o)}catch{return o.toISOString().split("T")[0]}}function pt(t,e,o=Date.now()){if(!e)return null;let n=new Date(e);if(Number.isNaN(n.getTime()))return null;let r=C(t);if(!r)return null;let i=o-n.getTime(),a=Math.abs(i),s=60*1e3,p=60*s,l=24*p,u=7*l,d=30*l,m=365*l;if(a<s)try{return io(r).format(0,"second")}catch{return oe(0,"second",r)}let y=[{unit:"year",ms:m},{unit:"month",ms:d},{unit:"week",ms:u},{unit:"day",ms:l},{unit:"hour",ms:p},{unit:"minute",ms:s}];for(let f of y)if(a>=f.ms){let P=Math.round(a/f.ms),c=i>=0?-P:P;return oe(c,f.unit,r)}let g=Math.round(a/1e3),S=i>=0?-g:g;return oe(S,"second",r)}function ct(t,e){if(!e)return null;let n=/^\d{4}-\d{2}(-\d{2})?$/.test(e)?new Date(e.length===7?`${e}-01T00:00:00.000Z`:`${e}T00:00:00.000Z`):new Date(e);if(Number.isNaN(n.getTime()))return null;let r=C(t);if(!r)return null;try{return so(r).format(n)}catch{return null}}var $=new Map;function ne(t,e,o,n="symbol",r="compact"){let i=`${e}:${o}:${n}:${r}`,a=$.get(i);if(a===void 0){try{let s={style:"currency",currency:o,currencyDisplay:n,notation:r};r==="compact"&&(s.compactDisplay="short",s.maximumFractionDigits=1,s.minimumFractionDigits=0),a=new Intl.NumberFormat(e,s)}catch{a=null}$.set(i,a)}return a?a.format(t):null}function re(t,e,o){if(typeof t.formatRange=="function")try{return t.formatRange(e,o)}catch{}try{return`${t.format(e)}\u2013${t.format(o)}`}catch{return null}}function lo(t,e,o,n,r="symbol",i="compact"){let a=`${o}:${n}:${r}:${i}:range`,s=$.get(a);if(s===void 0){try{let p={style:"currency",currency:n,currencyDisplay:r,notation:i};i==="compact"&&(p.compactDisplay="short",p.maximumFractionDigits=1,p.minimumFractionDigits=0),s=new Intl.NumberFormat(o,p)}catch{s=null}$.set(a,s)}return s?re(s,t,e):null}var po=new Set(["per_year","per_month","per_week","per_day","per_hour"]);function co(...t){let e=!1;for(let o of t)if(!(o==null||!Number.isFinite(o))&&(e=!0,Math.abs(o)>=1e3))return"compact";return e?"standard":"compact"}function ut(t,e,o,n,r=null,i="symbol",a){let s=e==null||Number.isFinite(e),p=o==null||Number.isFinite(o);if(!s||!p||e==null&&o==null)return null;let l=r?.trim().toUpperCase()||null;if(!l)return null;let u=C(t);if(!u)return null;let d=a??co(e,o),m=typeof n=="string"&&po.has(n)?n:null;if(e!=null&&o!=null){let g=e<=o?e:o,S=e<=o?o:e,f=g===S?ne(g,u,l,i,d):lo(g,S,u,l,i,d);return f?{text:f,timeframe:m,bound:"range"}:null}if(e!=null){let g=ne(e,u,l,i,d);return g?{text:g,timeframe:m,bound:"from"}:null}let y=ne(o,u,l,i,d);return y?{text:y,timeframe:m,bound:"upTo"}:null}var mt=new Map;function dt(...t){let e=!1;for(let o of t)if(!(o==null||!Number.isFinite(o))&&(e=!0,Math.abs(o)>=1e3))return"compact";return e?"standard":"compact"}function yt(t,e,o){let n=`${t}:${e}:${o}`,r=mt.get(n);if(r!==void 0)return r;let i;try{let a={style:"currency",currency:e,notation:o};o==="compact"&&(a.compactDisplay="short",a.minimumFractionDigits=0,a.maximumFractionDigits=1),i=new Intl.NumberFormat(t,a)}catch{i=null}return mt.set(n,i),i}function j(t,e,o,n){if(!Number.isFinite(e))return null;let r=o?.trim().toUpperCase()||null;if(!r)return null;let i=C(t);if(!i)return null;let a=n??dt(e),s=yt(i,r,a);return s?s.format(e):null}function x(t,e,o,n,r){if(!Number.isFinite(e)||!Number.isFinite(o))return null;let i=n?.trim().toUpperCase()||null;if(!i)return null;let a=C(t);if(!a)return null;let s=r??dt(e,o),p=yt(a,i,s);if(!p)return null;let l=Math.min(e,o),u=Math.max(e,o);return l===u?p.format(l):re(p,l,u)}var D=["entry_level","associate","mid_level","senior","lead","principal","director","executive"];function gt(t){return[...t].sort((e,o)=>{let n=D.indexOf(e.seniority),r=D.indexOf(o.seniority);return(n===-1?999:n)-(r===-1?999:r)})}var uo={unitText:"YEAR",duration:"P1Y"};function k(t,e,o,n,r={}){return{"@type":"MonetaryAmountDistribution",...t!==void 0?{name:t}:{},currency:e,minValue:o,maxValue:n,...r,...uo}}function ie(t,e,o,n){return t.map(r=>{let i=n?.seniorityName?.({seniority:r.seniority,entity:o});return k(i,e,r.avgSalaryMin,r.avgSalaryMax)})}function Q(t,e,o,n){return{"@context":"https://schema.org","@type":t,name:e,...o,estimatedSalary:n}}function ft(t,e,o,n){if(!o)return[];let r=x(t,o.avgMin,o.avgMax,n);return[{kind:"average",label:e,range:r,avgMin:o.avgMin,avgMax:o.avgMax,currency:n,jobCount:o.jobCount},{kind:"methodology",label:e}]}function q(t){return t.length===0?null:{"@context":"https://schema.org","@type":"ItemList",numberOfItems:t.length,itemListElement:t.map((e,o)=>({"@type":"ListItem",position:o+1,name:e.name,url:e.url}))}}function ht(t){return t.length===0?null:{"@context":"https://schema.org","@type":"FAQPage",mainEntity:t.map(e=>({"@type":"Question",name:e.q,acceptedAnswer:{"@type":"Answer",text:e.a}}))}}function bt(t,e){return t.overallSalary?Q("Occupation",t.categoryName,{},[k(t.categoryName,t.currency,t.overallSalary.avgMin,t.overallSalary.avgMax,{...t.boardP25Min?{percentile25:t.boardP25Min}:{},...t.boardP75Max?{percentile75:t.boardP75Max}:{}}),...ie(t.bySeniority,t.currency,t.categoryName,e)]):null}function Ct(t){return t.overallSalary?Q("Occupation",t.skillName,{},[k(t.skillName,t.currency,t.overallSalary.avgMin,t.overallSalary.avgMax,{median:Math.round((t.overallSalary.medianMin+t.overallSalary.medianMax)/2)})]):null}function St(t,e){return!e?.occupationUrl||!(t.adminLevel==="city"||t.adminLevel==="locality")?null:q(t.topCategories.map(n=>({name:n.categoryName,url:e.occupationUrl(n)})))}function Ot(t,e){return t.overall?Q("Occupation",t.name,{occupationLocation:{"@type":"AdministrativeArea",name:t.placeName,address:{"@type":"PostalAddress",addressCountry:t.countryCode}}},[k(t.name,t.currency,t.overall.avgMin,t.overall.avgMax,{...t.overall.p25Min?{percentile25:t.overall.p25Min}:{},...t.overall.p75Max?{percentile75:t.overall.p75Max}:{}}),...ie(t.bySeniority,t.currency,t.name,e)]):null}function Et(t,e){return e?.occupationUrl?q(t.byCategory.map(o=>({name:o.categoryName,url:e.occupationUrl(o)}))):null}function Bt(t,e){return t.overallSalary?Q("Occupation",t.categoryName,{occupationalCategory:t.categoryName,hiringOrganization:{"@type":"Organization",name:t.companyName}},[k(t.categoryName,t.currency,t.overallSalary.avgMin,t.overallSalary.avgMax,{...t.boardCategoryP25Min?{percentile25:t.boardCategoryP25Min}:{},...t.boardCategoryP75Max?{percentile75:t.boardCategoryP75Max}:{}}),...ie(t.bySeniority,t.currency,t.categoryName,e)]):null}function At(t,e){return t.company?.name??e.legalName??e.contact?.legalName??e.name??null}var Pt={high_school:"high school",associate_degree:"associate degree",bachelor_degree:"bachelor degree",professional_certificate:"professional certificate",postgraduate_degree:"postgraduate degree"},mo={full_time:"FULL_TIME",part_time:"PART_TIME",contract:"CONTRACTOR",internship:"INTERN",temporary:"TEMPORARY",volunteer:"VOLUNTEER",other:"OTHER"},yo={per_year:"YEAR",per_month:"MONTH",per_week:"WEEK",per_day:"DAY",per_hour:"HOUR"},se=["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 Rt({job:t,board:e,shareUrl:o}){let n=Oo(t),r=Eo(t),i=ae({"@context":"https://schema.org/","@type":"JobPosting",title:t.title,description:t.description??"",identifier:go(t,e),datePosted:vt(t.publishedAt),validThrough:vt(t.expiresAt),employmentType:t.employmentType?mo[t.employmentType]??"OTHER":"OTHER",hiringOrganization:fo(t,e),jobLocation:bo(t),jobLocationType:t.remoteOption==="remote"?"TELECOMMUTE":void 0,applicantLocationRequirements:t.remoteOption==="remote"?So(t):null,baseSalary:ho(t),educationRequirements:n,experienceRequirements:r,experienceInPlaceOfEducation:t.experienceInPlaceOfEducation===!0&&n&&r?!0:void 0,url:o});return!i||Array.isArray(i)||Object.keys(i).length===0?null:i}function go(t,e){let o=At(t,e),n={"@type":"PropertyValue",value:t.id};return o&&(n.name=o),n}function fo(t,e){let o=At(t,e);if(!o)return null;let n={"@type":"Organization",name:o},r=t.company?.website??null,i=r?U(r):null;i&&(n.sameAs=i);let a=t.company?.logoUrl??e.logoUrl??null;return a&&(n.logo=a),n}function U(t){let e=t.trim();return e?/^https?:\/\//i.test(e)?e:`https://${e}`:null}function ho(t){let e=t.salaryCurrency?.trim(),o=typeof t.salaryMin=="number",n=typeof t.salaryMax=="number";if(!e||!o&&!n)return null;let r={"@type":"QuantitativeValue"};o&&(r.minValue=t.salaryMin),n&&(r.maxValue=t.salaryMax);let i=t.salaryTimeframe?yo[t.salaryTimeframe]:void 0;return i&&(r.unitText=i),!o&&n&&typeof t.salaryMax=="number"?(r.value=t.salaryMax,r.minValue=t.salaryMax):!n&&o&&typeof t.salaryMin=="number"&&(r.value=t.salaryMin,r.maxValue=t.salaryMin),{"@type":"MonetaryAmount",currency:e.toUpperCase(),value:r}}function bo(t){let e=t.officeLocations.map(o=>Co({countryCode:o.countryCode,region:o.region,locality:o.city??o.locality,postalCode:o.postalCode,name:o.displayName})).filter(o=>o!==null);return e.length===0?null:e.length===1?e[0]:e}function Co({countryCode:t,region:e,locality:o,postalCode:n,name:r}){let i={"@type":"PostalAddress"},a=t?.trim(),s=e?.trim(),p=o?.trim(),l=n?.trim(),u=r?.trim();a&&(i.addressCountry=a.toUpperCase()),s&&(i.addressRegion=s),p&&(i.addressLocality=p),l&&(i.postalCode=l);let d=Object.keys(i).length>1;if(!d&&!u)return null;let m={"@type":"Place"};return u&&(m.name=u),d&&(m.address=i),m}function So(t){if(t.remoteWorldwide)return se.map(n=>({"@type":"Country",name:n}));let e=[],o=new Set;for(let n of t.remoteWorkPermitCountryCodes??[]){let r=n?.trim().toUpperCase();!r||o.has(r)||(o.add(r),e.push({"@type":"Country",name:r}))}for(let n of t.remoteWorkPermitSubdivisionCodes??[]){let r=n?.split("-")[0]?.trim().toUpperCase();!r||o.has(r)||(o.add(r),e.push({"@type":"Country",name:r}))}return e.length===0?null:e.length===1?e[0]:e}function Oo(t){let e=t.educationRequirements;if(!e||e.length===0)return null;if(e.includes("no_requirements"))return"no requirements";let o=e.filter(n=>n in Pt).map(n=>({"@type":"EducationalOccupationalCredential",credentialCategory:Pt[n]}));return o.length>0?o:null}function Eo(t){let e=t.experienceMonths;return typeof e!="number"?null:e===0?"no requirements":{"@type":"OccupationalExperienceRequirements",monthsOfExperience:e}}function vt(t){if(!t)return null;let e=new Date(t);return Number.isNaN(e.getTime())?null:e.toISOString()}function ae(t){let e=o=>o==null?!1:Array.isArray(o)?o.length>0:typeof o=="object"?Object.keys(o).length>0:!0;if(Array.isArray(t))return t.map(o=>ae(o)).filter(e);if(t&&typeof t=="object"){let o=Object.entries(t).map(([n,r])=>[n,ae(r)]).filter(([,n])=>e(n));return Object.fromEntries(o)}return t}var pe={};_(pe,{BOARD_PATHS:()=>V,blogAuthorPath:()=>_o,blogPostPath:()=>It,blogTagPath:()=>xt,boardUrl:()=>K,companyMarketPath:()=>Ft,companyPath:()=>Lt,companySalaryPath:()=>Po,encodePathSegment:()=>h,goAlertsConfirmPath:()=>Fo,goAlertsManagePath:()=>Lo,goJobPath:()=>To,jobDetailPath:()=>le,jobsCategoryPath:()=>G,jobsLocationCategoryPath:()=>H,jobsLocationPath:()=>M,jobsLocationSkillPath:()=>Tt,jobsSkillPath:()=>_t,salaryLocationPath:()=>Ro,salarySkillPath:()=>Ao,salaryTitlePath:()=>vo,suggestionPath:()=>Bo});function h(t){try{return encodeURIComponent(decodeURIComponent(t)).replace(/%3A/gi,":")}catch{return encodeURIComponent(t).replace(/%3A/gi,":")}}function le(t,e){return`/companies/${h(t)}/jobs/${h(e)}`}function G(t){return`/jobs/${h(t)}`}function _t(t){return`/jobs/skills/${h(t)}`}function M(t){return`/jobs/locations/${h(t)}`}function H(t,e){return`${M(t)}/${h(e)}`}function Tt(t,e){return`${M(t)}/skills/${h(e)}`}function Lt(t){return`/companies/${h(t)}`}function Ft(t){return`/companies/markets/${h(t)}`}function Bo(t,e){let o=e.location?.trim()||void 0;return e.scope==="blog"?t.type==="post"?It(t.slug):t.type==="tag"?xt(t.slug):null:e.scope==="jobs"?t.type==="company"||t.type==="market"||t.type==="post"||t.type==="tag"?null:t.termType==="skill"?o?Tt(o,t.canonicalSlug):_t(t.canonicalSlug):o?H(o,t.canonicalSlug):G(t.canonicalSlug):t.type==="company"?Lt(t.slug):t.type==="market"?Ft(t.slug):null}function Po(t){return`/companies/${h(t)}/salaries`}function vo(t){return`/salaries/titles/${h(t)}`}function Ao(t){return`/salaries/skills/${h(t)}`}function Ro(t){return`/salaries/locations/${h(t)}`}function It(t){return`/blog/${h(t)}`}function xt(t){return`/blog/tag/${h(t)}`}function _o(t){return`/blog/author/${h(t)}`}var V={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 To(t){return`/go/job/${t}`}function Lo(){return"/go/alerts-manage"}function Fo(){return"/go/alerts-confirm"}function K(t,e){return`${t.replace(/\/+$/,"")}${e}`}function kt(t,e={}){let o=t.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 a=r.href?Io(r.href,e.origin??null):null,s={"@type":"ListItem",position:i+1,name:r.name};return a&&(s.item=a),s})}}function Io(t,e){if(xo(t))return t;if(!e)return null;let o=t.startsWith("/")?t:`/${t}`;return`${e}${o}`}function xo(t){return/^https?:\/\//i.test(t)}function Y(t){let e=[{kind:"home",path:V.home},{kind:"jobs",path:V.jobs}],o=null;for(let r of t.placeHierarchy)o=r.slug,e.push({kind:"place",name:r.name,path:M(r.slug)});let n=t.categories[0];return n&&e.push({kind:"category",name:n.name,path:o?H(o,n.slug):G(n.slug)}),e.push({kind:"job",name:t.title}),e}var W=["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 ko(t){try{return new Intl.DisplayNames([t],{type:"region"})}catch{return null}}function Uo(t){try{return new Intl.Collator(t)}catch{return new Intl.Collator}}function Ut(t){let e=C(t);if(!e)return W.map(r=>({code:r,name:r})).sort((r,i)=>r.code<i.code?-1:r.code>i.code?1:0);let o=ko(e),n=Uo(e).compare;return W.map(r=>({code:r,name:o?.of(r)??r})).sort((r,i)=>n(r.name,i.name))}function Mo(t,e){if(!Array.isArray(e)||e.length===0)return null;let o=e.map(n=>t.options?.find(r=>r.key===n)?.label).filter(n=>!!n);return o.length>0?o:null}function Jo(t,e){switch(t.type){case"number":return null;case"multi_select":return null;case"single_select":return typeof e!="string"?null:t.options?.find(o=>o.key===e)?.label??null;default:return typeof e=="string"&&e.trim()!==""?e:null}}function Mt(t,e,o){let n=[];for(let r of e??[]){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 s=Mo(r,i);s&&n.push({key:r.key,label:r.label,kind:"multi_select",values:s});continue}let a=Jo(r,i);a!==null&&n.push({key:r.key,label:r.label,kind:"text",value:a})}return n}var ue={};_(ue,{ALL_COUNTRY_CODES:()=>se,SENIORITY_ORDER:()=>D,buildJobBreadcrumbs:()=>Y,buildSalaryFaq:()=>ft,companyCategorySalaryJsonLd:()=>Bt,companySalaryJsonLd:()=>Et,createAuthorProfileJsonLd:()=>wt,createBlogArticleJsonLd:()=>Jt,createBreadcrumbJsonLd:()=>kt,createJobPostingJsonLd:()=>Rt,crossAxisSalaryJsonLd:()=>Ot,faqJsonLd:()=>ht,formatSalaryStat:()=>j,formatSalaryStatRange:()=>x,itemListJsonLd:()=>q,listingHead:()=>Nt,listingJsonLd:()=>$t,locationSalaryJsonLd:()=>St,normalizeWebsiteUrl:()=>U,skillSalaryJsonLd:()=>Ct,sortBySeniority:()=>gt,titleSalaryJsonLd:()=>bt});function Jt({post:t,boardName:e,permalink:o,ogImageUrl:n}){let r={"@context":"https://schema.org","@type":"Article",headline:t.title,url:o,mainEntityOfPage:{"@type":"WebPage","@id":o},publisher:{"@type":"Organization",name:e}};t.customExcerpt&&(r.description=t.customExcerpt),t.publishedAt&&(r.datePublished=t.publishedAt);let i=t.coverUrl??n;i&&(r.image=i);let a=t.authors[0];return a&&(r.author={"@type":"Person",name:a.name,...a.websiteUrl?{url:a.websiteUrl}:{}}),r}function wt({author:t,canonical:e,description:o,origin:n,posts:r,totalPosts:i}){if(!t.name)return null;let a=o.trim(),s=[z(t.websiteUrl),z(t.twitterUrl),z(t.linkedinUrl),z(t.githubUrl)].filter(m=>!!m),p=`${e}#profile`,l=r.slice(0,5).map(m=>{let y=wo(n,`/blog/${m.slug}`);return y?{"@type":"Article",headline:m.title,url:y,datePublished:m.publishedAt,author:{"@id":p}}:null}).filter(m=>m!==null),u=i>0?{"@type":"InteractionCounter",interactionType:"https://schema.org/WriteAction",userInteractionCount:i}:void 0,d={"@context":"https://schema.org","@type":"ProfilePage",url:e,mainEntity:{"@type":"Person","@id":p,name:t.name,alternateName:t.slug??void 0,identifier:t.id??void 0,description:a||void 0,image:t.avatarUrl??void 0,sameAs:s.length>0?s:void 0,url:e,mainEntityOfPage:e,agentInteractionStatistic:u}};return l.length>0&&(d.hasPart=l),d}function z(t){if(!t)return null;let e=t.trim();if(!e)return null;try{let o=e.startsWith("http://")||e.startsWith("https://")?e:`https://${e}`;return new URL(o).toString()}catch{return null}}function wo(t,e){if(!t||!e)return null;try{return new URL(e,t).toString()}catch{return null}}function Nt(t){let e=t.title,o=t.description,n=`${t.origin}${t.path}`;return{meta:[{title:e},{name:"description",content:o},{property:"og:title",content:e},{property:"og:description",content:o},{property:"og:type",content:"website"},{property:"og:url",content:n}],links:[{rel:"canonical",href:n}]}}function $t(t){let e=[];t.breadcrumbs.length>=2&&e.push({"@context":"https://schema.org","@type":"BreadcrumbList",itemListElement:t.breadcrumbs.map((n,r)=>({"@type":"ListItem",position:r+1,name:n.name,...n.path?{item:K(t.origin,n.path)}:{}}))});let o=(t.jobs??[]).filter(n=>n.company!=null&&!!n.company.slug);return o.length>0&&e.push({"@context":"https://schema.org","@type":"ItemList",itemListElement:o.map((n,r)=>({"@type":"ListItem",position:r+1,url:K(t.origin,le(n.company.slug,n.slug))}))}),e}var me={};_(me,{createSuggestController:()=>Do});function No(t){return typeof DOMException<"u"&&t instanceof DOMException&&t.name==="AbortError"||t instanceof Error&&t.name==="AbortError"}function $o(t){try{let e=0;for(let o of new Intl.Segmenter(void 0,{granularity:"grapheme"}).segment(t))e+=1;return e}catch{return[...t].length}}function Dt(t,e){return e.size===0?t.slice():t.filter(o=>!(o.type==="company"&&e.has(o.slug.toLowerCase().normalize("NFC"))))}function Do(t,e){let o=e?.minChars??2,n=e?.debounceMs??250,r=e?.limit,i=!1,a={query:"",items:[],status:"idle",error:null},s=[],p=new Set,l=0,u=null,d=null,m=new Set;function y(){for(let c of m)c()}function g(c){a=c,y()}function S(){u!==null&&(globalThis.clearTimeout(u),u=null)}function f(){d&&(d.abort(),d=null)}function P(c){let b=++l;f();let O=new AbortController;d=O;let R={q:c};r!==void 0&&(R.limit=r),t.search.suggest(R,{signal:O.signal}).then(v=>{i||b!==l||(d=null,s=v.items,g({query:a.query,items:Dt(s,p),status:"ready",error:null}))}).catch(v=>{i||b!==l||No(v)||(d=null,g({query:a.query,items:a.items,status:"error",error:v}))})}return{setQuery(c){if(i)return;let b=c.trim();if(S(),$o(b)<o){l+=1,f(),s=[],g({query:c,items:[],status:"idle",error:null});return}l+=1,f(),g({query:c,items:a.items,status:"loading",error:null}),u=globalThis.setTimeout(()=>{u=null,!i&&P(b)},n)},setExcludedCompanySlugs(c){i||(p=new Set(c.map(b=>b.trim().toLowerCase().normalize("NFC")).filter(Boolean)),g({query:a.query,items:Dt(s,p),status:a.status,error:a.error}))},getState(){return a},subscribe(c){return i?()=>{}:(m.add(c),()=>{m.delete(c)})},dispose(){i||(i=!0,S(),f(),l+=1,m.clear())}}}return Vt(jo);})();
1
+ "use strict";var CavunoBoard=(()=>{var J=Object.defineProperty;var Vt=Object.getOwnPropertyDescriptor;var Ht=Object.getOwnPropertyNames;var Kt=Object.prototype.hasOwnProperty;var Yt=(t,e,o)=>e in t?J(t,e,{enumerable:!0,configurable:!0,writable:!0,value:o}):t[e]=o;var _=(t,e)=>{for(var o in e)J(t,o,{get:e[o],enumerable:!0})},Wt=(t,e,o,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of Ht(e))!Kt.call(t,r)&&r!==o&&J(t,r,{get:()=>e[r],enumerable:!(n=Vt(e,r))||n.enumerable});return t};var zt=t=>Wt(J({},"__esModule",{value:!0}),t);var P=(t,e,o)=>Yt(t,typeof e!="symbol"?e+"":e,o);var Vo={};_(Vo,{ACCESS_TOKEN_KEY:()=>L,BOARD_ACCESS_GRANT_KEY:()=>F,BOARD_API_ERROR_CODES:()=>de,BoardApiError:()=>v,BoardClient:()=>I,REFRESH_TOKEN_KEY:()=>T,SDK_VERSION:()=>N,createBoardClient:()=>ro,filters:()=>te,format:()=>pe,isBoardApiError:()=>R,isBoardPasswordRequired:()=>ge,isColdRule:()=>ze,isConflict:()=>Se,isForbidden:()=>he,isFreeEmailWebsiteError:()=>Oe,isNotFound:()=>ye,isOwnMessage:()=>We,isRateLimited:()=>Ce,isSafeApplicationUrl:()=>X,isUnauthorized:()=>fe,isValidationError:()=>be,lastOwnMessageId:()=>Ze,paginate:()=>Ye,paths:()=>ce,resolveApplyAction:()=>Xe,resolveApplyDecision:()=>ee,seo:()=>ue,suggest:()=>me});var de=["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","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","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 R(t){return t instanceof Error&&t.name==="BoardApiError"&&typeof t.status=="number"&&typeof t.code=="string"}function ye(t){return R(t)&&t.status===404}function fe(t){return R(t)&&t.status===401}function ge(t){return R(t)&&t.status===401&&t.code==="board_password_required"}function he(t){return R(t)&&t.status===403}function be(t){return R(t)&&t.status===400&&t.code==="validation_bad_request"}function Ce(t){return R(t)&&t.status===429}function Se(t){return R(t)&&t.status===409}function Oe(t){return R(t)&&t.status===422&&t.code==="employer_free_email_website"}function Pe(t){let e=new URLSearchParams;if(!t)return e;for(let[o,n]of Object.entries(t))if(n!=null)if(Array.isArray(n))for(let r of n)r!=null&&e.append(o,String(r));else e.append(o,String(n));return e}function Re(t){let e=5381;for(let n=0;n<t.length;n++)e=(e<<5)+e+t.charCodeAt(n)>>>0;return`${t.replace(/[^a-zA-Z0-9_-]/g,"_")}-${e.toString(36)}`}var L="cavuno_board_access_token",T="cavuno_board_refresh_token",F="cavuno_board_access_grant";function Be(){return typeof globalThis.document<"u"}function Zt(){let t=new Map;return{getItem:e=>t.get(e)??null,setItem:(e,o)=>{t.set(e,o)},removeItem:e=>{t.delete(e)}}}function Xt(t,e){if(!Be())throw new Error(`storage mode '${t}' is browser-only \u2014 use 'nostore' + per-call headers on the server`);let o;try{if(o=t==="local"?globalThis.localStorage:globalThis.sessionStorage,!o)throw new Error("unavailable")}catch{throw new Error(`storage mode '${t}' 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=e?`:${Re(e)}`:"";return{getItem:r=>o.getItem(`${r}${n}`),setItem:(r,i)=>{o.setItem(`${r}${n}`,i)},removeItem:r=>{o.removeItem(`${r}${n}`)}}}var eo=Symbol.for("@cavuno/board:nostore");var to={[eo]:!0,getItem:()=>null,setItem:()=>{},removeItem:()=>{}};function Ee(t,e){let o=t??(Be()?"memory":"nostore");if(typeof o=="object")return o;switch(o){case"memory":return Zt();case"nostore":return to;case"local":case"session":return Xt(o,e);default:throw new Error(`Unknown storage mode '${String(o)}'`)}}async function w(t,e){await t.setItem(L,e.accessToken),await t.setItem(T,e.refreshToken)}async function ve(t){await t.removeItem(L),await t.removeItem(T)}var N="4.28.0";function oo(t){return typeof t=="string"||t instanceof URLSearchParams||typeof FormData<"u"&&t instanceof FormData||typeof Blob<"u"&&t instanceof Blob||t instanceof ArrayBuffer||typeof ReadableStream<"u"&&t instanceof ReadableStream}function no(t){try{let e=new URL(t);for(let o of new Set(e.searchParams.keys()))e.searchParams.delete(o),e.searchParams.set(o,"[REDACTED]");return e.toString()}catch{return t.replace(/([?&][^=&#]+)=([^&#]*)/g,"$1=[REDACTED]")}}var I=class{constructor(e){P(this,"storage");P(this,"basePath");P(this,"options");this.options=e,this.storage=e.storage;let o=e.baseUrl.replace(/\/+$/,"");this.basePath=`${o}/v1/boards/${encodeURIComponent(e.board)}`}async fetch(e,o={}){let{body:n,query:r,headers:i,...s}=o,a=(o.method??"GET").toUpperCase(),c=`${this.basePath}${e}`,u=Pe(r).toString();u&&(c+=`?${u}`);let d=n!==void 0&&!oo(n),m=n===void 0?void 0:d?JSON.stringify(n):n,y=new Headers({accept:"application/json"});d&&y.set("content-type","application/json");for(let[E,Z]of Object.entries(this.options.globalHeaders??{}))y.set(E,Z);let f=await this.storage.getItem(L);f!==null&&y.set("authorization",`Bearer ${f}`);let S=await this.storage.getItem(F);S!==null&&y.set("x-board-access",S),i&&new Headers(i).forEach((E,Z)=>{y.set(Z,E)}),(a!=="GET"||y.has("authorization")||y.has("x-board-access"))&&!y.has("x-cavuno-sdk")&&y.set("x-cavuno-sdk",`board@${N}`);let g={url:c,init:{...s,method:a,headers:y,body:m}};this.options.onRequest&&(g=await this.options.onRequest(g));let B=no(g.url);this.options.logger?.debug(`${a} ${B}`);let p=await globalThis.fetch(g.url,g.init);if(this.options.logger?.debug(`${p.status} ${a} ${B}`),this.options.onResponse&&await this.options.onResponse(p.clone(),g),p.status===204)return;if(p.ok)return await p.json();let b;try{b=await p.json()}catch{b=void 0}let O=b?.error,A=O&&typeof O.code=="string"&&typeof O.message=="string"?new v({status:p.status,code:O.code,message:O.message,details:O.details,requestId:O.requestId,raw:b}):new v({status:p.status,code:"unknown_error",message:p.statusText||"Request failed",raw:b});throw this.options.logger?.error(`${A.status} ${A.code} ${a} ${B}`),A}};var Ae="https://api.cavuno.com";function _e(t){async function e(n){return await w(t.storage,n),n}async function o(n){if(n?.refreshToken)return n.refreshToken;let r=await t.storage.getItem(T);if(r===null)throw new Error("No refresh token available \u2014 pass { refreshToken } or configure auth.storage");return r}return{async register(n,r){let i=await t.fetch("/auth/register",{...r,method:"POST",body:n});return e(i)},async login(n,r){let i=await t.fetch("/auth/login",{...r,method:"POST",body:n});return e(i)},async refresh(n,r){let i=await o(n),s=await t.fetch("/auth/refresh",{...r,method:"POST",body:{refreshToken:i}});return e(s)},async logout(n,r){let i=await o(n);await t.fetch("/auth/logout",{...r,method:"POST",body:{refreshToken:i}}),await ve(t.storage)},verifyEmail(n,r){return t.fetch("/auth/verify-email",{...r,method:"POST",body:n})},verifyWorkEmail(n,r){return t.fetch("/auth/verify-work-email",{...r,method:"POST",body:n})},verifyEmailWithCode(n,r){return t.fetch("/auth/verify-email/otp",{...r,method:"POST",body:n})},resendVerification(n){return t.fetch("/auth/verify-email/resend",{...n,method:"POST"})},forgotPassword(n,r){return t.fetch("/auth/forgot-password",{...r,method:"POST",body:n})},resetPassword(n,r){return t.fetch("/auth/reset-password",{...r,method:"POST",body:n})},requestMagicLink(n,r){return t.fetch("/auth/magic-link",{...r,method:"POST",body:n})},async consumeMagicLink(n,r){let i=await t.fetch("/auth/magic-link/consume",{...r,method:"POST",body:n});return e(i)},getOAuthAuthorizationUrl(n,r,i){return t.fetch(`/auth/oauth/${n}`,{...i,method:"GET",query:r})},async exchangeOAuth(n,r){let i=await t.fetch("/auth/oauth/exchange",{...r,method:"POST",body:n});return e(i)}}}function Le(t){return{posts:{list(e,o){return t.fetch("/blog/posts",{...o,query:e})},retrieve(e,o,n){return t.fetch(`/blog/posts/${encodeURIComponent(e)}`,{...n,query:o})},adjacent(e,o){return t.fetch(`/blog/posts/${encodeURIComponent(e)}/adjacent`,o)},similar(e,o,n){return t.fetch(`/blog/posts/${encodeURIComponent(e)}/similar`,{...n,query:o})}},tags:{list(e,o){return t.fetch("/blog/tags",{...o,query:e})},retrieve(e,o,n){return t.fetch(`/blog/tags/${encodeURIComponent(e)}`,{...n,query:o})}},authors:{list(e,o){return t.fetch("/blog/authors",{...o,query:e})},retrieve(e,o,n){return t.fetch(`/blog/authors/${encodeURIComponent(e)}`,{...n,query:o})}},search(e,o,n){return t.fetch("/blog/search",{...n,method:"POST",body:e,query:o})}}}function Te(t){let e=Object.assign((n,r)=>t.fetch("/companies/markets",{...r,query:n}),{resolve(n,r){return t.fetch(`/companies/markets/${encodeURIComponent(n)}`,r)}}),o=Object.assign((n,r)=>t.fetch(`/companies/${encodeURIComponent(n)}/salaries`,r),{summary(n,r){return t.fetch(`/companies/${encodeURIComponent(n)}/salaries/summary`,r)},category(n,r,i,s){return t.fetch(`/companies/${encodeURIComponent(n)}/salaries/${encodeURIComponent(r)}`,{...s,query:i})}});return{list(n,r){return t.fetch("/companies",{...r,query:n})},retrieve(n,r,i){return t.fetch(`/companies/${encodeURIComponent(n)}`,{...i,query:r})},search(n,r,i){return t.fetch("/companies/search",{...i,method:"POST",body:n,query:r})},listJobs(n,r,i){return t.fetch(`/companies/${encodeURIComponent(n)}/jobs`,{...i,query:r})},similar(n,r,i){return t.fetch(`/companies/${encodeURIComponent(n)}/similar`,{...i,query:r})},markets:e,salaries:o}}function Fe(t){return{jobs(e,o){return t.fetch("/embed/jobs",{...o,query:e})}}}function Ie(t){return{subscribe(e,o){return t.fetch("/job-alerts",{...o,method:"POST",body:e})},confirm(e,o){return t.fetch("/job-alerts/confirm",{...o,method:"POST",body:e})},resendConfirmation(e,o){return t.fetch("/job-alerts/resend-confirmation",{...o,method:"POST",body:e})},manage(e,o){return t.fetch("/job-alerts/manage",{...o,query:e})},unsubscribe(e,o){return t.fetch("/job-alerts/unsubscribe",{...o,method:"POST",body:e})},resubscribe(e,o){return t.fetch("/job-alerts/resubscribe",{...o,method:"POST",body:e})},updatePreference(e,o){return t.fetch("/job-alerts/preferences",{...o,method:"POST",body:e})},deletePreference(e,o){return t.fetch("/job-alerts/preferences",{...o,method:"DELETE",body:e})}}}function xe(t){return{plans(e,o){return t.fetch("/job-postings/plans",{...o,query:e})},create(e,o){return t.fetch("/job-postings",{...o,method:"POST",body:e})},uploadLogo(e,o){let n=new FormData;return n.append("file",e),t.fetch("/job-postings/logo",{...o,method:"POST",body:n})},fetchLogoByDomain(e,o){return t.fetch("/job-postings/logo/fetch",{...o,query:{domain:e}})},sendBillingVerification(e,o){return t.fetch("/job-postings/send-verification",{...o,method:"POST",body:e})},getBillingOptions(e,o){return t.fetch("/job-postings/billing-options",{...o,method:"POST",body:e})}}}function ke(t){return{collectionChoices(e,o,n){return t.fetch(`/job-fields/${encodeURIComponent(e)}/choices`,{...n,query:o})},list(e,o){return t.fetch("/jobs",{...o,query:e})},retrieve(e,o,n){return t.fetch(`/jobs/${encodeURIComponent(e)}`,{...n,query:o})},search(e,o,n){return t.fetch("/jobs/search",{...n,method:"POST",body:e,query:o})},similar(e,o,n){return t.fetch(`/jobs/${encodeURIComponent(e)}/similar`,{...n,query:o})},apply(e,o,n){return t.fetch(`/jobs/${encodeURIComponent(e)}/apply`,{...n,method:"POST",body:o??{}})},createApplyIntent(e,o,n){return t.fetch(`/jobs/${encodeURIComponent(e)}/apply-intents`,{...n,method:"POST",body:o})},prepareApplyApproval(e,o,n){return t.fetch(`/jobs/${encodeURIComponent(e)}/apply-approvals`,{...n,method:"POST",body:o})},uploadApplicationResume(e,o,n,r){let i=new FormData;return i.append("file",o),n?.applicationId&&i.append("applicationId",n.applicationId),t.fetch(`/jobs/${encodeURIComponent(e)}/apply/resume`,{...r,method:"POST",body:i})},myApplication(e,o){return t.fetch(`/jobs/${encodeURIComponent(e)}/application`,o)}}}function Ue(t){return{search(e,o){return t.fetch("/locations/search",{...o,query:e})},resolve(e,o){return t.fetch("/locations/resolve",{...o,method:"POST",body:e})}}}function Me(t){return{retrieve(e,o){return t.fetch("/me",{...o,query:e})},delete(e){return t.fetch("/me",{...e,method:"DELETE"})},async updatePassword(e,o){let n=await t.fetch("/me/password",{...o,method:"POST",body:e});return await w(t.storage,n),n},requestEmailChange(e,o){return t.fetch("/me/email",{...o,method:"POST",body:e})},confirmEmailChange(e,o){return t.fetch("/me/email/confirm",{...o,method:"POST",body:e})},acceptInvite(e,o){return t.fetch("/me/invites/accept",{...o,method:"POST",body:e})},profile:{listObjectReferenceChoices(e,o,n){return t.fetch("/me/profile/object-references/choices",{...n,query:{...o,fieldKey:e}})},retrieve(e,o){return t.fetch("/me/profile",{...o,query:e})},update(e,o,n){return t.fetch("/me/profile",{...n,method:"PATCH",body:e,query:o})},retrieveCustomFields(e){return t.fetch("/me/profile/custom-fields",{...e})},updateCustomFields(e,o){return t.fetch("/me/profile/custom-fields",{...o,method:"PATCH",body:e})},retrieveObjectReferences(e){return t.fetch("/me/profile/object-references",e)},updateObjectReferences(e,o){return t.fetch("/me/profile/object-references",{...o,method:"PUT",body:e})},handleAvailable(e,o){return t.fetch("/me/profile/handle-available",{...o,query:{handle:e}})},listExperience(e){return t.fetch("/me/profile/experience",e)},createExperience(e,o){return t.fetch("/me/profile/experience",{...o,method:"POST",body:e})},updateExperience(e,o,n){return t.fetch(`/me/profile/experience/${encodeURIComponent(e)}`,{...n,method:"PATCH",body:o})},deleteExperience(e,o){return t.fetch(`/me/profile/experience/${encodeURIComponent(e)}`,{...o,method:"DELETE"})},listEducation(e){return t.fetch("/me/profile/education",e)},createEducation(e,o){return t.fetch("/me/profile/education",{...o,method:"POST",body:e})},updateEducation(e,o,n){return t.fetch(`/me/profile/education/${encodeURIComponent(e)}`,{...n,method:"PATCH",body:o})},deleteEducation(e,o){return t.fetch(`/me/profile/education/${encodeURIComponent(e)}`,{...o,method:"DELETE"})},listSkills(e){return t.fetch("/me/profile/skills",e)},updateSkills(e,o){return t.fetch("/me/profile/skills",{...o,method:"PUT",body:e})},listLanguages(e){return t.fetch("/me/profile/languages",e)},updateLanguages(e,o){return t.fetch("/me/profile/languages",{...o,method:"PUT",body:e})},uploadAvatar(e,o){let n=new FormData;return n.append("file",e),t.fetch("/me/profile/avatar",{...o,method:"POST",body:n})}},notificationPreferences:{retrieve(e){return t.fetch("/me/notification-preferences",e)},update(e,o){return t.fetch("/me/notification-preferences",{...o,method:"PUT",body:e})},unsubscribeWithToken(e,o){return t.fetch("/me/notification-preferences/unsubscribe",{...o,method:"POST",body:e})}},companies:{listObjectReferenceChoices(e,o,n,r){return t.fetch(`/me/companies/${encodeURIComponent(e)}/object-references/choices`,{...r,query:{...n,fieldKey:o}})},retrieveObjectReferences(e,o){return t.fetch(`/me/companies/${encodeURIComponent(e)}/object-references`,o)},updateObjectReferences(e,o,n){return t.fetch(`/me/companies/${encodeURIComponent(e)}/object-references`,{...n,method:"PUT",body:o})},search(e,o){return t.fetch("/me/companies/search",{...o,query:e})},list(e){return t.fetch("/me/companies",e)},create(e,o){return t.fetch("/me/companies",{...o,method:"POST",body:e})},claim(e,o){return t.fetch(`/me/companies/${encodeURIComponent(e)}/claim`,{...o,method:"POST"})},cancelClaim(e,o){return t.fetch(`/me/companies/${encodeURIComponent(e)}/claim`,{...o,method:"DELETE"})},retrieve(e,o){return t.fetch(`/me/companies/${encodeURIComponent(e)}`,o)},update(e,o,n){return t.fetch(`/me/companies/${encodeURIComponent(e)}`,{...n,method:"PATCH",body:o})},retrieveCustomFields(e,o){return t.fetch(`/me/companies/${encodeURIComponent(e)}/custom-fields`,o)},updateCustomFields(e,o,n){return t.fetch(`/me/companies/${encodeURIComponent(e)}/custom-fields`,{...n,method:"PATCH",body:o})},delete(e,o){return t.fetch(`/me/companies/${encodeURIComponent(e)}`,{...o,method:"DELETE"})},listMembers(e,o){return t.fetch(`/me/companies/${encodeURIComponent(e)}/members`,o)},updateMemberRole(e,o,n,r){return t.fetch(`/me/companies/${encodeURIComponent(e)}/members/${encodeURIComponent(o)}`,{...r,method:"PATCH",body:n})},removeMember(e,o,n){return t.fetch(`/me/companies/${encodeURIComponent(e)}/members/${encodeURIComponent(o)}`,{...n,method:"DELETE"})},leave(e,o){return t.fetch(`/me/companies/${encodeURIComponent(e)}/membership`,{...o,method:"DELETE"})},startMembershipCheckout(e,o,n){return t.fetch(`/me/companies/${encodeURIComponent(e)}/membership/checkout`,{...n,method:"POST",body:o})},retrieveMembershipCheckout(e,o,n){return t.fetch(`/me/companies/${encodeURIComponent(e)}/membership/checkout/${encodeURIComponent(o)}`,n)},listInvites(e,o){return t.fetch(`/me/companies/${encodeURIComponent(e)}/invites`,o)},createInvite(e,o,n){return t.fetch(`/me/companies/${encodeURIComponent(e)}/invites`,{...n,method:"POST",body:o})},revokeInvite(e,o,n){return t.fetch(`/me/companies/${encodeURIComponent(e)}/invites/${encodeURIComponent(o)}`,{...n,method:"DELETE"})},uploadLogo(e,o,n){let r=new FormData;return r.append("file",o),t.fetch(`/me/companies/${encodeURIComponent(e)}/logo`,{...n,method:"POST",body:r})},workEmail:{verify(e,o,n){return t.fetch(`/me/companies/${encodeURIComponent(e)}/work-email/verify`,{...n,method:"POST",body:o})},confirm(e,o,n){return t.fetch(`/me/companies/${encodeURIComponent(e)}/work-email/confirm`,{...n,method:"POST",body:o})}},jobs:{list(e,o,n){return t.fetch(`/me/companies/${encodeURIComponent(e)}/jobs`,{...n,query:o})},retrieve(e,o,n){return t.fetch(`/me/companies/${encodeURIComponent(e)}/jobs/${encodeURIComponent(o)}`,n)},create(e,o,n){return t.fetch(`/me/companies/${encodeURIComponent(e)}/jobs`,{...n,method:"POST",body:o})},update(e,o,n,r){return t.fetch(`/me/companies/${encodeURIComponent(e)}/jobs/${encodeURIComponent(o)}`,{...r,method:"PATCH",body:n})},delete(e,o,n){return t.fetch(`/me/companies/${encodeURIComponent(e)}/jobs/${encodeURIComponent(o)}`,{...n,method:"DELETE"})},publish(e,o,n){return t.fetch(`/me/companies/${encodeURIComponent(e)}/jobs/${encodeURIComponent(o)}/publish`,{...n,method:"POST"})},unpublish(e,o,n){return t.fetch(`/me/companies/${encodeURIComponent(e)}/jobs/${encodeURIComponent(o)}/unpublish`,{...n,method:"POST"})},checkout(e,o,n,r){return t.fetch(`/me/companies/${encodeURIComponent(e)}/jobs/${encodeURIComponent(o)}/checkout`,{...r,method:"POST",body:n})}},billingOptions:{list(e,o){return t.fetch(`/me/companies/${encodeURIComponent(e)}/billing-options`,o)}},billingPortal:{create(e,o,n){return t.fetch(`/me/companies/${encodeURIComponent(e)}/billing-portal`,{...n,method:"POST",body:o})}},jobStats:{retrieve(e,o){return t.fetch(`/me/companies/${encodeURIComponent(e)}/job-stats`,o)},timeseries(e,o,n){return t.fetch(`/me/companies/${encodeURIComponent(e)}/job-stats/timeseries`,{...n,query:o})}},profileStats:{retrieve(e,o){return t.fetch(`/me/companies/${encodeURIComponent(e)}/profile-stats`,o)},timeseries(e,o,n){return t.fetch(`/me/companies/${encodeURIComponent(e)}/profile-stats/timeseries`,{...n,query:o})}},recommendedTalent:{list(e,o,n){return t.fetch(`/me/companies/${encodeURIComponent(e)}/recommended-talent`,{...n,query:o})}},talentLists:{list(e,o){return t.fetch(`/me/companies/${encodeURIComponent(e)}/talent-lists`,o)},create(e,o,n){return t.fetch(`/me/companies/${encodeURIComponent(e)}/talent-lists`,{...n,method:"POST",body:o})},update(e,o,n,r){return t.fetch(`/me/companies/${encodeURIComponent(e)}/talent-lists/${encodeURIComponent(o)}`,{...r,method:"PATCH",body:n})},remove(e,o,n){return t.fetch(`/me/companies/${encodeURIComponent(e)}/talent-lists/${encodeURIComponent(o)}`,{...n,method:"DELETE"})}},sourcedCandidates:{list(e,o,n){return t.fetch(`/me/companies/${encodeURIComponent(e)}/sourced-candidates`,{...n,query:o})},add(e,o,n){return t.fetch(`/me/companies/${encodeURIComponent(e)}/sourced-candidates`,{...n,method:"POST",body:o})},remove(e,o,n){return t.fetch(`/me/companies/${encodeURIComponent(e)}/sourced-candidates/${encodeURIComponent(o)}`,{...n,method:"DELETE"})},convert(e,o,n,r){return t.fetch(`/me/companies/${encodeURIComponent(e)}/sourced-candidates/${encodeURIComponent(o)}/convert`,{...r,method:"POST",body:n})}},applicants:{list(e,o,n){return t.fetch(`/me/companies/${encodeURIComponent(e)}/applicants`,{...n,query:o})},move(e,o,n,r){return t.fetch(`/me/companies/${encodeURIComponent(e)}/applicants/${encodeURIComponent(o)}/stage`,{...r,method:"PATCH",body:n})},bulkMove(e,o,n){return t.fetch(`/me/companies/${encodeURIComponent(e)}/applicants/bulk/move`,{...n,method:"POST",body:o})},bulkReject(e,o,n){return t.fetch(`/me/companies/${encodeURIComponent(e)}/applicants/bulk/reject`,{...n,method:"POST",body:o})},addNote(e,o,n,r){return t.fetch(`/me/companies/${encodeURIComponent(e)}/applicants/${encodeURIComponent(o)}/notes`,{...r,method:"POST",body:n})}},pipelineStages:{create(e,o,n){return t.fetch(`/me/companies/${encodeURIComponent(e)}/pipeline-stages`,{...n,method:"POST",body:o})},update(e,o,n,r){return t.fetch(`/me/companies/${encodeURIComponent(e)}/pipeline-stages/${encodeURIComponent(o)}`,{...r,method:"PATCH",body:n})},remove(e,o,n){return t.fetch(`/me/companies/${encodeURIComponent(e)}/pipeline-stages/${encodeURIComponent(o)}`,{...n,method:"DELETE"})},reorder(e,o,n){return t.fetch(`/me/companies/${encodeURIComponent(e)}/pipeline-stages/reorder`,{...n,method:"PUT",body:o})}}},talentAccess:{retrieve(e){return t.fetch("/me/talent-access",e)},retrieveCandidate(e,o){return t.fetch(`/me/talent-access/candidates/${encodeURIComponent(e)}`,o)},checkout(e,o){return t.fetch("/me/talent-access/checkout",{...o,method:"POST",body:e})},claim(e,o){return t.fetch("/me/talent-access/claim",{...o,method:"POST",body:e})},retrieveCheckout(e,o){return t.fetch(`/me/talent-access/checkout/${encodeURIComponent(e)}`,o)},unlock(e,o){return t.fetch("/me/talent-access/unlocks",{...o,method:"POST",body:e})},upgrade(e,o){return t.fetch("/me/talent-access/upgrade",{...o,method:"POST",body:e})}},alerts:{list(e){return t.fetch("/me/alerts",e)},create(e,o){return t.fetch("/me/alerts",{...o,method:"POST",body:e})},retrieve(e,o){return t.fetch(`/me/alerts/${encodeURIComponent(e)}`,o)},update(e,o,n){return t.fetch(`/me/alerts/${encodeURIComponent(e)}`,{...n,method:"PUT",body:o})},remove(e,o){return t.fetch(`/me/alerts/${encodeURIComponent(e)}`,{...o,method:"DELETE"})}},applications:{list(e,o){return t.fetch("/me/applications",{...o,query:e})},retrieve(e,o){return t.fetch(`/me/applications/${encodeURIComponent(e)}`,o)},updateFacts(e,o,n){return t.fetch(`/me/applications/${encodeURIComponent(e)}`,{...n,method:"PATCH",body:o})},withdraw(e,o){return t.fetch(`/me/applications/${encodeURIComponent(e)}/withdraw`,{...o,method:"POST"})}},resume:{upload(e,o,n){let r=new FormData;return r.append("resume",e),o?.keepResumeOnFile&&r.append("keepResumeOnFile","true"),o?.importMode&&r.append("importMode",o.importMode),o?.confirmReplaceAll&&r.append("confirmReplaceAll","true"),t.fetch("/me/resume",{...n,method:"POST",body:r})},retrieve(e){return t.fetch("/me/resume",e)},delete(e){return t.fetch("/me/resume",{...e,method:"DELETE"})}},recommendedJobs:{list(e,o){return t.fetch("/me/recommended-jobs",{...o,query:e})}},savedJobs:{list(e,o){return t.fetch("/me/saved-jobs",{...o,query:e})},save(e,o,n){return t.fetch("/me/saved-jobs",{...n,method:"POST",body:e,query:o})},unsave(e,o,n){return t.fetch(`/me/saved-jobs/${encodeURIComponent(e)}`,{...n,method:"DELETE",query:o})}},conversations:{list(e,o){return t.fetch("/me/conversations",{...o,query:e})},unreadCount(e){return t.fetch("/me/conversations/unread-count",e)},retrieve(e,o){return t.fetch(`/me/conversations/${encodeURIComponent(e)}`,o)},listMessages(e,o,n){return t.fetch(`/me/conversations/${encodeURIComponent(e)}/messages`,{...n,query:o})},start(e,o){return t.fetch("/me/conversations",{...o,method:"POST",body:e})},startAboutApplication(e,o){return t.fetch("/me/conversations/about-application",{...o,method:"POST",body:e})},reply(e,o,n){return t.fetch(`/me/conversations/${encodeURIComponent(e)}/reply`,{...n,method:"POST",body:o})},markRead(e,o){return t.fetch(`/me/conversations/${encodeURIComponent(e)}/read`,{...o,method:"POST"})},archive(e,o){return t.fetch(`/me/conversations/${encodeURIComponent(e)}/archive`,{...o,method:"POST"})},unarchive(e,o){return t.fetch(`/me/conversations/${encodeURIComponent(e)}/unarchive`,{...o,method:"POST"})},findExisting(e,o){return t.fetch("/me/conversations/find-existing",{...o,query:e})}},blocks:{list(e){return t.fetch("/me/blocks",e)},create(e,o){return t.fetch("/me/blocks",{...o,method:"POST",body:e})},remove(e,o){return t.fetch(`/me/blocks/${encodeURIComponent(e)}`,{...o,method:"DELETE"})},status(e,o){return t.fetch(`/me/blocks/${encodeURIComponent(e)}`,o)}},messages:{edit(e,o,n){return t.fetch(`/me/messages/${encodeURIComponent(e)}`,{...n,method:"PATCH",body:o})},unsend(e,o){return t.fetch(`/me/messages/${encodeURIComponent(e)}`,{...o,method:"DELETE"})},report(e,o,n){return t.fetch(`/me/messages/${encodeURIComponent(e)}/report`,{...n,method:"POST",body:o})}},marketingConsent:{retrieve(e){return t.fetch("/me/marketing-consent",e)},grant(e){return t.fetch("/me/marketing-consent/grant",{...e,method:"POST"})},withdraw(e){return t.fetch("/me/marketing-consent/withdraw",{...e,method:"POST"})}},access:{checkout(e,o){return t.fetch("/me/access/checkout",{...o,method:"POST",body:e})},retrieveCheckout(e,o){return t.fetch(`/me/access/checkout/${encodeURIComponent(e)}`,o)},grant(e){return t.fetch("/me/access/grant",e)},portal(e,o){return t.fetch("/me/access/portal",{...o,method:"POST",body:e})}}}}function Je(t){return{async verify(e,o){let n=await t.fetch("/password/verify",{...o,method:"POST",body:{password:e}});return await t.storage.setItem(F,n.token),n}}}function we(t){return{offers(e){return t.fetch("/paywall/offers/enabled",e)}}}function Ne(t){return{list(e,o){return t.fetch("/plans",{...o,query:e})},salesLed(e){return t.fetch("/sales-led-plans",e)}}}function $e(t){return{retrieve(e,o){return t.fetch(`/profile-fields/${encodeURIComponent(e)}`,o)},choices(e,o,n,r){return t.fetch(`/profile-fields/${encodeURIComponent(e)}/${encodeURIComponent(o)}/choices`,{...r,query:n})}}}function je(t){return{resolve(e,o){return t.fetch("/redirects/resolve",{...o,query:{path:e}})}}}function De(t){return{companies:{list(e){return t.fetch("/salaries/companies",e)}},titles:{list(e,o){return t.fetch("/salaries/titles",{...o,query:e})},retrieve(e,o,n){return t.fetch(`/salaries/titles/${encodeURIComponent(e)}`,{...n,query:o})},locations(e,o,n){return t.fetch(`/salaries/titles/${encodeURIComponent(e)}/locations`,{...n,query:o})},location(e,o,n,r){return t.fetch(`/salaries/titles/${encodeURIComponent(e)}/${encodeURIComponent(o)}`,{...r,query:n})}},skills:{list(e,o){return t.fetch("/salaries/skills",{...o,query:e})},retrieve(e,o,n){return t.fetch(`/salaries/skills/${encodeURIComponent(e)}`,{...n,query:o})},locations(e,o,n){return t.fetch(`/salaries/skills/${encodeURIComponent(e)}/locations`,{...n,query:o})},location(e,o,n,r){return t.fetch(`/salaries/skills/${encodeURIComponent(e)}/${encodeURIComponent(o)}`,{...r,query:n})}},locations:{list(e,o){return t.fetch("/salaries/locations",{...o,query:e})},retrieve(e,o,n){return t.fetch(`/salaries/locations/${encodeURIComponent(e)}`,{...n,query:o})},titles(e,o,n){return t.fetch(`/salaries/locations/${encodeURIComponent(e)}/titles`,{...n,query:o})},skills(e,o,n){return t.fetch(`/salaries/locations/${encodeURIComponent(e)}/skills`,{...n,query:o})}}}}function Qe(t){return{suggest(e,o){return t.fetch("/search/suggest",{...o,query:e})}}}function qe(t){return Object.assign(e=>t.fetch("/sitemap",e),{entries(e,o,n){return t.fetch(`/sitemap/${encodeURIComponent(e)}`,{...n,query:o})}})}function Ge(t){return{list(e,o){let n=e?{...e,customFields:e.customFields?JSON.stringify(e.customFields):void 0,objectReferences:e.objectReferences?JSON.stringify(e.objectReferences):void 0}:void 0;return t.fetch("/talent",{...o,query:n})},retrieve(e,o){return t.fetch(`/talent/${encodeURIComponent(e)}`,o)}}}function He(t,e){return{resolve(o,n){return t.fetch(`/${e}/${encodeURIComponent(o)}`,n)}}}function Ve(t,e){return{...He(t,e),list(o,n){return t.fetch(`/${e}`,{...n,query:o})}}}function Ke(t){return{categories:Ve(t,"categories"),skills:Ve(t,"skills"),remotePermits:{list(e){return t.fetch("/remote-permits",e)}},places:{...He(t,"places"),list(e,o){return t.fetch("/places",{...o,query:e})}}}}function Ye(t,e,o){async function*n(){let r=e;for(;;){let i=await t(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 We(t,e){return t.authorBoardUserId!==e}function ze(t,e){let o=t.some(r=>r.authorBoardUserId===e);return t.some(r=>r.authorBoardUserId!==e)&&!o}function Ze(t,e){for(let o=t.length-1;o>=0;o--){let n=t[o];if(n.authorBoardUserId!==e)return n.id}return null}function X(t){let e=t.replace(/^[\u0000-\u0020]+|[\u0000-\u0020]+$/g,"").replace(/[\t\n\r]/g,""),o=/^([a-z][a-z0-9+.-]*):/i.exec(e)?.[1]?.toLowerCase();return o===void 0?!0:o==="http"||o==="https"||o==="mailto"}function ee(t){let e=t.applicationUrl&&X(t.applicationUrl)?t.applicationUrl:null;return!e&&!t.jobSlug?{kind:"none"}:t.registrationWall&&!t.viewer?{kind:"sign-in",reason:"registration-wall"}:e?{kind:"external",url:e}:t.jobSlug?t.viewer?t.viewer.emailVerified?t.applied?{kind:"applied"}:{kind:"native",jobSlug:t.jobSlug}:{kind:"verify-email"}:t.allowGuestApply?{kind:"guest",jobSlug:t.jobSlug}:{kind:"sign-in",reason:"native-apply"}:{kind:"none"}}function Xe(t){let e=ee({...t,registrationWall:!1,allowGuestApply:!1});return e.kind==="sign-in"?{kind:"sign-in"}:e}function ro(t){let e=new I({baseUrl:t.baseUrl??Ae,board:t.board,storage:Ee(t.auth?.storage,t.board),globalHeaders:t.globalHeaders,onRequest:t.onRequest,onResponse:t.onResponse,logger:t.logger});return{client:e,context(o){return e.fetch("",o)},seo(o){return e.fetch("/seo",o)},jobs:ke(e),embed:Fe(e),companies:Te(e),blog:Le(e),auth:_e(e),me:Me(e),password:Je(e),taxonomy:Ke(e),search:Qe(e),locations:Ue(e),redirects:je(e),jobAlerts:Ie(e),jobPosting:xe(e),salaries:De(e),talent:Ge(e),profileFields:$e(e),plans:Ne(e),paywall:we(e),sitemap:qe(e)}}var te={};_(te,{DEFAULT_SORT:()=>io,EMPLOYMENT_TYPES:()=>tt,JOB_SORTS:()=>nt,REMOTE_OPTIONS:()=>et,SENIORITIES:()=>ot,parseCategory:()=>st,parseCompany:()=>it,parseListingFilters:()=>ao,parseSeniority:()=>rt});var et=["on_site","hybrid","remote"],tt=["full_time","part_time","contract","internship","temporary"],ot=["entry_level","associate","mid_level","senior","lead","principal","director","executive"],nt=["relevance","newest","salary_high"],io="relevance";var so=new Set(ot);function rt(t){let e=Array.isArray(t)?t:typeof t=="string"&&t?t.split(","):[],o=[],n=new Set;for(let r of e){if(typeof r!="string")continue;let i=r.trim().toLowerCase().normalize("NFC");!i||n.has(i)||so.has(i)&&(n.add(i),o.push(i))}return o.length>0?o:void 0}function it(t){return at(t,10)}function st(t){return at(t,10)}function at(t,e){let o=Array.isArray(t)?t:typeof t=="string"&&t?t.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>=e))break}return n.length>0?n:void 0}function ao(t){return{q:typeof t.q=="string"&&t.q?t.q:void 0,remoteOption:et.includes(t.remoteOption)?t.remoteOption:void 0,employmentType:tt.includes(t.employmentType)?t.employmentType:void 0,seniority:rt(t.seniority),company:it(t.company),category:st(t.category),sort:nt.includes(t.sort)?t.sort:void 0}}var pe={};_(pe,{COUNTRY_CODES:()=>W,buildJobBreadcrumbs:()=>Y,countryOptions:()=>Nt,formatDate:()=>mt,formatMonthYear:()=>yt,formatPublishedRelativeDate:()=>dt,formatSalaryRange:()=>ft,formatSalaryStat:()=>D,formatSalaryStatRange:()=>x,normalizeWebsiteUrl:()=>U,resolveCustomFieldDisplay:()=>$t});function C(t){let e=t.trim();if(!e)return null;try{let o=e.replace(/_/g,"-"),[n]=Intl.getCanonicalLocales(o);if(!n)return null;let[r]=Intl.NumberFormat.supportedLocalesOf([n]);return r??null}catch{return null}}var lt=new Map,ct=new Map,pt=new Map,ut=new Map;function lo(t){let e=lt.get(t);return e||(e=new Intl.RelativeTimeFormat(t,{numeric:"always",style:"short"}),lt.set(t,e)),e}function co(t){let e=ct.get(t);return e||(e=new Intl.RelativeTimeFormat(t,{numeric:"auto",style:"short"}),ct.set(t,e)),e}function po(t){let e=pt.get(t);return e||(e=new Intl.DateTimeFormat(t,{dateStyle:"medium",timeZone:"UTC"}),pt.set(t,e)),e}function uo(t){let e=ut.get(t);return e||(e=new Intl.DateTimeFormat(t,{month:"short",year:"numeric",timeZone:"UTC"}),ut.set(t,e)),e}function oe(t,e,o){try{return lo(o).format(t,e)}catch{return null}}function mt(t,e){if(!e)return null;let o=new Date(e);if(Number.isNaN(o.getTime()))return null;let n=C(t);if(!n)return null;try{return po(n).format(o)}catch{return o.toISOString().split("T")[0]}}function dt(t,e,o=Date.now()){if(!e)return null;let n=new Date(e);if(Number.isNaN(n.getTime()))return null;let r=C(t);if(!r)return null;let i=o-n.getTime(),s=Math.abs(i),a=60*1e3,c=60*a,l=24*c,u=7*l,d=30*l,m=365*l;if(s<a)try{return co(r).format(0,"second")}catch{return oe(0,"second",r)}let y=[{unit:"year",ms:m},{unit:"month",ms:d},{unit:"week",ms:u},{unit:"day",ms:l},{unit:"hour",ms:c},{unit:"minute",ms:a}];for(let g of y)if(s>=g.ms){let B=Math.round(s/g.ms),p=i>=0?-B:B;return oe(p,g.unit,r)}let f=Math.round(s/1e3),S=i>=0?-f:f;return oe(S,"second",r)}function yt(t,e){if(!e)return null;let n=/^\d{4}-\d{2}(-\d{2})?$/.test(e)?new Date(e.length===7?`${e}-01T00:00:00.000Z`:`${e}T00:00:00.000Z`):new Date(e);if(Number.isNaN(n.getTime()))return null;let r=C(t);if(!r)return null;try{return uo(r).format(n)}catch{return null}}var $=new Map;function ne(t,e,o,n="symbol",r="compact"){let i=`${e}:${o}:${n}:${r}`,s=$.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(e,a)}catch{s=null}$.set(i,s)}return s?s.format(t):null}function re(t,e,o){if(typeof t.formatRange=="function")try{return t.formatRange(e,o)}catch{}try{return`${t.format(e)}\u2013${t.format(o)}`}catch{return null}}function mo(t,e,o,n,r="symbol",i="compact"){let s=`${o}:${n}:${r}:${i}:range`,a=$.get(s);if(a===void 0){try{let c={style:"currency",currency:n,currencyDisplay:r,notation:i};i==="compact"&&(c.compactDisplay="short",c.maximumFractionDigits=1,c.minimumFractionDigits=0),a=new Intl.NumberFormat(o,c)}catch{a=null}$.set(s,a)}return a?re(a,t,e):null}var yo=new Set(["per_year","per_month","per_week","per_day","per_hour"]);function fo(...t){let e=!1;for(let o of t)if(!(o==null||!Number.isFinite(o))&&(e=!0,Math.abs(o)>=1e3))return"compact";return e?"standard":"compact"}function ft(t,e,o,n,r=null,i="symbol",s){let a=e==null||Number.isFinite(e),c=o==null||Number.isFinite(o);if(!a||!c||e==null&&o==null)return null;let l=r?.trim().toUpperCase()||null;if(!l)return null;let u=C(t);if(!u)return null;let d=s??fo(e,o),m=typeof n=="string"&&yo.has(n)?n:null;if(e!=null&&o!=null){let f=e<=o?e:o,S=e<=o?o:e,g=f===S?ne(f,u,l,i,d):mo(f,S,u,l,i,d);return g?{text:g,timeframe:m,bound:"range"}:null}if(e!=null){let f=ne(e,u,l,i,d);return f?{text:f,timeframe:m,bound:"from"}:null}let y=ne(o,u,l,i,d);return y?{text:y,timeframe:m,bound:"upTo"}:null}var gt=new Map;function ht(...t){let e=!1;for(let o of t)if(!(o==null||!Number.isFinite(o))&&(e=!0,Math.abs(o)>=1e3))return"compact";return e?"standard":"compact"}function bt(t,e,o){let n=`${t}:${e}:${o}`,r=gt.get(n);if(r!==void 0)return r;let i;try{let s={style:"currency",currency:e,notation:o};o==="compact"&&(s.compactDisplay="short",s.minimumFractionDigits=0,s.maximumFractionDigits=1),i=new Intl.NumberFormat(t,s)}catch{i=null}return gt.set(n,i),i}function D(t,e,o,n){if(!Number.isFinite(e))return null;let r=o?.trim().toUpperCase()||null;if(!r)return null;let i=C(t);if(!i)return null;let s=n??ht(e),a=bt(i,r,s);return a?a.format(e):null}function x(t,e,o,n,r){if(!Number.isFinite(e)||!Number.isFinite(o))return null;let i=n?.trim().toUpperCase()||null;if(!i)return null;let s=C(t);if(!s)return null;let a=r??ht(e,o),c=bt(s,i,a);if(!c)return null;let l=Math.min(e,o),u=Math.max(e,o);return l===u?c.format(l):re(c,l,u)}var j=["entry_level","associate","mid_level","senior","lead","principal","director","executive"];function Ct(t){return[...t].sort((e,o)=>{let n=j.indexOf(e.seniority),r=j.indexOf(o.seniority);return(n===-1?999:n)-(r===-1?999:r)})}var go={unitText:"YEAR",duration:"P1Y"};function k(t,e,o,n,r={}){return{"@type":"MonetaryAmountDistribution",...t!==void 0?{name:t}:{},currency:e,minValue:o,maxValue:n,...r,...go}}function ie(t,e,o,n){return t.map(r=>{let i=n?.seniorityName?.({seniority:r.seniority,entity:o});return k(i,e,r.avgSalaryMin,r.avgSalaryMax)})}function Q(t,e,o,n){return{"@context":"https://schema.org","@type":t,name:e,...o,estimatedSalary:n}}function St(t,e,o,n){if(!o)return[];let r=x(t,o.avgMin,o.avgMax,n);return[{kind:"average",label:e,range:r,avgMin:o.avgMin,avgMax:o.avgMax,currency:n,jobCount:o.jobCount},{kind:"methodology",label:e}]}function q(t){return t.length===0?null:{"@context":"https://schema.org","@type":"ItemList",numberOfItems:t.length,itemListElement:t.map((e,o)=>({"@type":"ListItem",position:o+1,name:e.name,url:e.url}))}}function Ot(t){return t.length===0?null:{"@context":"https://schema.org","@type":"FAQPage",mainEntity:t.map(e=>({"@type":"Question",name:e.q,acceptedAnswer:{"@type":"Answer",text:e.a}}))}}function Pt(t,e){return t.overallSalary?Q("Occupation",t.categoryName,{},[k(t.categoryName,t.currency,t.overallSalary.avgMin,t.overallSalary.avgMax,{...t.boardP25Min?{percentile25:t.boardP25Min}:{},...t.boardP75Max?{percentile75:t.boardP75Max}:{}}),...ie(t.bySeniority,t.currency,t.categoryName,e)]):null}function Rt(t){return t.overallSalary?Q("Occupation",t.skillName,{},[k(t.skillName,t.currency,t.overallSalary.avgMin,t.overallSalary.avgMax,{median:Math.round((t.overallSalary.medianMin+t.overallSalary.medianMax)/2)})]):null}function Bt(t,e){return!e?.occupationUrl||!(t.adminLevel==="city"||t.adminLevel==="locality")?null:q(t.topCategories.map(n=>({name:n.categoryName,url:e.occupationUrl(n)})))}function Et(t,e){return t.overall?Q("Occupation",t.name,{occupationLocation:{"@type":"AdministrativeArea",name:t.placeName,address:{"@type":"PostalAddress",addressCountry:t.countryCode}}},[k(t.name,t.currency,t.overall.avgMin,t.overall.avgMax,{...t.overall.p25Min?{percentile25:t.overall.p25Min}:{},...t.overall.p75Max?{percentile75:t.overall.p75Max}:{}}),...ie(t.bySeniority,t.currency,t.name,e)]):null}function vt(t,e){return e?.occupationUrl?q(t.byCategory.map(o=>({name:o.categoryName,url:e.occupationUrl(o)}))):null}function At(t,e){return t.overallSalary?Q("Occupation",t.categoryName,{occupationalCategory:t.categoryName,hiringOrganization:{"@type":"Organization",name:t.companyName}},[k(t.categoryName,t.currency,t.overallSalary.avgMin,t.overallSalary.avgMax,{...t.boardCategoryP25Min?{percentile25:t.boardCategoryP25Min}:{},...t.boardCategoryP75Max?{percentile75:t.boardCategoryP75Max}:{}}),...ie(t.bySeniority,t.currency,t.categoryName,e)]):null}function Tt(t,e){return t.company?.name??e.legalName??e.contact?.legalName??e.name??null}var _t={high_school:"high school",associate_degree:"associate degree",bachelor_degree:"bachelor degree",professional_certificate:"professional certificate",postgraduate_degree:"postgraduate degree"},ho={full_time:"FULL_TIME",part_time:"PART_TIME",contract:"CONTRACTOR",internship:"INTERN",temporary:"TEMPORARY",volunteer:"VOLUNTEER",other:"OTHER"},bo={per_year:"YEAR",per_month:"MONTH",per_week:"WEEK",per_day:"DAY",per_hour:"HOUR"},ae=["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 Ft({job:t,board:e,shareUrl:o}){let n=Eo(t),r=vo(t),i=se({"@context":"https://schema.org/","@type":"JobPosting",title:t.title,description:t.description??"",identifier:Co(t,e),datePosted:Lt(t.publishedAt),validThrough:Lt(t.expiresAt),employmentType:t.employmentType?ho[t.employmentType]??"OTHER":"OTHER",hiringOrganization:So(t,e),jobLocation:Po(t),jobLocationType:t.remoteOption==="remote"?"TELECOMMUTE":void 0,applicantLocationRequirements:t.remoteOption==="remote"?Bo(t):null,baseSalary:Oo(t),educationRequirements:n,experienceRequirements:r,experienceInPlaceOfEducation:t.experienceInPlaceOfEducation===!0&&n&&r?!0:void 0,url:o});return!i||Array.isArray(i)||Object.keys(i).length===0?null:i}function Co(t,e){let o=Tt(t,e),n={"@type":"PropertyValue",value:t.id};return o&&(n.name=o),n}function So(t,e){let o=Tt(t,e);if(!o)return null;let n={"@type":"Organization",name:o},r=t.company?.website??null,i=r?U(r):null;i&&(n.sameAs=i);let s=t.company?.logoUrl??e.logoUrl??null;return s&&(n.logo=s),n}function U(t){let e=t.trim();return e?/^https?:\/\//i.test(e)?e:`https://${e}`:null}function Oo(t){let e=t.salaryCurrency?.trim(),o=typeof t.salaryMin=="number",n=typeof t.salaryMax=="number";if(!e||!o&&!n)return null;let r={"@type":"QuantitativeValue"};o&&(r.minValue=t.salaryMin),n&&(r.maxValue=t.salaryMax);let i=t.salaryTimeframe?bo[t.salaryTimeframe]:void 0;return i&&(r.unitText=i),!o&&n&&typeof t.salaryMax=="number"?(r.value=t.salaryMax,r.minValue=t.salaryMax):!n&&o&&typeof t.salaryMin=="number"&&(r.value=t.salaryMin,r.maxValue=t.salaryMin),{"@type":"MonetaryAmount",currency:e.toUpperCase(),value:r}}function Po(t){let e=t.officeLocations.map(o=>Ro({countryCode:o.countryCode,region:o.region,locality:o.city??o.locality,postalCode:o.postalCode,name:o.displayName})).filter(o=>o!==null);return e.length===0?null:e.length===1?e[0]:e}function Ro({countryCode:t,region:e,locality:o,postalCode:n,name:r}){let i={"@type":"PostalAddress"},s=t?.trim(),a=e?.trim(),c=o?.trim(),l=n?.trim(),u=r?.trim();s&&(i.addressCountry=s.toUpperCase()),a&&(i.addressRegion=a),c&&(i.addressLocality=c),l&&(i.postalCode=l);let d=Object.keys(i).length>1;if(!d&&!u)return null;let m={"@type":"Place"};return u&&(m.name=u),d&&(m.address=i),m}function Bo(t){if(t.remoteWorldwide)return ae.map(n=>({"@type":"Country",name:n}));let e=[],o=new Set;for(let n of t.remoteWorkPermitCountryCodes??[]){let r=n?.trim().toUpperCase();!r||o.has(r)||(o.add(r),e.push({"@type":"Country",name:r}))}for(let n of t.remoteWorkPermitSubdivisionCodes??[]){let r=n?.split("-")[0]?.trim().toUpperCase();!r||o.has(r)||(o.add(r),e.push({"@type":"Country",name:r}))}return e.length===0?null:e.length===1?e[0]:e}function Eo(t){let e=t.educationRequirements;if(!e||e.length===0)return null;if(e.includes("no_requirements"))return"no requirements";let o=e.filter(n=>n in _t).map(n=>({"@type":"EducationalOccupationalCredential",credentialCategory:_t[n]}));return o.length>0?o:null}function vo(t){let e=t.experienceMonths;return typeof e!="number"?null:e===0?"no requirements":{"@type":"OccupationalExperienceRequirements",monthsOfExperience:e}}function Lt(t){if(!t)return null;let e=new Date(t);return Number.isNaN(e.getTime())?null:e.toISOString()}function se(t){let e=o=>o==null?!1:Array.isArray(o)?o.length>0:typeof o=="object"?Object.keys(o).length>0:!0;if(Array.isArray(t))return t.map(o=>se(o)).filter(e);if(t&&typeof t=="object"){let o=Object.entries(t).map(([n,r])=>[n,se(r)]).filter(([,n])=>e(n));return Object.fromEntries(o)}return t}var ce={};_(ce,{BOARD_PATHS:()=>H,blogAuthorPath:()=>Io,blogPostPath:()=>Mt,blogTagPath:()=>Jt,boardUrl:()=>K,companyMarketPath:()=>Ut,companyPath:()=>kt,companySalaryPath:()=>_o,encodePathSegment:()=>h,goAlertsConfirmPath:()=>Uo,goAlertsManagePath:()=>ko,goJobPath:()=>xo,jobDetailPath:()=>le,jobsCategoryPath:()=>G,jobsLocationCategoryPath:()=>V,jobsLocationPath:()=>M,jobsLocationSkillPath:()=>xt,jobsSkillPath:()=>It,salaryLocationPath:()=>Fo,salarySkillPath:()=>To,salaryTitlePath:()=>Lo,suggestionPath:()=>Ao});function h(t){try{return encodeURIComponent(decodeURIComponent(t)).replace(/%3A/gi,":")}catch{return encodeURIComponent(t).replace(/%3A/gi,":")}}function le(t,e){return`/companies/${h(t)}/jobs/${h(e)}`}function G(t){return`/jobs/${h(t)}`}function It(t){return`/jobs/skills/${h(t)}`}function M(t){return`/jobs/locations/${h(t)}`}function V(t,e){return`${M(t)}/${h(e)}`}function xt(t,e){return`${M(t)}/skills/${h(e)}`}function kt(t){return`/companies/${h(t)}`}function Ut(t){return`/companies/markets/${h(t)}`}function Ao(t,e){let o=e.location?.trim()||void 0;return e.scope==="blog"?t.type==="post"?Mt(t.slug):t.type==="tag"?Jt(t.slug):null:e.scope==="jobs"?t.type==="company"||t.type==="market"||t.type==="post"||t.type==="tag"?null:t.termType==="skill"?o?xt(o,t.canonicalSlug):It(t.canonicalSlug):o?V(o,t.canonicalSlug):G(t.canonicalSlug):t.type==="company"?kt(t.slug):t.type==="market"?Ut(t.slug):null}function _o(t){return`/companies/${h(t)}/salaries`}function Lo(t){return`/salaries/titles/${h(t)}`}function To(t){return`/salaries/skills/${h(t)}`}function Fo(t){return`/salaries/locations/${h(t)}`}function Mt(t){return`/blog/${h(t)}`}function Jt(t){return`/blog/tag/${h(t)}`}function Io(t){return`/blog/author/${h(t)}`}var H={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 xo(t){return`/go/job/${t}`}function ko(){return"/go/alerts-manage"}function Uo(){return"/go/alerts-confirm"}function K(t,e){return`${t.replace(/\/+$/,"")}${e}`}function wt(t,e={}){let o=t.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?Mo(r.href,e.origin??null):null,a={"@type":"ListItem",position:i+1,name:r.name};return s&&(a.item=s),a})}}function Mo(t,e){if(Jo(t))return t;if(!e)return null;let o=t.startsWith("/")?t:`/${t}`;return`${e}${o}`}function Jo(t){return/^https?:\/\//i.test(t)}function Y(t){let e=[{kind:"home",path:H.home},{kind:"jobs",path:H.jobs}],o=null;for(let r of t.placeHierarchy)o=r.slug,e.push({kind:"place",name:r.name,path:M(r.slug)});let n=t.categories[0];return n&&e.push({kind:"category",name:n.name,path:o?V(o,n.slug):G(n.slug)}),e.push({kind:"job",name:t.title}),e}var W=["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 wo(t){try{return new Intl.DisplayNames([t],{type:"region"})}catch{return null}}function No(t){try{return new Intl.Collator(t)}catch{return new Intl.Collator}}function Nt(t){let e=C(t);if(!e)return W.map(r=>({code:r,name:r})).sort((r,i)=>r.code<i.code?-1:r.code>i.code?1:0);let o=wo(e),n=No(e).compare;return W.map(r=>({code:r,name:o?.of(r)??r})).sort((r,i)=>n(r.name,i.name))}function $o(t,e){if(!Array.isArray(e)||e.length===0)return null;let o=e.map(n=>t.options?.find(r=>r.key===n)?.label).filter(n=>!!n);return o.length>0?o:null}function jo(t,e){switch(t.type){case"number":return null;case"multi_select":return null;case"single_select":return typeof e!="string"?null:t.options?.find(o=>o.key===e)?.label??null;default:return typeof e=="string"&&e.trim()!==""?e:null}}function $t(t,e,o){let n=[];for(let r of e??[]){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=$o(r,i);a&&n.push({key:r.key,label:r.label,kind:"multi_select",values:a});continue}let s=jo(r,i);s!==null&&n.push({key:r.key,label:r.label,kind:"text",value:s})}return n}var ue={};_(ue,{ALL_COUNTRY_CODES:()=>ae,SENIORITY_ORDER:()=>j,buildJobBreadcrumbs:()=>Y,buildSalaryFaq:()=>St,companyCategorySalaryJsonLd:()=>At,companySalaryJsonLd:()=>vt,createAuthorProfileJsonLd:()=>Dt,createBlogArticleJsonLd:()=>jt,createBreadcrumbJsonLd:()=>wt,createJobPostingJsonLd:()=>Ft,crossAxisSalaryJsonLd:()=>Et,faqJsonLd:()=>Ot,formatSalaryStat:()=>D,formatSalaryStatRange:()=>x,itemListJsonLd:()=>q,listingHead:()=>Qt,listingJsonLd:()=>qt,locationSalaryJsonLd:()=>Bt,normalizeWebsiteUrl:()=>U,skillSalaryJsonLd:()=>Rt,sortBySeniority:()=>Ct,titleSalaryJsonLd:()=>Pt});function jt({post:t,boardName:e,permalink:o,ogImageUrl:n}){let r={"@context":"https://schema.org","@type":"Article",headline:t.title,url:o,mainEntityOfPage:{"@type":"WebPage","@id":o},publisher:{"@type":"Organization",name:e}};t.customExcerpt&&(r.description=t.customExcerpt),t.publishedAt&&(r.datePublished=t.publishedAt);let i=t.coverUrl??n;i&&(r.image=i);let s=t.authors[0];return s&&(r.author={"@type":"Person",name:s.name,...s.websiteUrl?{url:s.websiteUrl}:{}}),r}function Dt({author:t,canonical:e,description:o,origin:n,posts:r,totalPosts:i}){if(!t.name)return null;let s=o.trim(),a=[z(t.websiteUrl),z(t.twitterUrl),z(t.linkedinUrl),z(t.githubUrl)].filter(m=>!!m),c=`${e}#profile`,l=r.slice(0,5).map(m=>{let y=Do(n,`/blog/${m.slug}`);return y?{"@type":"Article",headline:m.title,url:y,datePublished:m.publishedAt,author:{"@id":c}}:null}).filter(m=>m!==null),u=i>0?{"@type":"InteractionCounter",interactionType:"https://schema.org/WriteAction",userInteractionCount:i}:void 0,d={"@context":"https://schema.org","@type":"ProfilePage",url:e,mainEntity:{"@type":"Person","@id":c,name:t.name,alternateName:t.slug??void 0,identifier:t.id??void 0,description:s||void 0,image:t.avatarUrl??void 0,sameAs:a.length>0?a:void 0,url:e,mainEntityOfPage:e,agentInteractionStatistic:u}};return l.length>0&&(d.hasPart=l),d}function z(t){if(!t)return null;let e=t.trim();if(!e)return null;try{let o=e.startsWith("http://")||e.startsWith("https://")?e:`https://${e}`;return new URL(o).toString()}catch{return null}}function Do(t,e){if(!t||!e)return null;try{return new URL(e,t).toString()}catch{return null}}function Qt(t){let e=t.title,o=t.description,n=`${t.origin}${t.path}`;return{meta:[{title:e},{name:"description",content:o},{property:"og:title",content:e},{property:"og:description",content:o},{property:"og:type",content:"website"},{property:"og:url",content:n}],links:[{rel:"canonical",href:n}]}}function qt(t){let e=[];t.breadcrumbs.length>=2&&e.push({"@context":"https://schema.org","@type":"BreadcrumbList",itemListElement:t.breadcrumbs.map((n,r)=>({"@type":"ListItem",position:r+1,name:n.name,...n.path?{item:K(t.origin,n.path)}:{}}))});let o=(t.jobs??[]).filter(n=>n.company!=null&&!!n.company.slug);return o.length>0&&e.push({"@context":"https://schema.org","@type":"ItemList",itemListElement:o.map((n,r)=>({"@type":"ListItem",position:r+1,url:K(t.origin,le(n.company.slug,n.slug))}))}),e}var me={};_(me,{createSuggestController:()=>Go});function Qo(t){return typeof DOMException<"u"&&t instanceof DOMException&&t.name==="AbortError"||t instanceof Error&&t.name==="AbortError"}function qo(t){try{let e=0;for(let o of new Intl.Segmenter(void 0,{granularity:"grapheme"}).segment(t))e+=1;return e}catch{return[...t].length}}function Gt(t,e){return e.size===0?t.slice():t.filter(o=>!(o.type==="company"&&e.has(o.slug.toLowerCase().normalize("NFC"))))}function Go(t,e){let o=e?.minChars??2,n=e?.debounceMs??250,r=e?.limit,i=!1,s={query:"",items:[],status:"idle",error:null},a=[],c=new Set,l=0,u=null,d=null,m=new Set;function y(){for(let p of m)p()}function f(p){s=p,y()}function S(){u!==null&&(globalThis.clearTimeout(u),u=null)}function g(){d&&(d.abort(),d=null)}function B(p){let b=++l;g();let O=new AbortController;d=O;let A={q:p};r!==void 0&&(A.limit=r),t.search.suggest(A,{signal:O.signal}).then(E=>{i||b!==l||(d=null,a=E.items,f({query:s.query,items:Gt(a,c),status:"ready",error:null}))}).catch(E=>{i||b!==l||Qo(E)||(d=null,f({query:s.query,items:s.items,status:"error",error:E}))})}return{setQuery(p){if(i)return;let b=p.trim();if(S(),qo(b)<o){l+=1,g(),a=[],f({query:p,items:[],status:"idle",error:null});return}l+=1,g(),f({query:p,items:s.items,status:"loading",error:null}),u=globalThis.setTimeout(()=>{u=null,!i&&B(b)},n)},setExcludedCompanySlugs(p){i||(c=new Set(p.map(b=>b.trim().toLowerCase().normalize("NFC")).filter(Boolean)),f({query:s.query,items:Gt(a,c),status:s.status,error:s.error}))},getState(){return s},subscribe(p){return i?()=>{}:(m.add(p),()=>{m.delete(p)})},dispose(){i||(i=!0,S(),g(),l+=1,m.clear())}}}return zt(Vo);})();
@@ -7,6 +7,7 @@ var BOARD_API_ERROR_CODES = [
7
7
  "rate_limited",
8
8
  "rate_limit_unavailable",
9
9
  "search_unavailable",
10
+ "search_filter_unavailable",
10
11
  "too_many_filter_values",
11
12
  "pagination_invalid_cursor",
12
13
  "pagination_offset_too_large",
@@ -39,6 +40,9 @@ var BOARD_API_ERROR_CODES = [
39
40
  "categories_not_found",
40
41
  "skills_not_found",
41
42
  "places_not_found",
43
+ // Location search + `locationId` on job office locations
44
+ "locations_invalid_id",
45
+ "locations_unavailable",
42
46
  // Companies (public reads)
43
47
  "companies_not_found",
44
48
  "company_markets_not_found",
@@ -70,6 +74,7 @@ var BOARD_API_ERROR_CODES = [
70
74
  "candidate_handle_taken",
71
75
  "candidate_job_not_found",
72
76
  "candidate_notification_preference_paused",
77
+ "candidate_profile_required",
73
78
  "resume_invalid_file",
74
79
  "resume_upload_forbidden",
75
80
  // Applications