@cavuno/board 4.67.0 → 4.68.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/{_spec-BehBmeHK.d.mts → _spec-t2B6ioRS.d.mts} +8 -2
  3. package/dist/{_spec-BehBmeHK.d.ts → _spec-t2B6ioRS.d.ts} +8 -2
  4. package/dist/{blog-BmfbjijG.d.mts → blog-B8UJJza1.d.mts} +1 -1
  5. package/dist/{blog-BLpOmpyQ.d.ts → blog-W1cBNXyS.d.ts} +1 -1
  6. package/dist/{board-CXd9Me7_.d.mts → board-8RMVpFBw.d.mts} +2 -2
  7. package/dist/{board-dV_3NXAI.d.ts → board-On_r_ixp.d.ts} +2 -2
  8. package/dist/{breadcrumbs-Cu_SPdRA.d.mts → breadcrumbs-BgBj_AiZ.d.mts} +2 -2
  9. package/dist/{breadcrumbs-PEsRCVwI.d.ts → breadcrumbs-eV2OQqf6.d.ts} +2 -2
  10. package/dist/browser/cavuno-board.global.min.js +1 -1
  11. package/dist/filters.d.mts +2 -2
  12. package/dist/filters.d.ts +2 -2
  13. package/dist/format.d.mts +4 -4
  14. package/dist/format.d.ts +4 -4
  15. package/dist/index.d.mts +17 -11
  16. package/dist/index.d.ts +17 -11
  17. package/dist/index.js +1 -1
  18. package/dist/index.mjs +1 -1
  19. package/dist/{jobs-CbTUedOr.d.mts → jobs-CrGBikhJ.d.mts} +1 -1
  20. package/dist/{jobs-D2mKA65F.d.ts → jobs-D_LjWgIk.d.ts} +1 -1
  21. package/dist/{search-CHejx_k7.d.ts → search-ClbqUjkA.d.ts} +1 -1
  22. package/dist/{search-CxUViZsz.d.mts → search-Yw5qsooq.d.mts} +1 -1
  23. package/dist/{seo-CWa4rTf7.d.mts → seo-Bjevxvzd.d.mts} +1 -1
  24. package/dist/{seo-DYyQ8NTh.d.ts → seo-CY5Vl13y.d.ts} +1 -1
  25. package/dist/seo-files.d.mts +2 -2
  26. package/dist/seo-files.d.ts +2 -2
  27. package/dist/seo.d.mts +6 -6
  28. package/dist/seo.d.ts +6 -6
  29. package/dist/server.d.mts +6 -6
  30. package/dist/server.d.ts +6 -6
  31. package/dist/sitemap.d.mts +6 -6
  32. package/dist/sitemap.d.ts +6 -6
  33. package/dist/suggest.d.mts +2 -2
  34. package/dist/suggest.d.ts +2 -2
  35. package/package.json +1 -1
  36. package/skills/manifest.json +1 -1
package/CHANGELOG.md CHANGED
@@ -3,6 +3,18 @@
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.68.0 — 2026-11-11
7
+
8
+ - Company market resolutions return `companyCount`: the number of companies
9
+ tagged with the market. Use it to tell whether a market page has enough
10
+ companies to index. The hosted sitemap lists a market page once at least
11
+ 5 companies carry it.
12
+ - Work arrangement pages: the place slugs `remote`, `hybrid` and `on-site`
13
+ name a work arrangement. Job list filters return that arrangement's jobs,
14
+ and place resolve returns its board-language label with `geo: null`. The
15
+ `jobs-locations` sitemap bucket lists the Remote page once the board has
16
+ enough remote jobs.
17
+
6
18
  ## 4.67.0 — 2026-11-11
7
19
 
8
20
  - Job seekers can fill their own image gallery and file profile fields: new
