@cavuno/board 4.49.0 → 4.51.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +35 -0
- package/dist/{_spec-DiQvT7IN.d.mts → _spec-Pr6ZvyW_.d.mts} +7 -3
- package/dist/{_spec-DiQvT7IN.d.ts → _spec-Pr6ZvyW_.d.ts} +7 -3
- package/dist/{blog-BqUwoJRF.d.ts → blog-BBBiKhsA.d.ts} +1 -1
- package/dist/{blog-DGa6Wk08.d.mts → blog-D-MQEaMU.d.mts} +1 -1
- package/dist/{board-DM-vktAo.d.mts → board-C6PEXL7n.d.mts} +2 -2
- package/dist/{board-BNJ5Bsx2.d.ts → board-CaZu8nEl.d.ts} +2 -2
- package/dist/{breadcrumbs-BBwMLBGL.d.ts → breadcrumbs-DIIA4MaX.d.ts} +2 -2
- package/dist/{breadcrumbs-2A7uGl7p.d.mts → breadcrumbs-WcxTd2Ka.d.mts} +2 -2
- package/dist/browser/cavuno-board.global.min.js +1 -1
- package/dist/filters.d.mts +2 -2
- package/dist/filters.d.ts +2 -2
- package/dist/format.d.mts +4 -4
- package/dist/format.d.ts +4 -4
- package/dist/index.d.mts +60 -14
- package/dist/index.d.ts +60 -14
- package/dist/index.js +29 -1
- package/dist/index.mjs +29 -1
- package/dist/{jobs-DsO3htwV.d.mts → jobs-CeB5FVGG.d.mts} +7 -3
- package/dist/{jobs-DQZEGLIC.d.ts → jobs-DN0ePjTg.d.ts} +7 -3
- package/dist/{search-C3DpF31i.d.ts → search-CDl4MJV4.d.ts} +1 -1
- package/dist/{search-g3oH9aPu.d.mts → search-Kgs7ubkH.d.mts} +1 -1
- package/dist/{seo-BOPoZApt.d.ts → seo-BhHH3OMM.d.ts} +1 -1
- package/dist/{seo-DMpAStWc.d.mts → seo-CPX54V1D.d.mts} +1 -1
- package/dist/seo-files.d.mts +2 -2
- package/dist/seo-files.d.ts +2 -2
- package/dist/seo.d.mts +6 -6
- package/dist/seo.d.ts +6 -6
- package/dist/server.d.mts +6 -6
- package/dist/server.d.ts +6 -6
- package/dist/sitemap.d.mts +6 -6
- package/dist/sitemap.d.ts +6 -6
- package/dist/suggest.d.mts +2 -2
- package/dist/suggest.d.ts +2 -2
- package/package.json +1 -1
- package/skills/manifest.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,41 @@
|
|
|
3
3
|
This changelog records changes that affect Board API compatibility, exported
|
|
4
4
|
types, runtime behavior, or supported integration patterns.
|
|
5
5
|
|
|
6
|
+
## 4.51.0 — 2026-10-19
|
|
7
|
+
|
|
8
|
+
- A category or location page can carry its own intro. Taxonomy resolutions
|
|
9
|
+
(`board.taxonomy.categories.resolve()`, `board.taxonomy.places.resolve()`)
|
|
10
|
+
return it as `introHtml`, sanitized HTML, absent when the page has none.
|
|
11
|
+
Show it on page 1 with no filters.
|
|
12
|
+
- The generated API types include `getPageContent`, `updatePageContent` and
|
|
13
|
+
`deletePageContent` (`/v1/page-content`): read, set or remove the intro of
|
|
14
|
+
one page, addressed by exactly one of `category` or `place` slug. The intro
|
|
15
|
+
is markdown, up to 4,000 characters.
|
|
16
|
+
- The generated API types include the `/v1/email-domains` operations, to add,
|
|
17
|
+
verify and remove the domains a board sends email from, and
|
|
18
|
+
`createBillingConnectOnboardingLink`
|
|
19
|
+
(`POST /v1/billing/connect/onboarding-link`).
|
|
20
|
+
|
|
21
|
+
## 4.50.0 — 2026-10-19
|
|
22
|
+
|
|
23
|
+
- New `board.taxonomy.places.suggest({ q, near, limit })`
|
|
24
|
+
(`GET /places/suggest`): suggests any town, city or neighbourhood by name,
|
|
25
|
+
not only places the board's jobs use, on boards where place search is on.
|
|
26
|
+
Pass `near` (`{ lat, lng }`, the visitor's approximate location) to rank
|
|
27
|
+
nearby places first. Each result is a `PublicPlace` with `jobCount` 0. Its
|
|
28
|
+
`slug` resolves with `board.taxonomy.places.resolve()` and works as the jobs
|
|
29
|
+
`location` filter, which then searches a radius around the place; without
|
|
30
|
+
`radius` that is 15 km for a neighbourhood, 25 km for a town and 50 km for a
|
|
31
|
+
city. A suggested place's `id` is not a `locationId` for job posting or
|
|
32
|
+
profiles. Where place search is off, `suggest` returns an empty list.
|
|
33
|
+
- The board context has `features.placeSuggestions`: `true` where suggestions
|
|
34
|
+
are on. Check it before calling `suggest`.
|
|
35
|
+
- A jobs, search or talent request whose `location` is a suggested place
|
|
36
|
+
returns 503 `locations_unavailable` when the place cannot be looked up
|
|
37
|
+
right now.
|
|
38
|
+
- Removing an employer pipeline stage that still holds applicants returns 422
|
|
39
|
+
`employer_ats_unprocessable`; move the applicants to another stage first.
|
|
40
|
+
|
|
6
41
|
## 4.49.0 — 2026-10-17
|
|
7
42
|
|
|
8
43
|
- The generated API types include `submitAgentFeedback` (`POST /v1/feedback`):
|
|
@@ -2429,6 +2429,8 @@ interface components {
|
|
|
2429
2429
|
messaging: boolean;
|
|
2430
2430
|
/** @description Whether the board's public contact form is live. Matches `enabled` on `GET /v1/boards/{identifier}/contact`, so chrome can decide whether to link to the contact page from this context alone. When `false`, `POST /contact` rejects. */
|
|
2431
2431
|
contactPage: boolean;
|
|
2432
|
+
/** @description Whether `GET /v1/boards/{identifier}/places/suggest` suggests any place on this board (cities, towns and suburbs beyond the board's own places). When `false` it returns an empty list: offer only the board's places (`GET /places?q=`) and do not call it. */
|
|
2433
|
+
placeSuggestions: boolean;
|
|
2432
2434
|
};
|
|
2433
2435
|
/**
|
|
2434
2436
|
* @description How the operator charges employers for the candidate directory. `paid_messaging` leaves profiles fully visible and spends a credit on a first cold message; `paid_unlocks_and_messaging` also redacts directory cards and gates the opaque `/p/{id}` profile route behind an unlock credit. `null` means the operator has not chosen explicitly, in which case infer it from the published `talent_access` plans: any plan granting profile unlocks means `paid_unlocks_and_messaging`, otherwise `paid_messaging`. The paywall is inert regardless when the board publishes no talent plan. An anonymous viewer has no entitlement read to derive this from, so it ships here rather than only on `me/talent-access`.
|
|
@@ -2952,11 +2954,11 @@ interface components {
|
|
|
2952
2954
|
*/
|
|
2953
2955
|
lte?: string;
|
|
2954
2956
|
};
|
|
2955
|
-
/** @description Only return jobs in the place with this slug, including the places inside it (a region includes its cities). Pass `radius` to widen a city or locality to nearby jobs. Unresolvable slugs are ignored. */
|
|
2957
|
+
/** @description Only return jobs in the place with this slug, including the places inside it (a region includes its cities). Pass `radius` to widen a city or locality to nearby jobs. A place slug from `GET /places/suggest` returns jobs within `radius` km of that place, by default a distance that suits its size. Unresolvable slugs are ignored. */
|
|
2956
2958
|
location?: string;
|
|
2957
|
-
/** @description Widen a city or locality `location` to also return jobs placed in a city or locality within this many kilometres of the place (1–250; decimals allowed, e.g. `8.05` for 5 miles). Omit for jobs in the place itself. Ignored for region and country places, and without `location`. */
|
|
2959
|
+
/** @description Widen a city or locality `location` to also return jobs placed in a city or locality within this many kilometres of the place (1–250; decimals allowed, e.g. `8.05` for 5 miles). Omit for jobs in the place itself. Ignored for region and country places, and without `location`. For a place from `GET /places/suggest`, an omitted `radius` uses the place's own default distance: 15 km for a neighbourhood, 25 km for a town, 50 km for a city. */
|
|
2958
2960
|
radius?: number;
|
|
2959
|
-
/** @description When `true` and `radius` is omitted, widen a city or locality `location` to the market default distance, computed from the resolved place: 25 miles (40.2336 km) in the US, GB, LR and MM, 50 km elsewhere. Regions, countries and places without coordinates are not widened. An explicit `radius` wins. */
|
|
2961
|
+
/** @description When `true` and `radius` is omitted, widen a city or locality `location` to the market default distance, computed from the resolved place: 25 miles (40.2336 km) in the US, GB, LR and MM, 50 km elsewhere. Regions, countries and places without coordinates are not widened. An explicit `radius` wins. A place from `places/suggest` always uses its own default (15 km neighbourhood, 25 km town, 50 km city), with or without `defaultRadius`. */
|
|
2960
2962
|
defaultRadius?: boolean;
|
|
2961
2963
|
/** @description Public custom job fields. Clauses are AND-matched; values within a clause are OR-matched. Up to 10 clauses and 10 values per clause. */
|
|
2962
2964
|
customFields?: {
|
|
@@ -3016,6 +3018,8 @@ interface components {
|
|
|
3016
3018
|
/** @description The canonical slug to emit a 308 redirect to when the inbound slug differs; `null` otherwise. */
|
|
3017
3019
|
redirectTo: string | null;
|
|
3018
3020
|
geo: components["schemas"]["TaxonomyGeo"];
|
|
3021
|
+
/** @description The board's intro for this category or location page, as sanitized HTML. Absent when the page has none. Show it on page 1 with no filters. */
|
|
3022
|
+
introHtml?: string;
|
|
3019
3023
|
};
|
|
3020
3024
|
PublicTaxonomyTerm: {
|
|
3021
3025
|
/** @enum {string} */
|
|
@@ -2429,6 +2429,8 @@ interface components {
|
|
|
2429
2429
|
messaging: boolean;
|
|
2430
2430
|
/** @description Whether the board's public contact form is live. Matches `enabled` on `GET /v1/boards/{identifier}/contact`, so chrome can decide whether to link to the contact page from this context alone. When `false`, `POST /contact` rejects. */
|
|
2431
2431
|
contactPage: boolean;
|
|
2432
|
+
/** @description Whether `GET /v1/boards/{identifier}/places/suggest` suggests any place on this board (cities, towns and suburbs beyond the board's own places). When `false` it returns an empty list: offer only the board's places (`GET /places?q=`) and do not call it. */
|
|
2433
|
+
placeSuggestions: boolean;
|
|
2432
2434
|
};
|
|
2433
2435
|
/**
|
|
2434
2436
|
* @description How the operator charges employers for the candidate directory. `paid_messaging` leaves profiles fully visible and spends a credit on a first cold message; `paid_unlocks_and_messaging` also redacts directory cards and gates the opaque `/p/{id}` profile route behind an unlock credit. `null` means the operator has not chosen explicitly, in which case infer it from the published `talent_access` plans: any plan granting profile unlocks means `paid_unlocks_and_messaging`, otherwise `paid_messaging`. The paywall is inert regardless when the board publishes no talent plan. An anonymous viewer has no entitlement read to derive this from, so it ships here rather than only on `me/talent-access`.
|
|
@@ -2952,11 +2954,11 @@ interface components {
|
|
|
2952
2954
|
*/
|
|
2953
2955
|
lte?: string;
|
|
2954
2956
|
};
|
|
2955
|
-
/** @description Only return jobs in the place with this slug, including the places inside it (a region includes its cities). Pass `radius` to widen a city or locality to nearby jobs. Unresolvable slugs are ignored. */
|
|
2957
|
+
/** @description Only return jobs in the place with this slug, including the places inside it (a region includes its cities). Pass `radius` to widen a city or locality to nearby jobs. A place slug from `GET /places/suggest` returns jobs within `radius` km of that place, by default a distance that suits its size. Unresolvable slugs are ignored. */
|
|
2956
2958
|
location?: string;
|
|
2957
|
-
/** @description Widen a city or locality `location` to also return jobs placed in a city or locality within this many kilometres of the place (1–250; decimals allowed, e.g. `8.05` for 5 miles). Omit for jobs in the place itself. Ignored for region and country places, and without `location`. */
|
|
2959
|
+
/** @description Widen a city or locality `location` to also return jobs placed in a city or locality within this many kilometres of the place (1–250; decimals allowed, e.g. `8.05` for 5 miles). Omit for jobs in the place itself. Ignored for region and country places, and without `location`. For a place from `GET /places/suggest`, an omitted `radius` uses the place's own default distance: 15 km for a neighbourhood, 25 km for a town, 50 km for a city. */
|
|
2958
2960
|
radius?: number;
|
|
2959
|
-
/** @description When `true` and `radius` is omitted, widen a city or locality `location` to the market default distance, computed from the resolved place: 25 miles (40.2336 km) in the US, GB, LR and MM, 50 km elsewhere. Regions, countries and places without coordinates are not widened. An explicit `radius` wins. */
|
|
2961
|
+
/** @description When `true` and `radius` is omitted, widen a city or locality `location` to the market default distance, computed from the resolved place: 25 miles (40.2336 km) in the US, GB, LR and MM, 50 km elsewhere. Regions, countries and places without coordinates are not widened. An explicit `radius` wins. A place from `places/suggest` always uses its own default (15 km neighbourhood, 25 km town, 50 km city), with or without `defaultRadius`. */
|
|
2960
2962
|
defaultRadius?: boolean;
|
|
2961
2963
|
/** @description Public custom job fields. Clauses are AND-matched; values within a clause are OR-matched. Up to 10 clauses and 10 values per clause. */
|
|
2962
2964
|
customFields?: {
|
|
@@ -3016,6 +3018,8 @@ interface components {
|
|
|
3016
3018
|
/** @description The canonical slug to emit a 308 redirect to when the inbound slug differs; `null` otherwise. */
|
|
3017
3019
|
redirectTo: string | null;
|
|
3018
3020
|
geo: components["schemas"]["TaxonomyGeo"];
|
|
3021
|
+
/** @description The board's intro for this category or location page, as sanitized HTML. Absent when the page has none. Show it on page 1 with no filters. */
|
|
3022
|
+
introHtml?: string;
|
|
3019
3023
|
};
|
|
3020
3024
|
PublicTaxonomyTerm: {
|
|
3021
3025
|
/** @enum {string} */
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { S as Schemas } from './_spec-
|
|
2
|
-
import { L as ListEnvelope, v as RelatedSearch, a as CustomFieldFilter, O as ObjectReferenceFilter } from './jobs-
|
|
1
|
+
import { S as Schemas } from './_spec-Pr6ZvyW_.mjs';
|
|
2
|
+
import { L as ListEnvelope, v as RelatedSearch, a as CustomFieldFilter, O as ObjectReferenceFilter } from './jobs-CeB5FVGG.mjs';
|
|
3
3
|
|
|
4
4
|
type PublicCompany = Schemas['CompanyPublic'];
|
|
5
5
|
/** A market (sector) a company operates in — name + its source slug. */
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { S as Schemas } from './_spec-
|
|
2
|
-
import { L as ListEnvelope, v as RelatedSearch, a as CustomFieldFilter, O as ObjectReferenceFilter } from './jobs-
|
|
1
|
+
import { S as Schemas } from './_spec-Pr6ZvyW_.js';
|
|
2
|
+
import { L as ListEnvelope, v as RelatedSearch, a as CustomFieldFilter, O as ObjectReferenceFilter } from './jobs-DN0ePjTg.js';
|
|
3
3
|
|
|
4
4
|
type PublicCompany = Schemas['CompanyPublic'];
|
|
5
5
|
/** A market (sector) a company operates in — name + its source slug. */
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { P as PublicBoard, a as CompanyCategorySalary, b as CompanySalary, L as LocationSalaryDetail, S as SkillSalaryDetail, T as TitleSalaryDetail } from './board-
|
|
2
|
-
import { P as PublicJob } from './jobs-
|
|
1
|
+
import { P as PublicBoard, a as CompanyCategorySalary, b as CompanySalary, L as LocationSalaryDetail, S as SkillSalaryDetail, T as TitleSalaryDetail } from './board-CaZu8nEl.js';
|
|
2
|
+
import { P as PublicJob } from './jobs-DN0ePjTg.js';
|
|
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-
|
|
2
|
-
import { P as PublicJob } from './jobs-
|
|
1
|
+
import { P as PublicBoard, a as CompanyCategorySalary, b as CompanySalary, L as LocationSalaryDetail, S as SkillSalaryDetail, T as TitleSalaryDetail } from './board-C6PEXL7n.mjs';
|
|
2
|
+
import { P as PublicJob } from './jobs-CeB5FVGG.mjs';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* Wire enum for `salaryTimeframe`. Defined here (not re-exported from any
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var CavunoBoard=(()=>{var w=Object.defineProperty;var yo=Object.getOwnPropertyDescriptor;var fo=Object.getOwnPropertyNames;var go=Object.prototype.hasOwnProperty;var ho=(e,t,o)=>t in e?w(e,t,{enumerable:!0,configurable:!0,writable:!0,value:o}):e[t]=o;var A=(e,t)=>{for(var o in t)w(e,o,{get:t[o],enumerable:!0})},bo=(e,t,o,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of fo(t))!go.call(e,r)&&r!==o&&w(e,r,{get:()=>t[r],enumerable:!(n=yo(t,r))||n.enumerable});return e};var So=e=>bo(w({},"__esModule",{value:!0}),e);var P=(e,t,o)=>ho(e,typeof t!="symbol"?t+"":t,o);var Pn={};A(Pn,{ACCESS_TOKEN_KEY:()=>T,BOARD_ACCESS_GRANT_KEY:()=>I,BOARD_API_ERROR_CODES:()=>Oe,BoardApiError:()=>B,BoardClient:()=>F,REFRESH_TOKEN_KEY:()=>L,SDK_VERSION:()=>D,SIGN_IN_REDIRECT_ERROR_CODES:()=>we,SSO_LINK_PROOF_BINDING_TTL_MS:()=>ne,createBoardClient:()=>Io,filters:()=>se,format:()=>be,isBoardApiError:()=>S,isBoardPasswordRequired:()=>Re,isColdRule:()=>ct,isConflict:()=>Ae,isForbidden:()=>ve,isFreeEmailWebsiteError:()=>Te,isNotFound:()=>_e,isOwnMessage:()=>lt,isRateLimited:()=>Ee,isSafeApplicationUrl:()=>re,isSignInMethodUnavailable:()=>oe,isSsoBrowserMismatch:()=>Ie,isSsoRequired:()=>Le,isUnauthorized:()=>Pe,isValidationError:()=>Be,lastOwnMessageId:()=>pt,paginate:()=>at,parseOAuthCompletion:()=>Je,paths:()=>ye,resolveApplyAction:()=>ut,resolveApplyDecision:()=>ie,seo:()=>Se,ssoLinkProofBindingStore:()=>$,suggest:()=>Ce});var Oe=["internal_error","validation_bad_request","validation_payload_too_large","rate_limited","rate_limit_unavailable","search_unavailable","search_filter_unavailable","too_many_filter_values","pagination_invalid_cursor","pagination_offset_too_large","auth_unauthenticated","auth_forbidden","plan_upgrade_required","unknown_error","boards_not_found","board_page_not_found","board_auth_account_not_found","board_auth_email_taken","board_auth_invalid_credentials","board_auth_invalid_token","board_auth_registration_disabled","board_auth_token_expired","board_development_origin_not_allowed_for_email","board_development_origin_not_registered","board_development_origin_requires_publishable_key","sso_required","board_auth_method_unavailable","board_auth_sso_connection_not_found","board_auth_sso_role_unavailable","board_auth_sso_provider_unavailable","board_auth_sso_browser_mismatch","board_auth_sso_not_provisioned","board_auth_sso_identity_linked_elsewhere","invalid_current_password","no_password","same_email","email_taken","invalid_token","board_password_required","board_password_invalid","jobs_not_found","jobs_invalid_filter","categories_not_found","skills_not_found","places_not_found","locations_invalid_id","locations_unavailable","companies_not_found","company_markets_not_found","company_salary_not_found","company_category_salary_not_found","salaries_title_not_found","salaries_skill_not_found","salaries_location_not_found","salaries_title_location_not_found","salaries_skill_location_not_found","blog_post_not_found","blog_author_not_found","blog_tag_not_found","feeds_not_found","feed_not_ready","talent_not_found","talent_directory_not_found","talent_directory_restricted","job_recommendations_not_found","recommended_talent_not_found","job_alert_not_found","job_alerts_disabled","candidate_alert_limit_reached","candidate_alert_not_found","candidate_entry_not_found","candidate_handle_taken","candidate_job_not_found","candidate_notification_preference_paused","candidate_profile_required","resume_invalid_file","resume_upload_forbidden","applications_external_apply_only","applications_country_not_allowed","applications_guest_not_allowed","applications_job_not_found","applications_not_found","applications_resume_invalid_file","applications_unprocessable","messaging_application_not_found","messaging_application_not_linked","messaging_blocked","messaging_cannot_block_self","messaging_cold_rule","messaging_conversation_not_found","messaging_disabled","messaging_edit_window_expired","messaging_message_deleted","messaging_message_not_found","messaging_not_author","messaging_not_participant","messaging_not_permitted","messaging_not_recipient","messaging_rate_limited","messaging_recipient_not_found","messaging_recipient_not_open","messaging_unsend_window_expired","employer_applicant_not_found","employer_ats_unprocessable","employer_checkout_failed","employer_company_exists","employer_free_email_website","employer_company_name_taken","employer_company_not_found","employer_job_not_found","employer_job_slug_taken","employer_jobs_quota_exceeded","membership_required","employer_not_member","employer_payment_required","employer_pipeline_stage_not_found","employer_member_not_found","employer_invite_not_found","not_company_admin","not_company_member","company_deletion_disabled","last_admin","already_member","already_invited","invalid_email","invite_email_mismatch","candidate_role","job_not_published","talent_list_not_found","sourced_candidate_not_found","sourced_convert_unavailable","talent_list_full","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"],B=class extends Error{constructor(o){super(o.message);P(this,"status");P(this,"code");P(this,"details");P(this,"requestId");P(this,"raw");this.name="BoardApiError",this.status=o.status,this.code=o.code,this.details=o.details,this.requestId=o.requestId,this.raw=o.raw}};function S(e){return e instanceof Error&&e.name==="BoardApiError"&&typeof e.status=="number"&&typeof e.code=="string"}function _e(e){return S(e)&&e.status===404}function Pe(e){return S(e)&&e.status===401}function Re(e){return S(e)&&e.status===401&&e.code==="board_password_required"}function ve(e){return S(e)&&e.status===403}function Be(e){return S(e)&&e.status===400&&e.code==="validation_bad_request"}function Ee(e){return S(e)&&e.status===429}function Ae(e){return S(e)&&e.status===409}function Te(e){return S(e)&&e.status===422&&e.code==="employer_free_email_website"}function Le(e){if(!S(e)||e.status!==403)return!1;let t=e.details?.connectionIds;return Array.isArray(t)&&t.every(o=>typeof o=="string")&&(e.code==="sso_required"||oe(e)&&e.details.availableMethods.methods.length===0)}function oe(e){if(!S(e)||e.status!==403||e.code!=="board_auth_method_unavailable")return!1;let t=e.details?.availableMethods;if(!t||typeof t!="object")return!1;let{methods:o,ssoConnectionIds:n}=t;return Array.isArray(o)&&o.every(r=>typeof r=="string")&&Array.isArray(n)&&n.every(r=>typeof r=="string")}function Ie(e){return S(e)&&e.status===403&&e.code==="board_auth_sso_browser_mismatch"}function Fe(e){let t=new URLSearchParams;if(!e)return t;for(let[o,n]of Object.entries(e))if(n!=null)if(Array.isArray(n))for(let r of n)r!=null&&t.append(o,String(r));else t.append(o,String(n));return t}function J(e){let t=5381;for(let n=0;n<e.length;n++)t=(t<<5)+t+e.charCodeAt(n)>>>0;return`${e.replace(/[^a-zA-Z0-9_-]/g,"_")}-${t.toString(36)}`}var T="cavuno_board_access_token",L="cavuno_board_refresh_token",I="cavuno_board_access_grant";function ke(){return typeof globalThis.document<"u"}function Co(){let e=new Map;return{getItem:t=>e.get(t)??null,setItem:(t,o)=>{e.set(t,o)},removeItem:t=>{e.delete(t)}}}function Oo(e,t){if(!ke())throw new Error(`storage mode '${e}' is browser-only \u2014 use 'nostore' + per-call headers on the server`);let o;try{if(o=e==="local"?globalThis.localStorage:globalThis.sessionStorage,!o)throw new Error("unavailable")}catch{throw new Error(`storage mode '${e}' is unavailable in this browsing context (storage access is blocked \u2014 e.g. a sandboxed or third-party iframe). Use 'memory', or 'nostore' + per-call headers.`)}let n=t?`:${J(t)}`:"";return{getItem:r=>o.getItem(`${r}${n}`),setItem:(r,i)=>{o.setItem(`${r}${n}`,i)},removeItem:r=>{o.removeItem(`${r}${n}`)}}}var _o=Symbol.for("@cavuno/board:nostore");var Po={[_o]:!0,getItem:()=>null,setItem:()=>{},removeItem:()=>{}};function xe(e,t){let o=e??(ke()?"memory":"nostore");if(typeof o=="object")return o;switch(o){case"memory":return Co();case"nostore":return Po;case"local":case"session":return Oo(o,t);default:throw new Error(`Unknown storage mode '${String(o)}'`)}}async function N(e,t){await e.setItem(T,t.accessToken),await e.setItem(L,t.refreshToken)}async function Ue(e){await e.removeItem(T),await e.removeItem(L)}var D="4.49.0";function Ro(e){return typeof e=="string"||e instanceof URLSearchParams||typeof FormData<"u"&&e instanceof FormData||typeof Blob<"u"&&e instanceof Blob||e instanceof ArrayBuffer||typeof ReadableStream<"u"&&e instanceof ReadableStream}function vo(e){try{let t=new URL(e);for(let o of new Set(t.searchParams.keys()))t.searchParams.delete(o),t.searchParams.set(o,"[REDACTED]");return t.toString()}catch{return e.replace(/([?&][^=&#]+)=([^&#]*)/g,"$1=[REDACTED]")}}var F=class{constructor(t){P(this,"storage");P(this,"basePath");P(this,"options");this.options=t,this.storage=t.storage;let o=t.baseUrl.replace(/\/+$/,"");this.basePath=`${o}/v1/boards/${encodeURIComponent(t.board)}`}async fetch(t,o={}){let{body:n,query:r,headers:i,...s}=o,a=(o.method??"GET").toUpperCase(),l=`${this.basePath}${t}`,p=Fe(r).toString();p&&(l+=`?${p}`);let m=n!==void 0&&!Ro(n),d=n===void 0?void 0:m?JSON.stringify(n):n,y=new Headers({accept:"application/json"});m&&y.set("content-type","application/json");for(let[v,te]of Object.entries(this.options.globalHeaders??{}))y.set(v,te);let g=await this.storage.getItem(T);g!==null&&y.set("authorization",`Bearer ${g}`);let O=await this.storage.getItem(I);O!==null&&y.set("x-board-access",O),i&&new Headers(i).forEach((v,te)=>{y.set(te,v)}),(a!=="GET"||y.has("authorization")||y.has("x-board-access"))&&!y.has("x-cavuno-sdk")&&y.set("x-cavuno-sdk",`board@${D}`);let h={url:l,init:{...s,method:a,headers:y,body:d}};this.options.onRequest&&(h=await this.options.onRequest(h));let R=vo(h.url);this.options.logger?.debug(`${a} ${R}`);let u=await globalThis.fetch(h.url,h.init);if(this.options.logger?.debug(`${u.status} ${a} ${R}`),this.options.onResponse&&await this.options.onResponse(u.clone(),h),u.status===204)return;if(u.ok)return await u.json();let b;try{b=await u.json()}catch{b=void 0}let _=b?.error,E=_&&typeof _.code=="string"&&typeof _.message=="string"?new B({status:u.status,code:_.code,message:_.message,details:_.details,requestId:_.requestId,raw:b}):new B({status:u.status,code:"unknown_error",message:u.statusText||"Request failed",raw:b});throw this.options.logger?.error(`${E.status} ${E.code} ${a} ${R}`),E}};var Me="https://api.cavuno.com";var we=["oauth_cancelled","oauth_failed","oauth_email_unverified","role_disabled","method_unavailable","sso_required","sso_state_invalid","sso_cancelled","sso_failed","sso_connection_unavailable","sso_not_provisioned","sso_email_required","sso_account_disabled","sso_identity_linked_elsewhere","sso_link_proof_rate_limited","sso_development_origin_not_allowed_for_email"];function Bo(e){if(e instanceof URLSearchParams)return e;if(typeof e=="string"){let o=e.includes("?")?e.slice(e.indexOf("?")):e;return new URLSearchParams(o)}let t=new URLSearchParams;for(let[o,n]of Object.entries(e))n!==void 0&&t.set(o,n);return t}function Eo(e){return!e||!e.startsWith("/")||e.startsWith("//")||e.startsWith("/\\")||e.includes("://")||/[\u0000-\u001F\u007F]/.test(e)?"/":e}function Ao(e){return e==="candidate"||e==="employer"?e:null}function Je(e){let t=Bo(e),o=c=>{let p=t.get(c);return p&&p.length>0?p:null},n=Eo(o("returnTo")),r=Ao(o("role")),i=o("error");if(i)return{kind:"error",error:i,returnTo:n};let s=o("linkProof");if(s)return{kind:"link_proof",linkProof:s,role:r,returnTo:n};let a=o("linkProofBinding");if(o("status")==="sso_link_proof_sent"&&a)return{kind:"link_proof_sent",linkProofBinding:a,role:r,returnTo:n};let l=o("token");return l?{kind:"token",token:l,method:o("method"),role:r,returnTo:n,isNewUser:o("isNew")==="1"}:{kind:"invalid",returnTo:n}}var ne=1500*1e3,To="cavuno_board_sso_link_proof_binding";function Lo(){try{return globalThis.localStorage??null}catch{return null}}function $(e,t={}){let o=`${To}:${J(e)}`,n=t.now??Date.now,r=()=>t.storage??Lo(),i=()=>{try{r()?.removeItem(o)}catch{}};return{begin(){let s=globalThis.crypto.getRandomValues(new Uint8Array(32)),a=Array.from(s,c=>c.toString(16).padStart(2,"0")).join(""),l=r();if(!l)throw new Error("SSO requires browser storage or an explicit browser proof");return l.setItem(o,JSON.stringify({binding:a,expiresAt:n()+ne})),a},save(s){},read(){let s=null;try{s=r()?.getItem(o)??null}catch{return null}if(!s)return null;try{let a=JSON.parse(s);if(typeof a.binding=="string"&&typeof a.expiresAt=="number"&&a.expiresAt>n())return a.binding}catch{}return i(),null},clear:i}}function Ne(e,t=""){let o=()=>$(t);async function n(i){return await N(e.storage,i),i}async function r(i){if(i?.refreshToken)return i.refreshToken;let s=await e.storage.getItem(L);if(s===null)throw new Error("No refresh token available \u2014 pass { refreshToken } or configure auth.storage");return s}return{async register(i,s){let a=await e.fetch("/auth/register",{...s,method:"POST",body:i});return n(a)},async login(i,s){let a=await e.fetch("/auth/login",{...s,method:"POST",body:i});return n(a)},async refresh(i,s){let a=await r(i),l=await e.fetch("/auth/refresh",{...s,method:"POST",body:{refreshToken:a}});return n(l)},async logout(i,s){let a=await r(i);await e.fetch("/auth/logout",{...s,method:"POST",body:{refreshToken:a}}),await Ue(e.storage)},verifyEmail(i,s){return e.fetch("/auth/verify-email",{...s,method:"POST",body:i})},verifyWorkEmail(i,s){return e.fetch("/auth/verify-work-email",{...s,method:"POST",body:i})},verifyEmailWithCode(i,s){return e.fetch("/auth/verify-email/otp",{...s,method:"POST",body:i})},resendVerification(i){return e.fetch("/auth/verify-email/resend",{...i,method:"POST"})},forgotPassword(i,s){return e.fetch("/auth/forgot-password",{...s,method:"POST",body:i})},resetPassword(i,s){return e.fetch("/auth/reset-password",{...s,method:"POST",body:i})},requestMagicLink(i,s){return e.fetch("/auth/magic-link",{...s,method:"POST",body:i})},async consumeMagicLink(i,s){let a=await e.fetch("/auth/magic-link/consume",{...s,method:"POST",body:i});return n(a)},getOAuthAuthorizationUrl(i,s,a){return e.fetch(`/auth/oauth/${i}`,{...a,method:"GET",query:s})},async exchangeOAuth(i,s){let a=await e.fetch("/auth/oauth/exchange",{...s,method:"POST",body:{...i,browserBinding:i.browserBinding??o().read()??void 0}});return n(a)},async getSsoAuthorizationUrl(i,s,a){let l=s?.browserBindingHash;if(!l){let c=o().begin(),p=await globalThis.crypto.subtle.digest("SHA-256",new TextEncoder().encode(c));l=Array.from(new Uint8Array(p),m=>m.toString(16).padStart(2,"0")).join("")}return e.fetch(`/auth/sso/${encodeURIComponent(i)}`,{...a,method:"GET",query:{...s,browserBindingHash:l}})},async consumeSsoLinkProof(i,s){let a=await e.fetch("/auth/sso/link-proof",{...s,method:"POST",body:{...i,browserBinding:i.browserBinding??o().read()??void 0}});return n(a)}}}function De(e){return{posts:{list(t,o){return e.fetch("/blog/posts",{...o,query:t})},retrieve(t,o,n){return e.fetch(`/blog/posts/${encodeURIComponent(t)}`,{...n,query:o})},adjacent(t,o){return e.fetch(`/blog/posts/${encodeURIComponent(t)}/adjacent`,o)},similar(t,o,n){return e.fetch(`/blog/posts/${encodeURIComponent(t)}/similar`,{...n,query:o})}},tags:{list(t,o){return e.fetch("/blog/tags",{...o,query:t})},retrieve(t,o,n){return e.fetch(`/blog/tags/${encodeURIComponent(t)}`,{...n,query:o})}},authors:{list(t,o){return e.fetch("/blog/authors",{...o,query:t})},retrieve(t,o,n){return e.fetch(`/blog/authors/${encodeURIComponent(t)}`,{...n,query:o})}},search(t,o,n){return e.fetch("/blog/search",{...n,method:"POST",body:t,query:o})}}}function $e(e){let t=Object.assign((n,r)=>e.fetch("/companies/markets",{...r,query:n}),{resolve(n,r){return e.fetch(`/companies/markets/${encodeURIComponent(n)}`,r)}}),o=Object.assign((n,r)=>e.fetch(`/companies/${encodeURIComponent(n)}/salaries`,r),{summary(n,r){return e.fetch(`/companies/${encodeURIComponent(n)}/salaries/summary`,r)},category(n,r,i,s){return e.fetch(`/companies/${encodeURIComponent(n)}/salaries/${encodeURIComponent(r)}`,{...s,query:i})}});return{list(n,r){return e.fetch("/companies",{...r,query:n})},retrieve(n,r,i){return e.fetch(`/companies/${encodeURIComponent(n)}`,{...i,query:r})},search(n,r,i){return e.fetch("/companies/search",{...i,method:"POST",body:n,query:r})},listJobs(n,r,i){return e.fetch(`/companies/${encodeURIComponent(n)}/jobs`,{...i,query:r})},similar(n,r,i){return e.fetch(`/companies/${encodeURIComponent(n)}/similar`,{...i,query:r})},markets:t,salaries:o}}function je(e){return{jobs(t,o){return e.fetch("/embed/jobs",{...o,query:t})}}}function Qe(e){return{preview(t,o){return e.fetch("/invites/preview",{...o,method:"POST",body:t})}}}function qe(e){return{subscribe(t,o){return e.fetch("/job-alerts",{...o,method:"POST",body:t})},confirm(t,o){return e.fetch("/job-alerts/confirm",{...o,method:"POST",body:t})},resendConfirmation(t,o){return e.fetch("/job-alerts/resend-confirmation",{...o,method:"POST",body:t})},manage(t,o){return e.fetch("/job-alerts/manage",{...o,query:t})},unsubscribe(t,o){return e.fetch("/job-alerts/unsubscribe",{...o,method:"POST",body:t})},resubscribe(t,o){return e.fetch("/job-alerts/resubscribe",{...o,method:"POST",body:t})},updatePreference(t,o){return e.fetch("/job-alerts/preferences",{...o,method:"POST",body:t})},deletePreference(t,o){return e.fetch("/job-alerts/preferences",{...o,method:"DELETE",body:t})}}}function Ge(e){return{plans(t,o){return e.fetch("/job-postings/plans",{...o,query:t})},create(t,o){return e.fetch("/job-postings",{...o,method:"POST",body:t})},uploadLogo(t,o){let n=new FormData;return n.append("file",t),e.fetch("/job-postings/logo",{...o,method:"POST",body:n})},fetchLogoByDomain(t,o){return e.fetch("/job-postings/logo/fetch",{...o,query:{domain:t}})},sendBillingVerification(t,o){return e.fetch("/job-postings/send-verification",{...o,method:"POST",body:t})},getBillingOptions(t,o){return e.fetch("/job-postings/billing-options",{...o,method:"POST",body:t})}}}function He(e){return{collectionChoices(t,o,n){return e.fetch(`/job-fields/${encodeURIComponent(t)}/choices`,{...n,query:o})},list(t,o){return e.fetch("/jobs",{...o,query:t})},retrieve(t,o,n){return e.fetch(`/jobs/${encodeURIComponent(t)}`,{...n,query:o})},search(t,o,n){return e.fetch("/jobs/search",{...n,method:"POST",body:t,query:o})},similar(t,o,n){return e.fetch(`/jobs/${encodeURIComponent(t)}/similar`,{...n,query:o})},apply(t,o,n){return e.fetch(`/jobs/${encodeURIComponent(t)}/apply`,{...n,method:"POST",body:o??{}})},createApplyIntent(t,o,n){return e.fetch(`/jobs/${encodeURIComponent(t)}/apply-intents`,{...n,method:"POST",body:o})},prepareApplyApproval(t,o,n){return e.fetch(`/jobs/${encodeURIComponent(t)}/apply-approvals`,{...n,method:"POST",body:o})},uploadApplicationResume(t,o,n,r){let i=new FormData;return i.append("file",o),n?.applicationId&&i.append("applicationId",n.applicationId),e.fetch(`/jobs/${encodeURIComponent(t)}/apply/resume`,{...r,method:"POST",body:i})},myApplication(t,o){return e.fetch(`/jobs/${encodeURIComponent(t)}/application`,o)}}}function Ke(e){return{search(t,o){return e.fetch("/locations/search",{...o,query:t})},resolve(t,o){return e.fetch("/locations/resolve",{...o,method:"POST",body:t})}}}function Ve(e){return{retrieve(t,o){return e.fetch("/me",{...o,query:t})},delete(t){return e.fetch("/me",{...t,method:"DELETE"})},async updatePassword(t,o){let n=await e.fetch("/me/password",{...o,method:"POST",body:t});return await N(e.storage,n),n},requestEmailChange(t,o){return e.fetch("/me/email",{...o,method:"POST",body:t})},confirmEmailChange(t,o){return e.fetch("/me/email/confirm",{...o,method:"POST",body:t})},acceptInvite(t,o){return e.fetch("/me/invites/accept",{...o,method:"POST",body:t})},profile:{listObjectReferenceChoices(t,o,n){return e.fetch("/me/profile/object-references/choices",{...n,query:{...o,fieldKey:t}})},retrieve(t,o){return e.fetch("/me/profile",{...o,query:t})},update(t,o,n){return e.fetch("/me/profile",{...n,method:"PATCH",body:t,query:o})},retrieveCustomFields(t){return e.fetch("/me/profile/custom-fields",{...t})},updateCustomFields(t,o){return e.fetch("/me/profile/custom-fields",{...o,method:"PATCH",body:t})},retrieveObjectReferences(t){return e.fetch("/me/profile/object-references",t)},updateObjectReferences(t,o){return e.fetch("/me/profile/object-references",{...o,method:"PUT",body:t})},handleAvailable(t,o){return e.fetch("/me/profile/handle-available",{...o,query:{handle:t}})},listExperience(t){return e.fetch("/me/profile/experience",t)},createExperience(t,o){return e.fetch("/me/profile/experience",{...o,method:"POST",body:t})},updateExperience(t,o,n){return e.fetch(`/me/profile/experience/${encodeURIComponent(t)}`,{...n,method:"PATCH",body:o})},deleteExperience(t,o){return e.fetch(`/me/profile/experience/${encodeURIComponent(t)}`,{...o,method:"DELETE"})},listEducation(t){return e.fetch("/me/profile/education",t)},createEducation(t,o){return e.fetch("/me/profile/education",{...o,method:"POST",body:t})},updateEducation(t,o,n){return e.fetch(`/me/profile/education/${encodeURIComponent(t)}`,{...n,method:"PATCH",body:o})},deleteEducation(t,o){return e.fetch(`/me/profile/education/${encodeURIComponent(t)}`,{...o,method:"DELETE"})},listSkills(t){return e.fetch("/me/profile/skills",t)},updateSkills(t,o){return e.fetch("/me/profile/skills",{...o,method:"PUT",body:t})},listLanguages(t){return e.fetch("/me/profile/languages",t)},updateLanguages(t,o){return e.fetch("/me/profile/languages",{...o,method:"PUT",body:t})},uploadAvatar(t,o){let n=new FormData;return n.append("file",t),e.fetch("/me/profile/avatar",{...o,method:"POST",body:n})}},notificationPreferences:{retrieve(t){return e.fetch("/me/notification-preferences",t)},update(t,o){return e.fetch("/me/notification-preferences",{...o,method:"PUT",body:t})},unsubscribeWithToken(t,o){return e.fetch("/me/notification-preferences/unsubscribe",{...o,method:"POST",body:t})}},companies:{listObjectReferenceChoices(t,o,n,r){return e.fetch(`/me/companies/${encodeURIComponent(t)}/object-references/choices`,{...r,query:{...n,fieldKey:o}})},retrieveObjectReferences(t,o){return e.fetch(`/me/companies/${encodeURIComponent(t)}/object-references`,o)},updateObjectReferences(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/object-references`,{...n,method:"PUT",body:o})},search(t,o){return e.fetch("/me/companies/search",{...o,query:t})},list(t){return e.fetch("/me/companies",t)},create(t,o){return e.fetch("/me/companies",{...o,method:"POST",body:t})},claim(t,o){return e.fetch(`/me/companies/${encodeURIComponent(t)}/claim`,{...o,method:"POST"})},cancelClaim(t,o){return e.fetch(`/me/companies/${encodeURIComponent(t)}/claim`,{...o,method:"DELETE"})},retrieve(t,o){return e.fetch(`/me/companies/${encodeURIComponent(t)}`,o)},update(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}`,{...n,method:"PATCH",body:o})},retrieveCustomFields(t,o){return e.fetch(`/me/companies/${encodeURIComponent(t)}/custom-fields`,o)},updateCustomFields(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/custom-fields`,{...n,method:"PATCH",body:o})},delete(t,o){return e.fetch(`/me/companies/${encodeURIComponent(t)}`,{...o,method:"DELETE"})},listMembers(t,o){return e.fetch(`/me/companies/${encodeURIComponent(t)}/members`,o)},updateMemberRole(t,o,n,r){return e.fetch(`/me/companies/${encodeURIComponent(t)}/members/${encodeURIComponent(o)}`,{...r,method:"PATCH",body:n})},removeMember(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/members/${encodeURIComponent(o)}`,{...n,method:"DELETE"})},leave(t,o){return e.fetch(`/me/companies/${encodeURIComponent(t)}/membership`,{...o,method:"DELETE"})},startMembershipCheckout(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/membership/checkout`,{...n,method:"POST",body:o})},retrieveMembershipCheckout(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/membership/checkout/${encodeURIComponent(o)}`,n)},listInvites(t,o){return e.fetch(`/me/companies/${encodeURIComponent(t)}/invites`,o)},createInvite(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/invites`,{...n,method:"POST",body:o})},revokeInvite(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/invites/${encodeURIComponent(o)}`,{...n,method:"DELETE"})},uploadLogo(t,o,n){let r=new FormData;return r.append("file",o),e.fetch(`/me/companies/${encodeURIComponent(t)}/logo`,{...n,method:"POST",body:r})},workEmail:{verify(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/work-email/verify`,{...n,method:"POST",body:o})},confirm(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/work-email/confirm`,{...n,method:"POST",body:o})}},jobs:{list(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/jobs`,{...n,query:o})},retrieve(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/jobs/${encodeURIComponent(o)}`,n)},create(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/jobs`,{...n,method:"POST",body:o})},update(t,o,n,r){return e.fetch(`/me/companies/${encodeURIComponent(t)}/jobs/${encodeURIComponent(o)}`,{...r,method:"PATCH",body:n})},delete(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/jobs/${encodeURIComponent(o)}`,{...n,method:"DELETE"})},publish(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/jobs/${encodeURIComponent(o)}/publish`,{...n,method:"POST"})},unpublish(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/jobs/${encodeURIComponent(o)}/unpublish`,{...n,method:"POST"})},checkout(t,o,n,r){return e.fetch(`/me/companies/${encodeURIComponent(t)}/jobs/${encodeURIComponent(o)}/checkout`,{...r,method:"POST",body:n})}},billingOptions:{list(t,o){return e.fetch(`/me/companies/${encodeURIComponent(t)}/billing-options`,o)}},billingPortal:{create(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/billing-portal`,{...n,method:"POST",body:o})}},jobStats:{retrieve(t,o){return e.fetch(`/me/companies/${encodeURIComponent(t)}/job-stats`,o)},timeseries(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/job-stats/timeseries`,{...n,query:o})}},profileStats:{retrieve(t,o){return e.fetch(`/me/companies/${encodeURIComponent(t)}/profile-stats`,o)},timeseries(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/profile-stats/timeseries`,{...n,query:o})}},recommendedTalent:{list(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/recommended-talent`,{...n,query:o})}},talentLists:{list(t,o){return e.fetch(`/me/companies/${encodeURIComponent(t)}/talent-lists`,o)},create(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/talent-lists`,{...n,method:"POST",body:o})},update(t,o,n,r){return e.fetch(`/me/companies/${encodeURIComponent(t)}/talent-lists/${encodeURIComponent(o)}`,{...r,method:"PATCH",body:n})},remove(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/talent-lists/${encodeURIComponent(o)}`,{...n,method:"DELETE"})},memberships(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/talent-list-memberships`,{...n,query:o})},members:{list(t,o,n,r){return e.fetch(`/me/companies/${encodeURIComponent(t)}/talent-lists/${encodeURIComponent(o)}/members`,{...r,query:n})},add(t,o,n,r){return e.fetch(`/me/companies/${encodeURIComponent(t)}/talent-lists/${encodeURIComponent(o)}/members`,{...r,method:"POST",body:n})},remove(t,o,n,r){return e.fetch(`/me/companies/${encodeURIComponent(t)}/talent-lists/${encodeURIComponent(o)}/members/${encodeURIComponent(n)}`,{...r,method:"DELETE"})}}},sourcedCandidates:{list(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/sourced-candidates`,{...n,query:o})},add(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/sourced-candidates`,{...n,method:"POST",body:o})},remove(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/sourced-candidates/${encodeURIComponent(o)}`,{...n,method:"DELETE"})},convert(t,o,n,r){return e.fetch(`/me/companies/${encodeURIComponent(t)}/sourced-candidates/${encodeURIComponent(o)}/convert`,{...r,method:"POST",body:n})}},applicants:{list(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/applicants`,{...n,query:o})},move(t,o,n,r){return e.fetch(`/me/companies/${encodeURIComponent(t)}/applicants/${encodeURIComponent(o)}/stage`,{...r,method:"PATCH",body:n})},bulkMove(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/applicants/bulk/move`,{...n,method:"POST",body:o})},bulkReject(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/applicants/bulk/reject`,{...n,method:"POST",body:o})},addNote(t,o,n,r){return e.fetch(`/me/companies/${encodeURIComponent(t)}/applicants/${encodeURIComponent(o)}/notes`,{...r,method:"POST",body:n})}},pipelineStages:{create(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/pipeline-stages`,{...n,method:"POST",body:o})},update(t,o,n,r){return e.fetch(`/me/companies/${encodeURIComponent(t)}/pipeline-stages/${encodeURIComponent(o)}`,{...r,method:"PATCH",body:n})},remove(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/pipeline-stages/${encodeURIComponent(o)}`,{...n,method:"DELETE"})},reorder(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/pipeline-stages/reorder`,{...n,method:"PUT",body:o})}}},talentAccess:{retrieve(t){return e.fetch("/me/talent-access",t)},retrieveCandidate(t,o){return e.fetch(`/me/talent-access/candidates/${encodeURIComponent(t)}`,o)},checkout(t,o){return e.fetch("/me/talent-access/checkout",{...o,method:"POST",body:t})},claim(t,o){return e.fetch("/me/talent-access/claim",{...o,method:"POST",body:t})},retrieveCheckout(t,o){return e.fetch(`/me/talent-access/checkout/${encodeURIComponent(t)}`,o)},unlock(t,o){return e.fetch("/me/talent-access/unlocks",{...o,method:"POST",body:t})},upgrade(t,o){return e.fetch("/me/talent-access/upgrade",{...o,method:"POST",body:t})}},alerts:{list(t){return e.fetch("/me/alerts",t)},create(t,o){return e.fetch("/me/alerts",{...o,method:"POST",body:t})},retrieve(t,o){return e.fetch(`/me/alerts/${encodeURIComponent(t)}`,o)},update(t,o,n){return e.fetch(`/me/alerts/${encodeURIComponent(t)}`,{...n,method:"PUT",body:o})},remove(t,o){return e.fetch(`/me/alerts/${encodeURIComponent(t)}`,{...o,method:"DELETE"})}},applications:{list(t,o){return e.fetch("/me/applications",{...o,query:t})},retrieve(t,o){return e.fetch(`/me/applications/${encodeURIComponent(t)}`,o)},updateFacts(t,o,n){return e.fetch(`/me/applications/${encodeURIComponent(t)}`,{...n,method:"PATCH",body:o})},withdraw(t,o){return e.fetch(`/me/applications/${encodeURIComponent(t)}/withdraw`,{...o,method:"POST"})}},resume:{upload(t,o,n){let r=new FormData;return r.append("resume",t),o?.keepResumeOnFile&&r.append("keepResumeOnFile","true"),o?.importMode&&r.append("importMode",o.importMode),o?.confirmReplaceAll&&r.append("confirmReplaceAll","true"),e.fetch("/me/resume",{...n,method:"POST",body:r})},retrieve(t){return e.fetch("/me/resume",t)},delete(t){return e.fetch("/me/resume",{...t,method:"DELETE"})}},recommendedJobs:{list(t,o){return e.fetch("/me/recommended-jobs",{...o,query:t})}},savedJobs:{list(t,o){return e.fetch("/me/saved-jobs",{...o,query:t})},save(t,o,n){return e.fetch("/me/saved-jobs",{...n,method:"POST",body:t,query:o})},unsave(t,o,n){return e.fetch(`/me/saved-jobs/${encodeURIComponent(t)}`,{...n,method:"DELETE",query:o})}},conversations:{list(t,o){return e.fetch("/me/conversations",{...o,query:t})},unreadCount(t){return e.fetch("/me/conversations/unread-count",t)},retrieve(t,o){return e.fetch(`/me/conversations/${encodeURIComponent(t)}`,o)},listMessages(t,o,n){return e.fetch(`/me/conversations/${encodeURIComponent(t)}/messages`,{...n,query:o})},start(t,o){return e.fetch("/me/conversations",{...o,method:"POST",body:t})},startAboutApplication(t,o){return e.fetch("/me/conversations/about-application",{...o,method:"POST",body:t})},reply(t,o,n){return e.fetch(`/me/conversations/${encodeURIComponent(t)}/reply`,{...n,method:"POST",body:o})},markRead(t,o){return e.fetch(`/me/conversations/${encodeURIComponent(t)}/read`,{...o,method:"POST"})},archive(t,o){return e.fetch(`/me/conversations/${encodeURIComponent(t)}/archive`,{...o,method:"POST"})},unarchive(t,o){return e.fetch(`/me/conversations/${encodeURIComponent(t)}/unarchive`,{...o,method:"POST"})},findExisting(t,o){return e.fetch("/me/conversations/find-existing",{...o,query:t})}},blocks:{list(t){return e.fetch("/me/blocks",t)},create(t,o){return e.fetch("/me/blocks",{...o,method:"POST",body:t})},remove(t,o){return e.fetch(`/me/blocks/${encodeURIComponent(t)}`,{...o,method:"DELETE"})},status(t,o){return e.fetch(`/me/blocks/${encodeURIComponent(t)}`,o)}},messages:{edit(t,o,n){return e.fetch(`/me/messages/${encodeURIComponent(t)}`,{...n,method:"PATCH",body:o})},unsend(t,o){return e.fetch(`/me/messages/${encodeURIComponent(t)}`,{...o,method:"DELETE"})},report(t,o,n){return e.fetch(`/me/messages/${encodeURIComponent(t)}/report`,{...n,method:"POST",body:o})}},marketingConsent:{retrieve(t){return e.fetch("/me/marketing-consent",t)},grant(t){return e.fetch("/me/marketing-consent/grant",{...t,method:"POST"})},withdraw(t){return e.fetch("/me/marketing-consent/withdraw",{...t,method:"POST"})}},access:{checkout(t,o){return e.fetch("/me/access/checkout",{...o,method:"POST",body:t})},retrieveCheckout(t,o){return e.fetch(`/me/access/checkout/${encodeURIComponent(t)}`,o)},grant(t){return e.fetch("/me/access/grant",t)},portal(t,o){return e.fetch("/me/access/portal",{...o,method:"POST",body:t})}}}}function Ye(e){return{async verify(t,o){let n=await e.fetch("/password/verify",{...o,method:"POST",body:{password:t}});return await e.storage.setItem(I,n.token),n}}}function ze(e){return{offers(t){return e.fetch("/paywall/offers/enabled",t)}}}function We(e){return{list(t,o){return e.fetch("/plans",{...o,query:t})},salesLed(t){return e.fetch("/sales-led-plans",t)}}}function Ze(e){return{retrieve(t,o){return e.fetch(`/profile-fields/${encodeURIComponent(t)}`,o)},choices(t,o,n,r){return e.fetch(`/profile-fields/${encodeURIComponent(t)}/${encodeURIComponent(o)}/choices`,{...r,query:n})}}}function Xe(e){return{resolve(t,o){return e.fetch("/redirects/resolve",{...o,query:{path:t}})}}}function et(e){return{companies:{list(t){return e.fetch("/salaries/companies",t)}},titles:{list(t,o){return e.fetch("/salaries/titles",{...o,query:t})},retrieve(t,o,n){return e.fetch(`/salaries/titles/${encodeURIComponent(t)}`,{...n,query:o})},locations(t,o,n){return e.fetch(`/salaries/titles/${encodeURIComponent(t)}/locations`,{...n,query:o})},location(t,o,n,r){return e.fetch(`/salaries/titles/${encodeURIComponent(t)}/${encodeURIComponent(o)}`,{...r,query:n})}},skills:{list(t,o){return e.fetch("/salaries/skills",{...o,query:t})},retrieve(t,o,n){return e.fetch(`/salaries/skills/${encodeURIComponent(t)}`,{...n,query:o})},locations(t,o,n){return e.fetch(`/salaries/skills/${encodeURIComponent(t)}/locations`,{...n,query:o})},location(t,o,n,r){return e.fetch(`/salaries/skills/${encodeURIComponent(t)}/${encodeURIComponent(o)}`,{...r,query:n})}},locations:{list(t,o){return e.fetch("/salaries/locations",{...o,query:t})},retrieve(t,o,n){return e.fetch(`/salaries/locations/${encodeURIComponent(t)}`,{...n,query:o})},titles(t,o,n){return e.fetch(`/salaries/locations/${encodeURIComponent(t)}/titles`,{...n,query:o})},skills(t,o,n){return e.fetch(`/salaries/locations/${encodeURIComponent(t)}/skills`,{...n,query:o})}}}}function tt(e){return{suggest(t,o){return e.fetch("/search/suggest",{...o,query:t})}}}function ot(e){return Object.assign(t=>e.fetch("/sitemap",t),{entries(t,o,n){return e.fetch(`/sitemap/${encodeURIComponent(t)}`,{...n,query:o})}})}function nt(e){return{list(t,o){let n=t?{...t,customFields:t.customFields?JSON.stringify(t.customFields):void 0,objectReferences:t.objectReferences?JSON.stringify(t.objectReferences):void 0}:void 0;return e.fetch("/talent",{...o,query:n})},retrieve(t,o){return e.fetch(`/talent/${encodeURIComponent(t)}`,o)},places:{list(t,o){return e.fetch("/talent/places",{...o,query:t})}}}}function it(e,t){return{resolve(o,n){return e.fetch(`/${t}/${encodeURIComponent(o)}`,n)}}}function rt(e,t){return{...it(e,t),list(o,n){return e.fetch(`/${t}`,{...n,query:o})}}}function st(e){return{categories:rt(e,"categories"),skills:rt(e,"skills"),remotePermits:{list(t){return e.fetch("/remote-permits",t)}},places:{...it(e,"places"),list(t,o){return e.fetch("/places",{...o,query:t})}}}}function at(e,t,o){async function*n(){let r=t;for(;;){let i=await e(r,o);if(yield i,!i.hasMore||i.nextCursor===null)return;let{offset:s,...a}=r??{};r={...a,cursor:i.nextCursor}}}return{pages:n,async*[Symbol.asyncIterator](){for await(let r of n())yield*r.data},async toArray({limit:r}){let i=[];for await(let s of n())if(i.push(...s.data),i.length>=r)break;return i.slice(0,r)}}}function lt(e,t){return e.authorBoardUserId!==t}function ct(e,t){let o=e.some(r=>r.authorBoardUserId===t);return e.some(r=>r.authorBoardUserId!==t)&&!o}function pt(e,t){for(let o=e.length-1;o>=0;o--){let n=e[o];if(n.authorBoardUserId!==t)return n.id}return null}function re(e){let t=e.replace(/^[\u0000-\u0020]+|[\u0000-\u0020]+$/g,"").replace(/[\t\n\r]/g,""),o=/^([a-z][a-z0-9+.-]*):/i.exec(t)?.[1]?.toLowerCase();return o===void 0?!0:o==="http"||o==="https"||o==="mailto"}function ie(e){let t=e.applicationUrl&&re(e.applicationUrl)?e.applicationUrl:null;return!t&&!e.jobSlug?{kind:"none"}:e.registrationWall&&!e.viewer?{kind:"sign-in",reason:"registration-wall"}:t?{kind:"external",url:t}:e.jobSlug?e.viewer?e.viewer.emailVerified?e.applied?{kind:"applied"}:{kind:"native",jobSlug:e.jobSlug}:{kind:"verify-email"}:e.allowGuestApply?{kind:"guest",jobSlug:e.jobSlug}:{kind:"sign-in",reason:"native-apply"}:{kind:"none"}}function ut(e){let t=ie({...e,registrationWall:!1,allowGuestApply:!1});return t.kind==="sign-in"?{kind:"sign-in"}:t}function Io(e){let t=new F({baseUrl:e.baseUrl??Me,board:e.board,storage:xe(e.auth?.storage,e.board),globalHeaders:e.globalHeaders,onRequest:e.onRequest,onResponse:e.onResponse,logger:e.logger});return{client:t,context(o){return t.fetch("",o)},seo(o){return t.fetch("/seo",o)},jobs:He(t),embed:je(t),companies:$e(t),blog:De(t),auth:Ne(t,e.board),me:Ve(t),invites:Qe(t),password:Ye(t),taxonomy:st(t),search:tt(t),locations:Ke(t),redirects:Xe(t),jobAlerts:qe(t),jobPosting:Ge(t),salaries:et(t),talent:nt(t),profileFields:Ze(t),plans:We(t),paywall:ze(t),sitemap:ot(t)}}var se={};A(se,{DEFAULT_SORT:()=>Fo,EMPLOYMENT_TYPES:()=>dt,JOB_SORTS:()=>ft,REMOTE_OPTIONS:()=>mt,SENIORITIES:()=>yt,parseCategory:()=>bt,parseCompany:()=>ht,parseListingFilters:()=>xo,parseSeniority:()=>gt});var mt=["on_site","hybrid","remote"],dt=["full_time","part_time","contract","internship","temporary"],yt=["entry_level","associate","mid_level","senior","lead","principal","director","executive"],ft=["relevance","newest","salary_high"],Fo="relevance";var ko=new Set(yt);function gt(e){let t=Array.isArray(e)?e:typeof e=="string"&&e?e.split(","):[],o=[],n=new Set;for(let r of t){if(typeof r!="string")continue;let i=r.trim().toLowerCase().normalize("NFC");!i||n.has(i)||ko.has(i)&&(n.add(i),o.push(i))}return o.length>0?o:void 0}function ht(e){return St(e,10)}function bt(e){return St(e,10)}function St(e,t){let o=Array.isArray(e)?e:typeof e=="string"&&e?e.split(","):[],n=[],r=new Set;for(let i of o){if(typeof i!="string")continue;let s=i.trim().toLowerCase().normalize("NFC");if(!(!s||r.has(s))&&(r.add(s),n.push(s),n.length>=t))break}return n.length>0?n:void 0}function xo(e){return{q:typeof e.q=="string"&&e.q?e.q:void 0,remoteOption:mt.includes(e.remoteOption)?e.remoteOption:void 0,employmentType:dt.includes(e.employmentType)?e.employmentType:void 0,seniority:gt(e.seniority),company:ht(e.company),category:bt(e.category),sort:ft.includes(e.sort)?e.sort:void 0}}var be={};A(be,{COMMUTE_RADIUS_MAX_KM:()=>eo,COMMUTE_RADIUS_MIN_KM:()=>Xt,COUNTRY_CODES:()=>Z,MILES_COUNTRIES:()=>fe,buildJobBreadcrumbs:()=>W,countryOptions:()=>Wt,defaultCommuteRadiusKm:()=>no,defaultSearchRadius:()=>so,distanceUnitForCountry:()=>oo,distanceUnitToKm:()=>X,formatDate:()=>Rt,formatDistance:()=>ao,formatMonthYear:()=>Bt,formatPublishedRelativeDate:()=>vt,formatSalaryRange:()=>Et,formatSalaryStat:()=>q,formatSalaryStatRange:()=>k,kmToDistanceUnit:()=>ro,kmToMiles:()=>he,milesToKm:()=>ge,normalizeWebsiteUrl:()=>U,resolveCustomFieldDisplay:()=>Zt,searchRadiusOptions:()=>io});function C(e){let t=e.trim();if(!t)return null;try{let o=t.replace(/_/g,"-"),[n]=Intl.getCanonicalLocales(o);if(!n)return null;let[r]=Intl.NumberFormat.supportedLocalesOf([n]);return r??null}catch{return null}}var Ct=new Map,Ot=new Map,_t=new Map,Pt=new Map;function Uo(e){let t=Ct.get(e);return t||(t=new Intl.RelativeTimeFormat(e,{numeric:"always",style:"short"}),Ct.set(e,t)),t}function Mo(e){let t=Ot.get(e);return t||(t=new Intl.RelativeTimeFormat(e,{numeric:"auto",style:"short"}),Ot.set(e,t)),t}function wo(e){let t=_t.get(e);return t||(t=new Intl.DateTimeFormat(e,{dateStyle:"medium",timeZone:"UTC"}),_t.set(e,t)),t}function Jo(e){let t=Pt.get(e);return t||(t=new Intl.DateTimeFormat(e,{month:"short",year:"numeric",timeZone:"UTC"}),Pt.set(e,t)),t}function ae(e,t,o){try{return Uo(o).format(e,t)}catch{return null}}function Rt(e,t){if(!t)return null;let o=new Date(t);if(Number.isNaN(o.getTime()))return null;let n=C(e);if(!n)return null;try{return wo(n).format(o)}catch{return o.toISOString().split("T")[0]}}function vt(e,t,o=Date.now()){if(!t)return null;let n=new Date(t);if(Number.isNaN(n.getTime()))return null;let r=C(e);if(!r)return null;let i=o-n.getTime(),s=Math.abs(i),a=60*1e3,l=60*a,c=24*l,p=7*c,m=30*c,d=365*c;if(s<a)try{return Mo(r).format(0,"second")}catch{return ae(0,"second",r)}let y=[{unit:"year",ms:d},{unit:"month",ms:m},{unit:"week",ms:p},{unit:"day",ms:c},{unit:"hour",ms:l},{unit:"minute",ms:a}];for(let h of y)if(s>=h.ms){let R=Math.round(s/h.ms),u=i>=0?-R:R;return ae(u,h.unit,r)}let g=Math.round(s/1e3),O=i>=0?-g:g;return ae(O,"second",r)}function Bt(e,t){if(!t)return null;let n=/^\d{4}-\d{2}(-\d{2})?$/.test(t)?new Date(t.length===7?`${t}-01T00:00:00.000Z`:`${t}T00:00:00.000Z`):new Date(t);if(Number.isNaN(n.getTime()))return null;let r=C(e);if(!r)return null;try{return Jo(r).format(n)}catch{return null}}var j=new Map;function le(e,t,o,n="symbol",r="compact"){let i=`${t}:${o}:${n}:${r}`,s=j.get(i);if(s===void 0){try{let a={style:"currency",currency:o,currencyDisplay:n,notation:r};r==="compact"&&(a.compactDisplay="short",a.maximumFractionDigits=1,a.minimumFractionDigits=0),s=new Intl.NumberFormat(t,a)}catch{s=null}j.set(i,s)}return s?s.format(e):null}function ce(e,t,o){if(typeof e.formatRange=="function")try{return e.formatRange(t,o)}catch{}try{return`${e.format(t)}\u2013${e.format(o)}`}catch{return null}}function No(e,t,o,n,r="symbol",i="compact"){let s=`${o}:${n}:${r}:${i}:range`,a=j.get(s);if(a===void 0){try{let l={style:"currency",currency:n,currencyDisplay:r,notation:i};i==="compact"&&(l.compactDisplay="short",l.maximumFractionDigits=1,l.minimumFractionDigits=0),a=new Intl.NumberFormat(o,l)}catch{a=null}j.set(s,a)}return a?ce(a,e,t):null}var Do=new Set(["per_year","per_month","per_week","per_day","per_hour"]);function $o(...e){let t=!1;for(let o of e)if(!(o==null||!Number.isFinite(o))&&(t=!0,Math.abs(o)>=1e3))return"compact";return t?"standard":"compact"}function Et(e,t,o,n,r=null,i="symbol",s){let a=t==null||Number.isFinite(t),l=o==null||Number.isFinite(o);if(!a||!l||t==null&&o==null)return null;let c=r?.trim().toUpperCase()||null;if(!c)return null;let p=C(e);if(!p)return null;let m=s??$o(t,o),d=typeof n=="string"&&Do.has(n)?n:null;if(t!=null&&o!=null){let g=t<=o?t:o,O=t<=o?o:t,h=g===O?le(g,p,c,i,m):No(g,O,p,c,i,m);return h?{text:h,timeframe:d,bound:"range"}:null}if(t!=null){let g=le(t,p,c,i,m);return g?{text:g,timeframe:d,bound:"from"}:null}let y=le(o,p,c,i,m);return y?{text:y,timeframe:d,bound:"upTo"}:null}var At=new Map;function Tt(...e){let t=!1;for(let o of e)if(!(o==null||!Number.isFinite(o))&&(t=!0,Math.abs(o)>=1e3))return"compact";return t?"standard":"compact"}function Lt(e,t,o){let n=`${e}:${t}:${o}`,r=At.get(n);if(r!==void 0)return r;let i;try{let s={style:"currency",currency:t,notation:o};o==="compact"&&(s.compactDisplay="short",s.minimumFractionDigits=0,s.maximumFractionDigits=1),i=new Intl.NumberFormat(e,s)}catch{i=null}return At.set(n,i),i}function q(e,t,o,n){if(!Number.isFinite(t))return null;let r=o?.trim().toUpperCase()||null;if(!r)return null;let i=C(e);if(!i)return null;let s=n??Tt(t),a=Lt(i,r,s);return a?a.format(t):null}function k(e,t,o,n,r){if(!Number.isFinite(t)||!Number.isFinite(o))return null;let i=n?.trim().toUpperCase()||null;if(!i)return null;let s=C(e);if(!s)return null;let a=r??Tt(t,o),l=Lt(s,i,a);if(!l)return null;let c=Math.min(t,o),p=Math.max(t,o);return c===p?l.format(c):ce(l,c,p)}var Q=["entry_level","associate","mid_level","senior","lead","principal","director","executive"];function It(e){return[...e].sort((t,o)=>{let n=Q.indexOf(t.seniority),r=Q.indexOf(o.seniority);return(n===-1?999:n)-(r===-1?999:r)})}var jo={unitText:"YEAR",duration:"P1Y"};function x(e,t,o,n,r={}){return{"@type":"MonetaryAmountDistribution",...e!==void 0?{name:e}:{},currency:t,minValue:o,maxValue:n,...r,...jo}}function pe(e,t,o,n){return e.map(r=>{let i=n?.seniorityName?.({seniority:r.seniority,entity:o});return x(i,t,r.avgSalaryMin,r.avgSalaryMax)})}function G(e,t,o,n){return{"@context":"https://schema.org","@type":e,name:t,...o,estimatedSalary:n}}function Ft(e,t,o,n){if(!o)return[];let r=k(e,o.avgMin,o.avgMax,n);return[{kind:"average",label:t,range:r,avgMin:o.avgMin,avgMax:o.avgMax,currency:n,jobCount:o.jobCount},{kind:"methodology",label:t}]}function H(e){return e.length===0?null:{"@context":"https://schema.org","@type":"ItemList",numberOfItems:e.length,itemListElement:e.map((t,o)=>({"@type":"ListItem",position:o+1,name:t.name,url:t.url}))}}function kt(e){return e.length===0?null:{"@context":"https://schema.org","@type":"FAQPage",mainEntity:e.map(t=>({"@type":"Question",name:t.q,acceptedAnswer:{"@type":"Answer",text:t.a}}))}}function xt(e,t){return e.overallSalary?G("Occupation",e.categoryName,{},[x(e.categoryName,e.currency,e.overallSalary.avgMin,e.overallSalary.avgMax,{...e.boardP25Min?{percentile25:e.boardP25Min}:{},...e.boardP75Max?{percentile75:e.boardP75Max}:{}}),...pe(e.bySeniority,e.currency,e.categoryName,t)]):null}function Ut(e){return e.overallSalary?G("Occupation",e.skillName,{},[x(e.skillName,e.currency,e.overallSalary.avgMin,e.overallSalary.avgMax,{median:Math.round((e.overallSalary.medianMin+e.overallSalary.medianMax)/2)})]):null}function Mt(e,t){return!t?.occupationUrl||!(e.adminLevel==="city"||e.adminLevel==="locality")?null:H(e.topCategories.map(n=>({name:n.categoryName,url:t.occupationUrl(n)})))}function wt(e,t){return e.overall?G("Occupation",e.name,{occupationLocation:{"@type":"AdministrativeArea",name:e.placeName,address:{"@type":"PostalAddress",addressCountry:e.countryCode}}},[x(e.name,e.currency,e.overall.avgMin,e.overall.avgMax,{...e.overall.p25Min?{percentile25:e.overall.p25Min}:{},...e.overall.p75Max?{percentile75:e.overall.p75Max}:{}}),...pe(e.bySeniority,e.currency,e.name,t)]):null}function Jt(e,t){return t?.occupationUrl?H(e.byCategory.map(o=>({name:o.categoryName,url:t.occupationUrl(o)}))):null}function Nt(e,t){return e.overallSalary?G("Occupation",e.categoryName,{occupationalCategory:e.categoryName,hiringOrganization:{"@type":"Organization",name:e.companyName}},[x(e.categoryName,e.currency,e.overallSalary.avgMin,e.overallSalary.avgMax,{...e.boardCategoryP25Min?{percentile25:e.boardCategoryP25Min}:{},...e.boardCategoryP75Max?{percentile75:e.boardCategoryP75Max}:{}}),...pe(e.bySeniority,e.currency,e.categoryName,t)]):null}function jt(e,t){return e.company?.name??t.legalName??t.contact?.legalName??t.name??null}var Dt={high_school:"high school",associate_degree:"associate degree",bachelor_degree:"bachelor degree",professional_certificate:"professional certificate",postgraduate_degree:"postgraduate degree"},Qo={full_time:"FULL_TIME",part_time:"PART_TIME",contract:"CONTRACTOR",internship:"INTERN",temporary:"TEMPORARY",volunteer:"VOLUNTEER",other:"OTHER"},qo={per_year:"YEAR",per_month:"MONTH",per_week:"WEEK",per_day:"DAY",per_hour:"HOUR"},me=["AF","AX","AL","DZ","AS","AD","AO","AI","AQ","AG","AR","AM","AW","AU","AT","AZ","BS","BH","BD","BB","BY","BE","BZ","BJ","BM","BT","BO","BA","BW","BV","BR","IO","VG","BN","BG","BF","BI","KH","CM","CA","CV","BQ","KY","CF","TD","CL","CN","CX","CC","CO","KM","CK","CR","HR","CU","CW","CY","CZ","DK","DJ","DM","DO","CD","EC","EG","SV","GQ","ER","EE","SZ","ET","FK","FO","FJ","FI","FR","GF","PF","TF","GA","GM","GE","DE","GH","GI","GR","GL","GD","GP","GU","GT","GG","GN","GW","GY","HT","HM","HN","HK","HU","IS","IN","ID","IR","IQ","IE","IM","IL","IT","CI","JM","JP","JE","JO","KZ","KE","KI","XK","KW","KG","LA","LV","LB","LS","LR","LY","LI","LT","LU","MO","MG","MW","MY","MV","ML","MT","MH","MQ","MR","MU","YT","MX","FM","MD","MC","MN","ME","MS","MA","MZ","MM","NA","NR","NP","NL","NC","NZ","NI","NE","NG","NU","NF","MK","MP","NO","OM","PK","PW","PS","PA","PG","PY","PE","PH","PN","PL","PT","PR","QA","CG","RE","RO","RU","RW","BL","SH","KN","LC","MF","PM","VC","WS","SM","ST","SA","SN","RS","SC","SL","SG","SX","SK","SI","SB","SO","ZA","GS","KR","SS","ES","LK","SD","SR","SJ","SE","CH","SY","TW","TJ","TZ","TH","TL","TG","TK","TO","TT","TN","TR","TM","TC","TV","UG","UA","AE","GB","US","UM","VI","UY","UZ","VU","VA","VE","VN","WF","EH","YE","ZM","ZW"];function Qt({job:e,board:t,shareUrl:o}){let n=Wo(e),r=Zo(e),i=ue({"@context":"https://schema.org/","@type":"JobPosting",title:e.title,description:e.description??"",identifier:Go(e,t),datePosted:$t(e.publishedAt),validThrough:$t(e.expiresAt),employmentType:e.employmentType?Qo[e.employmentType]??"OTHER":"OTHER",hiringOrganization:Ho(e,t),jobLocation:Vo(e),jobLocationType:e.remoteOption==="remote"?"TELECOMMUTE":void 0,applicantLocationRequirements:e.remoteOption==="remote"?zo(e):null,baseSalary:Ko(e),educationRequirements:n,experienceRequirements:r,experienceInPlaceOfEducation:e.experienceInPlaceOfEducation===!0&&n&&r?!0:void 0,url:o});return!i||Array.isArray(i)||Object.keys(i).length===0?null:i}function Go(e,t){let o=jt(e,t),n={"@type":"PropertyValue",value:e.id};return o&&(n.name=o),n}function Ho(e,t){let o=jt(e,t);if(!o)return null;let n={"@type":"Organization",name:o},r=e.company?.website??null,i=r?U(r):null;i&&(n.sameAs=i);let s=e.company?.logoUrl??t.logoUrl??null;return s&&(n.logo=s),n}function U(e){let t=e.trim();return t?/^https?:\/\//i.test(t)?t:`https://${t}`:null}function Ko(e){let t=e.salaryCurrency?.trim(),o=typeof e.salaryMin=="number",n=typeof e.salaryMax=="number";if(!t||!o&&!n)return null;let r={"@type":"QuantitativeValue"};o&&(r.minValue=e.salaryMin),n&&(r.maxValue=e.salaryMax);let i=e.salaryTimeframe?qo[e.salaryTimeframe]:void 0;return i&&(r.unitText=i),!o&&n&&typeof e.salaryMax=="number"?(r.value=e.salaryMax,r.minValue=e.salaryMax):!n&&o&&typeof e.salaryMin=="number"&&(r.value=e.salaryMin,r.maxValue=e.salaryMin),{"@type":"MonetaryAmount",currency:t.toUpperCase(),value:r}}function Vo(e){let t=e.officeLocations.map(o=>Yo({countryCode:o.countryCode,region:o.region,locality:o.city??o.locality,postalCode:o.postalCode,name:o.displayName})).filter(o=>o!==null);return t.length===0?null:t.length===1?t[0]:t}function Yo({countryCode:e,region:t,locality:o,postalCode:n,name:r}){let i={"@type":"PostalAddress"},s=e?.trim(),a=t?.trim(),l=o?.trim(),c=n?.trim(),p=r?.trim();s&&(i.addressCountry=s.toUpperCase()),a&&(i.addressRegion=a),l&&(i.addressLocality=l),c&&(i.postalCode=c);let m=Object.keys(i).length>1;if(!m&&!p)return null;let d={"@type":"Place"};return p&&(d.name=p),m&&(d.address=i),d}function zo(e){if(e.remoteWorldwide)return me.map(n=>({"@type":"Country",name:n}));let t=[],o=new Set;for(let n of e.remoteWorkPermitCountryCodes??[]){let r=n?.trim().toUpperCase();!r||o.has(r)||(o.add(r),t.push({"@type":"Country",name:r}))}for(let n of e.remoteWorkPermitSubdivisionCodes??[]){let r=n?.split("-")[0]?.trim().toUpperCase();!r||o.has(r)||(o.add(r),t.push({"@type":"Country",name:r}))}return t.length===0?null:t.length===1?t[0]:t}function Wo(e){let t=e.educationRequirements;if(!t||t.length===0)return null;if(t.includes("no_requirements"))return"no requirements";let o=t.filter(n=>n in Dt).map(n=>({"@type":"EducationalOccupationalCredential",credentialCategory:Dt[n]}));return o.length>0?o:null}function Zo(e){let t=e.experienceMonths;return typeof t!="number"?null:t===0?"no requirements":{"@type":"OccupationalExperienceRequirements",monthsOfExperience:t}}function $t(e){if(!e)return null;let t=new Date(e);return Number.isNaN(t.getTime())?null:t.toISOString()}function ue(e){let t=o=>o==null?!1:Array.isArray(o)?o.length>0:typeof o=="object"?Object.keys(o).length>0:!0;if(Array.isArray(e))return e.map(o=>ue(o)).filter(t);if(e&&typeof e=="object"){let o=Object.entries(e).map(([n,r])=>[n,ue(r)]).filter(([,n])=>t(n));return Object.fromEntries(o)}return e}var ye={};A(ye,{BOARD_PATHS:()=>Y,blogAuthorPath:()=>rn,blogPostPath:()=>Vt,blogTagPath:()=>Yt,boardUrl:()=>z,companyMarketPath:()=>Kt,companyPath:()=>Ht,companySalaryPath:()=>en,encodePathSegment:()=>f,goAlertsConfirmPath:()=>pn,goAlertsManagePath:()=>cn,goJobPath:()=>ln,jobDetailPath:()=>de,jobsCategoryPath:()=>K,jobsLocationCategoryPath:()=>V,jobsLocationPath:()=>M,jobsLocationSkillPath:()=>Gt,jobsSkillPath:()=>qt,salaryLocationPath:()=>nn,salarySkillPath:()=>on,salaryTitlePath:()=>tn,suggestionPath:()=>Xo,talentLocationPath:()=>an,talentProfilePath:()=>sn});function f(e){try{return encodeURIComponent(decodeURIComponent(e)).replace(/%3A/gi,":")}catch{return encodeURIComponent(e).replace(/%3A/gi,":")}}function de(e,t){return`/companies/${f(e)}/jobs/${f(t)}`}function K(e){return`/jobs/${f(e)}`}function qt(e){return`/jobs/skills/${f(e)}`}function M(e){return`/jobs/locations/${f(e)}`}function V(e,t){return`${M(e)}/${f(t)}`}function Gt(e,t){return`${M(e)}/skills/${f(t)}`}function Ht(e){return`/companies/${f(e)}`}function Kt(e){return`/companies/markets/${f(e)}`}function Xo(e,t){let o=t.location?.trim()||void 0;return t.scope==="blog"?e.type==="post"?Vt(e.slug):e.type==="tag"?Yt(e.slug):null:t.scope==="jobs"?e.type==="company"||e.type==="market"||e.type==="post"||e.type==="tag"?null:e.termType==="skill"?o?Gt(o,e.canonicalSlug):qt(e.canonicalSlug):o?V(o,e.canonicalSlug):K(e.canonicalSlug):e.type==="company"?Ht(e.slug):e.type==="market"?Kt(e.slug):null}function en(e){return`/companies/${f(e)}/salaries`}function tn(e){return`/salaries/titles/${f(e)}`}function on(e){return`/salaries/skills/${f(e)}`}function nn(e){return`/salaries/locations/${f(e)}`}function Vt(e){return`/blog/${f(e)}`}function Yt(e){return`/blog/tag/${f(e)}`}function rn(e){return`/blog/author/${f(e)}`}function sn(e){return`/p/${f(e)}`}function an(e){return`/talent/locations/${f(e)}`}var Y={home:"/",jobs:"/jobs",companies:"/companies",salaries:"/salaries",salaryCompanies:"/salaries/companies",salaryTitles:"/salaries/titles",salarySkills:"/salaries/skills",salaryLocations:"/salaries/locations",blog:"/blog",about:"/about",privacyPolicy:"/privacy-policy",termsOfService:"/terms-of-service",cookiePolicy:"/cookie-policy",impressum:"/impressum",talent:"/talent",talentLocations:"/talent/locations",employers:"/employers",alertsManage:"/alerts/manage",alertsConfirm:"/alerts/confirm"};function ln(e){return`/go/job/${e}`}function cn(){return"/go/alerts-manage"}function pn(){return"/go/alerts-confirm"}function z(e,t){return`${e.replace(/\/+$/,"")}${t}`}function zt(e,t={}){let o=e.map(r=>{let i=r.label?.trim();return i?{name:i,href:r.href?.trim()??null}:null}).filter(r=>!!r);return o.length<2?null:{"@context":"https://schema.org","@type":"BreadcrumbList",itemListElement:o.map((r,i)=>{let s=r.href?un(r.href,t.origin??null):null,a={"@type":"ListItem",position:i+1,name:r.name};return s&&(a.item=s),a})}}function un(e,t){if(mn(e))return e;if(!t)return null;let o=e.startsWith("/")?e:`/${e}`;return`${t}${o}`}function mn(e){return/^https?:\/\//i.test(e)}function W(e){let t=[{kind:"home",path:Y.home},{kind:"jobs",path:Y.jobs}],o=null;for(let r of e.placeHierarchy)o=r.canonicalSlug,t.push({kind:"place",name:r.name,path:M(r.canonicalSlug)});let n=e.categories[0];return n&&t.push({kind:"category",name:n.name,path:o?V(o,n.slug):K(n.slug)}),t.push({kind:"job",name:e.title}),t}var Z=["AD","AE","AF","AG","AI","AL","AM","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CR","CU","CV","CW","CX","CY","CZ","DE","DJ","DK","DM","DO","DZ","EC","EE","EG","EH","ER","ES","ET","FI","FJ","FK","FM","FO","FR","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SV","SX","SY","SZ","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TR","TT","TV","TW","TZ","UA","UG","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XK","YE","YT","ZA","ZM","ZW"];function dn(e){try{return new Intl.DisplayNames([e],{type:"region"})}catch{return null}}function yn(e){try{return new Intl.Collator(e)}catch{return new Intl.Collator}}function Wt(e){let t=C(e);if(!t)return Z.map(r=>({code:r,name:r})).sort((r,i)=>r.code<i.code?-1:r.code>i.code?1:0);let o=dn(t),n=yn(t).compare;return Z.map(r=>({code:r,name:o?.of(r)??r})).sort((r,i)=>n(r.name,i.name))}function fn(e,t){if(!Array.isArray(t)||t.length===0)return null;let o=t.map(n=>e.options?.find(r=>r.key===n)?.label).filter(n=>!!n);return o.length>0?o:null}function gn(e,t){switch(e.type){case"number":return null;case"multi_select":return null;case"single_select":return typeof t!="string"?null:e.options?.find(o=>o.key===t)?.label??null;default:return typeof t=="string"&&t.trim()!==""?t:null}}function Zt(e,t,o){let n=[];for(let r of t??[]){let i=o?.[r.key];if(r.type==="boolean"){typeof i=="boolean"&&n.push({key:r.key,label:r.label,kind:"boolean",value:i});continue}if(r.type==="number"){typeof i=="number"&&Number.isFinite(i)&&n.push({key:r.key,label:r.label,kind:"number",value:i});continue}if(r.type==="multi_select"){let a=fn(r,i);a&&n.push({key:r.key,label:r.label,kind:"multi_select",values:a});continue}let s=gn(r,i);s!==null&&n.push({key:r.key,label:r.label,kind:"text",value:s})}return n}var fe=["US","GB","LR","MM"],Xt=1,eo=250;var hn=new Set(fe);function to(e){return typeof e=="string"&&hn.has(e.trim().toUpperCase())}function oo(e){return to(e)?"mi":"km"}function no(e){return to(e)?40:50}function ge(e){return e*1.609344}function he(e){return e/1.609344}function ro(e,t){return t==="mi"?he(e):e}function X(e,t){return t==="mi"?ge(e):e}var bn=[5,10,25,50,100];function io(e){return bn.map(t=>({value:t,unit:e,km:X(t,e)}))}function so(e){let t=e==="mi"?25:50;return{value:t,unit:e,km:X(t,e)}}function ao(e,t,o){return new Intl.NumberFormat(o,{style:"unit",unit:t==="mi"?"mile":"kilometer",unitDisplay:"short",maximumFractionDigits:1}).format(e)}var Se={};A(Se,{ALL_COUNTRY_CODES:()=>me,SENIORITY_ORDER:()=>Q,buildJobBreadcrumbs:()=>W,buildSalaryFaq:()=>Ft,companyCategorySalaryJsonLd:()=>Nt,companySalaryJsonLd:()=>Jt,createAuthorProfileJsonLd:()=>co,createBlogArticleJsonLd:()=>lo,createBreadcrumbJsonLd:()=>zt,createJobPostingJsonLd:()=>Qt,crossAxisSalaryJsonLd:()=>wt,faqJsonLd:()=>kt,formatSalaryStat:()=>q,formatSalaryStatRange:()=>k,itemListJsonLd:()=>H,listingHead:()=>po,listingJsonLd:()=>uo,locationSalaryJsonLd:()=>Mt,normalizeWebsiteUrl:()=>U,skillSalaryJsonLd:()=>Ut,sortBySeniority:()=>It,titleSalaryJsonLd:()=>xt});function lo({post:e,boardName:t,permalink:o,ogImageUrl:n}){let r={"@context":"https://schema.org","@type":"Article",headline:e.title,url:o,mainEntityOfPage:{"@type":"WebPage","@id":o},publisher:{"@type":"Organization",name:t}};e.customExcerpt&&(r.description=e.customExcerpt),e.publishedAt&&(r.datePublished=e.publishedAt);let i=e.coverUrl??n;i&&(r.image=i);let s=e.authors[0];return s&&(r.author={"@type":"Person",name:s.name,...s.websiteUrl?{url:s.websiteUrl}:{}}),r}function co({author:e,canonical:t,description:o,origin:n,posts:r,totalPosts:i}){if(!e.name)return null;let s=o.trim(),a=[ee(e.websiteUrl),ee(e.twitterUrl),ee(e.linkedinUrl),ee(e.githubUrl)].filter(d=>!!d),l=`${t}#profile`,c=r.slice(0,5).map(d=>{let y=Sn(n,`/blog/${d.slug}`);return y?{"@type":"Article",headline:d.title,url:y,datePublished:d.publishedAt,author:{"@id":l}}:null}).filter(d=>d!==null),p=i>0?{"@type":"InteractionCounter",interactionType:"https://schema.org/WriteAction",userInteractionCount:i}:void 0,m={"@context":"https://schema.org","@type":"ProfilePage",url:t,mainEntity:{"@type":"Person","@id":l,name:e.name,alternateName:e.slug??void 0,identifier:e.id??void 0,description:s||void 0,image:e.avatarUrl??void 0,sameAs:a.length>0?a:void 0,url:t,mainEntityOfPage:t,agentInteractionStatistic:p}};return c.length>0&&(m.hasPart=c),m}function ee(e){if(!e)return null;let t=e.trim();if(!t)return null;try{let o=t.startsWith("http://")||t.startsWith("https://")?t:`https://${t}`;return new URL(o).toString()}catch{return null}}function Sn(e,t){if(!e||!t)return null;try{return new URL(t,e).toString()}catch{return null}}function po(e){let t=e.title,o=e.description,n=`${e.origin}${e.path}`;return{meta:[{title:t},{name:"description",content:o},{property:"og:title",content:t},{property:"og:description",content:o},{property:"og:type",content:"website"},{property:"og:url",content:n}],links:[{rel:"canonical",href:n}]}}function uo(e){let t=[];e.breadcrumbs.length>=2&&t.push({"@context":"https://schema.org","@type":"BreadcrumbList",itemListElement:e.breadcrumbs.map((n,r)=>({"@type":"ListItem",position:r+1,name:n.name,...n.path?{item:z(e.origin,n.path)}:{}}))});let o=(e.jobs??[]).filter(n=>n.company!=null&&!!n.company.slug);return o.length>0&&t.push({"@context":"https://schema.org","@type":"ItemList",itemListElement:o.map((n,r)=>({"@type":"ListItem",position:r+1,url:z(e.origin,de(n.company.slug,n.slug))}))}),t}var Ce={};A(Ce,{createSuggestController:()=>_n});function Cn(e){return typeof DOMException<"u"&&e instanceof DOMException&&e.name==="AbortError"||e instanceof Error&&e.name==="AbortError"}function On(e){try{let t=0;for(let o of new Intl.Segmenter(void 0,{granularity:"grapheme"}).segment(e))t+=1;return t}catch{return[...e].length}}function mo(e,t){return t.size===0?e.slice():e.filter(o=>!(o.type==="company"&&t.has(o.slug.toLowerCase().normalize("NFC"))))}function _n(e,t){let o=t?.minChars??2,n=t?.debounceMs??250,r=t?.limit,i=!1,s={query:"",items:[],status:"idle",error:null},a=[],l=new Set,c=0,p=null,m=null,d=new Set;function y(){for(let u of d)u()}function g(u){s=u,y()}function O(){p!==null&&(globalThis.clearTimeout(p),p=null)}function h(){m&&(m.abort(),m=null)}function R(u){let b=++c;h();let _=new AbortController;m=_;let E={q:u};r!==void 0&&(E.limit=r),e.search.suggest(E,{signal:_.signal}).then(v=>{i||b!==c||(m=null,a=v.items,g({query:s.query,items:mo(a,l),status:"ready",error:null}))}).catch(v=>{i||b!==c||Cn(v)||(m=null,g({query:s.query,items:s.items,status:"error",error:v}))})}return{setQuery(u){if(i)return;let b=u.trim();if(O(),On(b)<o){c+=1,h(),a=[],g({query:u,items:[],status:"idle",error:null});return}c+=1,h(),g({query:u,items:s.items,status:"loading",error:null}),p=globalThis.setTimeout(()=>{p=null,!i&&R(b)},n)},setExcludedCompanySlugs(u){i||(l=new Set(u.map(b=>b.trim().toLowerCase().normalize("NFC")).filter(Boolean)),g({query:s.query,items:mo(a,l),status:s.status,error:s.error}))},getState(){return s},subscribe(u){return i?()=>{}:(d.add(u),()=>{d.delete(u)})},dispose(){i||(i=!0,O(),h(),c+=1,d.clear())}}}return So(Pn);})();
|
|
1
|
+
"use strict";var CavunoBoard=(()=>{var w=Object.defineProperty;var yo=Object.getOwnPropertyDescriptor;var fo=Object.getOwnPropertyNames;var go=Object.prototype.hasOwnProperty;var ho=(e,t,o)=>t in e?w(e,t,{enumerable:!0,configurable:!0,writable:!0,value:o}):e[t]=o;var A=(e,t)=>{for(var o in t)w(e,o,{get:t[o],enumerable:!0})},bo=(e,t,o,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of fo(t))!go.call(e,r)&&r!==o&&w(e,r,{get:()=>t[r],enumerable:!(n=yo(t,r))||n.enumerable});return e};var So=e=>bo(w({},"__esModule",{value:!0}),e);var P=(e,t,o)=>ho(e,typeof t!="symbol"?t+"":t,o);var Pn={};A(Pn,{ACCESS_TOKEN_KEY:()=>T,BOARD_ACCESS_GRANT_KEY:()=>I,BOARD_API_ERROR_CODES:()=>Oe,BoardApiError:()=>E,BoardClient:()=>F,REFRESH_TOKEN_KEY:()=>L,SDK_VERSION:()=>$,SIGN_IN_REDIRECT_ERROR_CODES:()=>we,SSO_LINK_PROOF_BINDING_TTL_MS:()=>ne,createBoardClient:()=>Io,filters:()=>se,format:()=>be,isBoardApiError:()=>S,isBoardPasswordRequired:()=>Re,isColdRule:()=>ct,isConflict:()=>Ae,isForbidden:()=>ve,isFreeEmailWebsiteError:()=>Te,isNotFound:()=>_e,isOwnMessage:()=>lt,isRateLimited:()=>Be,isSafeApplicationUrl:()=>re,isSignInMethodUnavailable:()=>oe,isSsoBrowserMismatch:()=>Ie,isSsoRequired:()=>Le,isUnauthorized:()=>Pe,isValidationError:()=>Ee,lastOwnMessageId:()=>pt,paginate:()=>at,parseOAuthCompletion:()=>Je,paths:()=>ye,resolveApplyAction:()=>ut,resolveApplyDecision:()=>ie,seo:()=>Se,ssoLinkProofBindingStore:()=>D,suggest:()=>Ce});var Oe=["internal_error","validation_bad_request","validation_payload_too_large","rate_limited","rate_limit_unavailable","search_unavailable","search_filter_unavailable","too_many_filter_values","pagination_invalid_cursor","pagination_offset_too_large","auth_unauthenticated","auth_forbidden","plan_upgrade_required","unknown_error","boards_not_found","board_page_not_found","board_auth_account_not_found","board_auth_email_taken","board_auth_invalid_credentials","board_auth_invalid_token","board_auth_registration_disabled","board_auth_token_expired","board_development_origin_not_allowed_for_email","board_development_origin_not_registered","board_development_origin_requires_publishable_key","sso_required","board_auth_method_unavailable","board_auth_sso_connection_not_found","board_auth_sso_role_unavailable","board_auth_sso_provider_unavailable","board_auth_sso_browser_mismatch","board_auth_sso_not_provisioned","board_auth_sso_identity_linked_elsewhere","invalid_current_password","no_password","same_email","email_taken","invalid_token","board_password_required","board_password_invalid","jobs_not_found","jobs_invalid_filter","categories_not_found","skills_not_found","places_not_found","locations_invalid_id","locations_unavailable","companies_not_found","company_markets_not_found","company_salary_not_found","company_category_salary_not_found","salaries_title_not_found","salaries_skill_not_found","salaries_location_not_found","salaries_title_location_not_found","salaries_skill_location_not_found","blog_post_not_found","blog_author_not_found","blog_tag_not_found","feeds_not_found","feed_not_ready","talent_not_found","talent_directory_not_found","talent_directory_restricted","job_recommendations_not_found","recommended_talent_not_found","job_alert_not_found","job_alerts_disabled","candidate_alert_limit_reached","candidate_alert_not_found","candidate_entry_not_found","candidate_handle_taken","candidate_job_not_found","candidate_notification_preference_paused","candidate_profile_required","resume_invalid_file","resume_upload_forbidden","applications_external_apply_only","applications_country_not_allowed","applications_guest_not_allowed","applications_job_not_found","applications_not_found","applications_resume_invalid_file","applications_unprocessable","messaging_application_not_found","messaging_application_not_linked","messaging_blocked","messaging_cannot_block_self","messaging_cold_rule","messaging_conversation_not_found","messaging_disabled","messaging_edit_window_expired","messaging_message_deleted","messaging_message_not_found","messaging_not_author","messaging_not_participant","messaging_not_permitted","messaging_not_recipient","messaging_rate_limited","messaging_recipient_not_found","messaging_recipient_not_open","messaging_unsend_window_expired","employer_applicant_not_found","employer_ats_unprocessable","employer_checkout_failed","employer_company_exists","employer_free_email_website","employer_company_name_taken","employer_company_not_found","employer_job_not_found","employer_job_slug_taken","employer_jobs_quota_exceeded","membership_required","employer_not_member","employer_payment_required","employer_pipeline_stage_not_found","employer_member_not_found","employer_invite_not_found","not_company_admin","not_company_member","company_deletion_disabled","last_admin","already_member","already_invited","invalid_email","invite_email_mismatch","candidate_role","job_not_published","talent_list_not_found","sourced_candidate_not_found","sourced_convert_unavailable","talent_list_full","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"],E=class extends Error{constructor(o){super(o.message);P(this,"status");P(this,"code");P(this,"details");P(this,"requestId");P(this,"raw");this.name="BoardApiError",this.status=o.status,this.code=o.code,this.details=o.details,this.requestId=o.requestId,this.raw=o.raw}};function S(e){return e instanceof Error&&e.name==="BoardApiError"&&typeof e.status=="number"&&typeof e.code=="string"}function _e(e){return S(e)&&e.status===404}function Pe(e){return S(e)&&e.status===401}function Re(e){return S(e)&&e.status===401&&e.code==="board_password_required"}function ve(e){return S(e)&&e.status===403}function Ee(e){return S(e)&&e.status===400&&e.code==="validation_bad_request"}function Be(e){return S(e)&&e.status===429}function Ae(e){return S(e)&&e.status===409}function Te(e){return S(e)&&e.status===422&&e.code==="employer_free_email_website"}function Le(e){if(!S(e)||e.status!==403)return!1;let t=e.details?.connectionIds;return Array.isArray(t)&&t.every(o=>typeof o=="string")&&(e.code==="sso_required"||oe(e)&&e.details.availableMethods.methods.length===0)}function oe(e){if(!S(e)||e.status!==403||e.code!=="board_auth_method_unavailable")return!1;let t=e.details?.availableMethods;if(!t||typeof t!="object")return!1;let{methods:o,ssoConnectionIds:n}=t;return Array.isArray(o)&&o.every(r=>typeof r=="string")&&Array.isArray(n)&&n.every(r=>typeof r=="string")}function Ie(e){return S(e)&&e.status===403&&e.code==="board_auth_sso_browser_mismatch"}function Fe(e){let t=new URLSearchParams;if(!e)return t;for(let[o,n]of Object.entries(e))if(n!=null)if(Array.isArray(n))for(let r of n)r!=null&&t.append(o,String(r));else t.append(o,String(n));return t}function J(e){let t=5381;for(let n=0;n<e.length;n++)t=(t<<5)+t+e.charCodeAt(n)>>>0;return`${e.replace(/[^a-zA-Z0-9_-]/g,"_")}-${t.toString(36)}`}var T="cavuno_board_access_token",L="cavuno_board_refresh_token",I="cavuno_board_access_grant";function ke(){return typeof globalThis.document<"u"}function Co(){let e=new Map;return{getItem:t=>e.get(t)??null,setItem:(t,o)=>{e.set(t,o)},removeItem:t=>{e.delete(t)}}}function Oo(e,t){if(!ke())throw new Error(`storage mode '${e}' is browser-only \u2014 use 'nostore' + per-call headers on the server`);let o;try{if(o=e==="local"?globalThis.localStorage:globalThis.sessionStorage,!o)throw new Error("unavailable")}catch{throw new Error(`storage mode '${e}' is unavailable in this browsing context (storage access is blocked \u2014 e.g. a sandboxed or third-party iframe). Use 'memory', or 'nostore' + per-call headers.`)}let n=t?`:${J(t)}`:"";return{getItem:r=>o.getItem(`${r}${n}`),setItem:(r,i)=>{o.setItem(`${r}${n}`,i)},removeItem:r=>{o.removeItem(`${r}${n}`)}}}var _o=Symbol.for("@cavuno/board:nostore");var Po={[_o]:!0,getItem:()=>null,setItem:()=>{},removeItem:()=>{}};function xe(e,t){let o=e??(ke()?"memory":"nostore");if(typeof o=="object")return o;switch(o){case"memory":return Co();case"nostore":return Po;case"local":case"session":return Oo(o,t);default:throw new Error(`Unknown storage mode '${String(o)}'`)}}async function N(e,t){await e.setItem(T,t.accessToken),await e.setItem(L,t.refreshToken)}async function Ue(e){await e.removeItem(T),await e.removeItem(L)}var $="4.51.0";function Ro(e){return typeof e=="string"||e instanceof URLSearchParams||typeof FormData<"u"&&e instanceof FormData||typeof Blob<"u"&&e instanceof Blob||e instanceof ArrayBuffer||typeof ReadableStream<"u"&&e instanceof ReadableStream}function vo(e){try{let t=new URL(e);for(let o of new Set(t.searchParams.keys()))t.searchParams.delete(o),t.searchParams.set(o,"[REDACTED]");return t.toString()}catch{return e.replace(/([?&][^=&#]+)=([^&#]*)/g,"$1=[REDACTED]")}}var F=class{constructor(t){P(this,"storage");P(this,"basePath");P(this,"options");this.options=t,this.storage=t.storage;let o=t.baseUrl.replace(/\/+$/,"");this.basePath=`${o}/v1/boards/${encodeURIComponent(t.board)}`}async fetch(t,o={}){let{body:n,query:r,headers:i,...s}=o,a=(o.method??"GET").toUpperCase(),l=`${this.basePath}${t}`,p=Fe(r).toString();p&&(l+=`?${p}`);let m=n!==void 0&&!Ro(n),d=n===void 0?void 0:m?JSON.stringify(n):n,y=new Headers({accept:"application/json"});m&&y.set("content-type","application/json");for(let[v,te]of Object.entries(this.options.globalHeaders??{}))y.set(v,te);let g=await this.storage.getItem(T);g!==null&&y.set("authorization",`Bearer ${g}`);let O=await this.storage.getItem(I);O!==null&&y.set("x-board-access",O),i&&new Headers(i).forEach((v,te)=>{y.set(te,v)}),(a!=="GET"||y.has("authorization")||y.has("x-board-access"))&&!y.has("x-cavuno-sdk")&&y.set("x-cavuno-sdk",`board@${$}`);let h={url:l,init:{...s,method:a,headers:y,body:d}};this.options.onRequest&&(h=await this.options.onRequest(h));let R=vo(h.url);this.options.logger?.debug(`${a} ${R}`);let u=await globalThis.fetch(h.url,h.init);if(this.options.logger?.debug(`${u.status} ${a} ${R}`),this.options.onResponse&&await this.options.onResponse(u.clone(),h),u.status===204)return;if(u.ok)return await u.json();let b;try{b=await u.json()}catch{b=void 0}let _=b?.error,B=_&&typeof _.code=="string"&&typeof _.message=="string"?new E({status:u.status,code:_.code,message:_.message,details:_.details,requestId:_.requestId,raw:b}):new E({status:u.status,code:"unknown_error",message:u.statusText||"Request failed",raw:b});throw this.options.logger?.error(`${B.status} ${B.code} ${a} ${R}`),B}};var Me="https://api.cavuno.com";var we=["oauth_cancelled","oauth_failed","oauth_email_unverified","role_disabled","method_unavailable","sso_required","sso_state_invalid","sso_cancelled","sso_failed","sso_connection_unavailable","sso_not_provisioned","sso_email_required","sso_account_disabled","sso_identity_linked_elsewhere","sso_link_proof_rate_limited","sso_development_origin_not_allowed_for_email"];function Eo(e){if(e instanceof URLSearchParams)return e;if(typeof e=="string"){let o=e.includes("?")?e.slice(e.indexOf("?")):e;return new URLSearchParams(o)}let t=new URLSearchParams;for(let[o,n]of Object.entries(e))n!==void 0&&t.set(o,n);return t}function Bo(e){return!e||!e.startsWith("/")||e.startsWith("//")||e.startsWith("/\\")||e.includes("://")||/[\u0000-\u001F\u007F]/.test(e)?"/":e}function Ao(e){return e==="candidate"||e==="employer"?e:null}function Je(e){let t=Eo(e),o=c=>{let p=t.get(c);return p&&p.length>0?p:null},n=Bo(o("returnTo")),r=Ao(o("role")),i=o("error");if(i)return{kind:"error",error:i,returnTo:n};let s=o("linkProof");if(s)return{kind:"link_proof",linkProof:s,role:r,returnTo:n};let a=o("linkProofBinding");if(o("status")==="sso_link_proof_sent"&&a)return{kind:"link_proof_sent",linkProofBinding:a,role:r,returnTo:n};let l=o("token");return l?{kind:"token",token:l,method:o("method"),role:r,returnTo:n,isNewUser:o("isNew")==="1"}:{kind:"invalid",returnTo:n}}var ne=1500*1e3,To="cavuno_board_sso_link_proof_binding";function Lo(){try{return globalThis.localStorage??null}catch{return null}}function D(e,t={}){let o=`${To}:${J(e)}`,n=t.now??Date.now,r=()=>t.storage??Lo(),i=()=>{try{r()?.removeItem(o)}catch{}};return{begin(){let s=globalThis.crypto.getRandomValues(new Uint8Array(32)),a=Array.from(s,c=>c.toString(16).padStart(2,"0")).join(""),l=r();if(!l)throw new Error("SSO requires browser storage or an explicit browser proof");return l.setItem(o,JSON.stringify({binding:a,expiresAt:n()+ne})),a},save(s){},read(){let s=null;try{s=r()?.getItem(o)??null}catch{return null}if(!s)return null;try{let a=JSON.parse(s);if(typeof a.binding=="string"&&typeof a.expiresAt=="number"&&a.expiresAt>n())return a.binding}catch{}return i(),null},clear:i}}function Ne(e,t=""){let o=()=>D(t);async function n(i){return await N(e.storage,i),i}async function r(i){if(i?.refreshToken)return i.refreshToken;let s=await e.storage.getItem(L);if(s===null)throw new Error("No refresh token available \u2014 pass { refreshToken } or configure auth.storage");return s}return{async register(i,s){let a=await e.fetch("/auth/register",{...s,method:"POST",body:i});return n(a)},async login(i,s){let a=await e.fetch("/auth/login",{...s,method:"POST",body:i});return n(a)},async refresh(i,s){let a=await r(i),l=await e.fetch("/auth/refresh",{...s,method:"POST",body:{refreshToken:a}});return n(l)},async logout(i,s){let a=await r(i);await e.fetch("/auth/logout",{...s,method:"POST",body:{refreshToken:a}}),await Ue(e.storage)},verifyEmail(i,s){return e.fetch("/auth/verify-email",{...s,method:"POST",body:i})},verifyWorkEmail(i,s){return e.fetch("/auth/verify-work-email",{...s,method:"POST",body:i})},verifyEmailWithCode(i,s){return e.fetch("/auth/verify-email/otp",{...s,method:"POST",body:i})},resendVerification(i){return e.fetch("/auth/verify-email/resend",{...i,method:"POST"})},forgotPassword(i,s){return e.fetch("/auth/forgot-password",{...s,method:"POST",body:i})},resetPassword(i,s){return e.fetch("/auth/reset-password",{...s,method:"POST",body:i})},requestMagicLink(i,s){return e.fetch("/auth/magic-link",{...s,method:"POST",body:i})},async consumeMagicLink(i,s){let a=await e.fetch("/auth/magic-link/consume",{...s,method:"POST",body:i});return n(a)},getOAuthAuthorizationUrl(i,s,a){return e.fetch(`/auth/oauth/${i}`,{...a,method:"GET",query:s})},async exchangeOAuth(i,s){let a=await e.fetch("/auth/oauth/exchange",{...s,method:"POST",body:{...i,browserBinding:i.browserBinding??o().read()??void 0}});return n(a)},async getSsoAuthorizationUrl(i,s,a){let l=s?.browserBindingHash;if(!l){let c=o().begin(),p=await globalThis.crypto.subtle.digest("SHA-256",new TextEncoder().encode(c));l=Array.from(new Uint8Array(p),m=>m.toString(16).padStart(2,"0")).join("")}return e.fetch(`/auth/sso/${encodeURIComponent(i)}`,{...a,method:"GET",query:{...s,browserBindingHash:l}})},async consumeSsoLinkProof(i,s){let a=await e.fetch("/auth/sso/link-proof",{...s,method:"POST",body:{...i,browserBinding:i.browserBinding??o().read()??void 0}});return n(a)}}}function $e(e){return{posts:{list(t,o){return e.fetch("/blog/posts",{...o,query:t})},retrieve(t,o,n){return e.fetch(`/blog/posts/${encodeURIComponent(t)}`,{...n,query:o})},adjacent(t,o){return e.fetch(`/blog/posts/${encodeURIComponent(t)}/adjacent`,o)},similar(t,o,n){return e.fetch(`/blog/posts/${encodeURIComponent(t)}/similar`,{...n,query:o})}},tags:{list(t,o){return e.fetch("/blog/tags",{...o,query:t})},retrieve(t,o,n){return e.fetch(`/blog/tags/${encodeURIComponent(t)}`,{...n,query:o})}},authors:{list(t,o){return e.fetch("/blog/authors",{...o,query:t})},retrieve(t,o,n){return e.fetch(`/blog/authors/${encodeURIComponent(t)}`,{...n,query:o})}},search(t,o,n){return e.fetch("/blog/search",{...n,method:"POST",body:t,query:o})}}}function De(e){let t=Object.assign((n,r)=>e.fetch("/companies/markets",{...r,query:n}),{resolve(n,r){return e.fetch(`/companies/markets/${encodeURIComponent(n)}`,r)}}),o=Object.assign((n,r)=>e.fetch(`/companies/${encodeURIComponent(n)}/salaries`,r),{summary(n,r){return e.fetch(`/companies/${encodeURIComponent(n)}/salaries/summary`,r)},category(n,r,i,s){return e.fetch(`/companies/${encodeURIComponent(n)}/salaries/${encodeURIComponent(r)}`,{...s,query:i})}});return{list(n,r){return e.fetch("/companies",{...r,query:n})},retrieve(n,r,i){return e.fetch(`/companies/${encodeURIComponent(n)}`,{...i,query:r})},search(n,r,i){return e.fetch("/companies/search",{...i,method:"POST",body:n,query:r})},listJobs(n,r,i){return e.fetch(`/companies/${encodeURIComponent(n)}/jobs`,{...i,query:r})},similar(n,r,i){return e.fetch(`/companies/${encodeURIComponent(n)}/similar`,{...i,query:r})},markets:t,salaries:o}}function je(e){return{jobs(t,o){return e.fetch("/embed/jobs",{...o,query:t})}}}function Qe(e){return{preview(t,o){return e.fetch("/invites/preview",{...o,method:"POST",body:t})}}}function qe(e){return{subscribe(t,o){return e.fetch("/job-alerts",{...o,method:"POST",body:t})},confirm(t,o){return e.fetch("/job-alerts/confirm",{...o,method:"POST",body:t})},resendConfirmation(t,o){return e.fetch("/job-alerts/resend-confirmation",{...o,method:"POST",body:t})},manage(t,o){return e.fetch("/job-alerts/manage",{...o,query:t})},unsubscribe(t,o){return e.fetch("/job-alerts/unsubscribe",{...o,method:"POST",body:t})},resubscribe(t,o){return e.fetch("/job-alerts/resubscribe",{...o,method:"POST",body:t})},updatePreference(t,o){return e.fetch("/job-alerts/preferences",{...o,method:"POST",body:t})},deletePreference(t,o){return e.fetch("/job-alerts/preferences",{...o,method:"DELETE",body:t})}}}function Ge(e){return{plans(t,o){return e.fetch("/job-postings/plans",{...o,query:t})},create(t,o){return e.fetch("/job-postings",{...o,method:"POST",body:t})},uploadLogo(t,o){let n=new FormData;return n.append("file",t),e.fetch("/job-postings/logo",{...o,method:"POST",body:n})},fetchLogoByDomain(t,o){return e.fetch("/job-postings/logo/fetch",{...o,query:{domain:t}})},sendBillingVerification(t,o){return e.fetch("/job-postings/send-verification",{...o,method:"POST",body:t})},getBillingOptions(t,o){return e.fetch("/job-postings/billing-options",{...o,method:"POST",body:t})}}}function He(e){return{collectionChoices(t,o,n){return e.fetch(`/job-fields/${encodeURIComponent(t)}/choices`,{...n,query:o})},list(t,o){return e.fetch("/jobs",{...o,query:t})},retrieve(t,o,n){return e.fetch(`/jobs/${encodeURIComponent(t)}`,{...n,query:o})},search(t,o,n){return e.fetch("/jobs/search",{...n,method:"POST",body:t,query:o})},similar(t,o,n){return e.fetch(`/jobs/${encodeURIComponent(t)}/similar`,{...n,query:o})},apply(t,o,n){return e.fetch(`/jobs/${encodeURIComponent(t)}/apply`,{...n,method:"POST",body:o??{}})},createApplyIntent(t,o,n){return e.fetch(`/jobs/${encodeURIComponent(t)}/apply-intents`,{...n,method:"POST",body:o})},prepareApplyApproval(t,o,n){return e.fetch(`/jobs/${encodeURIComponent(t)}/apply-approvals`,{...n,method:"POST",body:o})},uploadApplicationResume(t,o,n,r){let i=new FormData;return i.append("file",o),n?.applicationId&&i.append("applicationId",n.applicationId),e.fetch(`/jobs/${encodeURIComponent(t)}/apply/resume`,{...r,method:"POST",body:i})},myApplication(t,o){return e.fetch(`/jobs/${encodeURIComponent(t)}/application`,o)}}}function Ke(e){return{search(t,o){return e.fetch("/locations/search",{...o,query:t})},resolve(t,o){return e.fetch("/locations/resolve",{...o,method:"POST",body:t})}}}function Ve(e){return{retrieve(t,o){return e.fetch("/me",{...o,query:t})},delete(t){return e.fetch("/me",{...t,method:"DELETE"})},async updatePassword(t,o){let n=await e.fetch("/me/password",{...o,method:"POST",body:t});return await N(e.storage,n),n},requestEmailChange(t,o){return e.fetch("/me/email",{...o,method:"POST",body:t})},confirmEmailChange(t,o){return e.fetch("/me/email/confirm",{...o,method:"POST",body:t})},acceptInvite(t,o){return e.fetch("/me/invites/accept",{...o,method:"POST",body:t})},profile:{listObjectReferenceChoices(t,o,n){return e.fetch("/me/profile/object-references/choices",{...n,query:{...o,fieldKey:t}})},retrieve(t,o){return e.fetch("/me/profile",{...o,query:t})},update(t,o,n){return e.fetch("/me/profile",{...n,method:"PATCH",body:t,query:o})},retrieveCustomFields(t){return e.fetch("/me/profile/custom-fields",{...t})},updateCustomFields(t,o){return e.fetch("/me/profile/custom-fields",{...o,method:"PATCH",body:t})},retrieveObjectReferences(t){return e.fetch("/me/profile/object-references",t)},updateObjectReferences(t,o){return e.fetch("/me/profile/object-references",{...o,method:"PUT",body:t})},handleAvailable(t,o){return e.fetch("/me/profile/handle-available",{...o,query:{handle:t}})},listExperience(t){return e.fetch("/me/profile/experience",t)},createExperience(t,o){return e.fetch("/me/profile/experience",{...o,method:"POST",body:t})},updateExperience(t,o,n){return e.fetch(`/me/profile/experience/${encodeURIComponent(t)}`,{...n,method:"PATCH",body:o})},deleteExperience(t,o){return e.fetch(`/me/profile/experience/${encodeURIComponent(t)}`,{...o,method:"DELETE"})},listEducation(t){return e.fetch("/me/profile/education",t)},createEducation(t,o){return e.fetch("/me/profile/education",{...o,method:"POST",body:t})},updateEducation(t,o,n){return e.fetch(`/me/profile/education/${encodeURIComponent(t)}`,{...n,method:"PATCH",body:o})},deleteEducation(t,o){return e.fetch(`/me/profile/education/${encodeURIComponent(t)}`,{...o,method:"DELETE"})},listSkills(t){return e.fetch("/me/profile/skills",t)},updateSkills(t,o){return e.fetch("/me/profile/skills",{...o,method:"PUT",body:t})},listLanguages(t){return e.fetch("/me/profile/languages",t)},updateLanguages(t,o){return e.fetch("/me/profile/languages",{...o,method:"PUT",body:t})},uploadAvatar(t,o){let n=new FormData;return n.append("file",t),e.fetch("/me/profile/avatar",{...o,method:"POST",body:n})}},notificationPreferences:{retrieve(t){return e.fetch("/me/notification-preferences",t)},update(t,o){return e.fetch("/me/notification-preferences",{...o,method:"PUT",body:t})},unsubscribeWithToken(t,o){return e.fetch("/me/notification-preferences/unsubscribe",{...o,method:"POST",body:t})}},companies:{listObjectReferenceChoices(t,o,n,r){return e.fetch(`/me/companies/${encodeURIComponent(t)}/object-references/choices`,{...r,query:{...n,fieldKey:o}})},retrieveObjectReferences(t,o){return e.fetch(`/me/companies/${encodeURIComponent(t)}/object-references`,o)},updateObjectReferences(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/object-references`,{...n,method:"PUT",body:o})},search(t,o){return e.fetch("/me/companies/search",{...o,query:t})},list(t){return e.fetch("/me/companies",t)},create(t,o){return e.fetch("/me/companies",{...o,method:"POST",body:t})},claim(t,o){return e.fetch(`/me/companies/${encodeURIComponent(t)}/claim`,{...o,method:"POST"})},cancelClaim(t,o){return e.fetch(`/me/companies/${encodeURIComponent(t)}/claim`,{...o,method:"DELETE"})},retrieve(t,o){return e.fetch(`/me/companies/${encodeURIComponent(t)}`,o)},update(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}`,{...n,method:"PATCH",body:o})},retrieveCustomFields(t,o){return e.fetch(`/me/companies/${encodeURIComponent(t)}/custom-fields`,o)},updateCustomFields(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/custom-fields`,{...n,method:"PATCH",body:o})},delete(t,o){return e.fetch(`/me/companies/${encodeURIComponent(t)}`,{...o,method:"DELETE"})},listMembers(t,o){return e.fetch(`/me/companies/${encodeURIComponent(t)}/members`,o)},updateMemberRole(t,o,n,r){return e.fetch(`/me/companies/${encodeURIComponent(t)}/members/${encodeURIComponent(o)}`,{...r,method:"PATCH",body:n})},removeMember(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/members/${encodeURIComponent(o)}`,{...n,method:"DELETE"})},leave(t,o){return e.fetch(`/me/companies/${encodeURIComponent(t)}/membership`,{...o,method:"DELETE"})},startMembershipCheckout(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/membership/checkout`,{...n,method:"POST",body:o})},retrieveMembershipCheckout(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/membership/checkout/${encodeURIComponent(o)}`,n)},listInvites(t,o){return e.fetch(`/me/companies/${encodeURIComponent(t)}/invites`,o)},createInvite(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/invites`,{...n,method:"POST",body:o})},revokeInvite(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/invites/${encodeURIComponent(o)}`,{...n,method:"DELETE"})},uploadLogo(t,o,n){let r=new FormData;return r.append("file",o),e.fetch(`/me/companies/${encodeURIComponent(t)}/logo`,{...n,method:"POST",body:r})},workEmail:{verify(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/work-email/verify`,{...n,method:"POST",body:o})},confirm(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/work-email/confirm`,{...n,method:"POST",body:o})}},jobs:{list(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/jobs`,{...n,query:o})},retrieve(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/jobs/${encodeURIComponent(o)}`,n)},create(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/jobs`,{...n,method:"POST",body:o})},update(t,o,n,r){return e.fetch(`/me/companies/${encodeURIComponent(t)}/jobs/${encodeURIComponent(o)}`,{...r,method:"PATCH",body:n})},delete(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/jobs/${encodeURIComponent(o)}`,{...n,method:"DELETE"})},publish(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/jobs/${encodeURIComponent(o)}/publish`,{...n,method:"POST"})},unpublish(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/jobs/${encodeURIComponent(o)}/unpublish`,{...n,method:"POST"})},checkout(t,o,n,r){return e.fetch(`/me/companies/${encodeURIComponent(t)}/jobs/${encodeURIComponent(o)}/checkout`,{...r,method:"POST",body:n})}},billingOptions:{list(t,o){return e.fetch(`/me/companies/${encodeURIComponent(t)}/billing-options`,o)}},billingPortal:{create(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/billing-portal`,{...n,method:"POST",body:o})}},jobStats:{retrieve(t,o){return e.fetch(`/me/companies/${encodeURIComponent(t)}/job-stats`,o)},timeseries(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/job-stats/timeseries`,{...n,query:o})}},profileStats:{retrieve(t,o){return e.fetch(`/me/companies/${encodeURIComponent(t)}/profile-stats`,o)},timeseries(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/profile-stats/timeseries`,{...n,query:o})}},recommendedTalent:{list(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/recommended-talent`,{...n,query:o})}},talentLists:{list(t,o){return e.fetch(`/me/companies/${encodeURIComponent(t)}/talent-lists`,o)},create(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/talent-lists`,{...n,method:"POST",body:o})},update(t,o,n,r){return e.fetch(`/me/companies/${encodeURIComponent(t)}/talent-lists/${encodeURIComponent(o)}`,{...r,method:"PATCH",body:n})},remove(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/talent-lists/${encodeURIComponent(o)}`,{...n,method:"DELETE"})},memberships(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/talent-list-memberships`,{...n,query:o})},members:{list(t,o,n,r){return e.fetch(`/me/companies/${encodeURIComponent(t)}/talent-lists/${encodeURIComponent(o)}/members`,{...r,query:n})},add(t,o,n,r){return e.fetch(`/me/companies/${encodeURIComponent(t)}/talent-lists/${encodeURIComponent(o)}/members`,{...r,method:"POST",body:n})},remove(t,o,n,r){return e.fetch(`/me/companies/${encodeURIComponent(t)}/talent-lists/${encodeURIComponent(o)}/members/${encodeURIComponent(n)}`,{...r,method:"DELETE"})}}},sourcedCandidates:{list(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/sourced-candidates`,{...n,query:o})},add(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/sourced-candidates`,{...n,method:"POST",body:o})},remove(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/sourced-candidates/${encodeURIComponent(o)}`,{...n,method:"DELETE"})},convert(t,o,n,r){return e.fetch(`/me/companies/${encodeURIComponent(t)}/sourced-candidates/${encodeURIComponent(o)}/convert`,{...r,method:"POST",body:n})}},applicants:{list(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/applicants`,{...n,query:o})},move(t,o,n,r){return e.fetch(`/me/companies/${encodeURIComponent(t)}/applicants/${encodeURIComponent(o)}/stage`,{...r,method:"PATCH",body:n})},bulkMove(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/applicants/bulk/move`,{...n,method:"POST",body:o})},bulkReject(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/applicants/bulk/reject`,{...n,method:"POST",body:o})},addNote(t,o,n,r){return e.fetch(`/me/companies/${encodeURIComponent(t)}/applicants/${encodeURIComponent(o)}/notes`,{...r,method:"POST",body:n})}},pipelineStages:{create(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/pipeline-stages`,{...n,method:"POST",body:o})},update(t,o,n,r){return e.fetch(`/me/companies/${encodeURIComponent(t)}/pipeline-stages/${encodeURIComponent(o)}`,{...r,method:"PATCH",body:n})},remove(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/pipeline-stages/${encodeURIComponent(o)}`,{...n,method:"DELETE"})},reorder(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/pipeline-stages/reorder`,{...n,method:"PUT",body:o})}}},talentAccess:{retrieve(t){return e.fetch("/me/talent-access",t)},retrieveCandidate(t,o){return e.fetch(`/me/talent-access/candidates/${encodeURIComponent(t)}`,o)},checkout(t,o){return e.fetch("/me/talent-access/checkout",{...o,method:"POST",body:t})},claim(t,o){return e.fetch("/me/talent-access/claim",{...o,method:"POST",body:t})},retrieveCheckout(t,o){return e.fetch(`/me/talent-access/checkout/${encodeURIComponent(t)}`,o)},unlock(t,o){return e.fetch("/me/talent-access/unlocks",{...o,method:"POST",body:t})},upgrade(t,o){return e.fetch("/me/talent-access/upgrade",{...o,method:"POST",body:t})}},alerts:{list(t){return e.fetch("/me/alerts",t)},create(t,o){return e.fetch("/me/alerts",{...o,method:"POST",body:t})},retrieve(t,o){return e.fetch(`/me/alerts/${encodeURIComponent(t)}`,o)},update(t,o,n){return e.fetch(`/me/alerts/${encodeURIComponent(t)}`,{...n,method:"PUT",body:o})},remove(t,o){return e.fetch(`/me/alerts/${encodeURIComponent(t)}`,{...o,method:"DELETE"})}},applications:{list(t,o){return e.fetch("/me/applications",{...o,query:t})},retrieve(t,o){return e.fetch(`/me/applications/${encodeURIComponent(t)}`,o)},updateFacts(t,o,n){return e.fetch(`/me/applications/${encodeURIComponent(t)}`,{...n,method:"PATCH",body:o})},withdraw(t,o){return e.fetch(`/me/applications/${encodeURIComponent(t)}/withdraw`,{...o,method:"POST"})}},resume:{upload(t,o,n){let r=new FormData;return r.append("resume",t),o?.keepResumeOnFile&&r.append("keepResumeOnFile","true"),o?.importMode&&r.append("importMode",o.importMode),o?.confirmReplaceAll&&r.append("confirmReplaceAll","true"),e.fetch("/me/resume",{...n,method:"POST",body:r})},retrieve(t){return e.fetch("/me/resume",t)},delete(t){return e.fetch("/me/resume",{...t,method:"DELETE"})}},recommendedJobs:{list(t,o){return e.fetch("/me/recommended-jobs",{...o,query:t})}},savedJobs:{list(t,o){return e.fetch("/me/saved-jobs",{...o,query:t})},save(t,o,n){return e.fetch("/me/saved-jobs",{...n,method:"POST",body:t,query:o})},unsave(t,o,n){return e.fetch(`/me/saved-jobs/${encodeURIComponent(t)}`,{...n,method:"DELETE",query:o})}},conversations:{list(t,o){return e.fetch("/me/conversations",{...o,query:t})},unreadCount(t){return e.fetch("/me/conversations/unread-count",t)},retrieve(t,o){return e.fetch(`/me/conversations/${encodeURIComponent(t)}`,o)},listMessages(t,o,n){return e.fetch(`/me/conversations/${encodeURIComponent(t)}/messages`,{...n,query:o})},start(t,o){return e.fetch("/me/conversations",{...o,method:"POST",body:t})},startAboutApplication(t,o){return e.fetch("/me/conversations/about-application",{...o,method:"POST",body:t})},reply(t,o,n){return e.fetch(`/me/conversations/${encodeURIComponent(t)}/reply`,{...n,method:"POST",body:o})},markRead(t,o){return e.fetch(`/me/conversations/${encodeURIComponent(t)}/read`,{...o,method:"POST"})},archive(t,o){return e.fetch(`/me/conversations/${encodeURIComponent(t)}/archive`,{...o,method:"POST"})},unarchive(t,o){return e.fetch(`/me/conversations/${encodeURIComponent(t)}/unarchive`,{...o,method:"POST"})},findExisting(t,o){return e.fetch("/me/conversations/find-existing",{...o,query:t})}},blocks:{list(t){return e.fetch("/me/blocks",t)},create(t,o){return e.fetch("/me/blocks",{...o,method:"POST",body:t})},remove(t,o){return e.fetch(`/me/blocks/${encodeURIComponent(t)}`,{...o,method:"DELETE"})},status(t,o){return e.fetch(`/me/blocks/${encodeURIComponent(t)}`,o)}},messages:{edit(t,o,n){return e.fetch(`/me/messages/${encodeURIComponent(t)}`,{...n,method:"PATCH",body:o})},unsend(t,o){return e.fetch(`/me/messages/${encodeURIComponent(t)}`,{...o,method:"DELETE"})},report(t,o,n){return e.fetch(`/me/messages/${encodeURIComponent(t)}/report`,{...n,method:"POST",body:o})}},marketingConsent:{retrieve(t){return e.fetch("/me/marketing-consent",t)},grant(t){return e.fetch("/me/marketing-consent/grant",{...t,method:"POST"})},withdraw(t){return e.fetch("/me/marketing-consent/withdraw",{...t,method:"POST"})}},access:{checkout(t,o){return e.fetch("/me/access/checkout",{...o,method:"POST",body:t})},retrieveCheckout(t,o){return e.fetch(`/me/access/checkout/${encodeURIComponent(t)}`,o)},grant(t){return e.fetch("/me/access/grant",t)},portal(t,o){return e.fetch("/me/access/portal",{...o,method:"POST",body:t})}}}}function Ye(e){return{async verify(t,o){let n=await e.fetch("/password/verify",{...o,method:"POST",body:{password:t}});return await e.storage.setItem(I,n.token),n}}}function ze(e){return{offers(t){return e.fetch("/paywall/offers/enabled",t)}}}function We(e){return{list(t,o){return e.fetch("/plans",{...o,query:t})},salesLed(t){return e.fetch("/sales-led-plans",t)}}}function Ze(e){return{retrieve(t,o){return e.fetch(`/profile-fields/${encodeURIComponent(t)}`,o)},choices(t,o,n,r){return e.fetch(`/profile-fields/${encodeURIComponent(t)}/${encodeURIComponent(o)}/choices`,{...r,query:n})}}}function Xe(e){return{resolve(t,o){return e.fetch("/redirects/resolve",{...o,query:{path:t}})}}}function et(e){return{companies:{list(t){return e.fetch("/salaries/companies",t)}},titles:{list(t,o){return e.fetch("/salaries/titles",{...o,query:t})},retrieve(t,o,n){return e.fetch(`/salaries/titles/${encodeURIComponent(t)}`,{...n,query:o})},locations(t,o,n){return e.fetch(`/salaries/titles/${encodeURIComponent(t)}/locations`,{...n,query:o})},location(t,o,n,r){return e.fetch(`/salaries/titles/${encodeURIComponent(t)}/${encodeURIComponent(o)}`,{...r,query:n})}},skills:{list(t,o){return e.fetch("/salaries/skills",{...o,query:t})},retrieve(t,o,n){return e.fetch(`/salaries/skills/${encodeURIComponent(t)}`,{...n,query:o})},locations(t,o,n){return e.fetch(`/salaries/skills/${encodeURIComponent(t)}/locations`,{...n,query:o})},location(t,o,n,r){return e.fetch(`/salaries/skills/${encodeURIComponent(t)}/${encodeURIComponent(o)}`,{...r,query:n})}},locations:{list(t,o){return e.fetch("/salaries/locations",{...o,query:t})},retrieve(t,o,n){return e.fetch(`/salaries/locations/${encodeURIComponent(t)}`,{...n,query:o})},titles(t,o,n){return e.fetch(`/salaries/locations/${encodeURIComponent(t)}/titles`,{...n,query:o})},skills(t,o,n){return e.fetch(`/salaries/locations/${encodeURIComponent(t)}/skills`,{...n,query:o})}}}}function tt(e){return{suggest(t,o){return e.fetch("/search/suggest",{...o,query:t})}}}function ot(e){return Object.assign(t=>e.fetch("/sitemap",t),{entries(t,o,n){return e.fetch(`/sitemap/${encodeURIComponent(t)}`,{...n,query:o})}})}function nt(e){return{list(t,o){let n=t?{...t,customFields:t.customFields?JSON.stringify(t.customFields):void 0,objectReferences:t.objectReferences?JSON.stringify(t.objectReferences):void 0}:void 0;return e.fetch("/talent",{...o,query:n})},retrieve(t,o){return e.fetch(`/talent/${encodeURIComponent(t)}`,o)},places:{list(t,o){return e.fetch("/talent/places",{...o,query:t})}}}}function it(e,t){return{resolve(o,n){return e.fetch(`/${t}/${encodeURIComponent(o)}`,n)}}}function rt(e,t){return{...it(e,t),list(o,n){return e.fetch(`/${t}`,{...n,query:o})}}}function st(e){return{categories:rt(e,"categories"),skills:rt(e,"skills"),remotePermits:{list(t){return e.fetch("/remote-permits",t)}},places:{...it(e,"places"),list(t,o){return e.fetch("/places",{...o,query:t})},suggest(t,o){let{near:n,...r}=t;return e.fetch("/places/suggest",{...o,query:{...r,near:n?`${n.lat},${n.lng}`:void 0}})}}}}function at(e,t,o){async function*n(){let r=t;for(;;){let i=await e(r,o);if(yield i,!i.hasMore||i.nextCursor===null)return;let{offset:s,...a}=r??{};r={...a,cursor:i.nextCursor}}}return{pages:n,async*[Symbol.asyncIterator](){for await(let r of n())yield*r.data},async toArray({limit:r}){let i=[];for await(let s of n())if(i.push(...s.data),i.length>=r)break;return i.slice(0,r)}}}function lt(e,t){return e.authorBoardUserId!==t}function ct(e,t){let o=e.some(r=>r.authorBoardUserId===t);return e.some(r=>r.authorBoardUserId!==t)&&!o}function pt(e,t){for(let o=e.length-1;o>=0;o--){let n=e[o];if(n.authorBoardUserId!==t)return n.id}return null}function re(e){let t=e.replace(/^[\u0000-\u0020]+|[\u0000-\u0020]+$/g,"").replace(/[\t\n\r]/g,""),o=/^([a-z][a-z0-9+.-]*):/i.exec(t)?.[1]?.toLowerCase();return o===void 0?!0:o==="http"||o==="https"||o==="mailto"}function ie(e){let t=e.applicationUrl&&re(e.applicationUrl)?e.applicationUrl:null;return!t&&!e.jobSlug?{kind:"none"}:e.registrationWall&&!e.viewer?{kind:"sign-in",reason:"registration-wall"}:t?{kind:"external",url:t}:e.jobSlug?e.viewer?e.viewer.emailVerified?e.applied?{kind:"applied"}:{kind:"native",jobSlug:e.jobSlug}:{kind:"verify-email"}:e.allowGuestApply?{kind:"guest",jobSlug:e.jobSlug}:{kind:"sign-in",reason:"native-apply"}:{kind:"none"}}function ut(e){let t=ie({...e,registrationWall:!1,allowGuestApply:!1});return t.kind==="sign-in"?{kind:"sign-in"}:t}function Io(e){let t=new F({baseUrl:e.baseUrl??Me,board:e.board,storage:xe(e.auth?.storage,e.board),globalHeaders:e.globalHeaders,onRequest:e.onRequest,onResponse:e.onResponse,logger:e.logger});return{client:t,context(o){return t.fetch("",o)},seo(o){return t.fetch("/seo",o)},jobs:He(t),embed:je(t),companies:De(t),blog:$e(t),auth:Ne(t,e.board),me:Ve(t),invites:Qe(t),password:Ye(t),taxonomy:st(t),search:tt(t),locations:Ke(t),redirects:Xe(t),jobAlerts:qe(t),jobPosting:Ge(t),salaries:et(t),talent:nt(t),profileFields:Ze(t),plans:We(t),paywall:ze(t),sitemap:ot(t)}}var se={};A(se,{DEFAULT_SORT:()=>Fo,EMPLOYMENT_TYPES:()=>dt,JOB_SORTS:()=>ft,REMOTE_OPTIONS:()=>mt,SENIORITIES:()=>yt,parseCategory:()=>bt,parseCompany:()=>ht,parseListingFilters:()=>xo,parseSeniority:()=>gt});var mt=["on_site","hybrid","remote"],dt=["full_time","part_time","contract","internship","temporary"],yt=["entry_level","associate","mid_level","senior","lead","principal","director","executive"],ft=["relevance","newest","salary_high"],Fo="relevance";var ko=new Set(yt);function gt(e){let t=Array.isArray(e)?e:typeof e=="string"&&e?e.split(","):[],o=[],n=new Set;for(let r of t){if(typeof r!="string")continue;let i=r.trim().toLowerCase().normalize("NFC");!i||n.has(i)||ko.has(i)&&(n.add(i),o.push(i))}return o.length>0?o:void 0}function ht(e){return St(e,10)}function bt(e){return St(e,10)}function St(e,t){let o=Array.isArray(e)?e:typeof e=="string"&&e?e.split(","):[],n=[],r=new Set;for(let i of o){if(typeof i!="string")continue;let s=i.trim().toLowerCase().normalize("NFC");if(!(!s||r.has(s))&&(r.add(s),n.push(s),n.length>=t))break}return n.length>0?n:void 0}function xo(e){return{q:typeof e.q=="string"&&e.q?e.q:void 0,remoteOption:mt.includes(e.remoteOption)?e.remoteOption:void 0,employmentType:dt.includes(e.employmentType)?e.employmentType:void 0,seniority:gt(e.seniority),company:ht(e.company),category:bt(e.category),sort:ft.includes(e.sort)?e.sort:void 0}}var be={};A(be,{COMMUTE_RADIUS_MAX_KM:()=>eo,COMMUTE_RADIUS_MIN_KM:()=>Xt,COUNTRY_CODES:()=>Z,MILES_COUNTRIES:()=>fe,buildJobBreadcrumbs:()=>W,countryOptions:()=>Wt,defaultCommuteRadiusKm:()=>no,defaultSearchRadius:()=>so,distanceUnitForCountry:()=>oo,distanceUnitToKm:()=>X,formatDate:()=>Rt,formatDistance:()=>ao,formatMonthYear:()=>Et,formatPublishedRelativeDate:()=>vt,formatSalaryRange:()=>Bt,formatSalaryStat:()=>q,formatSalaryStatRange:()=>k,kmToDistanceUnit:()=>ro,kmToMiles:()=>he,milesToKm:()=>ge,normalizeWebsiteUrl:()=>U,resolveCustomFieldDisplay:()=>Zt,searchRadiusOptions:()=>io});function C(e){let t=e.trim();if(!t)return null;try{let o=t.replace(/_/g,"-"),[n]=Intl.getCanonicalLocales(o);if(!n)return null;let[r]=Intl.NumberFormat.supportedLocalesOf([n]);return r??null}catch{return null}}var Ct=new Map,Ot=new Map,_t=new Map,Pt=new Map;function Uo(e){let t=Ct.get(e);return t||(t=new Intl.RelativeTimeFormat(e,{numeric:"always",style:"short"}),Ct.set(e,t)),t}function Mo(e){let t=Ot.get(e);return t||(t=new Intl.RelativeTimeFormat(e,{numeric:"auto",style:"short"}),Ot.set(e,t)),t}function wo(e){let t=_t.get(e);return t||(t=new Intl.DateTimeFormat(e,{dateStyle:"medium",timeZone:"UTC"}),_t.set(e,t)),t}function Jo(e){let t=Pt.get(e);return t||(t=new Intl.DateTimeFormat(e,{month:"short",year:"numeric",timeZone:"UTC"}),Pt.set(e,t)),t}function ae(e,t,o){try{return Uo(o).format(e,t)}catch{return null}}function Rt(e,t){if(!t)return null;let o=new Date(t);if(Number.isNaN(o.getTime()))return null;let n=C(e);if(!n)return null;try{return wo(n).format(o)}catch{return o.toISOString().split("T")[0]}}function vt(e,t,o=Date.now()){if(!t)return null;let n=new Date(t);if(Number.isNaN(n.getTime()))return null;let r=C(e);if(!r)return null;let i=o-n.getTime(),s=Math.abs(i),a=60*1e3,l=60*a,c=24*l,p=7*c,m=30*c,d=365*c;if(s<a)try{return Mo(r).format(0,"second")}catch{return ae(0,"second",r)}let y=[{unit:"year",ms:d},{unit:"month",ms:m},{unit:"week",ms:p},{unit:"day",ms:c},{unit:"hour",ms:l},{unit:"minute",ms:a}];for(let h of y)if(s>=h.ms){let R=Math.round(s/h.ms),u=i>=0?-R:R;return ae(u,h.unit,r)}let g=Math.round(s/1e3),O=i>=0?-g:g;return ae(O,"second",r)}function Et(e,t){if(!t)return null;let n=/^\d{4}-\d{2}(-\d{2})?$/.test(t)?new Date(t.length===7?`${t}-01T00:00:00.000Z`:`${t}T00:00:00.000Z`):new Date(t);if(Number.isNaN(n.getTime()))return null;let r=C(e);if(!r)return null;try{return Jo(r).format(n)}catch{return null}}var j=new Map;function le(e,t,o,n="symbol",r="compact"){let i=`${t}:${o}:${n}:${r}`,s=j.get(i);if(s===void 0){try{let a={style:"currency",currency:o,currencyDisplay:n,notation:r};r==="compact"&&(a.compactDisplay="short",a.maximumFractionDigits=1,a.minimumFractionDigits=0),s=new Intl.NumberFormat(t,a)}catch{s=null}j.set(i,s)}return s?s.format(e):null}function ce(e,t,o){if(typeof e.formatRange=="function")try{return e.formatRange(t,o)}catch{}try{return`${e.format(t)}\u2013${e.format(o)}`}catch{return null}}function No(e,t,o,n,r="symbol",i="compact"){let s=`${o}:${n}:${r}:${i}:range`,a=j.get(s);if(a===void 0){try{let l={style:"currency",currency:n,currencyDisplay:r,notation:i};i==="compact"&&(l.compactDisplay="short",l.maximumFractionDigits=1,l.minimumFractionDigits=0),a=new Intl.NumberFormat(o,l)}catch{a=null}j.set(s,a)}return a?ce(a,e,t):null}var $o=new Set(["per_year","per_month","per_week","per_day","per_hour"]);function Do(...e){let t=!1;for(let o of e)if(!(o==null||!Number.isFinite(o))&&(t=!0,Math.abs(o)>=1e3))return"compact";return t?"standard":"compact"}function Bt(e,t,o,n,r=null,i="symbol",s){let a=t==null||Number.isFinite(t),l=o==null||Number.isFinite(o);if(!a||!l||t==null&&o==null)return null;let c=r?.trim().toUpperCase()||null;if(!c)return null;let p=C(e);if(!p)return null;let m=s??Do(t,o),d=typeof n=="string"&&$o.has(n)?n:null;if(t!=null&&o!=null){let g=t<=o?t:o,O=t<=o?o:t,h=g===O?le(g,p,c,i,m):No(g,O,p,c,i,m);return h?{text:h,timeframe:d,bound:"range"}:null}if(t!=null){let g=le(t,p,c,i,m);return g?{text:g,timeframe:d,bound:"from"}:null}let y=le(o,p,c,i,m);return y?{text:y,timeframe:d,bound:"upTo"}:null}var At=new Map;function Tt(...e){let t=!1;for(let o of e)if(!(o==null||!Number.isFinite(o))&&(t=!0,Math.abs(o)>=1e3))return"compact";return t?"standard":"compact"}function Lt(e,t,o){let n=`${e}:${t}:${o}`,r=At.get(n);if(r!==void 0)return r;let i;try{let s={style:"currency",currency:t,notation:o};o==="compact"&&(s.compactDisplay="short",s.minimumFractionDigits=0,s.maximumFractionDigits=1),i=new Intl.NumberFormat(e,s)}catch{i=null}return At.set(n,i),i}function q(e,t,o,n){if(!Number.isFinite(t))return null;let r=o?.trim().toUpperCase()||null;if(!r)return null;let i=C(e);if(!i)return null;let s=n??Tt(t),a=Lt(i,r,s);return a?a.format(t):null}function k(e,t,o,n,r){if(!Number.isFinite(t)||!Number.isFinite(o))return null;let i=n?.trim().toUpperCase()||null;if(!i)return null;let s=C(e);if(!s)return null;let a=r??Tt(t,o),l=Lt(s,i,a);if(!l)return null;let c=Math.min(t,o),p=Math.max(t,o);return c===p?l.format(c):ce(l,c,p)}var Q=["entry_level","associate","mid_level","senior","lead","principal","director","executive"];function It(e){return[...e].sort((t,o)=>{let n=Q.indexOf(t.seniority),r=Q.indexOf(o.seniority);return(n===-1?999:n)-(r===-1?999:r)})}var jo={unitText:"YEAR",duration:"P1Y"};function x(e,t,o,n,r={}){return{"@type":"MonetaryAmountDistribution",...e!==void 0?{name:e}:{},currency:t,minValue:o,maxValue:n,...r,...jo}}function pe(e,t,o,n){return e.map(r=>{let i=n?.seniorityName?.({seniority:r.seniority,entity:o});return x(i,t,r.avgSalaryMin,r.avgSalaryMax)})}function G(e,t,o,n){return{"@context":"https://schema.org","@type":e,name:t,...o,estimatedSalary:n}}function Ft(e,t,o,n){if(!o)return[];let r=k(e,o.avgMin,o.avgMax,n);return[{kind:"average",label:t,range:r,avgMin:o.avgMin,avgMax:o.avgMax,currency:n,jobCount:o.jobCount},{kind:"methodology",label:t}]}function H(e){return e.length===0?null:{"@context":"https://schema.org","@type":"ItemList",numberOfItems:e.length,itemListElement:e.map((t,o)=>({"@type":"ListItem",position:o+1,name:t.name,url:t.url}))}}function kt(e){return e.length===0?null:{"@context":"https://schema.org","@type":"FAQPage",mainEntity:e.map(t=>({"@type":"Question",name:t.q,acceptedAnswer:{"@type":"Answer",text:t.a}}))}}function xt(e,t){return e.overallSalary?G("Occupation",e.categoryName,{},[x(e.categoryName,e.currency,e.overallSalary.avgMin,e.overallSalary.avgMax,{...e.boardP25Min?{percentile25:e.boardP25Min}:{},...e.boardP75Max?{percentile75:e.boardP75Max}:{}}),...pe(e.bySeniority,e.currency,e.categoryName,t)]):null}function Ut(e){return e.overallSalary?G("Occupation",e.skillName,{},[x(e.skillName,e.currency,e.overallSalary.avgMin,e.overallSalary.avgMax,{median:Math.round((e.overallSalary.medianMin+e.overallSalary.medianMax)/2)})]):null}function Mt(e,t){return!t?.occupationUrl||!(e.adminLevel==="city"||e.adminLevel==="locality")?null:H(e.topCategories.map(n=>({name:n.categoryName,url:t.occupationUrl(n)})))}function wt(e,t){return e.overall?G("Occupation",e.name,{occupationLocation:{"@type":"AdministrativeArea",name:e.placeName,address:{"@type":"PostalAddress",addressCountry:e.countryCode}}},[x(e.name,e.currency,e.overall.avgMin,e.overall.avgMax,{...e.overall.p25Min?{percentile25:e.overall.p25Min}:{},...e.overall.p75Max?{percentile75:e.overall.p75Max}:{}}),...pe(e.bySeniority,e.currency,e.name,t)]):null}function Jt(e,t){return t?.occupationUrl?H(e.byCategory.map(o=>({name:o.categoryName,url:t.occupationUrl(o)}))):null}function Nt(e,t){return e.overallSalary?G("Occupation",e.categoryName,{occupationalCategory:e.categoryName,hiringOrganization:{"@type":"Organization",name:e.companyName}},[x(e.categoryName,e.currency,e.overallSalary.avgMin,e.overallSalary.avgMax,{...e.boardCategoryP25Min?{percentile25:e.boardCategoryP25Min}:{},...e.boardCategoryP75Max?{percentile75:e.boardCategoryP75Max}:{}}),...pe(e.bySeniority,e.currency,e.categoryName,t)]):null}function jt(e,t){return e.company?.name??t.legalName??t.contact?.legalName??t.name??null}var $t={high_school:"high school",associate_degree:"associate degree",bachelor_degree:"bachelor degree",professional_certificate:"professional certificate",postgraduate_degree:"postgraduate degree"},Qo={full_time:"FULL_TIME",part_time:"PART_TIME",contract:"CONTRACTOR",internship:"INTERN",temporary:"TEMPORARY",volunteer:"VOLUNTEER",other:"OTHER"},qo={per_year:"YEAR",per_month:"MONTH",per_week:"WEEK",per_day:"DAY",per_hour:"HOUR"},me=["AF","AX","AL","DZ","AS","AD","AO","AI","AQ","AG","AR","AM","AW","AU","AT","AZ","BS","BH","BD","BB","BY","BE","BZ","BJ","BM","BT","BO","BA","BW","BV","BR","IO","VG","BN","BG","BF","BI","KH","CM","CA","CV","BQ","KY","CF","TD","CL","CN","CX","CC","CO","KM","CK","CR","HR","CU","CW","CY","CZ","DK","DJ","DM","DO","CD","EC","EG","SV","GQ","ER","EE","SZ","ET","FK","FO","FJ","FI","FR","GF","PF","TF","GA","GM","GE","DE","GH","GI","GR","GL","GD","GP","GU","GT","GG","GN","GW","GY","HT","HM","HN","HK","HU","IS","IN","ID","IR","IQ","IE","IM","IL","IT","CI","JM","JP","JE","JO","KZ","KE","KI","XK","KW","KG","LA","LV","LB","LS","LR","LY","LI","LT","LU","MO","MG","MW","MY","MV","ML","MT","MH","MQ","MR","MU","YT","MX","FM","MD","MC","MN","ME","MS","MA","MZ","MM","NA","NR","NP","NL","NC","NZ","NI","NE","NG","NU","NF","MK","MP","NO","OM","PK","PW","PS","PA","PG","PY","PE","PH","PN","PL","PT","PR","QA","CG","RE","RO","RU","RW","BL","SH","KN","LC","MF","PM","VC","WS","SM","ST","SA","SN","RS","SC","SL","SG","SX","SK","SI","SB","SO","ZA","GS","KR","SS","ES","LK","SD","SR","SJ","SE","CH","SY","TW","TJ","TZ","TH","TL","TG","TK","TO","TT","TN","TR","TM","TC","TV","UG","UA","AE","GB","US","UM","VI","UY","UZ","VU","VA","VE","VN","WF","EH","YE","ZM","ZW"];function Qt({job:e,board:t,shareUrl:o}){let n=Wo(e),r=Zo(e),i=ue({"@context":"https://schema.org/","@type":"JobPosting",title:e.title,description:e.description??"",identifier:Go(e,t),datePosted:Dt(e.publishedAt),validThrough:Dt(e.expiresAt),employmentType:e.employmentType?Qo[e.employmentType]??"OTHER":"OTHER",hiringOrganization:Ho(e,t),jobLocation:Vo(e),jobLocationType:e.remoteOption==="remote"?"TELECOMMUTE":void 0,applicantLocationRequirements:e.remoteOption==="remote"?zo(e):null,baseSalary:Ko(e),educationRequirements:n,experienceRequirements:r,experienceInPlaceOfEducation:e.experienceInPlaceOfEducation===!0&&n&&r?!0:void 0,url:o});return!i||Array.isArray(i)||Object.keys(i).length===0?null:i}function Go(e,t){let o=jt(e,t),n={"@type":"PropertyValue",value:e.id};return o&&(n.name=o),n}function Ho(e,t){let o=jt(e,t);if(!o)return null;let n={"@type":"Organization",name:o},r=e.company?.website??null,i=r?U(r):null;i&&(n.sameAs=i);let s=e.company?.logoUrl??t.logoUrl??null;return s&&(n.logo=s),n}function U(e){let t=e.trim();return t?/^https?:\/\//i.test(t)?t:`https://${t}`:null}function Ko(e){let t=e.salaryCurrency?.trim(),o=typeof e.salaryMin=="number",n=typeof e.salaryMax=="number";if(!t||!o&&!n)return null;let r={"@type":"QuantitativeValue"};o&&(r.minValue=e.salaryMin),n&&(r.maxValue=e.salaryMax);let i=e.salaryTimeframe?qo[e.salaryTimeframe]:void 0;return i&&(r.unitText=i),!o&&n&&typeof e.salaryMax=="number"?(r.value=e.salaryMax,r.minValue=e.salaryMax):!n&&o&&typeof e.salaryMin=="number"&&(r.value=e.salaryMin,r.maxValue=e.salaryMin),{"@type":"MonetaryAmount",currency:t.toUpperCase(),value:r}}function Vo(e){let t=e.officeLocations.map(o=>Yo({countryCode:o.countryCode,region:o.region,locality:o.city??o.locality,postalCode:o.postalCode,name:o.displayName})).filter(o=>o!==null);return t.length===0?null:t.length===1?t[0]:t}function Yo({countryCode:e,region:t,locality:o,postalCode:n,name:r}){let i={"@type":"PostalAddress"},s=e?.trim(),a=t?.trim(),l=o?.trim(),c=n?.trim(),p=r?.trim();s&&(i.addressCountry=s.toUpperCase()),a&&(i.addressRegion=a),l&&(i.addressLocality=l),c&&(i.postalCode=c);let m=Object.keys(i).length>1;if(!m&&!p)return null;let d={"@type":"Place"};return p&&(d.name=p),m&&(d.address=i),d}function zo(e){if(e.remoteWorldwide)return me.map(n=>({"@type":"Country",name:n}));let t=[],o=new Set;for(let n of e.remoteWorkPermitCountryCodes??[]){let r=n?.trim().toUpperCase();!r||o.has(r)||(o.add(r),t.push({"@type":"Country",name:r}))}for(let n of e.remoteWorkPermitSubdivisionCodes??[]){let r=n?.split("-")[0]?.trim().toUpperCase();!r||o.has(r)||(o.add(r),t.push({"@type":"Country",name:r}))}return t.length===0?null:t.length===1?t[0]:t}function Wo(e){let t=e.educationRequirements;if(!t||t.length===0)return null;if(t.includes("no_requirements"))return"no requirements";let o=t.filter(n=>n in $t).map(n=>({"@type":"EducationalOccupationalCredential",credentialCategory:$t[n]}));return o.length>0?o:null}function Zo(e){let t=e.experienceMonths;return typeof t!="number"?null:t===0?"no requirements":{"@type":"OccupationalExperienceRequirements",monthsOfExperience:t}}function Dt(e){if(!e)return null;let t=new Date(e);return Number.isNaN(t.getTime())?null:t.toISOString()}function ue(e){let t=o=>o==null?!1:Array.isArray(o)?o.length>0:typeof o=="object"?Object.keys(o).length>0:!0;if(Array.isArray(e))return e.map(o=>ue(o)).filter(t);if(e&&typeof e=="object"){let o=Object.entries(e).map(([n,r])=>[n,ue(r)]).filter(([,n])=>t(n));return Object.fromEntries(o)}return e}var ye={};A(ye,{BOARD_PATHS:()=>Y,blogAuthorPath:()=>rn,blogPostPath:()=>Vt,blogTagPath:()=>Yt,boardUrl:()=>z,companyMarketPath:()=>Kt,companyPath:()=>Ht,companySalaryPath:()=>en,encodePathSegment:()=>f,goAlertsConfirmPath:()=>pn,goAlertsManagePath:()=>cn,goJobPath:()=>ln,jobDetailPath:()=>de,jobsCategoryPath:()=>K,jobsLocationCategoryPath:()=>V,jobsLocationPath:()=>M,jobsLocationSkillPath:()=>Gt,jobsSkillPath:()=>qt,salaryLocationPath:()=>nn,salarySkillPath:()=>on,salaryTitlePath:()=>tn,suggestionPath:()=>Xo,talentLocationPath:()=>an,talentProfilePath:()=>sn});function f(e){try{return encodeURIComponent(decodeURIComponent(e)).replace(/%3A/gi,":")}catch{return encodeURIComponent(e).replace(/%3A/gi,":")}}function de(e,t){return`/companies/${f(e)}/jobs/${f(t)}`}function K(e){return`/jobs/${f(e)}`}function qt(e){return`/jobs/skills/${f(e)}`}function M(e){return`/jobs/locations/${f(e)}`}function V(e,t){return`${M(e)}/${f(t)}`}function Gt(e,t){return`${M(e)}/skills/${f(t)}`}function Ht(e){return`/companies/${f(e)}`}function Kt(e){return`/companies/markets/${f(e)}`}function Xo(e,t){let o=t.location?.trim()||void 0;return t.scope==="blog"?e.type==="post"?Vt(e.slug):e.type==="tag"?Yt(e.slug):null:t.scope==="jobs"?e.type==="company"||e.type==="market"||e.type==="post"||e.type==="tag"?null:e.termType==="skill"?o?Gt(o,e.canonicalSlug):qt(e.canonicalSlug):o?V(o,e.canonicalSlug):K(e.canonicalSlug):e.type==="company"?Ht(e.slug):e.type==="market"?Kt(e.slug):null}function en(e){return`/companies/${f(e)}/salaries`}function tn(e){return`/salaries/titles/${f(e)}`}function on(e){return`/salaries/skills/${f(e)}`}function nn(e){return`/salaries/locations/${f(e)}`}function Vt(e){return`/blog/${f(e)}`}function Yt(e){return`/blog/tag/${f(e)}`}function rn(e){return`/blog/author/${f(e)}`}function sn(e){return`/p/${f(e)}`}function an(e){return`/talent/locations/${f(e)}`}var Y={home:"/",jobs:"/jobs",companies:"/companies",salaries:"/salaries",salaryCompanies:"/salaries/companies",salaryTitles:"/salaries/titles",salarySkills:"/salaries/skills",salaryLocations:"/salaries/locations",blog:"/blog",about:"/about",privacyPolicy:"/privacy-policy",termsOfService:"/terms-of-service",cookiePolicy:"/cookie-policy",impressum:"/impressum",talent:"/talent",talentLocations:"/talent/locations",employers:"/employers",alertsManage:"/alerts/manage",alertsConfirm:"/alerts/confirm"};function ln(e){return`/go/job/${e}`}function cn(){return"/go/alerts-manage"}function pn(){return"/go/alerts-confirm"}function z(e,t){return`${e.replace(/\/+$/,"")}${t}`}function zt(e,t={}){let o=e.map(r=>{let i=r.label?.trim();return i?{name:i,href:r.href?.trim()??null}:null}).filter(r=>!!r);return o.length<2?null:{"@context":"https://schema.org","@type":"BreadcrumbList",itemListElement:o.map((r,i)=>{let s=r.href?un(r.href,t.origin??null):null,a={"@type":"ListItem",position:i+1,name:r.name};return s&&(a.item=s),a})}}function un(e,t){if(mn(e))return e;if(!t)return null;let o=e.startsWith("/")?e:`/${e}`;return`${t}${o}`}function mn(e){return/^https?:\/\//i.test(e)}function W(e){let t=[{kind:"home",path:Y.home},{kind:"jobs",path:Y.jobs}],o=null;for(let r of e.placeHierarchy)o=r.canonicalSlug,t.push({kind:"place",name:r.name,path:M(r.canonicalSlug)});let n=e.categories[0];return n&&t.push({kind:"category",name:n.name,path:o?V(o,n.slug):K(n.slug)}),t.push({kind:"job",name:e.title}),t}var Z=["AD","AE","AF","AG","AI","AL","AM","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CR","CU","CV","CW","CX","CY","CZ","DE","DJ","DK","DM","DO","DZ","EC","EE","EG","EH","ER","ES","ET","FI","FJ","FK","FM","FO","FR","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SV","SX","SY","SZ","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TR","TT","TV","TW","TZ","UA","UG","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XK","YE","YT","ZA","ZM","ZW"];function dn(e){try{return new Intl.DisplayNames([e],{type:"region"})}catch{return null}}function yn(e){try{return new Intl.Collator(e)}catch{return new Intl.Collator}}function Wt(e){let t=C(e);if(!t)return Z.map(r=>({code:r,name:r})).sort((r,i)=>r.code<i.code?-1:r.code>i.code?1:0);let o=dn(t),n=yn(t).compare;return Z.map(r=>({code:r,name:o?.of(r)??r})).sort((r,i)=>n(r.name,i.name))}function fn(e,t){if(!Array.isArray(t)||t.length===0)return null;let o=t.map(n=>e.options?.find(r=>r.key===n)?.label).filter(n=>!!n);return o.length>0?o:null}function gn(e,t){switch(e.type){case"number":return null;case"multi_select":return null;case"single_select":return typeof t!="string"?null:e.options?.find(o=>o.key===t)?.label??null;default:return typeof t=="string"&&t.trim()!==""?t:null}}function Zt(e,t,o){let n=[];for(let r of t??[]){let i=o?.[r.key];if(r.type==="boolean"){typeof i=="boolean"&&n.push({key:r.key,label:r.label,kind:"boolean",value:i});continue}if(r.type==="number"){typeof i=="number"&&Number.isFinite(i)&&n.push({key:r.key,label:r.label,kind:"number",value:i});continue}if(r.type==="multi_select"){let a=fn(r,i);a&&n.push({key:r.key,label:r.label,kind:"multi_select",values:a});continue}let s=gn(r,i);s!==null&&n.push({key:r.key,label:r.label,kind:"text",value:s})}return n}var fe=["US","GB","LR","MM"],Xt=1,eo=250;var hn=new Set(fe);function to(e){return typeof e=="string"&&hn.has(e.trim().toUpperCase())}function oo(e){return to(e)?"mi":"km"}function no(e){return to(e)?40:50}function ge(e){return e*1.609344}function he(e){return e/1.609344}function ro(e,t){return t==="mi"?he(e):e}function X(e,t){return t==="mi"?ge(e):e}var bn=[5,10,25,50,100];function io(e){return bn.map(t=>({value:t,unit:e,km:X(t,e)}))}function so(e){let t=e==="mi"?25:50;return{value:t,unit:e,km:X(t,e)}}function ao(e,t,o){return new Intl.NumberFormat(o,{style:"unit",unit:t==="mi"?"mile":"kilometer",unitDisplay:"short",maximumFractionDigits:1}).format(e)}var Se={};A(Se,{ALL_COUNTRY_CODES:()=>me,SENIORITY_ORDER:()=>Q,buildJobBreadcrumbs:()=>W,buildSalaryFaq:()=>Ft,companyCategorySalaryJsonLd:()=>Nt,companySalaryJsonLd:()=>Jt,createAuthorProfileJsonLd:()=>co,createBlogArticleJsonLd:()=>lo,createBreadcrumbJsonLd:()=>zt,createJobPostingJsonLd:()=>Qt,crossAxisSalaryJsonLd:()=>wt,faqJsonLd:()=>kt,formatSalaryStat:()=>q,formatSalaryStatRange:()=>k,itemListJsonLd:()=>H,listingHead:()=>po,listingJsonLd:()=>uo,locationSalaryJsonLd:()=>Mt,normalizeWebsiteUrl:()=>U,skillSalaryJsonLd:()=>Ut,sortBySeniority:()=>It,titleSalaryJsonLd:()=>xt});function lo({post:e,boardName:t,permalink:o,ogImageUrl:n}){let r={"@context":"https://schema.org","@type":"Article",headline:e.title,url:o,mainEntityOfPage:{"@type":"WebPage","@id":o},publisher:{"@type":"Organization",name:t}};e.customExcerpt&&(r.description=e.customExcerpt),e.publishedAt&&(r.datePublished=e.publishedAt);let i=e.coverUrl??n;i&&(r.image=i);let s=e.authors[0];return s&&(r.author={"@type":"Person",name:s.name,...s.websiteUrl?{url:s.websiteUrl}:{}}),r}function co({author:e,canonical:t,description:o,origin:n,posts:r,totalPosts:i}){if(!e.name)return null;let s=o.trim(),a=[ee(e.websiteUrl),ee(e.twitterUrl),ee(e.linkedinUrl),ee(e.githubUrl)].filter(d=>!!d),l=`${t}#profile`,c=r.slice(0,5).map(d=>{let y=Sn(n,`/blog/${d.slug}`);return y?{"@type":"Article",headline:d.title,url:y,datePublished:d.publishedAt,author:{"@id":l}}:null}).filter(d=>d!==null),p=i>0?{"@type":"InteractionCounter",interactionType:"https://schema.org/WriteAction",userInteractionCount:i}:void 0,m={"@context":"https://schema.org","@type":"ProfilePage",url:t,mainEntity:{"@type":"Person","@id":l,name:e.name,alternateName:e.slug??void 0,identifier:e.id??void 0,description:s||void 0,image:e.avatarUrl??void 0,sameAs:a.length>0?a:void 0,url:t,mainEntityOfPage:t,agentInteractionStatistic:p}};return c.length>0&&(m.hasPart=c),m}function ee(e){if(!e)return null;let t=e.trim();if(!t)return null;try{let o=t.startsWith("http://")||t.startsWith("https://")?t:`https://${t}`;return new URL(o).toString()}catch{return null}}function Sn(e,t){if(!e||!t)return null;try{return new URL(t,e).toString()}catch{return null}}function po(e){let t=e.title,o=e.description,n=`${e.origin}${e.path}`;return{meta:[{title:t},{name:"description",content:o},{property:"og:title",content:t},{property:"og:description",content:o},{property:"og:type",content:"website"},{property:"og:url",content:n}],links:[{rel:"canonical",href:n}]}}function uo(e){let t=[];e.breadcrumbs.length>=2&&t.push({"@context":"https://schema.org","@type":"BreadcrumbList",itemListElement:e.breadcrumbs.map((n,r)=>({"@type":"ListItem",position:r+1,name:n.name,...n.path?{item:z(e.origin,n.path)}:{}}))});let o=(e.jobs??[]).filter(n=>n.company!=null&&!!n.company.slug);return o.length>0&&t.push({"@context":"https://schema.org","@type":"ItemList",itemListElement:o.map((n,r)=>({"@type":"ListItem",position:r+1,url:z(e.origin,de(n.company.slug,n.slug))}))}),t}var Ce={};A(Ce,{createSuggestController:()=>_n});function Cn(e){return typeof DOMException<"u"&&e instanceof DOMException&&e.name==="AbortError"||e instanceof Error&&e.name==="AbortError"}function On(e){try{let t=0;for(let o of new Intl.Segmenter(void 0,{granularity:"grapheme"}).segment(e))t+=1;return t}catch{return[...e].length}}function mo(e,t){return t.size===0?e.slice():e.filter(o=>!(o.type==="company"&&t.has(o.slug.toLowerCase().normalize("NFC"))))}function _n(e,t){let o=t?.minChars??2,n=t?.debounceMs??250,r=t?.limit,i=!1,s={query:"",items:[],status:"idle",error:null},a=[],l=new Set,c=0,p=null,m=null,d=new Set;function y(){for(let u of d)u()}function g(u){s=u,y()}function O(){p!==null&&(globalThis.clearTimeout(p),p=null)}function h(){m&&(m.abort(),m=null)}function R(u){let b=++c;h();let _=new AbortController;m=_;let B={q:u};r!==void 0&&(B.limit=r),e.search.suggest(B,{signal:_.signal}).then(v=>{i||b!==c||(m=null,a=v.items,g({query:s.query,items:mo(a,l),status:"ready",error:null}))}).catch(v=>{i||b!==c||Cn(v)||(m=null,g({query:s.query,items:s.items,status:"error",error:v}))})}return{setQuery(u){if(i)return;let b=u.trim();if(O(),On(b)<o){c+=1,h(),a=[],g({query:u,items:[],status:"idle",error:null});return}c+=1,h(),g({query:u,items:s.items,status:"loading",error:null}),p=globalThis.setTimeout(()=>{p=null,!i&&R(b)},n)},setExcludedCompanySlugs(u){i||(l=new Set(u.map(b=>b.trim().toLowerCase().normalize("NFC")).filter(Boolean)),g({query:s.query,items:mo(a,l),status:s.status,error:s.error}))},getState(){return s},subscribe(u){return i?()=>{}:(d.add(u),()=>{d.delete(u)})},dispose(){i||(i=!0,O(),h(),c+=1,d.clear())}}}return So(Pn);})();
|
package/dist/filters.d.mts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { J as JobSort, E as EmploymentType, R as RemoteOption, S as Seniority } from './jobs-
|
|
2
|
-
import './_spec-
|
|
1
|
+
import { J as JobSort, E as EmploymentType, R as RemoteOption, S as Seniority } from './jobs-CeB5FVGG.mjs';
|
|
2
|
+
import './_spec-Pr6ZvyW_.mjs';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* `@cavuno/board/filters` — the canonical listing-filter vocabulary and URL
|
package/dist/filters.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { J as JobSort, E as EmploymentType, R as RemoteOption, S as Seniority } from './jobs-
|
|
2
|
-
import './_spec-
|
|
1
|
+
import { J as JobSort, E as EmploymentType, R as RemoteOption, S as Seniority } from './jobs-DN0ePjTg.js';
|
|
2
|
+
import './_spec-Pr6ZvyW_.js';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* `@cavuno/board/filters` — the canonical listing-filter vocabulary and URL
|
package/dist/format.d.mts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
export { C as CurrencyDisplay, F as FormattedSalaryRange, J as JobBreadcrumb, N as NumberNotation, S as SalaryTimeframeInput, a as SalaryTimeframeValue, b as buildJobBreadcrumbs, f as formatSalaryRange, c as formatSalaryStat, d as formatSalaryStatRange, n as normalizeWebsiteUrl } from './breadcrumbs-
|
|
2
|
-
import { C as CustomFieldDefinition } from './board-
|
|
3
|
-
import { C as CustomFieldValues } from './jobs-
|
|
4
|
-
import './_spec-
|
|
1
|
+
export { C as CurrencyDisplay, F as FormattedSalaryRange, J as JobBreadcrumb, N as NumberNotation, S as SalaryTimeframeInput, a as SalaryTimeframeValue, b as buildJobBreadcrumbs, f as formatSalaryRange, c as formatSalaryStat, d as formatSalaryStatRange, n as normalizeWebsiteUrl } from './breadcrumbs-WcxTd2Ka.mjs';
|
|
2
|
+
import { C as CustomFieldDefinition } from './board-C6PEXL7n.mjs';
|
|
3
|
+
import { C as CustomFieldValues } from './jobs-CeB5FVGG.mjs';
|
|
4
|
+
import './_spec-Pr6ZvyW_.mjs';
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* Date display helpers in the board language (required leading parameter,
|