@@ -539,7 +539,7 @@ interface components {
539
539
  BoardSitemap: {
540
540
  /** @enum {string} */
541
541
  object: "board_sitemap";
542
- /** @description The buckets the board publishes, in the canonical bucket order. Empty buckets are omitted — exactly the set the hosted `/sitemap.xml` index lists. */
542
+ /** @description The buckets the board publishes, in the canonical bucket order. Empty buckets are omitted. This is the set the hosted `/sitemap.xml` index lists, plus the Remote work arrangement page (`/jobs/locations/remote`) in `jobs-locations` once the board has enough remote jobs. */
543
543
  buckets: components["schemas"]["BoardSitemapBucketSummary"][];
544
544
  };
545
545
  BoardSitemapBucketSummary: {
@@ -2924,6 +2924,10 @@ interface components {
2924
2924
  placeSuggestions: boolean;
2925
2925
  /** @description Whether the board serves its public MCP server, which AI assistants connect to at `/mcp` on the board's own host, with a setup page for job seekers at `/mcp/docs`. `true` on a paid board that is not password-protected and has not turned the server off. Show a link to `/mcp/docs` (for example in the footer) only when `true`. */
2926
2926
  mcp: boolean;
2927
+ /** @description Whether the board has a tip jar that is on (not archived). Matches `GET /v1/boards/{identifier}/tip-jar` answering 200 instead of `tip_jar_not_found`, so chrome can decide whether to link to the tip page from this context alone. */
2928
+ tipJar: boolean;
2929
+ /** @description Whether the board lists at least one digital product. Matches `GET /v1/boards/{identifier}/products` returning a non-empty first page with no filters, so chrome can decide whether to link to the products page from this context alone. */
2930
+ products: boolean;
2927
2931
  };
2928
2932
  /**
2929
2933
  * @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`.
@@ -3590,7 +3594,7 @@ interface components {
3590
3594
  */
3591
3595
  lte?: string;
3592
3596
  };
3593
- /** @description Only return jobs in the place with this slug, including the places inside it (a region includes its cities). The slug can also name a country or region remote jobs on the board are open to, as `GET /places?q=` suggests. 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. */
3597
+ /** @description Only return jobs in the place with this slug, including the places inside it (a region includes its cities). The slug can also name a country or region remote jobs on the board are open to, as `GET /places?q=` suggests. 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. The reserved slugs `remote`, `hybrid` and `on-site` name a work arrangement, not a place: they return the jobs `remoteOption` `remote`, `hybrid` or `on_site` returns, ignore `radius`, and combined with a `remoteOption` that leaves that arrangement out return no jobs. */
3594
3598
  location?: string;
3595
3599
  /** @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. */
3596
3600
  radius?: number;
@@ -3666,6 +3670,8 @@ interface components {
3666
3670
  ancestors?: components["schemas"]["PublicPlaceAncestor"][];
3667
3671
  /** @description The distance in kilometres the jobs search applies around this place when no `radius` is passed: a city or locality with coordinates gets the market default (25 miles, 40.2336 km, in the US, GB, LR and MM; 50 km elsewhere), applied with `defaultRadius=true`; a suggested place gets its own default for its size, with or without `defaultRadius`. Absent for regions, countries, places without coordinates, and categories and skills. Show it as the selected distance when the visitor has not picked one. */
3668
3672
  defaultRadiusKm?: number;
3673
+ /** @description The number of the board's companies tagged with this market. Present on market resolutions only. The board's sitemap lists a market page only when this is at least 5; emit `noindex, follow` on the plain market page below 5 so the two agree. */
3674
+ companyCount?: number;
3669
3675
  };
3670
3676
  PublicTaxonomyTerm: {
3671
3677
  /** @enum {string} */
@@ -539,7 +539,7 @@ interface components {
539
539
  BoardSitemap: {
540
540
  /** @enum {string} */
541
541
  object: "board_sitemap";
542
- /** @description The buckets the board publishes, in the canonical bucket order. Empty buckets are omitted — exactly the set the hosted `/sitemap.xml` index lists. */
542
+ /** @description The buckets the board publishes, in the canonical bucket order. Empty buckets are omitted. This is the set the hosted `/sitemap.xml` index lists, plus the Remote work arrangement page (`/jobs/locations/remote`) in `jobs-locations` once the board has enough remote jobs. */
543
543
  buckets: components["schemas"]["BoardSitemapBucketSummary"][];
544
544
  };
545
545
  BoardSitemapBucketSummary: {
@@ -2924,6 +2924,10 @@ interface components {
2924
2924
  placeSuggestions: boolean;
2925
2925
  /** @description Whether the board serves its public MCP server, which AI assistants connect to at `/mcp` on the board's own host, with a setup page for job seekers at `/mcp/docs`. `true` on a paid board that is not password-protected and has not turned the server off. Show a link to `/mcp/docs` (for example in the footer) only when `true`. */
2926
2926
  mcp: boolean;
2927
+ /** @description Whether the board has a tip jar that is on (not archived). Matches `GET /v1/boards/{identifier}/tip-jar` answering 200 instead of `tip_jar_not_found`, so chrome can decide whether to link to the tip page from this context alone. */
2928
+ tipJar: boolean;
2929
+ /** @description Whether the board lists at least one digital product. Matches `GET /v1/boards/{identifier}/products` returning a non-empty first page with no filters, so chrome can decide whether to link to the products page from this context alone. */
2930
+ products: boolean;
2927
2931
  };
2928
2932
  /**
2929
2933
  * @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`.
@@ -3590,7 +3594,7 @@ interface components {
3590
3594
  */
3591
3595
  lte?: string;
3592
3596
  };
3593
- /** @description Only return jobs in the place with this slug, including the places inside it (a region includes its cities). The slug can also name a country or region remote jobs on the board are open to, as `GET /places?q=` suggests. 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. */
3597
+ /** @description Only return jobs in the place with this slug, including the places inside it (a region includes its cities). The slug can also name a country or region remote jobs on the board are open to, as `GET /places?q=` suggests. 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. The reserved slugs `remote`, `hybrid` and `on-site` name a work arrangement, not a place: they return the jobs `remoteOption` `remote`, `hybrid` or `on_site` returns, ignore `radius`, and combined with a `remoteOption` that leaves that arrangement out return no jobs. */
3594
3598
  location?: string;
3595
3599
  /** @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. */
3596
3600
  radius?: number;
@@ -3666,6 +3670,8 @@ interface components {
3666
3670
  ancestors?: components["schemas"]["PublicPlaceAncestor"][];
3667
3671
  /** @description The distance in kilometres the jobs search applies around this place when no `radius` is passed: a city or locality with coordinates gets the market default (25 miles, 40.2336 km, in the US, GB, LR and MM; 50 km elsewhere), applied with `defaultRadius=true`; a suggested place gets its own default for its size, with or without `defaultRadius`. Absent for regions, countries, places without coordinates, and categories and skills. Show it as the selected distance when the visitor has not picked one. */
3668
3672
  defaultRadiusKm?: number;
3673
+ /** @description The number of the board's companies tagged with this market. Present on market resolutions only. The board's sitemap lists a market page only when this is at least 5; emit `noindex, follow` on the plain market page below 5 so the two agree. */
3674
+ companyCount?: number;
3669
3675
  };
3670
3676
  PublicTaxonomyTerm: {
3671
3677
  /** @enum {string} */
@@ -1,4 +1,4 @@
1
- import { S as Schemas } from './_spec-BehBmeHK.mjs';
1
+ import { S as Schemas } from './_spec-t2B6ioRS.mjs';
2
2
 
3
3
  /** Author shape embedded on posts (no `object` discriminator). */
4
4
  type BlogAuthorEmbed = Schemas['PublicBlogAuthorEmbed'];
@@ -1,4 +1,4 @@
1
- import { S as Schemas } from './_spec-BehBmeHK.js';
1
+ import { S as Schemas } from './_spec-t2B6ioRS.js';
2
2
 
3
3
  /** Author shape embedded on posts (no `object` discriminator). */
4
4
  type BlogAuthorEmbed = Schemas['PublicBlogAuthorEmbed'];
@@ -1,5 +1,5 @@
1
- import { S as Schemas } from './_spec-BehBmeHK.mjs';
2
- import { L as ListEnvelope, v as RelatedSearch, b as CustomFieldFilter, O as ObjectReferenceFilter, a as JobCapability } from './jobs-CbTUedOr.mjs';
1
+ import { S as Schemas } from './_spec-t2B6ioRS.mjs';
2
+ import { L as ListEnvelope, v as RelatedSearch, b as CustomFieldFilter, O as ObjectReferenceFilter, a as JobCapability } from './jobs-CrGBikhJ.mjs';
3
3
 
4
4
  type PublicCompany = Schemas['CompanyPublic'];
5
5
  /**
@@ -1,5 +1,5 @@
1
- import { S as Schemas } from './_spec-BehBmeHK.js';
2
- import { L as ListEnvelope, v as RelatedSearch, b as CustomFieldFilter, O as ObjectReferenceFilter, a as JobCapability } from './jobs-D2mKA65F.js';
1
+ import { S as Schemas } from './_spec-t2B6ioRS.js';
2
+ import { L as ListEnvelope, v as RelatedSearch, b as CustomFieldFilter, O as ObjectReferenceFilter, a as JobCapability } from './jobs-D_LjWgIk.js';
3
3
 
4
4
  type PublicCompany = Schemas['CompanyPublic'];
5
5
  /**
@@ -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-CXd9Me7_.mjs';
2
- import { P as PublicJob } from './jobs-CbTUedOr.mjs';
1
+ import { P as PublicBoard, a as CompanyCategorySalary, b as CompanySalary, L as LocationSalaryDetail, S as SkillSalaryDetail, T as TitleSalaryDetail } from './board-8RMVpFBw.mjs';
2
+ import { P as PublicJob } from './jobs-CrGBikhJ.mjs';
3
3
 
4
4
  /**
5
5
  * Wire enum for `salaryTimeframe`. Defined here (not re-exported from any
@@ -1,5 +1,5 @@
1
- import { P as PublicBoard, a as CompanyCategorySalary, b as CompanySalary, L as LocationSalaryDetail, S as SkillSalaryDetail, T as TitleSalaryDetail } from './board-dV_3NXAI.js';
2
- import { P as PublicJob } from './jobs-D2mKA65F.js';
1
+ import { P as PublicBoard, a as CompanyCategorySalary, b as CompanySalary, L as LocationSalaryDetail, S as SkillSalaryDetail, T as TitleSalaryDetail } from './board-On_r_ixp.js';
2
+ import { P as PublicJob } from './jobs-D_LjWgIk.js';
3
3
 
4
4
  /**
5
5
  * Wire enum for `salaryTimeframe`. Defined here (not re-exported from any
@@ -1 +1 @@
1
- "use strict";var CavunoBoard=(()=>{var J=Object.defineProperty;var To=Object.getOwnPropertyDescriptor;var Lo=Object.getOwnPropertyNames;var Io=Object.prototype.hasOwnProperty;var Fo=(e,t,o)=>t in e?J(e,t,{enumerable:!0,configurable:!0,writable:!0,value:o}):e[t]=o;var A=(e,t)=>{for(var o in t)J(e,o,{get:t[o],enumerable:!0})},ko=(e,t,o,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of Lo(t))!Io.call(e,r)&&r!==o&&J(e,r,{get:()=>t[r],enumerable:!(n=To(t,r))||n.enumerable});return e};var xo=e=>ko(J({},"__esModule",{value:!0}),e);var _=(e,t,o)=>Fo(e,typeof t!="symbol"?t+"":t,o);var jn={};A(jn,{ACCESS_TOKEN_KEY:()=>T,BOARD_ACCESS_GRANT_KEY:()=>I,BOARD_API_ERROR_CODES:()=>ve,BoardApiError:()=>E,BoardClient:()=>F,PURCHASE_CONFIRMATION_HEADER:()=>ae,REFRESH_TOKEN_KEY:()=>L,SDK_VERSION:()=>$,SIGN_IN_REDIRECT_ERROR_CODES:()=>$e,SSO_LINK_PROOF_BINDING_TTL_MS:()=>se,createBoardClient:()=>Ko,filters:()=>pe,format:()=>Pe,isBoardApiError:()=>C,isBoardPasswordRequired:()=>Ae,isColdRule:()=>ht,isConflict:()=>Fe,isForbidden:()=>Te,isFreeEmailWebsiteError:()=>ke,isNotFound:()=>Ee,isOwnMessage:()=>gt,isRateLimited:()=>Ie,isSafeApplicationUrl:()=>le,isSignInMethodUnavailable:()=>ie,isSsoBrowserMismatch:()=>Ue,isSsoRequired:()=>xe,isUnauthorized:()=>Be,isValidationError:()=>Le,lastOwnMessageId:()=>bt,paginate:()=>ft,parseJobAlertClickParams:()=>_t,parseJobAlertUnsubscribeParams:()=>Rt,parseOAuthCompletion:()=>je,paths:()=>be,resolveApplyAction:()=>Ct,resolveApplyDecision:()=>ce,seo:()=>_e,ssoLinkProofBindingStore:()=>j,suggest:()=>Re,tipCoverFeeCents:()=>vt});var ve=["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","collections_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","candidate_custom_field_not_found","candidate_custom_field_not_editable","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","job_posting_checkout_not_found","products_not_found","product_checkout_not_found","product_reviews_disabled","product_sold_out","product_email_invalid","product_email_blocked","product_amount_below_minimum","product_amount_invalid","product_answers_invalid","purchases_not_found","purchase_file_not_found","purchase_unavailable","purchase_access_removed","purchase_awaiting_payment","purchase_refunded","purchase_email_confirmation_required","purchase_email_mismatch","purchase_file_preparing","purchase_download_limit_reached","purchase_review_invalid","purchase_download_all_unavailable","tip_jar_not_found","tip_checkout_not_found","tip_amount_below_minimum","tip_amount_invalid","tip_note_not_allowed","tip_note_too_long","tip_fee_cover_not_allowed"],E=class extends Error{constructor(o){super(o.message);_(this,"status");_(this,"code");_(this,"details");_(this,"requestId");_(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 C(e){return e instanceof Error&&e.name==="BoardApiError"&&typeof e.status=="number"&&typeof e.code=="string"}function Ee(e){return C(e)&&e.status===404}function Be(e){return C(e)&&e.status===401}function Ae(e){return C(e)&&e.status===401&&e.code==="board_password_required"}function Te(e){return C(e)&&e.status===403}function Le(e){return C(e)&&e.status===400&&e.code==="validation_bad_request"}function Ie(e){return C(e)&&e.status===429}function Fe(e){return C(e)&&e.status===409}function ke(e){return C(e)&&e.status===422&&e.code==="employer_free_email_website"}function xe(e){if(!C(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"||ie(e)&&e.details.availableMethods.methods.length===0)}function ie(e){if(!C(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 Ue(e){return C(e)&&e.status===403&&e.code==="board_auth_sso_browser_mismatch"}function Me(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 N(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 we(){return typeof globalThis.document<"u"}function Uo(){let e=new Map;return{getItem:t=>e.get(t)??null,setItem:(t,o)=>{e.set(t,o)},removeItem:t=>{e.delete(t)}}}function Mo(e,t){if(!we())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?`:${N(t)}`:"";return{getItem:r=>o.getItem(`${r}${n}`),setItem:(r,i)=>{o.setItem(`${r}${n}`,i)},removeItem:r=>{o.removeItem(`${r}${n}`)}}}var wo=Symbol.for("@cavuno/board:nostore");var Jo={[wo]:!0,getItem:()=>null,setItem:()=>{},removeItem:()=>{}};function Je(e,t){let o=e??(we()?"memory":"nostore");if(typeof o=="object")return o;switch(o){case"memory":return Uo();case"nostore":return Jo;case"local":case"session":return Mo(o,t);default:throw new Error(`Unknown storage mode '${String(o)}'`)}}async function D(e,t){await e.setItem(T,t.accessToken),await e.setItem(L,t.refreshToken)}async function Ne(e){await e.removeItem(T),await e.removeItem(L)}var $="4.67.0";function No(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 Do(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){_(this,"storage");_(this,"basePath");_(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=Me(r).toString();p&&(l+=`?${p}`);let u=n!==void 0&&!No(n),m=n===void 0?void 0:u?JSON.stringify(n):n,f=new Headers({accept:"application/json"});u&&f.set("content-type","application/json");for(let[v,re]of Object.entries(this.options.globalHeaders??{}))f.set(v,re);let g=await this.storage.getItem(T);g!==null&&f.set("authorization",`Bearer ${g}`);let O=await this.storage.getItem(I);O!==null&&f.set("x-board-access",O),i&&new Headers(i).forEach((v,re)=>{f.set(re,v)}),(a!=="GET"||f.has("authorization")||f.has("x-board-access"))&&!f.has("x-cavuno-sdk")&&f.set("x-cavuno-sdk",`board@${$}`);let h={url:l,init:{...s,method:a,headers:f,body:m}};this.options.onRequest&&(h=await this.options.onRequest(h));let R=Do(h.url);this.options.logger?.debug(`${a} ${R}`);let d=await globalThis.fetch(h.url,h.init);if(this.options.logger?.debug(`${d.status} ${a} ${R}`),this.options.onResponse&&await this.options.onResponse(d.clone(),h),d.status===204)return;if(d.ok)return await d.json();let b;try{b=await d.json()}catch{b=void 0}let P=b?.error,B=P&&typeof P.code=="string"&&typeof P.message=="string"?new E({status:d.status,code:P.code,message:P.message,details:P.details,requestId:P.requestId,raw:b}):new E({status:d.status,code:"unknown_error",message:d.statusText||"Request failed",raw:b});throw this.options.logger?.error(`${B.status} ${B.code} ${a} ${R}`),B}};var De="https://api.cavuno.com";var $e=["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 $o(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 jo(e){return!e||!e.startsWith("/")||e.startsWith("//")||e.startsWith("/\\")||e.includes("://")||/[\u0000-\u001F\u007F]/.test(e)?"/":e}function Qo(e){return e==="candidate"||e==="employer"?e:null}function je(e){let t=$o(e),o=c=>{let p=t.get(c);return p&&p.length>0?p:null},n=jo(o("returnTo")),r=Qo(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 se=1500*1e3,Vo="cavuno_board_sso_link_proof_binding";function qo(){try{return globalThis.localStorage??null}catch{return null}}function j(e,t={}){let o=`${Vo}:${N(e)}`,n=t.now??Date.now,r=()=>t.storage??qo(),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()+se})),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 Qe(e,t=""){let o=()=>j(t);async function n(i){return await D(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 Ne(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})},verifyItemEmail(i,s){return e.fetch("/auth/verify-item-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)},async getOAuthAuthorizationUrl(i,s,a){let l=s?.browserBindingHash,c;if(!l&&globalThis.crypto?.subtle)try{c=o().begin()}catch{}let p=c!==void 0;try{if(c!==void 0){let u=await globalThis.crypto.subtle.digest("SHA-256",new TextEncoder().encode(c));l=Array.from(new Uint8Array(u),m=>m.toString(16).padStart(2,"0")).join("")}return await e.fetch(`/auth/oauth/${i}`,{...a,method:"GET",query:l?{...s,browserBindingHash:l}:s})}catch(u){throw p&&o().clear(),u}},async exchangeOAuth(i,s){let a=await e.fetch("/auth/oauth/exchange",{...s,method:"POST",body:{...i,browserBinding:i.browserBinding??o().read()??void 0}}),l=await n(a);return o().clear(),l},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),u=>u.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 Ve(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 qe(e){return{entries(t,o,n){return e.fetch(`/collections/${encodeURIComponent(t)}/entries`,{...n,query:o})}}}function Ge(e){let t=Object.assign((r,i)=>e.fetch("/companies/markets",{...i,query:r}),{resolve(r,i){return e.fetch(`/companies/markets/${encodeURIComponent(r)}`,i)}});function o(r,i,s){let{locale:a,...l}=i??{},c=a===void 0?void 0:{locale:a},p=Object.keys(l).length>0?{...l,...s}:s;return e.fetch(`/companies/${encodeURIComponent(r)}/salaries`,c?{...p,query:c}:p)}let n=Object.assign(o,{summary(r,i){return e.fetch(`/companies/${encodeURIComponent(r)}/salaries/summary`,i)},category(r,i,s,a){return e.fetch(`/companies/${encodeURIComponent(r)}/salaries/${encodeURIComponent(i)}`,{...a,query:s})}});return{list(r,i){return e.fetch("/companies",{...i,query:r})},retrieve(r,i,s){return e.fetch(`/companies/${encodeURIComponent(r)}`,{...s,query:i})},search(r,i,s){return e.fetch("/companies/search",{...s,method:"POST",body:r,query:i})},listJobs(r,i,s){return e.fetch(`/companies/${encodeURIComponent(r)}/jobs`,{...s,query:i})},similar(r,i,s){return e.fetch(`/companies/${encodeURIComponent(r)}/similar`,{...s,query:i})},markets:t,salaries:n}}function He(e){return{jobs(t,o){return e.fetch("/embed/jobs",{...o,query:t})}}}function Ke(e){return{preview(t,o){return e.fetch("/invites/preview",{...o,method:"POST",body:t})}}}function Ye(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})},recordClick(t,o){return e.fetch("/job-alerts/clicks",{...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 ze(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})},getCheckout(t,o){return e.fetch(`/job-postings/checkout/${encodeURIComponent(t)}`,o)},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 We(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 Ze(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 Xe(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 D(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})},listVerifications(t){return e.fetch("/me/profile/verifications",t)},submitVerification(t,o){return e.fetch("/me/profile/verifications",{...o,method:"POST",body:t})},submitEmailDomainVerification(t,o){return e.fetch("/me/profile/verifications/email-domain",{...o,method:"POST",body:t})},confirmEmailDomainVerification(t,o){return e.fetch("/me/profile/verifications/email-domain/confirm",{...o,method:"POST",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})},uploadCustomFieldFile(t,o,n){let r=new FormData;return r.append("file",o),e.fetch(`/me/profile/custom-fields/${encodeURIComponent(t)}/files`,{...n,method:"POST",body:r})}},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})},listVerifications(t,o){return e.fetch(`/me/companies/${encodeURIComponent(t)}/verifications`,o)},submitVerification(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/verifications`,{...n,method:"POST",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?.shareWithEmployers&&r.append("shareWithEmployers","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)},update(t,o){return e.fetch("/me/resume",{...o,method:"PATCH",body: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 et(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 tt(e){return{offers(t){return e.fetch("/paywall/offers/enabled",t)}}}function ot(e){return{list(t,o){return e.fetch("/plans",{...o,query:t})},salesLed(t){return e.fetch("/sales-led-plans",t)}}}var Q=e=>`/products/${encodeURIComponent(e)}`;function nt(e){return{list(t,o){return e.fetch("/products",{...o,query:t})},get(t,o){return e.fetch(Q(t),o)},reviews(t,o,n){return e.fetch(`${Q(t)}/reviews`,{...n,query:o})},checkout(t,o,n){return e.fetch(`${Q(t)}/checkout`,{...n,method:"POST",body:o})},getCheckout(t,o,n){return e.fetch(`${Q(t)}/checkout/${encodeURIComponent(o)}`,n)}}}function rt(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})}}}var ae="x-cavuno-purchase-confirmation",k=e=>`/purchases/${encodeURIComponent(e)}`;function V(e){if(!e)return{};let{confirmationToken:t,...o}=e;if(!t)return o;let n=new Headers(o.headers);return n.set(ae,t),{...o,headers:n}}function it(e){return{get(t,o){return e.fetch(k(t),V(o))},confirmEmail(t,o,n){return e.fetch(`${k(t)}/confirm`,{...n,method:"POST",body:o})},download(t,o,n){return e.fetch(`${k(t)}/files/${encodeURIComponent(o)}/download`,{...V(n),method:"POST"})},downloadAll(t,o){return e.fetch(`${k(t)}/download-all`,{...V(o),method:"POST"})},review(t,o,n){return e.fetch(`${k(t)}/review`,{...V(n),method:"PUT",body:o})},resend(t,o){return e.fetch("/purchases/resend",{...o,method:"POST",body:t})},mine(t){return e.fetch("/me/purchases",t)}}}function st(e){return{resolve(t,o){return e.fetch("/redirects/resolve",{...o,query:{path:t}})}}}function at(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 lt(e){return{suggest(t,o){return e.fetch("/search/suggest",{...o,query:t})}}}function ct(e){return Object.assign(t=>e.fetch("/sitemap",t),{entries(t,o,n){return e.fetch(`/sitemap/${encodeURIComponent(t)}`,{...n,query:o})}})}function pt(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 mt(e,t){return{resolve(o,n){return e.fetch(`/${t}/${encodeURIComponent(o)}`,n)}}}function ut(e,t){return{...mt(e,t),list(o,n){return e.fetch(`/${t}`,{...n,query:o})}}}function dt(e){return{categories:ut(e,"categories"),skills:ut(e,"skills"),remotePermits:{list(t){return e.fetch("/remote-permits",t)}},places:{...mt(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 yt(e){return{get(t){return e.fetch("/tip-jar",t)},checkout(t,o){return e.fetch("/tip-jar/checkout",{...o,method:"POST",body:t})},getCheckout(t,o){return e.fetch(`/tip-jar/checkout/${encodeURIComponent(t)}`,o)}}}function ft(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 gt(e,t){return e.authorBoardUserId!==t}function ht(e,t){let o=e.some(r=>r.authorBoardUserId===t);return e.some(r=>r.authorBoardUserId!==t)&&!o}function bt(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 le(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 ce(e){let t=e.applicationUrl&&le(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 Ct(e){let t=ce({...e,registrationWall:!1,allowGuestApply:!1});return t.kind==="sign-in"?{kind:"sign-in"}:t}var St=/^[0-9A-Za-z]{16,64}$/,Ot=/^[0-9a-f]{16}$/,Go=/^[a-z0-9-]{1,64}$/,Ho=/^[1-9][0-9]{0,2}$/;function Pt(e){if(e instanceof URLSearchParams)return e;if(e instanceof URL)return e.searchParams;if(e.startsWith("?")||!e.includes("/")&&e.includes("="))return new URLSearchParams(e);try{return new URL(e,"https://board.invalid").searchParams}catch{return new URLSearchParams}}function _t(e){let t=Pt(e),o=t.get("ja_alert")??"",n=t.get("ja_email")??"",r=t.get("ja_pos")??"",i=t.get("ja_mv")??"",s=Ho.test(r)?Number(r):NaN;return!St.test(o)||!Ot.test(n)||!Go.test(i)||!(s>=1&&s<=100)?null:{alertId:o,emailId:n,position:s,matcherVersion:i}}function Rt(e){let t=Pt(e),o=t.get("ja_alert")??"",n=t.get("ja_email")??"";return!St.test(o)||!Ot.test(n)?null:{alertId:o,emailId:n}}function vt(e,t){if(!t||!Number.isInteger(e)||e<=0)return 0;let o=1e4-t.percentBps,n=(e+t.fixedMinor)*1e4;return Math.floor((n+o-1)/o)-e}function Ko(e){let t=new F({baseUrl:e.baseUrl??De,board:e.board,storage:Je(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:We(t),embed:He(t),companies:Ge(t),blog:Ve(t),collections:qe(t),auth:Qe(t,e.board),me:Xe(t),invites:Ke(t),password:et(t),taxonomy:dt(t),search:lt(t),locations:Ze(t),redirects:st(t),jobAlerts:Ye(t),jobPosting:ze(t),salaries:at(t),talent:pt(t),profileFields:rt(t),plans:ot(t),paywall:tt(t),products:nt(t),purchases:it(t),tipJar:yt(t),sitemap:ct(t)}}var pe={};A(pe,{DEFAULT_SORT:()=>Yo,EMPLOYMENT_TYPES:()=>Bt,JOB_SORTS:()=>Tt,REMOTE_OPTIONS:()=>Et,SENIORITIES:()=>At,parseCategory:()=>Ft,parseCompany:()=>It,parseListingFilters:()=>Wo,parseSeniority:()=>Lt});var Et=["on_site","hybrid","remote"],Bt=["full_time","part_time","contract","internship","temporary"],At=["entry_level","associate","mid_level","senior","lead","principal","director","executive"],Tt=["relevance","newest","salary_high","distance"],Yo="relevance";var zo=new Set(At);function Lt(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)||zo.has(i)&&(n.add(i),o.push(i))}return o.length>0?o:void 0}function It(e){return kt(e,10)}function Ft(e){return kt(e,10)}function kt(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 Wo(e){return{q:typeof e.q=="string"&&e.q?e.q:void 0,remoteOption:Et.includes(e.remoteOption)?e.remoteOption:void 0,employmentType:Bt.includes(e.employmentType)?e.employmentType:void 0,seniority:Lt(e.seniority),company:It(e.company),category:Ft(e.category),sort:Tt.includes(e.sort)?e.sort:void 0}}var Pe={};A(Pe,{COMMUTE_RADIUS_MAX_KM:()=>fo,COMMUTE_RADIUS_MIN_KM:()=>yo,COUNTRY_CODES:()=>te,MILES_COUNTRIES:()=>Ce,buildJobBreadcrumbs:()=>ee,countryOptions:()=>uo,defaultCommuteRadiusKm:()=>bo,defaultSearchRadius:()=>Oo,distanceUnitForCountry:()=>ho,distanceUnitToKm:()=>oe,formatDate:()=>Jt,formatDistance:()=>Po,formatMonthYear:()=>Dt,formatPublishedRelativeDate:()=>Nt,formatSalaryRange:()=>$t,formatSalaryStat:()=>H,formatSalaryStatRange:()=>x,kmToDistanceUnit:()=>Co,kmToMiles:()=>Oe,milesToKm:()=>Se,normalizeWebsiteUrl:()=>M,resolveCustomFieldDisplay:()=>mo,searchRadiusOptions:()=>So});function S(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 xt=new Map,Ut=new Map,Mt=new Map,wt=new Map;function Zo(e){let t=xt.get(e);return t||(t=new Intl.RelativeTimeFormat(e,{numeric:"always",style:"short"}),xt.set(e,t)),t}function Xo(e){let t=Ut.get(e);return t||(t=new Intl.RelativeTimeFormat(e,{numeric:"auto",style:"short"}),Ut.set(e,t)),t}function en(e){let t=Mt.get(e);return t||(t=new Intl.DateTimeFormat(e,{dateStyle:"medium",timeZone:"UTC"}),Mt.set(e,t)),t}function tn(e){let t=wt.get(e);return t||(t=new Intl.DateTimeFormat(e,{month:"short",year:"numeric",timeZone:"UTC"}),wt.set(e,t)),t}function ue(e,t,o){try{return Zo(o).format(e,t)}catch{return null}}function Jt(e,t){if(!t)return null;let o=new Date(t);if(Number.isNaN(o.getTime()))return null;let n=S(e);if(!n)return null;try{return en(n).format(o)}catch{return o.toISOString().split("T")[0]}}function Nt(e,t,o=Date.now()){if(!t)return null;let n=new Date(t);if(Number.isNaN(n.getTime()))return null;let r=S(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,u=30*c,m=365*c;if(s<a)try{return Xo(r).format(0,"second")}catch{return ue(0,"second",r)}let f=[{unit:"year",ms:m},{unit:"month",ms:u},{unit:"week",ms:p},{unit:"day",ms:c},{unit:"hour",ms:l},{unit:"minute",ms:a}];for(let h of f)if(s>=h.ms){let R=Math.round(s/h.ms),d=i>=0?-R:R;return ue(d,h.unit,r)}let g=Math.round(s/1e3),O=i>=0?-g:g;return ue(O,"second",r)}function Dt(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=S(e);if(!r)return null;try{return tn(r).format(n)}catch{return null}}var q=new Map;function me(e,t,o,n="symbol",r="compact"){let i=`${t}:${o}:${n}:${r}`,s=q.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}q.set(i,s)}return s?s.format(e):null}function de(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 on(e,t,o,n,r="symbol",i="compact"){let s=`${o}:${n}:${r}:${i}:range`,a=q.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}q.set(s,a)}return a?de(a,e,t):null}var nn=new Set(["per_year","per_month","per_week","per_day","per_hour"]);function rn(...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 $t(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=S(e);if(!p)return null;let u=s??rn(t,o),m=typeof n=="string"&&nn.has(n)?n:null;if(t!=null&&o!=null){let g=t<=o?t:o,O=t<=o?o:t,h=g===O?me(g,p,c,i,u):on(g,O,p,c,i,u);return h?{text:h,timeframe:m,bound:"range"}:null}if(t!=null){let g=me(t,p,c,i,u);return g?{text:g,timeframe:m,bound:"from"}:null}let f=me(o,p,c,i,u);return f?{text:f,timeframe:m,bound:"upTo"}:null}var jt=new Map;function Qt(...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 Vt(e,t,o){let n=`${e}:${t}:${o}`,r=jt.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 jt.set(n,i),i}function H(e,t,o,n){if(!Number.isFinite(t))return null;let r=o?.trim().toUpperCase()||null;if(!r)return null;let i=S(e);if(!i)return null;let s=n??Qt(t),a=Vt(i,r,s);return a?a.format(t):null}function x(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=S(e);if(!s)return null;let a=r??Qt(t,o),l=Vt(s,i,a);if(!l)return null;let c=Math.min(t,o),p=Math.max(t,o);return c===p?l.format(c):de(l,c,p)}var G=["entry_level","associate","mid_level","senior","lead","principal","director","executive"];function qt(e){return[...e].sort((t,o)=>{let n=G.indexOf(t.seniority),r=G.indexOf(o.seniority);return(n===-1?999:n)-(r===-1?999:r)})}var sn={unitText:"YEAR",duration:"P1Y"};function U(e,t,o,n,r={}){return{"@type":"MonetaryAmountDistribution",...e!==void 0?{name:e}:{},currency:t,minValue:o,maxValue:n,...r,...sn}}function ye(e,t,o,n){return e.map(r=>{let i=n?.seniorityName?.({seniority:r.seniority,entity:o});return U(i,t,r.avgSalaryMin,r.avgSalaryMax)})}function K(e,t,o,n){return{"@context":"https://schema.org","@type":e,name:t,...o,estimatedSalary:n}}function Gt(e,t,o,n){if(!o)return[];let r=x(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 Y(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 Ht(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 Kt(e,t){return e.overallSalary?K("Occupation",e.categoryName,{},[U(e.categoryName,e.currency,e.overallSalary.avgMin,e.overallSalary.avgMax,{...e.boardP25Min?{percentile25:e.boardP25Min}:{},...e.boardP75Max?{percentile75:e.boardP75Max}:{}}),...ye(e.bySeniority,e.currency,e.categoryName,t)]):null}function Yt(e){return e.overallSalary?K("Occupation",e.skillName,{},[U(e.skillName,e.currency,e.overallSalary.avgMin,e.overallSalary.avgMax,{median:Math.round((e.overallSalary.medianMin+e.overallSalary.medianMax)/2)})]):null}function zt(e,t){return!t?.occupationUrl||!(e.adminLevel==="city"||e.adminLevel==="locality")?null:Y(e.topCategories.map(n=>({name:n.categoryName,url:t.occupationUrl(n)})))}function Wt(e,t){return e.overall?K("Occupation",e.name,{occupationLocation:{"@type":"AdministrativeArea",name:e.placeName,address:{"@type":"PostalAddress",addressCountry:e.countryCode}}},[U(e.name,e.currency,e.overall.avgMin,e.overall.avgMax,{...e.overall.p25Min?{percentile25:e.overall.p25Min}:{},...e.overall.p75Max?{percentile75:e.overall.p75Max}:{}}),...ye(e.bySeniority,e.currency,e.name,t)]):null}function Zt(e,t){return t?.occupationUrl?Y(e.byCategory.map(o=>({name:o.categoryName,url:t.occupationUrl(o)}))):null}function Xt(e,t){return e.overallSalary?K("Occupation",e.categoryName,{occupationalCategory:e.categoryName,hiringOrganization:{"@type":"Organization",name:e.companyName}},[U(e.categoryName,e.currency,e.overallSalary.avgMin,e.overallSalary.avgMax,{...e.boardCategoryP25Min?{percentile25:e.boardCategoryP25Min}:{},...e.boardCategoryP75Max?{percentile75:e.boardCategoryP75Max}:{}}),...ye(e.bySeniority,e.currency,e.categoryName,t)]):null}function oo(e,t){return e.company?.name??t.legalName??t.contact?.legalName??t.name??null}var eo={high_school:"high school",associate_degree:"associate degree",bachelor_degree:"bachelor degree",professional_certificate:"professional certificate",postgraduate_degree:"postgraduate degree"},an={full_time:"FULL_TIME",part_time:"PART_TIME",contract:"CONTRACTOR",internship:"INTERN",temporary:"TEMPORARY",volunteer:"VOLUNTEER",other:"OTHER"},ln={per_year:"YEAR",per_month:"MONTH",per_week:"WEEK",per_day:"DAY",per_hour:"HOUR"},ge=["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 no({job:e,board:t,shareUrl:o}){let n=fn(e),r=gn(e),i=fe({"@context":"https://schema.org/","@type":"JobPosting",title:e.title,description:e.description??"",identifier:cn(e,t),datePosted:to(e.publishedAt),validThrough:to(e.expiresAt),employmentType:e.employmentType?an[e.employmentType]??"OTHER":"OTHER",hiringOrganization:pn(e,t),jobLocation:mn(e),jobLocationType:e.remoteOption==="remote"?"TELECOMMUTE":void 0,applicantLocationRequirements:e.remoteOption==="remote"?yn(e):null,baseSalary:un(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 cn(e,t){let o=oo(e,t),n={"@type":"PropertyValue",value:e.id};return o&&(n.name=o),n}function pn(e,t){let o=oo(e,t);if(!o)return null;let n={"@type":"Organization",name:o},r=e.company?.website??null,i=r?M(r):null;i&&(n.sameAs=i);let s=e.company?.logoUrl??t.logoUrl??null;return s&&(n.logo=s),n}function M(e){let t=e.trim();return t?/^https?:\/\//i.test(t)?t:`https://${t}`:null}function un(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?ln[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 mn(e){let t=e.officeLocations.map(o=>dn({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 dn({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 u=Object.keys(i).length>1;if(!u&&!p)return null;let m={"@type":"Place"};return p&&(m.name=p),u&&(m.address=i),m}function yn(e){if(e.remoteWorldwide)return ge.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 fn(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 eo).map(n=>({"@type":"EducationalOccupationalCredential",credentialCategory:eo[n]}));return o.length>0?o:null}function gn(e){let t=e.experienceMonths;return typeof t!="number"?null:t===0?"no requirements":{"@type":"OccupationalExperienceRequirements",monthsOfExperience:t}}function to(e){if(!e)return null;let t=new Date(e);return Number.isNaN(t.getTime())?null:t.toISOString()}function fe(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=>fe(o)).filter(t);if(e&&typeof e=="object"){let o=Object.entries(e).map(([n,r])=>[n,fe(r)]).filter(([,n])=>t(n));return Object.fromEntries(o)}return e}var be={};A(be,{BOARD_PATHS:()=>Z,blogAuthorPath:()=>Pn,blogPostPath:()=>lo,blogTagPath:()=>co,boardUrl:()=>X,companyMarketPath:()=>ao,companyPath:()=>so,companySalaryPath:()=>bn,encodePathSegment:()=>y,goAlertsConfirmPath:()=>Tn,goAlertsManagePath:()=>An,goJobPath:()=>Bn,jobDetailPath:()=>he,jobsCategoryPath:()=>z,jobsLocationCategoryPath:()=>W,jobsLocationPath:()=>w,jobsLocationSkillPath:()=>io,jobsSkillPath:()=>ro,productPath:()=>vn,purchasePath:()=>En,salaryLocationPath:()=>On,salarySkillPath:()=>Sn,salaryTitlePath:()=>Cn,suggestionPath:()=>hn,talentLocationPath:()=>Rn,talentProfilePath:()=>_n});function y(e){try{return encodeURIComponent(decodeURIComponent(e)).replace(/%3A/gi,":")}catch{return encodeURIComponent(e).replace(/%3A/gi,":")}}function he(e,t){return`/companies/${y(e)}/jobs/${y(t)}`}function z(e){return`/jobs/${y(e)}`}function ro(e){return`/jobs/skills/${y(e)}`}function w(e){return`/jobs/locations/${y(e)}`}function W(e,t){return`${w(e)}/${y(t)}`}function io(e,t){return`${w(e)}/skills/${y(t)}`}function so(e){return`/companies/${y(e)}`}function ao(e){return`/companies/markets/${y(e)}`}function hn(e,t){let o=t.location?.trim()||void 0;return t.scope==="blog"?e.type==="post"?lo(e.slug):e.type==="tag"?co(e.slug):null:t.scope==="jobs"?e.type==="company"||e.type==="market"||e.type==="post"||e.type==="tag"?null:e.termType==="skill"?o?io(o,e.canonicalSlug):ro(e.canonicalSlug):o?W(o,e.canonicalSlug):z(e.canonicalSlug):e.type==="company"?so(e.slug):e.type==="market"?ao(e.canonicalSlug??e.slug):null}function bn(e){return`/companies/${y(e)}/salaries`}function Cn(e){return`/salaries/titles/${y(e)}`}function Sn(e){return`/salaries/skills/${y(e)}`}function On(e){return`/salaries/locations/${y(e)}`}function lo(e){return`/blog/${y(e)}`}function co(e){return`/blog/tag/${y(e)}`}function Pn(e){return`/blog/author/${y(e)}`}function _n(e){return`/p/${y(e)}`}function Rn(e){return`/talent/locations/${y(e)}`}function vn(e){return`/products/${y(e)}`}function En(e){return`/purchases/${y(e)}`}var Z={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",products:"/products",mePurchases:"/me/purchases",tip:"/tip"};function Bn(e){return`/go/job/${e}`}function An(){return"/go/alerts-manage"}function Tn(){return"/go/alerts-confirm"}function X(e,t){return`${e.replace(/\/+$/,"")}${t}`}function po(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).filter((r,i,s)=>!!r.href||i===s.length-1);return o.length<2?null:{"@context":"https://schema.org","@type":"BreadcrumbList",itemListElement:o.map((r,i)=>{let s=r.href?Ln(r.href,t.origin??null):null,a={"@type":"ListItem",position:i+1,name:r.name};return s&&(a.item=s),a})}}function Ln(e,t){if(In(e))return e;if(!t)return null;let o=e.startsWith("/")?e:`/${e}`;return`${t}${o}`}function In(e){return/^https?:\/\//i.test(e)}function ee(e){let t=[{kind:"home",path:Z.home},{kind:"jobs",path:Z.jobs}],o=null;for(let r of e.placeHierarchy)o=r.canonicalSlug,t.push({kind:"place",name:r.name,path:w(r.canonicalSlug)});let n=e.categories[0];return n&&t.push({kind:"category",name:n.name,path:o?W(o,n.slug):z(n.slug)}),t.push({kind:"job",name:e.title}),t}var te=["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 Fn(e){try{return new Intl.DisplayNames([e],{type:"region"})}catch{return null}}function kn(e){try{return new Intl.Collator(e)}catch{return new Intl.Collator}}function uo(e){let t=S(e);if(!t)return te.map(r=>({code:r,name:r})).sort((r,i)=>r.code<i.code?-1:r.code>i.code?1:0);let o=Fn(t),n=kn(t).compare;return te.map(r=>({code:r,name:o?.of(r)??r})).sort((r,i)=>n(r.name,i.name))}function xn(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 Un(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 mo(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=xn(r,i);a&&n.push({key:r.key,label:r.label,kind:"multi_select",values:a});continue}let s=Un(r,i);s!==null&&n.push({key:r.key,label:r.label,kind:r.type==="rich_text"?"rich_text":"text",value:s})}return n}var Ce=["US","GB","LR","MM"],yo=1,fo=250;var Mn=new Set(Ce);function go(e){return typeof e=="string"&&Mn.has(e.trim().toUpperCase())}function ho(e){return go(e)?"mi":"km"}function bo(e){return go(e)?40:50}function Se(e){return e*1.609344}function Oe(e){return e/1.609344}function Co(e,t){return t==="mi"?Oe(e):e}function oe(e,t){return t==="mi"?Se(e):e}var wn=[5,10,25,50,100];function So(e){return wn.map(t=>({value:t,unit:e,km:oe(t,e)}))}function Oo(e){let t=e==="mi"?25:50;return{value:t,unit:e,km:oe(t,e)}}function Po(e,t,o){return new Intl.NumberFormat(o,{style:"unit",unit:t==="mi"?"mile":"kilometer",unitDisplay:"short",maximumFractionDigits:1}).format(e)}var _e={};A(_e,{ALL_COUNTRY_CODES:()=>ge,SENIORITY_ORDER:()=>G,buildJobBreadcrumbs:()=>ee,buildSalaryFaq:()=>Gt,companyCategorySalaryJsonLd:()=>Xt,companySalaryJsonLd:()=>Zt,createAuthorProfileJsonLd:()=>Ro,createBlogArticleJsonLd:()=>_o,createBreadcrumbJsonLd:()=>po,createJobPostingJsonLd:()=>no,crossAxisSalaryJsonLd:()=>Wt,faqJsonLd:()=>Ht,formatSalaryStat:()=>H,formatSalaryStatRange:()=>x,itemListJsonLd:()=>Y,listingHead:()=>Eo,listingJsonLd:()=>Bo,locationSalaryJsonLd:()=>zt,normalizeWebsiteUrl:()=>M,skillSalaryJsonLd:()=>Yt,sortBySeniority:()=>qt,titleSalaryJsonLd:()=>Kt});function _o({post:e,boardName:t,permalink:o,ogImageUrl:n,authorProfileUrl:r}){let i={"@context":"https://schema.org","@type":"Article",headline:e.title,url:o,mainEntityOfPage:{"@type":"WebPage","@id":o},publisher:{"@type":"Organization",name:t}};e.customExcerpt&&(i.description=e.customExcerpt),e.publishedAt&&(i.datePublished=e.publishedAt);let s=e.coverUrl??n;s&&(i.image=s);let a=e.authors[0];return a&&(i.author=r?{"@type":"Person","@id":vo(r),name:a.name,url:r}:{"@type":"Person",name:a.name,...a.websiteUrl?{url:a.websiteUrl}:{}}),i}function Ro({author:e,canonical:t,description:o,origin:n,posts:r,totalPosts:i}){if(!e.name)return null;let s=o.trim(),a=[ne(e.websiteUrl),ne(e.twitterUrl),ne(e.linkedinUrl),ne(e.githubUrl)].filter(m=>!!m),l=vo(t),c=r.slice(0,5).map(m=>{let f=Jn(n,`/blog/${m.slug}`);return f?{"@type":"Article",headline:m.title,url:f,datePublished:m.publishedAt,author:{"@id":l}}:null}).filter(m=>m!==null),p=i>0?{"@type":"InteractionCounter",interactionType:"https://schema.org/WriteAction",userInteractionCount:i}:void 0,u={"@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&&(u.hasPart=c),u}function vo(e){return`${e}#profile`}function ne(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 Jn(e,t){if(!e||!t)return null;try{return new URL(t,e).toString()}catch{return null}}function Eo(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 Bo(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:X(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:n.links?.public||X(e.origin,he(n.company.slug,n.slug))}))}),t}var Re={};A(Re,{createSuggestController:()=>$n});function Nn(e){return typeof DOMException<"u"&&e instanceof DOMException&&e.name==="AbortError"||e instanceof Error&&e.name==="AbortError"}function Dn(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 Ao(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,u=null,m=new Set;function f(){for(let d of m)d()}function g(d){s=d,f()}function O(){p!==null&&(globalThis.clearTimeout(p),p=null)}function h(){u&&(u.abort(),u=null)}function R(d){let b=++c;h();let P=new AbortController;u=P;let B={q:d};r!==void 0&&(B.limit=r),e.search.suggest(B,{signal:P.signal}).then(v=>{i||b!==c||(u=null,a=v.items,g({query:s.query,items:Ao(a,l),status:"ready",error:null}))}).catch(v=>{i||b!==c||Nn(v)||(u=null,g({query:s.query,items:s.items,status:"error",error:v}))})}return{setQuery(d){if(i)return;let b=d.trim();if(O(),Dn(b)<o){c+=1,h(),a=[],g({query:d,items:[],status:"idle",error:null});return}c+=1,h(),g({query:d,items:s.items,status:"loading",error:null}),p=globalThis.setTimeout(()=>{p=null,!i&&R(b)},n)},setExcludedCompanySlugs(d){i||(l=new Set(d.map(b=>b.trim().toLowerCase().normalize("NFC")).filter(Boolean)),g({query:s.query,items:Ao(a,l),status:s.status,error:s.error}))},getState(){return s},subscribe(d){return i?()=>{}:(m.add(d),()=>{m.delete(d)})},dispose(){i||(i=!0,O(),h(),c+=1,m.clear())}}}return xo(jn);})();
1
+ "use strict";var CavunoBoard=(()=>{var J=Object.defineProperty;var To=Object.getOwnPropertyDescriptor;var Lo=Object.getOwnPropertyNames;var Io=Object.prototype.hasOwnProperty;var Fo=(e,t,o)=>t in e?J(e,t,{enumerable:!0,configurable:!0,writable:!0,value:o}):e[t]=o;var A=(e,t)=>{for(var o in t)J(e,o,{get:t[o],enumerable:!0})},ko=(e,t,o,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of Lo(t))!Io.call(e,r)&&r!==o&&J(e,r,{get:()=>t[r],enumerable:!(n=To(t,r))||n.enumerable});return e};var xo=e=>ko(J({},"__esModule",{value:!0}),e);var _=(e,t,o)=>Fo(e,typeof t!="symbol"?t+"":t,o);var jn={};A(jn,{ACCESS_TOKEN_KEY:()=>T,BOARD_ACCESS_GRANT_KEY:()=>I,BOARD_API_ERROR_CODES:()=>ve,BoardApiError:()=>E,BoardClient:()=>F,PURCHASE_CONFIRMATION_HEADER:()=>ae,REFRESH_TOKEN_KEY:()=>L,SDK_VERSION:()=>$,SIGN_IN_REDIRECT_ERROR_CODES:()=>$e,SSO_LINK_PROOF_BINDING_TTL_MS:()=>se,createBoardClient:()=>Ko,filters:()=>pe,format:()=>Pe,isBoardApiError:()=>C,isBoardPasswordRequired:()=>Ae,isColdRule:()=>ht,isConflict:()=>Fe,isForbidden:()=>Te,isFreeEmailWebsiteError:()=>ke,isNotFound:()=>Ee,isOwnMessage:()=>gt,isRateLimited:()=>Ie,isSafeApplicationUrl:()=>le,isSignInMethodUnavailable:()=>ie,isSsoBrowserMismatch:()=>Ue,isSsoRequired:()=>xe,isUnauthorized:()=>Be,isValidationError:()=>Le,lastOwnMessageId:()=>bt,paginate:()=>ft,parseJobAlertClickParams:()=>_t,parseJobAlertUnsubscribeParams:()=>Rt,parseOAuthCompletion:()=>je,paths:()=>be,resolveApplyAction:()=>Ct,resolveApplyDecision:()=>ce,seo:()=>_e,ssoLinkProofBindingStore:()=>j,suggest:()=>Re,tipCoverFeeCents:()=>vt});var ve=["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","collections_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","candidate_custom_field_not_found","candidate_custom_field_not_editable","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","job_posting_checkout_not_found","products_not_found","product_checkout_not_found","product_reviews_disabled","product_sold_out","product_email_invalid","product_email_blocked","product_amount_below_minimum","product_amount_invalid","product_answers_invalid","purchases_not_found","purchase_file_not_found","purchase_unavailable","purchase_access_removed","purchase_awaiting_payment","purchase_refunded","purchase_email_confirmation_required","purchase_email_mismatch","purchase_file_preparing","purchase_download_limit_reached","purchase_review_invalid","purchase_download_all_unavailable","tip_jar_not_found","tip_checkout_not_found","tip_amount_below_minimum","tip_amount_invalid","tip_note_not_allowed","tip_note_too_long","tip_fee_cover_not_allowed"],E=class extends Error{constructor(o){super(o.message);_(this,"status");_(this,"code");_(this,"details");_(this,"requestId");_(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 C(e){return e instanceof Error&&e.name==="BoardApiError"&&typeof e.status=="number"&&typeof e.code=="string"}function Ee(e){return C(e)&&e.status===404}function Be(e){return C(e)&&e.status===401}function Ae(e){return C(e)&&e.status===401&&e.code==="board_password_required"}function Te(e){return C(e)&&e.status===403}function Le(e){return C(e)&&e.status===400&&e.code==="validation_bad_request"}function Ie(e){return C(e)&&e.status===429}function Fe(e){return C(e)&&e.status===409}function ke(e){return C(e)&&e.status===422&&e.code==="employer_free_email_website"}function xe(e){if(!C(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"||ie(e)&&e.details.availableMethods.methods.length===0)}function ie(e){if(!C(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 Ue(e){return C(e)&&e.status===403&&e.code==="board_auth_sso_browser_mismatch"}function Me(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 N(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 we(){return typeof globalThis.document<"u"}function Uo(){let e=new Map;return{getItem:t=>e.get(t)??null,setItem:(t,o)=>{e.set(t,o)},removeItem:t=>{e.delete(t)}}}function Mo(e,t){if(!we())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?`:${N(t)}`:"";return{getItem:r=>o.getItem(`${r}${n}`),setItem:(r,i)=>{o.setItem(`${r}${n}`,i)},removeItem:r=>{o.removeItem(`${r}${n}`)}}}var wo=Symbol.for("@cavuno/board:nostore");var Jo={[wo]:!0,getItem:()=>null,setItem:()=>{},removeItem:()=>{}};function Je(e,t){let o=e??(we()?"memory":"nostore");if(typeof o=="object")return o;switch(o){case"memory":return Uo();case"nostore":return Jo;case"local":case"session":return Mo(o,t);default:throw new Error(`Unknown storage mode '${String(o)}'`)}}async function D(e,t){await e.setItem(T,t.accessToken),await e.setItem(L,t.refreshToken)}async function Ne(e){await e.removeItem(T),await e.removeItem(L)}var $="4.68.0";function No(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 Do(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){_(this,"storage");_(this,"basePath");_(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=Me(r).toString();p&&(l+=`?${p}`);let u=n!==void 0&&!No(n),m=n===void 0?void 0:u?JSON.stringify(n):n,f=new Headers({accept:"application/json"});u&&f.set("content-type","application/json");for(let[v,re]of Object.entries(this.options.globalHeaders??{}))f.set(v,re);let g=await this.storage.getItem(T);g!==null&&f.set("authorization",`Bearer ${g}`);let O=await this.storage.getItem(I);O!==null&&f.set("x-board-access",O),i&&new Headers(i).forEach((v,re)=>{f.set(re,v)}),(a!=="GET"||f.has("authorization")||f.has("x-board-access"))&&!f.has("x-cavuno-sdk")&&f.set("x-cavuno-sdk",`board@${$}`);let h={url:l,init:{...s,method:a,headers:f,body:m}};this.options.onRequest&&(h=await this.options.onRequest(h));let R=Do(h.url);this.options.logger?.debug(`${a} ${R}`);let d=await globalThis.fetch(h.url,h.init);if(this.options.logger?.debug(`${d.status} ${a} ${R}`),this.options.onResponse&&await this.options.onResponse(d.clone(),h),d.status===204)return;if(d.ok)return await d.json();let b;try{b=await d.json()}catch{b=void 0}let P=b?.error,B=P&&typeof P.code=="string"&&typeof P.message=="string"?new E({status:d.status,code:P.code,message:P.message,details:P.details,requestId:P.requestId,raw:b}):new E({status:d.status,code:"unknown_error",message:d.statusText||"Request failed",raw:b});throw this.options.logger?.error(`${B.status} ${B.code} ${a} ${R}`),B}};var De="https://api.cavuno.com";var $e=["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 $o(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 jo(e){return!e||!e.startsWith("/")||e.startsWith("//")||e.startsWith("/\\")||e.includes("://")||/[\u0000-\u001F\u007F]/.test(e)?"/":e}function Qo(e){return e==="candidate"||e==="employer"?e:null}function je(e){let t=$o(e),o=c=>{let p=t.get(c);return p&&p.length>0?p:null},n=jo(o("returnTo")),r=Qo(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 se=1500*1e3,Vo="cavuno_board_sso_link_proof_binding";function qo(){try{return globalThis.localStorage??null}catch{return null}}function j(e,t={}){let o=`${Vo}:${N(e)}`,n=t.now??Date.now,r=()=>t.storage??qo(),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()+se})),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 Qe(e,t=""){let o=()=>j(t);async function n(i){return await D(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 Ne(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})},verifyItemEmail(i,s){return e.fetch("/auth/verify-item-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)},async getOAuthAuthorizationUrl(i,s,a){let l=s?.browserBindingHash,c;if(!l&&globalThis.crypto?.subtle)try{c=o().begin()}catch{}let p=c!==void 0;try{if(c!==void 0){let u=await globalThis.crypto.subtle.digest("SHA-256",new TextEncoder().encode(c));l=Array.from(new Uint8Array(u),m=>m.toString(16).padStart(2,"0")).join("")}return await e.fetch(`/auth/oauth/${i}`,{...a,method:"GET",query:l?{...s,browserBindingHash:l}:s})}catch(u){throw p&&o().clear(),u}},async exchangeOAuth(i,s){let a=await e.fetch("/auth/oauth/exchange",{...s,method:"POST",body:{...i,browserBinding:i.browserBinding??o().read()??void 0}}),l=await n(a);return o().clear(),l},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),u=>u.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 Ve(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 qe(e){return{entries(t,o,n){return e.fetch(`/collections/${encodeURIComponent(t)}/entries`,{...n,query:o})}}}function Ge(e){let t=Object.assign((r,i)=>e.fetch("/companies/markets",{...i,query:r}),{resolve(r,i){return e.fetch(`/companies/markets/${encodeURIComponent(r)}`,i)}});function o(r,i,s){let{locale:a,...l}=i??{},c=a===void 0?void 0:{locale:a},p=Object.keys(l).length>0?{...l,...s}:s;return e.fetch(`/companies/${encodeURIComponent(r)}/salaries`,c?{...p,query:c}:p)}let n=Object.assign(o,{summary(r,i){return e.fetch(`/companies/${encodeURIComponent(r)}/salaries/summary`,i)},category(r,i,s,a){return e.fetch(`/companies/${encodeURIComponent(r)}/salaries/${encodeURIComponent(i)}`,{...a,query:s})}});return{list(r,i){return e.fetch("/companies",{...i,query:r})},retrieve(r,i,s){return e.fetch(`/companies/${encodeURIComponent(r)}`,{...s,query:i})},search(r,i,s){return e.fetch("/companies/search",{...s,method:"POST",body:r,query:i})},listJobs(r,i,s){return e.fetch(`/companies/${encodeURIComponent(r)}/jobs`,{...s,query:i})},similar(r,i,s){return e.fetch(`/companies/${encodeURIComponent(r)}/similar`,{...s,query:i})},markets:t,salaries:n}}function He(e){return{jobs(t,o){return e.fetch("/embed/jobs",{...o,query:t})}}}function Ke(e){return{preview(t,o){return e.fetch("/invites/preview",{...o,method:"POST",body:t})}}}function Ye(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})},recordClick(t,o){return e.fetch("/job-alerts/clicks",{...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 ze(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})},getCheckout(t,o){return e.fetch(`/job-postings/checkout/${encodeURIComponent(t)}`,o)},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 We(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 Ze(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 Xe(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 D(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})},listVerifications(t){return e.fetch("/me/profile/verifications",t)},submitVerification(t,o){return e.fetch("/me/profile/verifications",{...o,method:"POST",body:t})},submitEmailDomainVerification(t,o){return e.fetch("/me/profile/verifications/email-domain",{...o,method:"POST",body:t})},confirmEmailDomainVerification(t,o){return e.fetch("/me/profile/verifications/email-domain/confirm",{...o,method:"POST",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})},uploadCustomFieldFile(t,o,n){let r=new FormData;return r.append("file",o),e.fetch(`/me/profile/custom-fields/${encodeURIComponent(t)}/files`,{...n,method:"POST",body:r})}},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})},listVerifications(t,o){return e.fetch(`/me/companies/${encodeURIComponent(t)}/verifications`,o)},submitVerification(t,o,n){return e.fetch(`/me/companies/${encodeURIComponent(t)}/verifications`,{...n,method:"POST",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?.shareWithEmployers&&r.append("shareWithEmployers","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)},update(t,o){return e.fetch("/me/resume",{...o,method:"PATCH",body: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 et(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 tt(e){return{offers(t){return e.fetch("/paywall/offers/enabled",t)}}}function ot(e){return{list(t,o){return e.fetch("/plans",{...o,query:t})},salesLed(t){return e.fetch("/sales-led-plans",t)}}}var Q=e=>`/products/${encodeURIComponent(e)}`;function nt(e){return{list(t,o){return e.fetch("/products",{...o,query:t})},get(t,o){return e.fetch(Q(t),o)},reviews(t,o,n){return e.fetch(`${Q(t)}/reviews`,{...n,query:o})},checkout(t,o,n){return e.fetch(`${Q(t)}/checkout`,{...n,method:"POST",body:o})},getCheckout(t,o,n){return e.fetch(`${Q(t)}/checkout/${encodeURIComponent(o)}`,n)}}}function rt(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})}}}var ae="x-cavuno-purchase-confirmation",k=e=>`/purchases/${encodeURIComponent(e)}`;function V(e){if(!e)return{};let{confirmationToken:t,...o}=e;if(!t)return o;let n=new Headers(o.headers);return n.set(ae,t),{...o,headers:n}}function it(e){return{get(t,o){return e.fetch(k(t),V(o))},confirmEmail(t,o,n){return e.fetch(`${k(t)}/confirm`,{...n,method:"POST",body:o})},download(t,o,n){return e.fetch(`${k(t)}/files/${encodeURIComponent(o)}/download`,{...V(n),method:"POST"})},downloadAll(t,o){return e.fetch(`${k(t)}/download-all`,{...V(o),method:"POST"})},review(t,o,n){return e.fetch(`${k(t)}/review`,{...V(n),method:"PUT",body:o})},resend(t,o){return e.fetch("/purchases/resend",{...o,method:"POST",body:t})},mine(t){return e.fetch("/me/purchases",t)}}}function st(e){return{resolve(t,o){return e.fetch("/redirects/resolve",{...o,query:{path:t}})}}}function at(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 lt(e){return{suggest(t,o){return e.fetch("/search/suggest",{...o,query:t})}}}function ct(e){return Object.assign(t=>e.fetch("/sitemap",t),{entries(t,o,n){return e.fetch(`/sitemap/${encodeURIComponent(t)}`,{...n,query:o})}})}function pt(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 mt(e,t){return{resolve(o,n){return e.fetch(`/${t}/${encodeURIComponent(o)}`,n)}}}function ut(e,t){return{...mt(e,t),list(o,n){return e.fetch(`/${t}`,{...n,query:o})}}}function dt(e){return{categories:ut(e,"categories"),skills:ut(e,"skills"),remotePermits:{list(t){return e.fetch("/remote-permits",t)}},places:{...mt(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 yt(e){return{get(t){return e.fetch("/tip-jar",t)},checkout(t,o){return e.fetch("/tip-jar/checkout",{...o,method:"POST",body:t})},getCheckout(t,o){return e.fetch(`/tip-jar/checkout/${encodeURIComponent(t)}`,o)}}}function ft(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 gt(e,t){return e.authorBoardUserId!==t}function ht(e,t){let o=e.some(r=>r.authorBoardUserId===t);return e.some(r=>r.authorBoardUserId!==t)&&!o}function bt(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 le(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 ce(e){let t=e.applicationUrl&&le(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 Ct(e){let t=ce({...e,registrationWall:!1,allowGuestApply:!1});return t.kind==="sign-in"?{kind:"sign-in"}:t}var St=/^[0-9A-Za-z]{16,64}$/,Ot=/^[0-9a-f]{16}$/,Go=/^[a-z0-9-]{1,64}$/,Ho=/^[1-9][0-9]{0,2}$/;function Pt(e){if(e instanceof URLSearchParams)return e;if(e instanceof URL)return e.searchParams;if(e.startsWith("?")||!e.includes("/")&&e.includes("="))return new URLSearchParams(e);try{return new URL(e,"https://board.invalid").searchParams}catch{return new URLSearchParams}}function _t(e){let t=Pt(e),o=t.get("ja_alert")??"",n=t.get("ja_email")??"",r=t.get("ja_pos")??"",i=t.get("ja_mv")??"",s=Ho.test(r)?Number(r):NaN;return!St.test(o)||!Ot.test(n)||!Go.test(i)||!(s>=1&&s<=100)?null:{alertId:o,emailId:n,position:s,matcherVersion:i}}function Rt(e){let t=Pt(e),o=t.get("ja_alert")??"",n=t.get("ja_email")??"";return!St.test(o)||!Ot.test(n)?null:{alertId:o,emailId:n}}function vt(e,t){if(!t||!Number.isInteger(e)||e<=0)return 0;let o=1e4-t.percentBps,n=(e+t.fixedMinor)*1e4;return Math.floor((n+o-1)/o)-e}function Ko(e){let t=new F({baseUrl:e.baseUrl??De,board:e.board,storage:Je(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:We(t),embed:He(t),companies:Ge(t),blog:Ve(t),collections:qe(t),auth:Qe(t,e.board),me:Xe(t),invites:Ke(t),password:et(t),taxonomy:dt(t),search:lt(t),locations:Ze(t),redirects:st(t),jobAlerts:Ye(t),jobPosting:ze(t),salaries:at(t),talent:pt(t),profileFields:rt(t),plans:ot(t),paywall:tt(t),products:nt(t),purchases:it(t),tipJar:yt(t),sitemap:ct(t)}}var pe={};A(pe,{DEFAULT_SORT:()=>Yo,EMPLOYMENT_TYPES:()=>Bt,JOB_SORTS:()=>Tt,REMOTE_OPTIONS:()=>Et,SENIORITIES:()=>At,parseCategory:()=>Ft,parseCompany:()=>It,parseListingFilters:()=>Wo,parseSeniority:()=>Lt});var Et=["on_site","hybrid","remote"],Bt=["full_time","part_time","contract","internship","temporary"],At=["entry_level","associate","mid_level","senior","lead","principal","director","executive"],Tt=["relevance","newest","salary_high","distance"],Yo="relevance";var zo=new Set(At);function Lt(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)||zo.has(i)&&(n.add(i),o.push(i))}return o.length>0?o:void 0}function It(e){return kt(e,10)}function Ft(e){return kt(e,10)}function kt(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 Wo(e){return{q:typeof e.q=="string"&&e.q?e.q:void 0,remoteOption:Et.includes(e.remoteOption)?e.remoteOption:void 0,employmentType:Bt.includes(e.employmentType)?e.employmentType:void 0,seniority:Lt(e.seniority),company:It(e.company),category:Ft(e.category),sort:Tt.includes(e.sort)?e.sort:void 0}}var Pe={};A(Pe,{COMMUTE_RADIUS_MAX_KM:()=>fo,COMMUTE_RADIUS_MIN_KM:()=>yo,COUNTRY_CODES:()=>te,MILES_COUNTRIES:()=>Ce,buildJobBreadcrumbs:()=>ee,countryOptions:()=>uo,defaultCommuteRadiusKm:()=>bo,defaultSearchRadius:()=>Oo,distanceUnitForCountry:()=>ho,distanceUnitToKm:()=>oe,formatDate:()=>Jt,formatDistance:()=>Po,formatMonthYear:()=>Dt,formatPublishedRelativeDate:()=>Nt,formatSalaryRange:()=>$t,formatSalaryStat:()=>H,formatSalaryStatRange:()=>x,kmToDistanceUnit:()=>Co,kmToMiles:()=>Oe,milesToKm:()=>Se,normalizeWebsiteUrl:()=>M,resolveCustomFieldDisplay:()=>mo,searchRadiusOptions:()=>So});function S(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 xt=new Map,Ut=new Map,Mt=new Map,wt=new Map;function Zo(e){let t=xt.get(e);return t||(t=new Intl.RelativeTimeFormat(e,{numeric:"always",style:"short"}),xt.set(e,t)),t}function Xo(e){let t=Ut.get(e);return t||(t=new Intl.RelativeTimeFormat(e,{numeric:"auto",style:"short"}),Ut.set(e,t)),t}function en(e){let t=Mt.get(e);return t||(t=new Intl.DateTimeFormat(e,{dateStyle:"medium",timeZone:"UTC"}),Mt.set(e,t)),t}function tn(e){let t=wt.get(e);return t||(t=new Intl.DateTimeFormat(e,{month:"short",year:"numeric",timeZone:"UTC"}),wt.set(e,t)),t}function ue(e,t,o){try{return Zo(o).format(e,t)}catch{return null}}function Jt(e,t){if(!t)return null;let o=new Date(t);if(Number.isNaN(o.getTime()))return null;let n=S(e);if(!n)return null;try{return en(n).format(o)}catch{return o.toISOString().split("T")[0]}}function Nt(e,t,o=Date.now()){if(!t)return null;let n=new Date(t);if(Number.isNaN(n.getTime()))return null;let r=S(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,u=30*c,m=365*c;if(s<a)try{return Xo(r).format(0,"second")}catch{return ue(0,"second",r)}let f=[{unit:"year",ms:m},{unit:"month",ms:u},{unit:"week",ms:p},{unit:"day",ms:c},{unit:"hour",ms:l},{unit:"minute",ms:a}];for(let h of f)if(s>=h.ms){let R=Math.round(s/h.ms),d=i>=0?-R:R;return ue(d,h.unit,r)}let g=Math.round(s/1e3),O=i>=0?-g:g;return ue(O,"second",r)}function Dt(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=S(e);if(!r)return null;try{return tn(r).format(n)}catch{return null}}var q=new Map;function me(e,t,o,n="symbol",r="compact"){let i=`${t}:${o}:${n}:${r}`,s=q.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}q.set(i,s)}return s?s.format(e):null}function de(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 on(e,t,o,n,r="symbol",i="compact"){let s=`${o}:${n}:${r}:${i}:range`,a=q.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}q.set(s,a)}return a?de(a,e,t):null}var nn=new Set(["per_year","per_month","per_week","per_day","per_hour"]);function rn(...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 $t(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=S(e);if(!p)return null;let u=s??rn(t,o),m=typeof n=="string"&&nn.has(n)?n:null;if(t!=null&&o!=null){let g=t<=o?t:o,O=t<=o?o:t,h=g===O?me(g,p,c,i,u):on(g,O,p,c,i,u);return h?{text:h,timeframe:m,bound:"range"}:null}if(t!=null){let g=me(t,p,c,i,u);return g?{text:g,timeframe:m,bound:"from"}:null}let f=me(o,p,c,i,u);return f?{text:f,timeframe:m,bound:"upTo"}:null}var jt=new Map;function Qt(...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 Vt(e,t,o){let n=`${e}:${t}:${o}`,r=jt.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 jt.set(n,i),i}function H(e,t,o,n){if(!Number.isFinite(t))return null;let r=o?.trim().toUpperCase()||null;if(!r)return null;let i=S(e);if(!i)return null;let s=n??Qt(t),a=Vt(i,r,s);return a?a.format(t):null}function x(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=S(e);if(!s)return null;let a=r??Qt(t,o),l=Vt(s,i,a);if(!l)return null;let c=Math.min(t,o),p=Math.max(t,o);return c===p?l.format(c):de(l,c,p)}var G=["entry_level","associate","mid_level","senior","lead","principal","director","executive"];function qt(e){return[...e].sort((t,o)=>{let n=G.indexOf(t.seniority),r=G.indexOf(o.seniority);return(n===-1?999:n)-(r===-1?999:r)})}var sn={unitText:"YEAR",duration:"P1Y"};function U(e,t,o,n,r={}){return{"@type":"MonetaryAmountDistribution",...e!==void 0?{name:e}:{},currency:t,minValue:o,maxValue:n,...r,...sn}}function ye(e,t,o,n){return e.map(r=>{let i=n?.seniorityName?.({seniority:r.seniority,entity:o});return U(i,t,r.avgSalaryMin,r.avgSalaryMax)})}function K(e,t,o,n){return{"@context":"https://schema.org","@type":e,name:t,...o,estimatedSalary:n}}function Gt(e,t,o,n){if(!o)return[];let r=x(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 Y(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 Ht(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 Kt(e,t){return e.overallSalary?K("Occupation",e.categoryName,{},[U(e.categoryName,e.currency,e.overallSalary.avgMin,e.overallSalary.avgMax,{...e.boardP25Min?{percentile25:e.boardP25Min}:{},...e.boardP75Max?{percentile75:e.boardP75Max}:{}}),...ye(e.bySeniority,e.currency,e.categoryName,t)]):null}function Yt(e){return e.overallSalary?K("Occupation",e.skillName,{},[U(e.skillName,e.currency,e.overallSalary.avgMin,e.overallSalary.avgMax,{median:Math.round((e.overallSalary.medianMin+e.overallSalary.medianMax)/2)})]):null}function zt(e,t){return!t?.occupationUrl||!(e.adminLevel==="city"||e.adminLevel==="locality")?null:Y(e.topCategories.map(n=>({name:n.categoryName,url:t.occupationUrl(n)})))}function Wt(e,t){return e.overall?K("Occupation",e.name,{occupationLocation:{"@type":"AdministrativeArea",name:e.placeName,address:{"@type":"PostalAddress",addressCountry:e.countryCode}}},[U(e.name,e.currency,e.overall.avgMin,e.overall.avgMax,{...e.overall.p25Min?{percentile25:e.overall.p25Min}:{},...e.overall.p75Max?{percentile75:e.overall.p75Max}:{}}),...ye(e.bySeniority,e.currency,e.name,t)]):null}function Zt(e,t){return t?.occupationUrl?Y(e.byCategory.map(o=>({name:o.categoryName,url:t.occupationUrl(o)}))):null}function Xt(e,t){return e.overallSalary?K("Occupation",e.categoryName,{occupationalCategory:e.categoryName,hiringOrganization:{"@type":"Organization",name:e.companyName}},[U(e.categoryName,e.currency,e.overallSalary.avgMin,e.overallSalary.avgMax,{...e.boardCategoryP25Min?{percentile25:e.boardCategoryP25Min}:{},...e.boardCategoryP75Max?{percentile75:e.boardCategoryP75Max}:{}}),...ye(e.bySeniority,e.currency,e.categoryName,t)]):null}function oo(e,t){return e.company?.name??t.legalName??t.contact?.legalName??t.name??null}var eo={high_school:"high school",associate_degree:"associate degree",bachelor_degree:"bachelor degree",professional_certificate:"professional certificate",postgraduate_degree:"postgraduate degree"},an={full_time:"FULL_TIME",part_time:"PART_TIME",contract:"CONTRACTOR",internship:"INTERN",temporary:"TEMPORARY",volunteer:"VOLUNTEER",other:"OTHER"},ln={per_year:"YEAR",per_month:"MONTH",per_week:"WEEK",per_day:"DAY",per_hour:"HOUR"},ge=["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 no({job:e,board:t,shareUrl:o}){let n=fn(e),r=gn(e),i=fe({"@context":"https://schema.org/","@type":"JobPosting",title:e.title,description:e.description??"",identifier:cn(e,t),datePosted:to(e.publishedAt),validThrough:to(e.expiresAt),employmentType:e.employmentType?an[e.employmentType]??"OTHER":"OTHER",hiringOrganization:pn(e,t),jobLocation:mn(e),jobLocationType:e.remoteOption==="remote"?"TELECOMMUTE":void 0,applicantLocationRequirements:e.remoteOption==="remote"?yn(e):null,baseSalary:un(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 cn(e,t){let o=oo(e,t),n={"@type":"PropertyValue",value:e.id};return o&&(n.name=o),n}function pn(e,t){let o=oo(e,t);if(!o)return null;let n={"@type":"Organization",name:o},r=e.company?.website??null,i=r?M(r):null;i&&(n.sameAs=i);let s=e.company?.logoUrl??t.logoUrl??null;return s&&(n.logo=s),n}function M(e){let t=e.trim();return t?/^https?:\/\//i.test(t)?t:`https://${t}`:null}function un(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?ln[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 mn(e){let t=e.officeLocations.map(o=>dn({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 dn({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 u=Object.keys(i).length>1;if(!u&&!p)return null;let m={"@type":"Place"};return p&&(m.name=p),u&&(m.address=i),m}function yn(e){if(e.remoteWorldwide)return ge.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 fn(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 eo).map(n=>({"@type":"EducationalOccupationalCredential",credentialCategory:eo[n]}));return o.length>0?o:null}function gn(e){let t=e.experienceMonths;return typeof t!="number"?null:t===0?"no requirements":{"@type":"OccupationalExperienceRequirements",monthsOfExperience:t}}function to(e){if(!e)return null;let t=new Date(e);return Number.isNaN(t.getTime())?null:t.toISOString()}function fe(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=>fe(o)).filter(t);if(e&&typeof e=="object"){let o=Object.entries(e).map(([n,r])=>[n,fe(r)]).filter(([,n])=>t(n));return Object.fromEntries(o)}return e}var be={};A(be,{BOARD_PATHS:()=>Z,blogAuthorPath:()=>Pn,blogPostPath:()=>lo,blogTagPath:()=>co,boardUrl:()=>X,companyMarketPath:()=>ao,companyPath:()=>so,companySalaryPath:()=>bn,encodePathSegment:()=>y,goAlertsConfirmPath:()=>Tn,goAlertsManagePath:()=>An,goJobPath:()=>Bn,jobDetailPath:()=>he,jobsCategoryPath:()=>z,jobsLocationCategoryPath:()=>W,jobsLocationPath:()=>w,jobsLocationSkillPath:()=>io,jobsSkillPath:()=>ro,productPath:()=>vn,purchasePath:()=>En,salaryLocationPath:()=>On,salarySkillPath:()=>Sn,salaryTitlePath:()=>Cn,suggestionPath:()=>hn,talentLocationPath:()=>Rn,talentProfilePath:()=>_n});function y(e){try{return encodeURIComponent(decodeURIComponent(e)).replace(/%3A/gi,":")}catch{return encodeURIComponent(e).replace(/%3A/gi,":")}}function he(e,t){return`/companies/${y(e)}/jobs/${y(t)}`}function z(e){return`/jobs/${y(e)}`}function ro(e){return`/jobs/skills/${y(e)}`}function w(e){return`/jobs/locations/${y(e)}`}function W(e,t){return`${w(e)}/${y(t)}`}function io(e,t){return`${w(e)}/skills/${y(t)}`}function so(e){return`/companies/${y(e)}`}function ao(e){return`/companies/markets/${y(e)}`}function hn(e,t){let o=t.location?.trim()||void 0;return t.scope==="blog"?e.type==="post"?lo(e.slug):e.type==="tag"?co(e.slug):null:t.scope==="jobs"?e.type==="company"||e.type==="market"||e.type==="post"||e.type==="tag"?null:e.termType==="skill"?o?io(o,e.canonicalSlug):ro(e.canonicalSlug):o?W(o,e.canonicalSlug):z(e.canonicalSlug):e.type==="company"?so(e.slug):e.type==="market"?ao(e.canonicalSlug??e.slug):null}function bn(e){return`/companies/${y(e)}/salaries`}function Cn(e){return`/salaries/titles/${y(e)}`}function Sn(e){return`/salaries/skills/${y(e)}`}function On(e){return`/salaries/locations/${y(e)}`}function lo(e){return`/blog/${y(e)}`}function co(e){return`/blog/tag/${y(e)}`}function Pn(e){return`/blog/author/${y(e)}`}function _n(e){return`/p/${y(e)}`}function Rn(e){return`/talent/locations/${y(e)}`}function vn(e){return`/products/${y(e)}`}function En(e){return`/purchases/${y(e)}`}var Z={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",products:"/products",mePurchases:"/me/purchases",tip:"/tip"};function Bn(e){return`/go/job/${e}`}function An(){return"/go/alerts-manage"}function Tn(){return"/go/alerts-confirm"}function X(e,t){return`${e.replace(/\/+$/,"")}${t}`}function po(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).filter((r,i,s)=>!!r.href||i===s.length-1);return o.length<2?null:{"@context":"https://schema.org","@type":"BreadcrumbList",itemListElement:o.map((r,i)=>{let s=r.href?Ln(r.href,t.origin??null):null,a={"@type":"ListItem",position:i+1,name:r.name};return s&&(a.item=s),a})}}function Ln(e,t){if(In(e))return e;if(!t)return null;let o=e.startsWith("/")?e:`/${e}`;return`${t}${o}`}function In(e){return/^https?:\/\//i.test(e)}function ee(e){let t=[{kind:"home",path:Z.home},{kind:"jobs",path:Z.jobs}],o=null;for(let r of e.placeHierarchy)o=r.canonicalSlug,t.push({kind:"place",name:r.name,path:w(r.canonicalSlug)});let n=e.categories[0];return n&&t.push({kind:"category",name:n.name,path:o?W(o,n.slug):z(n.slug)}),t.push({kind:"job",name:e.title}),t}var te=["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 Fn(e){try{return new Intl.DisplayNames([e],{type:"region"})}catch{return null}}function kn(e){try{return new Intl.Collator(e)}catch{return new Intl.Collator}}function uo(e){let t=S(e);if(!t)return te.map(r=>({code:r,name:r})).sort((r,i)=>r.code<i.code?-1:r.code>i.code?1:0);let o=Fn(t),n=kn(t).compare;return te.map(r=>({code:r,name:o?.of(r)??r})).sort((r,i)=>n(r.name,i.name))}function xn(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 Un(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 mo(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=xn(r,i);a&&n.push({key:r.key,label:r.label,kind:"multi_select",values:a});continue}let s=Un(r,i);s!==null&&n.push({key:r.key,label:r.label,kind:r.type==="rich_text"?"rich_text":"text",value:s})}return n}var Ce=["US","GB","LR","MM"],yo=1,fo=250;var Mn=new Set(Ce);function go(e){return typeof e=="string"&&Mn.has(e.trim().toUpperCase())}function ho(e){return go(e)?"mi":"km"}function bo(e){return go(e)?40:50}function Se(e){return e*1.609344}function Oe(e){return e/1.609344}function Co(e,t){return t==="mi"?Oe(e):e}function oe(e,t){return t==="mi"?Se(e):e}var wn=[5,10,25,50,100];function So(e){return wn.map(t=>({value:t,unit:e,km:oe(t,e)}))}function Oo(e){let t=e==="mi"?25:50;return{value:t,unit:e,km:oe(t,e)}}function Po(e,t,o){return new Intl.NumberFormat(o,{style:"unit",unit:t==="mi"?"mile":"kilometer",unitDisplay:"short",maximumFractionDigits:1}).format(e)}var _e={};A(_e,{ALL_COUNTRY_CODES:()=>ge,SENIORITY_ORDER:()=>G,buildJobBreadcrumbs:()=>ee,buildSalaryFaq:()=>Gt,companyCategorySalaryJsonLd:()=>Xt,companySalaryJsonLd:()=>Zt,createAuthorProfileJsonLd:()=>Ro,createBlogArticleJsonLd:()=>_o,createBreadcrumbJsonLd:()=>po,createJobPostingJsonLd:()=>no,crossAxisSalaryJsonLd:()=>Wt,faqJsonLd:()=>Ht,formatSalaryStat:()=>H,formatSalaryStatRange:()=>x,itemListJsonLd:()=>Y,listingHead:()=>Eo,listingJsonLd:()=>Bo,locationSalaryJsonLd:()=>zt,normalizeWebsiteUrl:()=>M,skillSalaryJsonLd:()=>Yt,sortBySeniority:()=>qt,titleSalaryJsonLd:()=>Kt});function _o({post:e,boardName:t,permalink:o,ogImageUrl:n,authorProfileUrl:r}){let i={"@context":"https://schema.org","@type":"Article",headline:e.title,url:o,mainEntityOfPage:{"@type":"WebPage","@id":o},publisher:{"@type":"Organization",name:t}};e.customExcerpt&&(i.description=e.customExcerpt),e.publishedAt&&(i.datePublished=e.publishedAt);let s=e.coverUrl??n;s&&(i.image=s);let a=e.authors[0];return a&&(i.author=r?{"@type":"Person","@id":vo(r),name:a.name,url:r}:{"@type":"Person",name:a.name,...a.websiteUrl?{url:a.websiteUrl}:{}}),i}function Ro({author:e,canonical:t,description:o,origin:n,posts:r,totalPosts:i}){if(!e.name)return null;let s=o.trim(),a=[ne(e.websiteUrl),ne(e.twitterUrl),ne(e.linkedinUrl),ne(e.githubUrl)].filter(m=>!!m),l=vo(t),c=r.slice(0,5).map(m=>{let f=Jn(n,`/blog/${m.slug}`);return f?{"@type":"Article",headline:m.title,url:f,datePublished:m.publishedAt,author:{"@id":l}}:null}).filter(m=>m!==null),p=i>0?{"@type":"InteractionCounter",interactionType:"https://schema.org/WriteAction",userInteractionCount:i}:void 0,u={"@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&&(u.hasPart=c),u}function vo(e){return`${e}#profile`}function ne(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 Jn(e,t){if(!e||!t)return null;try{return new URL(t,e).toString()}catch{return null}}function Eo(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 Bo(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:X(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:n.links?.public||X(e.origin,he(n.company.slug,n.slug))}))}),t}var Re={};A(Re,{createSuggestController:()=>$n});function Nn(e){return typeof DOMException<"u"&&e instanceof DOMException&&e.name==="AbortError"||e instanceof Error&&e.name==="AbortError"}function Dn(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 Ao(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,u=null,m=new Set;function f(){for(let d of m)d()}function g(d){s=d,f()}function O(){p!==null&&(globalThis.clearTimeout(p),p=null)}function h(){u&&(u.abort(),u=null)}function R(d){let b=++c;h();let P=new AbortController;u=P;let B={q:d};r!==void 0&&(B.limit=r),e.search.suggest(B,{signal:P.signal}).then(v=>{i||b!==c||(u=null,a=v.items,g({query:s.query,items:Ao(a,l),status:"ready",error:null}))}).catch(v=>{i||b!==c||Nn(v)||(u=null,g({query:s.query,items:s.items,status:"error",error:v}))})}return{setQuery(d){if(i)return;let b=d.trim();if(O(),Dn(b)<o){c+=1,h(),a=[],g({query:d,items:[],status:"idle",error:null});return}c+=1,h(),g({query:d,items:s.items,status:"loading",error:null}),p=globalThis.setTimeout(()=>{p=null,!i&&R(b)},n)},setExcludedCompanySlugs(d){i||(l=new Set(d.map(b=>b.trim().toLowerCase().normalize("NFC")).filter(Boolean)),g({query:s.query,items:Ao(a,l),status:s.status,error:s.error}))},getState(){return s},subscribe(d){return i?()=>{}:(m.add(d),()=>{m.delete(d)})},dispose(){i||(i=!0,O(),h(),c+=1,m.clear())}}}return xo(jn);})();
@@ -1,5 +1,5 @@
1
- import { J as JobSort, E as EmploymentType, R as RemoteOption, S as Seniority } from './jobs-CbTUedOr.mjs';
2
- import './_spec-BehBmeHK.mjs';
1
+ import { J as JobSort, E as EmploymentType, R as RemoteOption, S as Seniority } from './jobs-CrGBikhJ.mjs';
2
+ import './_spec-t2B6ioRS.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-D2mKA65F.js';
2
- import './_spec-BehBmeHK.js';
1
+ import { J as JobSort, E as EmploymentType, R as RemoteOption, S as Seniority } from './jobs-D_LjWgIk.js';
2
+ import './_spec-t2B6ioRS.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-Cu_SPdRA.mjs';
2
- import { C as CustomFieldDefinition } from './board-CXd9Me7_.mjs';
3
- import { C as CustomFieldValues } from './jobs-CbTUedOr.mjs';
4
- import './_spec-BehBmeHK.mjs';
1
+ export { C as CurrencyDisplay, F as FormattedSalaryRange, J as JobBreadcrumb, N as NumberNotation, S as SalaryTimeframeInput, a as SalaryTimeframeValue, b as buildJobBreadcrumbs, f as formatSalaryRange, c as formatSalaryStat, d as formatSalaryStatRange, n as normalizeWebsiteUrl } from './breadcrumbs-BgBj_AiZ.mjs';
2
+ import { C as CustomFieldDefinition } from './board-8RMVpFBw.mjs';
3
+ import { C as CustomFieldValues } from './jobs-CrGBikhJ.mjs';
4
+ import './_spec-t2B6ioRS.mjs';
5
5
 
6
6
  /**
7
7
  * Date display helpers in the board language (required leading parameter,
package/dist/format.d.ts CHANGED
@@ -1,7 +1,7 @@
1
- export { C as CurrencyDisplay, F as FormattedSalaryRange, J as JobBreadcrumb, N as NumberNotation, S as SalaryTimeframeInput, a as SalaryTimeframeValue, b as buildJobBreadcrumbs, f as formatSalaryRange, c as formatSalaryStat, d as formatSalaryStatRange, n as normalizeWebsiteUrl } from './breadcrumbs-PEsRCVwI.js';
2
- import { C as CustomFieldDefinition } from './board-dV_3NXAI.js';
3
- import { C as CustomFieldValues } from './jobs-D2mKA65F.js';
4
- import './_spec-BehBmeHK.js';
1
+ export { C as CurrencyDisplay, F as FormattedSalaryRange, J as JobBreadcrumb, N as NumberNotation, S as SalaryTimeframeInput, a as SalaryTimeframeValue, b as buildJobBreadcrumbs, f as formatSalaryRange, c as formatSalaryStat, d as formatSalaryStatRange, n as normalizeWebsiteUrl } from './breadcrumbs-eV2OQqf6.js';
2
+ import { C as CustomFieldDefinition } from './board-On_r_ixp.js';
3
+ import { C as CustomFieldValues } from './jobs-D_LjWgIk.js';
4
+ import './_spec-t2B6ioRS.js';
5
5
 
6
6
  /**
7
7
  * Date display helpers in the board language (required leading parameter,
package/dist/index.d.mts CHANGED
@@ -1,13 +1,13 @@
1
- import { S as Schemas, c as components } from './_spec-BehBmeHK.mjs';
2
- import { F as FetchOptions, S as StorageMode, B as BoardRequest, A as Awaitable, L as Logger, a as BoardClient, b as SearchSuggestQuery } from './search-CxUViZsz.mjs';
3
- export { c as ACCESS_TOKEN_KEY, d as BOARD_ACCESS_GRANT_KEY, C as CompanySuggestion, e as CustomStorage, M as MarketSuggestion, R as REFRESH_TOKEN_KEY, f as SearchSuggestType, g as SuggestResult, h as SuggestionItem, T as TermSuggestion } from './search-CxUViZsz.mjs';
4
- import { L as ListEnvelope, R as RemoteOption, E as EmploymentType, S as Seniority, a as JobCapability, b as CustomFieldFilter, O as ObjectReferenceFilter, c as JobCollectionChoiceQuery, d as JobsListQuery, e as JobCardListEnvelope, f as JobRetrieveQuery, g as JobsSearchBody, h as JobCardSearchEnvelope, i as JobsSimilarQuery, j as SearchEnvelope } from './jobs-CbTUedOr.mjs';
5
- export { k as CustomFieldValue, C as CustomFieldValues, l as CustomFilterValue, m as EducationRequirement, n as JobCatalogPagination, o as JobCollectionChoiceList, p as JobCollectionFieldDefinition, q as JobCompany, r as JobCustomEmploymentType, J as JobSort, s as OfficeLocation, t as OffsetPagination, P as PublicJob, u as PublicJobCard, v as RelatedSearch, w as RemotePermit, x as RemoteTimezone, y as ResolvedJobCollectionField, z as StorefrontPagination } from './jobs-CbTUedOr.mjs';
6
- import { c as CompaniesListQuery, d as CompanyListEnvelope, e as CompaniesSearchBody, f as CompanyJobsListQuery, g as CompanySimilarQuery, h as CompanyMarketsListQuery, i as SalaryDetailQuery, b as CompanySalary } from './board-CXd9Me7_.mjs';
7
- export { B as BoardCustomEmploymentType, j as BoardFormBuiltinField, k as BoardFormField, l as BoardFormLayout, m as BoardFormLockReason, n as BoardJobFormField, o as BoardProfileFormField, p as BoardRoleSignIn, q as BoardSignInSsoConnection, a as CompanyCategorySalary, r as CompanyMarket, s as CompanyMarketRef, t as CompanySalarySummary, C as CustomFieldDefinition, u as CustomFieldOption, v as CustomFieldType, L as LocationSalaryDetail, w as LocationSkillsIndex, x as LocationTitlesIndex, P as PublicBoard, y as PublicBoardAds, z as PublicBoardAnalytics, A as PublicBoardFeatures, D as PublicBoardJobForm, E as PublicBoardSignIn, F as PublicCompany, G as PublicCompanyDetail, H as PublicCompanyMembership, I as SalaryCompany, J as SalaryLocation, K as SalarySkill, M as SalaryTitle, N as SkillLocationSalary, O as SkillLocationsIndex, S as SkillSalaryDetail, Q as TitleLocationSalary, R as TitleLocationsIndex, T as TitleSalaryDetail } from './board-CXd9Me7_.mjs';
8
- export { B as BoardSeo } from './seo-CWa4rTf7.mjs';
9
- import { a as BlogPostsListQuery, b as BlogSimilarQuery, c as BlogSearchBody } from './blog-BmfbjijG.mjs';
10
- export { B as BlogAuthorEmbed, d as BlogTagEmbed, e as PublicBlogAdjacentPosts, f as PublicBlogAuthor, g as PublicBlogPost, P as PublicBlogPostSummary, h as PublicBlogTag } from './blog-BmfbjijG.mjs';
1
+ import { S as Schemas, c as components } from './_spec-t2B6ioRS.mjs';
2
+ import { F as FetchOptions, S as StorageMode, B as BoardRequest, A as Awaitable, L as Logger, a as BoardClient, b as SearchSuggestQuery } from './search-Yw5qsooq.mjs';
3
+ export { c as ACCESS_TOKEN_KEY, d as BOARD_ACCESS_GRANT_KEY, C as CompanySuggestion, e as CustomStorage, M as MarketSuggestion, R as REFRESH_TOKEN_KEY, f as SearchSuggestType, g as SuggestResult, h as SuggestionItem, T as TermSuggestion } from './search-Yw5qsooq.mjs';
4
+ import { L as ListEnvelope, R as RemoteOption, E as EmploymentType, S as Seniority, a as JobCapability, b as CustomFieldFilter, O as ObjectReferenceFilter, c as JobCollectionChoiceQuery, d as JobsListQuery, e as JobCardListEnvelope, f as JobRetrieveQuery, g as JobsSearchBody, h as JobCardSearchEnvelope, i as JobsSimilarQuery, j as SearchEnvelope } from './jobs-CrGBikhJ.mjs';
5
+ export { k as CustomFieldValue, C as CustomFieldValues, l as CustomFilterValue, m as EducationRequirement, n as JobCatalogPagination, o as JobCollectionChoiceList, p as JobCollectionFieldDefinition, q as JobCompany, r as JobCustomEmploymentType, J as JobSort, s as OfficeLocation, t as OffsetPagination, P as PublicJob, u as PublicJobCard, v as RelatedSearch, w as RemotePermit, x as RemoteTimezone, y as ResolvedJobCollectionField, z as StorefrontPagination } from './jobs-CrGBikhJ.mjs';
6
+ import { c as CompaniesListQuery, d as CompanyListEnvelope, e as CompaniesSearchBody, f as CompanyJobsListQuery, g as CompanySimilarQuery, h as CompanyMarketsListQuery, i as SalaryDetailQuery, b as CompanySalary } from './board-8RMVpFBw.mjs';
7
+ export { B as BoardCustomEmploymentType, j as BoardFormBuiltinField, k as BoardFormField, l as BoardFormLayout, m as BoardFormLockReason, n as BoardJobFormField, o as BoardProfileFormField, p as BoardRoleSignIn, q as BoardSignInSsoConnection, a as CompanyCategorySalary, r as CompanyMarket, s as CompanyMarketRef, t as CompanySalarySummary, C as CustomFieldDefinition, u as CustomFieldOption, v as CustomFieldType, L as LocationSalaryDetail, w as LocationSkillsIndex, x as LocationTitlesIndex, P as PublicBoard, y as PublicBoardAds, z as PublicBoardAnalytics, A as PublicBoardFeatures, D as PublicBoardJobForm, E as PublicBoardSignIn, F as PublicCompany, G as PublicCompanyDetail, H as PublicCompanyMembership, I as SalaryCompany, J as SalaryLocation, K as SalarySkill, M as SalaryTitle, N as SkillLocationSalary, O as SkillLocationsIndex, S as SkillSalaryDetail, Q as TitleLocationSalary, R as TitleLocationsIndex, T as TitleSalaryDetail } from './board-8RMVpFBw.mjs';
8
+ export { B as BoardSeo } from './seo-Bjevxvzd.mjs';
9
+ import { a as BlogPostsListQuery, b as BlogSimilarQuery, c as BlogSearchBody } from './blog-B8UJJza1.mjs';
10
+ export { B as BlogAuthorEmbed, d as BlogTagEmbed, e as PublicBlogAdjacentPosts, f as PublicBlogAuthor, g as PublicBlogPost, P as PublicBlogPostSummary, h as PublicBlogTag } from './blog-B8UJJza1.mjs';
11
11
 
12
12
  /**
13
13
  * Well-known `<domain>_<snake_reason>` codes the Board API sends, grouped by
@@ -202,7 +202,7 @@ declare function paginate<Q extends Record<string, unknown>, P extends PageShape
202
202
  * constant because the package is platform-neutral and cannot read
203
203
  * package.json at runtime.
204
204
  */
205
- declare const SDK_VERSION = "4.67.0";
205
+ declare const SDK_VERSION = "4.68.0";
206
206
 
207
207
  type SavedJob = Schemas['SavedJob'];
208
208
  type SavedJobsListQuery = {
@@ -1647,6 +1647,8 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
1647
1647
  contactPage: boolean;
1648
1648
  placeSuggestions: boolean;
1649
1649
  mcp: boolean;
1650
+ tipJar: boolean;
1651
+ products: boolean;
1650
1652
  };
1651
1653
  talentAccessModel: "paid_messaging" | "paid_unlocks_and_messaging" | null;
1652
1654
  posting: {
@@ -2114,6 +2116,7 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
2114
2116
  suggested?: boolean;
2115
2117
  ancestors?: components["schemas"]["PublicPlaceAncestor"][];
2116
2118
  defaultRadiusKm?: number;
2119
+ companyCount?: number;
2117
2120
  }>;
2118
2121
  };
2119
2122
  salaries: {
@@ -3950,6 +3953,7 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
3950
3953
  suggested?: boolean;
3951
3954
  ancestors?: components["schemas"]["PublicPlaceAncestor"][];
3952
3955
  defaultRadiusKm?: number;
3956
+ companyCount?: number;
3953
3957
  }>;
3954
3958
  };
3955
3959
  skills: {
@@ -3978,6 +3982,7 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
3978
3982
  suggested?: boolean;
3979
3983
  ancestors?: components["schemas"]["PublicPlaceAncestor"][];
3980
3984
  defaultRadiusKm?: number;
3985
+ companyCount?: number;
3981
3986
  }>;
3982
3987
  };
3983
3988
  remotePermits: {
@@ -4028,6 +4033,7 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
4028
4033
  suggested?: boolean;
4029
4034
  ancestors?: components["schemas"]["PublicPlaceAncestor"][];
4030
4035
  defaultRadiusKm?: number;
4036
+ companyCount?: number;
4031
4037
  }>;
4032
4038
  };
4033
4039
  };
package/dist/index.d.ts CHANGED
@@ -1,13 +1,13 @@
1
- import { S as Schemas, c as components } from './_spec-BehBmeHK.js';
2
- import { F as FetchOptions, S as StorageMode, B as BoardRequest, A as Awaitable, L as Logger, a as BoardClient, b as SearchSuggestQuery } from './search-CHejx_k7.js';
3
- export { c as ACCESS_TOKEN_KEY, d as BOARD_ACCESS_GRANT_KEY, C as CompanySuggestion, e as CustomStorage, M as MarketSuggestion, R as REFRESH_TOKEN_KEY, f as SearchSuggestType, g as SuggestResult, h as SuggestionItem, T as TermSuggestion } from './search-CHejx_k7.js';
4
- import { L as ListEnvelope, R as RemoteOption, E as EmploymentType, S as Seniority, a as JobCapability, b as CustomFieldFilter, O as ObjectReferenceFilter, c as JobCollectionChoiceQuery, d as JobsListQuery, e as JobCardListEnvelope, f as JobRetrieveQuery, g as JobsSearchBody, h as JobCardSearchEnvelope, i as JobsSimilarQuery, j as SearchEnvelope } from './jobs-D2mKA65F.js';
5
- export { k as CustomFieldValue, C as CustomFieldValues, l as CustomFilterValue, m as EducationRequirement, n as JobCatalogPagination, o as JobCollectionChoiceList, p as JobCollectionFieldDefinition, q as JobCompany, r as JobCustomEmploymentType, J as JobSort, s as OfficeLocation, t as OffsetPagination, P as PublicJob, u as PublicJobCard, v as RelatedSearch, w as RemotePermit, x as RemoteTimezone, y as ResolvedJobCollectionField, z as StorefrontPagination } from './jobs-D2mKA65F.js';
6
- import { c as CompaniesListQuery, d as CompanyListEnvelope, e as CompaniesSearchBody, f as CompanyJobsListQuery, g as CompanySimilarQuery, h as CompanyMarketsListQuery, i as SalaryDetailQuery, b as CompanySalary } from './board-dV_3NXAI.js';
7
- export { B as BoardCustomEmploymentType, j as BoardFormBuiltinField, k as BoardFormField, l as BoardFormLayout, m as BoardFormLockReason, n as BoardJobFormField, o as BoardProfileFormField, p as BoardRoleSignIn, q as BoardSignInSsoConnection, a as CompanyCategorySalary, r as CompanyMarket, s as CompanyMarketRef, t as CompanySalarySummary, C as CustomFieldDefinition, u as CustomFieldOption, v as CustomFieldType, L as LocationSalaryDetail, w as LocationSkillsIndex, x as LocationTitlesIndex, P as PublicBoard, y as PublicBoardAds, z as PublicBoardAnalytics, A as PublicBoardFeatures, D as PublicBoardJobForm, E as PublicBoardSignIn, F as PublicCompany, G as PublicCompanyDetail, H as PublicCompanyMembership, I as SalaryCompany, J as SalaryLocation, K as SalarySkill, M as SalaryTitle, N as SkillLocationSalary, O as SkillLocationsIndex, S as SkillSalaryDetail, Q as TitleLocationSalary, R as TitleLocationsIndex, T as TitleSalaryDetail } from './board-dV_3NXAI.js';
8
- export { B as BoardSeo } from './seo-DYyQ8NTh.js';
9
- import { a as BlogPostsListQuery, b as BlogSimilarQuery, c as BlogSearchBody } from './blog-BLpOmpyQ.js';
10
- export { B as BlogAuthorEmbed, d as BlogTagEmbed, e as PublicBlogAdjacentPosts, f as PublicBlogAuthor, g as PublicBlogPost, P as PublicBlogPostSummary, h as PublicBlogTag } from './blog-BLpOmpyQ.js';
1
+ import { S as Schemas, c as components } from './_spec-t2B6ioRS.js';
2
+ import { F as FetchOptions, S as StorageMode, B as BoardRequest, A as Awaitable, L as Logger, a as BoardClient, b as SearchSuggestQuery } from './search-ClbqUjkA.js';
3
+ export { c as ACCESS_TOKEN_KEY, d as BOARD_ACCESS_GRANT_KEY, C as CompanySuggestion, e as CustomStorage, M as MarketSuggestion, R as REFRESH_TOKEN_KEY, f as SearchSuggestType, g as SuggestResult, h as SuggestionItem, T as TermSuggestion } from './search-ClbqUjkA.js';
4
+ import { L as ListEnvelope, R as RemoteOption, E as EmploymentType, S as Seniority, a as JobCapability, b as CustomFieldFilter, O as ObjectReferenceFilter, c as JobCollectionChoiceQuery, d as JobsListQuery, e as JobCardListEnvelope, f as JobRetrieveQuery, g as JobsSearchBody, h as JobCardSearchEnvelope, i as JobsSimilarQuery, j as SearchEnvelope } from './jobs-D_LjWgIk.js';
5
+ export { k as CustomFieldValue, C as CustomFieldValues, l as CustomFilterValue, m as EducationRequirement, n as JobCatalogPagination, o as JobCollectionChoiceList, p as JobCollectionFieldDefinition, q as JobCompany, r as JobCustomEmploymentType, J as JobSort, s as OfficeLocation, t as OffsetPagination, P as PublicJob, u as PublicJobCard, v as RelatedSearch, w as RemotePermit, x as RemoteTimezone, y as ResolvedJobCollectionField, z as StorefrontPagination } from './jobs-D_LjWgIk.js';
6
+ import { c as CompaniesListQuery, d as CompanyListEnvelope, e as CompaniesSearchBody, f as CompanyJobsListQuery, g as CompanySimilarQuery, h as CompanyMarketsListQuery, i as SalaryDetailQuery, b as CompanySalary } from './board-On_r_ixp.js';
7
+ export { B as BoardCustomEmploymentType, j as BoardFormBuiltinField, k as BoardFormField, l as BoardFormLayout, m as BoardFormLockReason, n as BoardJobFormField, o as BoardProfileFormField, p as BoardRoleSignIn, q as BoardSignInSsoConnection, a as CompanyCategorySalary, r as CompanyMarket, s as CompanyMarketRef, t as CompanySalarySummary, C as CustomFieldDefinition, u as CustomFieldOption, v as CustomFieldType, L as LocationSalaryDetail, w as LocationSkillsIndex, x as LocationTitlesIndex, P as PublicBoard, y as PublicBoardAds, z as PublicBoardAnalytics, A as PublicBoardFeatures, D as PublicBoardJobForm, E as PublicBoardSignIn, F as PublicCompany, G as PublicCompanyDetail, H as PublicCompanyMembership, I as SalaryCompany, J as SalaryLocation, K as SalarySkill, M as SalaryTitle, N as SkillLocationSalary, O as SkillLocationsIndex, S as SkillSalaryDetail, Q as TitleLocationSalary, R as TitleLocationsIndex, T as TitleSalaryDetail } from './board-On_r_ixp.js';
8
+ export { B as BoardSeo } from './seo-CY5Vl13y.js';
9
+ import { a as BlogPostsListQuery, b as BlogSimilarQuery, c as BlogSearchBody } from './blog-W1cBNXyS.js';
10
+ export { B as BlogAuthorEmbed, d as BlogTagEmbed, e as PublicBlogAdjacentPosts, f as PublicBlogAuthor, g as PublicBlogPost, P as PublicBlogPostSummary, h as PublicBlogTag } from './blog-W1cBNXyS.js';
11
11
 
12
12
  /**
13
13
  * Well-known `<domain>_<snake_reason>` codes the Board API sends, grouped by
@@ -202,7 +202,7 @@ declare function paginate<Q extends Record<string, unknown>, P extends PageShape
202
202
  * constant because the package is platform-neutral and cannot read
203
203
  * package.json at runtime.
204
204
  */
205
- declare const SDK_VERSION = "4.67.0";
205
+ declare const SDK_VERSION = "4.68.0";
206
206
 
207
207
  type SavedJob = Schemas['SavedJob'];
208
208
  type SavedJobsListQuery = {
@@ -1647,6 +1647,8 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
1647
1647
  contactPage: boolean;
1648
1648
  placeSuggestions: boolean;
1649
1649
  mcp: boolean;
1650
+ tipJar: boolean;
1651
+ products: boolean;
1650
1652
  };
1651
1653
  talentAccessModel: "paid_messaging" | "paid_unlocks_and_messaging" | null;
1652
1654
  posting: {
@@ -2114,6 +2116,7 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
2114
2116
  suggested?: boolean;
2115
2117
  ancestors?: components["schemas"]["PublicPlaceAncestor"][];
2116
2118
  defaultRadiusKm?: number;
2119
+ companyCount?: number;
2117
2120
  }>;
2118
2121
  };
2119
2122
  salaries: {
@@ -3950,6 +3953,7 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
3950
3953
  suggested?: boolean;
3951
3954
  ancestors?: components["schemas"]["PublicPlaceAncestor"][];
3952
3955
  defaultRadiusKm?: number;
3956
+ companyCount?: number;
3953
3957
  }>;
3954
3958
  };
3955
3959
  skills: {
@@ -3978,6 +3982,7 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
3978
3982
  suggested?: boolean;
3979
3983
  ancestors?: components["schemas"]["PublicPlaceAncestor"][];
3980
3984
  defaultRadiusKm?: number;
3985
+ companyCount?: number;
3981
3986
  }>;
3982
3987
  };
3983
3988
  remotePermits: {
@@ -4028,6 +4033,7 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
4028
4033
  suggested?: boolean;
4029
4034
  ancestors?: components["schemas"]["PublicPlaceAncestor"][];
4030
4035
  defaultRadiusKm?: number;
4036
+ companyCount?: number;
4031
4037
  }>;
4032
4038
  };
4033
4039
  };
package/dist/index.js CHANGED
@@ -446,7 +446,7 @@ async function clearSession(storage) {
446
446
  }
447
447
 
448
448
  // src/version.ts
449
- var SDK_VERSION = "4.67.0";
449
+ var SDK_VERSION = "4.68.0";
450
450
 
451
451
  // src/client.ts
452
452
  function isRawBody(body) {
package/dist/index.mjs CHANGED
@@ -49,7 +49,7 @@ function toSearchParams(query) {
49
49
  }
50
50
 
51
51
  // src/version.ts
52
- var SDK_VERSION = "4.67.0";
52
+ var SDK_VERSION = "4.68.0";
53
53
 
54
54
  // src/client.ts
55
55
  function isRawBody(body) {
@@ -1,4 +1,4 @@
1
- import { S as Schemas } from './_spec-BehBmeHK.mjs';
1
+ import { S as Schemas } from './_spec-t2B6ioRS.mjs';
2
2
 
3
3
  /**
4
4
  * Optional pagination metadata returned by Board API list operations.
@@ -1,4 +1,4 @@
1
- import { S as Schemas } from './_spec-BehBmeHK.js';
1
+ import { S as Schemas } from './_spec-t2B6ioRS.js';
2
2
 
3
3
  /**
4
4
  * Optional pagination metadata returned by Board API list operations.
@@ -1,4 +1,4 @@
1
- import { S as Schemas } from './_spec-BehBmeHK.js';
1
+ import { S as Schemas } from './_spec-t2B6ioRS.js';
2
2
 
3
3
  type Awaitable<T> = T | Promise<T>;
4
4
  /**
@@ -1,4 +1,4 @@
1
- import { S as Schemas } from './_spec-BehBmeHK.mjs';
1
+ import { S as Schemas } from './_spec-t2B6ioRS.mjs';
2
2
 
3
3
  type Awaitable<T> = T | Promise<T>;
4
4
  /**
@@ -1,4 +1,4 @@
1
- import { S as Schemas } from './_spec-BehBmeHK.mjs';
1
+ import { S as Schemas } from './_spec-t2B6ioRS.mjs';
2
2
 
3
3
  /**
4
4
  * The public SEO-infra payload (`board.seo()`) — platform infrastructure a
@@ -1,4 +1,4 @@
1
- import { S as Schemas } from './_spec-BehBmeHK.js';
1
+ import { S as Schemas } from './_spec-t2B6ioRS.js';
2
2
 
3
3
  /**
4
4
  * The public SEO-infra payload (`board.seo()`) — platform infrastructure a
@@ -1,5 +1,5 @@
1
- import { B as BoardSeo } from './seo-CWa4rTf7.mjs';
2
- import './_spec-BehBmeHK.mjs';
1
+ import { B as BoardSeo } from './seo-Bjevxvzd.mjs';
2
+ import './_spec-t2B6ioRS.mjs';
3
3
 
4
4
  /**
5
5
  * `@cavuno/board/seo-files` — platform-owned crawler/identity file bodies
@@ -1,5 +1,5 @@
1
- import { B as BoardSeo } from './seo-DYyQ8NTh.js';
2
- import './_spec-BehBmeHK.js';
1
+ import { B as BoardSeo } from './seo-CY5Vl13y.js';
2
+ import './_spec-t2B6ioRS.js';
3
3
 
4
4
  /**
5
5
  * `@cavuno/board/seo-files` — platform-owned crawler/identity file bodies
package/dist/seo.d.mts CHANGED
@@ -1,9 +1,9 @@
1
- import { P as PublicBlogPostSummary, B as BlogAuthorEmbed } from './blog-BmfbjijG.mjs';
2
- import { e as JsonLdObject } from './breadcrumbs-Cu_SPdRA.mjs';
3
- export { A as ALL_COUNTRY_CODES, B as BreadcrumbItemInput, g as FaqItem, J as JobBreadcrumb, h as JsonLdBoard, N as NumberNotation, i as SENIORITY_ORDER, j as SalaryFaqEntry, k as SalaryJsonLdOptions, l as SalaryOccupationListOptions, b as buildJobBreadcrumbs, m as buildSalaryFaq, o as companyCategorySalaryJsonLd, p as companySalaryJsonLd, q as createBreadcrumbJsonLd, r as createJobPostingJsonLd, s as crossAxisSalaryJsonLd, t as faqJsonLd, c as formatSalaryStat, d as formatSalaryStatRange, u as itemListJsonLd, v as locationSalaryJsonLd, n as normalizeWebsiteUrl, w as skillSalaryJsonLd, x as sortBySeniority, y as titleSalaryJsonLd } from './breadcrumbs-Cu_SPdRA.mjs';
4
- import './_spec-BehBmeHK.mjs';
5
- import './board-CXd9Me7_.mjs';
6
- import './jobs-CbTUedOr.mjs';
1
+ import { P as PublicBlogPostSummary, B as BlogAuthorEmbed } from './blog-B8UJJza1.mjs';
2
+ import { e as JsonLdObject } from './breadcrumbs-BgBj_AiZ.mjs';
3
+ export { A as ALL_COUNTRY_CODES, B as BreadcrumbItemInput, g as FaqItem, J as JobBreadcrumb, h as JsonLdBoard, N as NumberNotation, i as SENIORITY_ORDER, j as SalaryFaqEntry, k as SalaryJsonLdOptions, l as SalaryOccupationListOptions, b as buildJobBreadcrumbs, m as buildSalaryFaq, o as companyCategorySalaryJsonLd, p as companySalaryJsonLd, q as createBreadcrumbJsonLd, r as createJobPostingJsonLd, s as crossAxisSalaryJsonLd, t as faqJsonLd, c as formatSalaryStat, d as formatSalaryStatRange, u as itemListJsonLd, v as locationSalaryJsonLd, n as normalizeWebsiteUrl, w as skillSalaryJsonLd, x as sortBySeniority, y as titleSalaryJsonLd } from './breadcrumbs-BgBj_AiZ.mjs';
4
+ import './_spec-t2B6ioRS.mjs';
5
+ import './board-8RMVpFBw.mjs';
6
+ import './jobs-CrGBikhJ.mjs';
7
7
 
8
8
  /**
9
9
  * Blog structured data on the `@cavuno/board` wire types, transcribed from
package/dist/seo.d.ts CHANGED
@@ -1,9 +1,9 @@
1
- import { P as PublicBlogPostSummary, B as BlogAuthorEmbed } from './blog-BLpOmpyQ.js';
2
- import { e as JsonLdObject } from './breadcrumbs-PEsRCVwI.js';
3
- export { A as ALL_COUNTRY_CODES, B as BreadcrumbItemInput, g as FaqItem, J as JobBreadcrumb, h as JsonLdBoard, N as NumberNotation, i as SENIORITY_ORDER, j as SalaryFaqEntry, k as SalaryJsonLdOptions, l as SalaryOccupationListOptions, b as buildJobBreadcrumbs, m as buildSalaryFaq, o as companyCategorySalaryJsonLd, p as companySalaryJsonLd, q as createBreadcrumbJsonLd, r as createJobPostingJsonLd, s as crossAxisSalaryJsonLd, t as faqJsonLd, c as formatSalaryStat, d as formatSalaryStatRange, u as itemListJsonLd, v as locationSalaryJsonLd, n as normalizeWebsiteUrl, w as skillSalaryJsonLd, x as sortBySeniority, y as titleSalaryJsonLd } from './breadcrumbs-PEsRCVwI.js';
4
- import './_spec-BehBmeHK.js';
5
- import './board-dV_3NXAI.js';
6
- import './jobs-D2mKA65F.js';
1
+ import { P as PublicBlogPostSummary, B as BlogAuthorEmbed } from './blog-W1cBNXyS.js';
2
+ import { e as JsonLdObject } from './breadcrumbs-eV2OQqf6.js';
3
+ export { A as ALL_COUNTRY_CODES, B as BreadcrumbItemInput, g as FaqItem, J as JobBreadcrumb, h as JsonLdBoard, N as NumberNotation, i as SENIORITY_ORDER, j as SalaryFaqEntry, k as SalaryJsonLdOptions, l as SalaryOccupationListOptions, b as buildJobBreadcrumbs, m as buildSalaryFaq, o as companyCategorySalaryJsonLd, p as companySalaryJsonLd, q as createBreadcrumbJsonLd, r as createJobPostingJsonLd, s as crossAxisSalaryJsonLd, t as faqJsonLd, c as formatSalaryStat, d as formatSalaryStatRange, u as itemListJsonLd, v as locationSalaryJsonLd, n as normalizeWebsiteUrl, w as skillSalaryJsonLd, x as sortBySeniority, y as titleSalaryJsonLd } from './breadcrumbs-eV2OQqf6.js';
4
+ import './_spec-t2B6ioRS.js';
5
+ import './board-On_r_ixp.js';
6
+ import './jobs-D_LjWgIk.js';
7
7
 
8
8
  /**
9
9
  * Blog structured data on the `@cavuno/board` wire types, transcribed from
package/dist/server.d.mts CHANGED
@@ -1,10 +1,10 @@
1
1
  import { BoardSdk } from './index.mjs';
2
- import './_spec-BehBmeHK.mjs';
3
- import './search-CxUViZsz.mjs';
4
- import './jobs-CbTUedOr.mjs';
5
- import './board-CXd9Me7_.mjs';
6
- import './seo-CWa4rTf7.mjs';
7
- import './blog-BmfbjijG.mjs';
2
+ import './_spec-t2B6ioRS.mjs';
3
+ import './search-Yw5qsooq.mjs';
4
+ import './jobs-CrGBikhJ.mjs';
5
+ import './board-8RMVpFBw.mjs';
6
+ import './seo-Bjevxvzd.mjs';
7
+ import './blog-B8UJJza1.mjs';
8
8
 
9
9
  /**
10
10
  * Session cookie codec — pure (no framework imports, no node imports) so it
package/dist/server.d.ts CHANGED
@@ -1,10 +1,10 @@
1
1
  import { BoardSdk } from './index.js';
2
- import './_spec-BehBmeHK.js';
3
- import './search-CHejx_k7.js';
4
- import './jobs-D2mKA65F.js';
5
- import './board-dV_3NXAI.js';
6
- import './seo-DYyQ8NTh.js';
7
- import './blog-BLpOmpyQ.js';
2
+ import './_spec-t2B6ioRS.js';
3
+ import './search-ClbqUjkA.js';
4
+ import './jobs-D_LjWgIk.js';
5
+ import './board-On_r_ixp.js';
6
+ import './seo-CY5Vl13y.js';
7
+ import './blog-W1cBNXyS.js';
8
8
 
9
9
  /**
10
10
  * Session cookie codec — pure (no framework imports, no node imports) so it
@@ -1,10 +1,10 @@
1
1
  import { BoardSdk } from './index.mjs';
2
- import './_spec-BehBmeHK.mjs';
3
- import './search-CxUViZsz.mjs';
4
- import './jobs-CbTUedOr.mjs';
5
- import './board-CXd9Me7_.mjs';
6
- import './seo-CWa4rTf7.mjs';
7
- import './blog-BmfbjijG.mjs';
2
+ import './_spec-t2B6ioRS.mjs';
3
+ import './search-Yw5qsooq.mjs';
4
+ import './jobs-CrGBikhJ.mjs';
5
+ import './board-8RMVpFBw.mjs';
6
+ import './seo-Bjevxvzd.mjs';
7
+ import './blog-B8UJJza1.mjs';
8
8
 
9
9
  /**
10
10
  * Sitemap primitives — the pure XML + bucket-filename logic behind a board
package/dist/sitemap.d.ts CHANGED
@@ -1,10 +1,10 @@
1
1
  import { BoardSdk } from './index.js';
2
- import './_spec-BehBmeHK.js';
3
- import './search-CHejx_k7.js';
4
- import './jobs-D2mKA65F.js';
5
- import './board-dV_3NXAI.js';
6
- import './seo-DYyQ8NTh.js';
7
- import './blog-BLpOmpyQ.js';
2
+ import './_spec-t2B6ioRS.js';
3
+ import './search-ClbqUjkA.js';
4
+ import './jobs-D_LjWgIk.js';
5
+ import './board-On_r_ixp.js';
6
+ import './seo-CY5Vl13y.js';
7
+ import './blog-W1cBNXyS.js';
8
8
 
9
9
  /**
10
10
  * Sitemap primitives — the pure XML + bucket-filename logic behind a board
@@ -1,5 +1,5 @@
1
- import { h as SuggestionItem, b as SearchSuggestQuery, F as FetchOptions, g as SuggestResult } from './search-CxUViZsz.mjs';
2
- import './_spec-BehBmeHK.mjs';
1
+ import { h as SuggestionItem, b as SearchSuggestQuery, F as FetchOptions, g as SuggestResult } from './search-Yw5qsooq.mjs';
2
+ import './_spec-t2B6ioRS.mjs';
3
3
 
4
4
  /**
5
5
  * `@cavuno/board/suggest` — framework-agnostic headless search-suggest
package/dist/suggest.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { h as SuggestionItem, b as SearchSuggestQuery, F as FetchOptions, g as SuggestResult } from './search-CHejx_k7.js';
2
- import './_spec-BehBmeHK.js';
1
+ import { h as SuggestionItem, b as SearchSuggestQuery, F as FetchOptions, g as SuggestResult } from './search-ClbqUjkA.js';
2
+ import './_spec-t2B6ioRS.js';
3
3
 
4
4
  /**
5
5
  * `@cavuno/board/suggest` — framework-agnostic headless search-suggest
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cavuno/board",
3
- "version": "4.67.0",
3
+ "version": "4.68.0",
4
4
  "description": "Build custom job boards and careers pages with Cavuno’s TypeScript SDK.",
5
5
  "keywords": [
6
6
  "api-client",
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "4.67.0",
2
+ "version": "4.68.0",
3
3
  "skills": [
4
4
  {
5
5
  "name": "cavuno-board-account",