@cavuno/board 4.68.0 → 4.70.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 (42) hide show
  1. package/CHANGELOG.md +73 -0
  2. package/dist/{_spec-t2B6ioRS.d.mts → _spec-Dk7QyuoJ.d.mts} +69 -2
  3. package/dist/{_spec-t2B6ioRS.d.ts → _spec-Dk7QyuoJ.d.ts} +69 -2
  4. package/dist/{blog-W1cBNXyS.d.ts → blog-DfUNkngR.d.ts} +1 -1
  5. package/dist/{blog-B8UJJza1.d.mts → blog-Oo6YHXSE.d.mts} +1 -1
  6. package/dist/{board-On_r_ixp.d.ts → board-CfmGT0yV.d.ts} +2 -2
  7. package/dist/{board-8RMVpFBw.d.mts → board-DzBYIwKz.d.mts} +2 -2
  8. package/dist/{breadcrumbs-eV2OQqf6.d.ts → breadcrumbs-CS0nlknq.d.ts} +2 -2
  9. package/dist/{breadcrumbs-BgBj_AiZ.d.mts → breadcrumbs-DeIA0RQp.d.mts} +2 -2
  10. package/dist/browser/cavuno-board.global.min.js +1 -1
  11. package/dist/{chunk-ZA5TZ6UH.mjs → chunk-UIKN2ERI.mjs} +3 -0
  12. package/dist/filters.d.mts +2 -2
  13. package/dist/filters.d.ts +2 -2
  14. package/dist/format.d.mts +4 -4
  15. package/dist/format.d.ts +4 -4
  16. package/dist/index.d.mts +89 -38
  17. package/dist/index.d.ts +89 -38
  18. package/dist/index.js +60 -3
  19. package/dist/index.mjs +58 -4
  20. package/dist/{jobs-CrGBikhJ.d.mts → jobs-BMRvZlNx.d.mts} +1 -1
  21. package/dist/{jobs-D_LjWgIk.d.ts → jobs-BlAsTCQl.d.ts} +1 -1
  22. package/dist/{search-Yw5qsooq.d.mts → search-BB1TaaLa.d.mts} +1 -1
  23. package/dist/{search-ClbqUjkA.d.ts → search-CoBeDgYT.d.ts} +1 -1
  24. package/dist/{seo-CY5Vl13y.d.ts → seo-BmqJ_ChV.d.ts} +1 -1
  25. package/dist/{seo-Bjevxvzd.d.mts → seo-M_8j5vdP.d.mts} +1 -1
  26. package/dist/seo-files.d.mts +2 -2
  27. package/dist/seo-files.d.ts +2 -2
  28. package/dist/seo.d.mts +6 -6
  29. package/dist/seo.d.ts +6 -6
  30. package/dist/server.d.mts +6 -6
  31. package/dist/server.d.ts +6 -6
  32. package/dist/server.mjs +1 -1
  33. package/dist/sitemap.d.mts +6 -6
  34. package/dist/sitemap.d.ts +6 -6
  35. package/dist/sitemap.mjs +1 -1
  36. package/dist/suggest.d.mts +2 -2
  37. package/dist/suggest.d.ts +2 -2
  38. package/package.json +1 -1
  39. package/skills/cavuno-board-account/SKILL.md +16 -0
  40. package/skills/cavuno-board-job-alerts/SKILL.md +7 -0
  41. package/skills/cavuno-board-newsletter/SKILL.md +79 -0
  42. package/skills/manifest.json +8 -1
package/CHANGELOG.md CHANGED
@@ -3,6 +3,79 @@
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.71.0 — 2026-11-12
7
+
8
+ - `board.jobAlerts.confirm({ token })` can resolve two more statuses,
9
+ which the API already returned: `waitlisted` (the alert is confirmed and
10
+ starts once the board can send to more people) and `unsubscribed` (the
11
+ link was sent before the person's alerts were turned off, so it does not
12
+ turn them back on; they resume them from a manage link with
13
+ `board.jobAlerts.resubscribe`). `JobAlertConfirmation['status']` lists
14
+ both, so an exhaustive `switch` over it needs the two new cases.
15
+ - `JobAlertConfirmation['subscription']` is also present when a link is
16
+ refused (`expired`, `not_found` or `unsubscribed`): `marketing` for a
17
+ link from `board.subscribe`, `job_alerts` for a job alert link. Word the
18
+ refusal by it. It is still absent for an unknown token.
19
+ - `board.subscribe(...)` records the visitor's IP address and user agent
20
+ as consent evidence only when the request comes through a board built
21
+ with Cavuno's AI Builder. A frontend that calls the API from the browser
22
+ or its own server records neither, since the address and user agent the
23
+ API sees are not the visitor's.
24
+
25
+ ## 4.70.0 — 2026-11-12
26
+
27
+ - Company members can add gallery images and files to their company's
28
+ custom fields. `board.me.companies.uploadCustomFieldFile(slug, fieldKey,
29
+ file)` uploads one file (up to 10 MB; galleries take JPEG, PNG, WebP or
30
+ GIF) and returns a `ProfileFieldMedia` draft. Save its `id` with
31
+ `board.me.companies.updateCustomFields` to attach it. The caller must be
32
+ an approved member of the company. A key that is not an upload field is
33
+ refused with `company_custom_field_not_found`, and a field company
34
+ members cannot edit with `company_custom_field_not_editable`.
35
+ - `board.me.companies.retrieveCustomFields(slug)` and `updateCustomFields`
36
+ are typed `MyCompanyProfileFieldValues`, which adds `customFieldMedia`:
37
+ the saved files of upload fields, keyed by field, with links that also
38
+ load drafts for the company's members. `MyCompanyProfileFieldValues` is
39
+ exported.
40
+ - `board.subscribe({ email, consent, consentText, source })` signs an
41
+ address up for the board's email from a newsletter form. The person gets
42
+ a confirmation email and nothing is granted until they click it. It
43
+ always resolves `{ status: 'submitted', sendingPaused }`.
44
+ `BoardSubscribeInput` and `SubscriptionRequest` are exported.
45
+ - `board.auth.register(...)` and `board.auth.resendVerification()` answer
46
+ 422 `board_auth_email_undeliverable` when the address cannot receive
47
+ email, such as a temporary or disposable inbox. On register nothing is
48
+ created, so ask for a different address.
49
+
50
+ ## 4.69.0 — 2026-11-12
51
+
52
+ - Members-only boards: on a board whose context has
53
+ `posting.requiresMembership`, `board.plans.list()` leaves out job-posting
54
+ plans, except those priced by quote, because visitors cannot buy them.
55
+ `board.jobPosting.plans()` still returns them for members. An anonymous
56
+ `board.jobPosting.create(...)` on such a board is refused with
57
+ `membership_required`, whatever company website it names.
58
+ - `board.jobPosting.plans()` returns each feature's `name`, `dataType` and
59
+ `displayOrder`, as `board.plans.list()` does, so a posting form can label a
60
+ plan's custom attributes from that one read.
61
+ - `board.me.companies.billingOptions.list(slug)` is typed as
62
+ `EmployerBillingOptionsList`, which includes the `capabilities` the
63
+ endpoint returns: `canPost`, the `reason` when posting is refused, and the
64
+ membership allowance. `EmployerPostingCapabilities` is exported. Read
65
+ `canPost` to show a membership offer before the employer writes a job.
66
+ - `board.me.companies.startMembershipCheckout(slug, body)` takes an optional
67
+ `redirectOnCompletion`: `'always'` (the default, unchanged) or
68
+ `'if_required'`, which keeps a card payment on the embedding page and fires
69
+ Stripe.js `onComplete`. Payment methods that need a redirect still return
70
+ to `returnPath`.
71
+ - The board context carries `features.tipJar` (the board has an active tip
72
+ jar) and `features.products` (it lists at least one product), so a frontend
73
+ can show those links without probing `/tip-jar` and `/products`.
74
+ - `auth.refresh()` and `auth.logout()` are rate limited per refresh token (10
75
+ a minute) instead of per client IP, with a ceiling of 1,000 a minute per IP.
76
+ A server-rendered frontend refreshing many visitors' sessions from one IP no
77
+ longer gets `rate_limited`.
78
+
6
79
  ## 4.68.0 — 2026-11-11
7
80
 
8
81
  - Company market resolutions return `companyCount`: the number of companies
@@ -428,6 +428,17 @@ interface components {
428
428
  definition: components["schemas"]["CustomFieldDefinition"];
429
429
  };
430
430
  BoardJobFormField: components["schemas"]["BoardFormBuiltinField"] | components["schemas"]["BoardJobFormCustomField"] | components["schemas"]["BoardJobFormCollectionField"];
431
+ BoardMarketingTopic: {
432
+ /**
433
+ * @description String representing the object's type. Objects of the same type share the same value.
434
+ * @enum {string}
435
+ */
436
+ object: "marketing_topic";
437
+ /** @description The topic’s key, which a sign-up sends in `topics` when the person ticks it. */
438
+ key: string;
439
+ /** @description The topic’s name, to label its checkbox. */
440
+ name: string;
441
+ };
431
442
  /** @description An MCP Server Card (SEP-2127): what an assistant needs to find and connect to the server before it connects. It lists no tools; `tools/list` on the server does. */
432
443
  BoardMcpServerCard: {
433
444
  /** @description The Server Card JSON Schema this document follows: `https://static.modelcontextprotocol.io/schemas/v1/server-card.schema.json`. */
@@ -550,6 +561,29 @@ interface components {
550
561
  /** @description ISO 8601 timestamp of the newest content in the bucket, when the board tracks one. */
551
562
  lastModified?: string;
552
563
  };
564
+ BoardSubscribeBody: {
565
+ /**
566
+ * Format: email
567
+ * @description The address to sign up. It gets a confirmation email.
568
+ */
569
+ email: string;
570
+ /**
571
+ * @description Must be `true`: the person ticked an unticked checkbox agreeing to `consentText`.
572
+ * @enum {boolean}
573
+ */
574
+ consent: true;
575
+ /** @description The checkbox wording the person agreed to, exactly as shown, such as "Send me news and offers from Acme Jobs." It must contain the board's name (any letter case), or the request is refused with 400. Kept with the consent once the person confirms. */
576
+ consentText: string;
577
+ /** @description A label for the form, such as `blog-footer`: lowercase letters, digits and hyphens, up to 64 characters. It shows as the contact's Source. */
578
+ source: string;
579
+ /**
580
+ * Format: uri
581
+ * @description The page the form was on. Defaults to the request's `Referer`.
582
+ */
583
+ pageUrl?: string;
584
+ /** @description Honeypot. Render it as a hidden field that people leave empty; when it is filled in, the request answers `submitted` and does nothing. */
585
+ website?: string;
586
+ };
553
587
  BoardUser: {
554
588
  /** @description Board user ID. */
555
589
  id: string;
@@ -2099,6 +2133,12 @@ interface components {
2099
2133
  features: {
2100
2134
  key: string | null;
2101
2135
  value: string | null;
2136
+ /** @description The feature's display name, including an operator-defined custom attribute's name. */
2137
+ name: string;
2138
+ /** @description How to read `value`, such as `integer`, `boolean` or `string`. */
2139
+ dataType: string;
2140
+ /** @description The operator-set order among the plan features; null when unset. */
2141
+ displayOrder: number | null;
2102
2142
  }[];
2103
2143
  };
2104
2144
  JobPostingResult: {
@@ -2322,6 +2362,11 @@ interface components {
2322
2362
  returnPath: string;
2323
2363
  /** @enum {string} */
2324
2364
  colorMode: "light" | "dark";
2365
+ /**
2366
+ * @description When the buyer leaves for `returnPath`. `always` (default): every completed checkout redirects there. `if_required`: a card payment completes in place and the embedding page reacts to Stripe.js `onComplete` (then reads `GET …/membership/checkout/{sessionId}`); only a payment method that needs a redirect returns to `returnPath`.
2367
+ * @enum {string}
2368
+ */
2369
+ redirectOnCompletion?: "always" | "if_required";
2325
2370
  };
2326
2371
  Message: {
2327
2372
  id: string;
@@ -2362,6 +2407,12 @@ interface components {
2362
2407
  [key: string]: components["schemas"]["ProfileFieldMedia"][];
2363
2408
  };
2364
2409
  };
2410
+ MyCompanyProfileFieldValuesResponse: components["schemas"]["ProfileFieldValuesResponse"] & {
2411
+ /** @description Resolved files for the company’s saved `image_gallery` and `file` values, keyed by field key like `values`, in the stored order, including private fields. Each file `id` matches a value in `values`. `url` is a signed link for the company’s members that expires after at least 24 hours, so read it from the response rather than storing it. Unsaved uploads are not listed. Fields with no files are omitted. */
2412
+ customFieldMedia: {
2413
+ [key: string]: components["schemas"]["ProfileFieldMedia"][];
2414
+ };
2415
+ };
2365
2416
  MyItemVerification: components["schemas"]["ItemVerification"] & {
2366
2417
  /** @description The verification's id. For an item with no verification yet (`unverified`), its `itemKey`. */
2367
2418
  id?: string;
@@ -3337,10 +3388,15 @@ interface components {
3337
3388
  /** @enum {string} */
3338
3389
  object: "job_alert_confirmation";
3339
3390
  /**
3340
- * @description Outcome of the confirmation. Always returned with HTTP 200 so the consumer renders by status (the token may be valid, stale, or unknown).
3391
+ * @description Outcome of the confirmation. Always returned with HTTP 200 so the consumer renders by status (the token may be valid, stale, or unknown). `waitlisted`: the job alert is confirmed, but the board can't send to more people yet, so it starts once a spot opens. `unsubscribed`: a job-alert link sent before the alerts were turned off, which doesn't turn them back on. The subscription form sends an address that unsubscribed no confirmation email; resume alerts with the manage token (`POST /boards/{identifier}/job-alerts/resubscribe`) or a signed-in alert create.
3341
3392
  * @enum {string}
3342
3393
  */
3343
- status: "confirmed" | "already_confirmed" | "expired" | "not_found";
3394
+ status: "confirmed" | "already_confirmed" | "expired" | "not_found" | "waitlisted" | "unsubscribed";
3395
+ /**
3396
+ * @description What the link confirms: `marketing` for a link from a newsletter sign-up (`POST /boards/{identifier}/subscribe`), which signs the person up for the board's email and never turns job alerts on, or `job_alerts`. Word the outcome by it. Present on a refused link too (`expired`, `not_found` or `unsubscribed`). Absent when the token is unknown or isn't a confirmation link.
3397
+ * @enum {string}
3398
+ */
3399
+ subscription?: "job_alerts" | "marketing";
3344
3400
  };
3345
3401
  PublicJobAlertManageResult: {
3346
3402
  /** @enum {string} */
@@ -3624,6 +3680,17 @@ interface components {
3624
3680
  */
3625
3681
  offset?: number;
3626
3682
  };
3683
+ PublicSubscriptionRequest: {
3684
+ /** @enum {string} */
3685
+ object: "subscription_request";
3686
+ /**
3687
+ * @description Always `submitted`, whether the address is new, waiting to confirm or already subscribed, so the response can't be used to find out who is subscribed. Unless the person already gets the board's email, a confirmation email has been sent; nothing is sent to them until they click it.
3688
+ * @enum {string}
3689
+ */
3690
+ status: "submitted";
3691
+ /** @description The board's marketing email is paused (too many bounces or spam reports). Sign-ups are still recorded; tell the person emails may be delayed. */
3692
+ sendingPaused: boolean;
3693
+ };
3627
3694
  PublicTalentPlace: {
3628
3695
  /** @enum {string} */
3629
3696
  object: "talent_place";
@@ -428,6 +428,17 @@ interface components {
428
428
  definition: components["schemas"]["CustomFieldDefinition"];
429
429
  };
430
430
  BoardJobFormField: components["schemas"]["BoardFormBuiltinField"] | components["schemas"]["BoardJobFormCustomField"] | components["schemas"]["BoardJobFormCollectionField"];
431
+ BoardMarketingTopic: {
432
+ /**
433
+ * @description String representing the object's type. Objects of the same type share the same value.
434
+ * @enum {string}
435
+ */
436
+ object: "marketing_topic";
437
+ /** @description The topic’s key, which a sign-up sends in `topics` when the person ticks it. */
438
+ key: string;
439
+ /** @description The topic’s name, to label its checkbox. */
440
+ name: string;
441
+ };
431
442
  /** @description An MCP Server Card (SEP-2127): what an assistant needs to find and connect to the server before it connects. It lists no tools; `tools/list` on the server does. */
432
443
  BoardMcpServerCard: {
433
444
  /** @description The Server Card JSON Schema this document follows: `https://static.modelcontextprotocol.io/schemas/v1/server-card.schema.json`. */
@@ -550,6 +561,29 @@ interface components {
550
561
  /** @description ISO 8601 timestamp of the newest content in the bucket, when the board tracks one. */
551
562
  lastModified?: string;
552
563
  };
564
+ BoardSubscribeBody: {
565
+ /**
566
+ * Format: email
567
+ * @description The address to sign up. It gets a confirmation email.
568
+ */
569
+ email: string;
570
+ /**
571
+ * @description Must be `true`: the person ticked an unticked checkbox agreeing to `consentText`.
572
+ * @enum {boolean}
573
+ */
574
+ consent: true;
575
+ /** @description The checkbox wording the person agreed to, exactly as shown, such as "Send me news and offers from Acme Jobs." It must contain the board's name (any letter case), or the request is refused with 400. Kept with the consent once the person confirms. */
576
+ consentText: string;
577
+ /** @description A label for the form, such as `blog-footer`: lowercase letters, digits and hyphens, up to 64 characters. It shows as the contact's Source. */
578
+ source: string;
579
+ /**
580
+ * Format: uri
581
+ * @description The page the form was on. Defaults to the request's `Referer`.
582
+ */
583
+ pageUrl?: string;
584
+ /** @description Honeypot. Render it as a hidden field that people leave empty; when it is filled in, the request answers `submitted` and does nothing. */
585
+ website?: string;
586
+ };
553
587
  BoardUser: {
554
588
  /** @description Board user ID. */
555
589
  id: string;
@@ -2099,6 +2133,12 @@ interface components {
2099
2133
  features: {
2100
2134
  key: string | null;
2101
2135
  value: string | null;
2136
+ /** @description The feature's display name, including an operator-defined custom attribute's name. */
2137
+ name: string;
2138
+ /** @description How to read `value`, such as `integer`, `boolean` or `string`. */
2139
+ dataType: string;
2140
+ /** @description The operator-set order among the plan features; null when unset. */
2141
+ displayOrder: number | null;
2102
2142
  }[];
2103
2143
  };
2104
2144
  JobPostingResult: {
@@ -2322,6 +2362,11 @@ interface components {
2322
2362
  returnPath: string;
2323
2363
  /** @enum {string} */
2324
2364
  colorMode: "light" | "dark";
2365
+ /**
2366
+ * @description When the buyer leaves for `returnPath`. `always` (default): every completed checkout redirects there. `if_required`: a card payment completes in place and the embedding page reacts to Stripe.js `onComplete` (then reads `GET …/membership/checkout/{sessionId}`); only a payment method that needs a redirect returns to `returnPath`.
2367
+ * @enum {string}
2368
+ */
2369
+ redirectOnCompletion?: "always" | "if_required";
2325
2370
  };
2326
2371
  Message: {
2327
2372
  id: string;
@@ -2362,6 +2407,12 @@ interface components {
2362
2407
  [key: string]: components["schemas"]["ProfileFieldMedia"][];
2363
2408
  };
2364
2409
  };
2410
+ MyCompanyProfileFieldValuesResponse: components["schemas"]["ProfileFieldValuesResponse"] & {
2411
+ /** @description Resolved files for the company’s saved `image_gallery` and `file` values, keyed by field key like `values`, in the stored order, including private fields. Each file `id` matches a value in `values`. `url` is a signed link for the company’s members that expires after at least 24 hours, so read it from the response rather than storing it. Unsaved uploads are not listed. Fields with no files are omitted. */
2412
+ customFieldMedia: {
2413
+ [key: string]: components["schemas"]["ProfileFieldMedia"][];
2414
+ };
2415
+ };
2365
2416
  MyItemVerification: components["schemas"]["ItemVerification"] & {
2366
2417
  /** @description The verification's id. For an item with no verification yet (`unverified`), its `itemKey`. */
2367
2418
  id?: string;
@@ -3337,10 +3388,15 @@ interface components {
3337
3388
  /** @enum {string} */
3338
3389
  object: "job_alert_confirmation";
3339
3390
  /**
3340
- * @description Outcome of the confirmation. Always returned with HTTP 200 so the consumer renders by status (the token may be valid, stale, or unknown).
3391
+ * @description Outcome of the confirmation. Always returned with HTTP 200 so the consumer renders by status (the token may be valid, stale, or unknown). `waitlisted`: the job alert is confirmed, but the board can't send to more people yet, so it starts once a spot opens. `unsubscribed`: a job-alert link sent before the alerts were turned off, which doesn't turn them back on. The subscription form sends an address that unsubscribed no confirmation email; resume alerts with the manage token (`POST /boards/{identifier}/job-alerts/resubscribe`) or a signed-in alert create.
3341
3392
  * @enum {string}
3342
3393
  */
3343
- status: "confirmed" | "already_confirmed" | "expired" | "not_found";
3394
+ status: "confirmed" | "already_confirmed" | "expired" | "not_found" | "waitlisted" | "unsubscribed";
3395
+ /**
3396
+ * @description What the link confirms: `marketing` for a link from a newsletter sign-up (`POST /boards/{identifier}/subscribe`), which signs the person up for the board's email and never turns job alerts on, or `job_alerts`. Word the outcome by it. Present on a refused link too (`expired`, `not_found` or `unsubscribed`). Absent when the token is unknown or isn't a confirmation link.
3397
+ * @enum {string}
3398
+ */
3399
+ subscription?: "job_alerts" | "marketing";
3344
3400
  };
3345
3401
  PublicJobAlertManageResult: {
3346
3402
  /** @enum {string} */
@@ -3624,6 +3680,17 @@ interface components {
3624
3680
  */
3625
3681
  offset?: number;
3626
3682
  };
3683
+ PublicSubscriptionRequest: {
3684
+ /** @enum {string} */
3685
+ object: "subscription_request";
3686
+ /**
3687
+ * @description Always `submitted`, whether the address is new, waiting to confirm or already subscribed, so the response can't be used to find out who is subscribed. Unless the person already gets the board's email, a confirmation email has been sent; nothing is sent to them until they click it.
3688
+ * @enum {string}
3689
+ */
3690
+ status: "submitted";
3691
+ /** @description The board's marketing email is paused (too many bounces or spam reports). Sign-ups are still recorded; tell the person emails may be delayed. */
3692
+ sendingPaused: boolean;
3693
+ };
3627
3694
  PublicTalentPlace: {
3628
3695
  /** @enum {string} */
3629
3696
  object: "talent_place";
@@ -1,4 +1,4 @@
1
- import { S as Schemas } from './_spec-t2B6ioRS.js';
1
+ import { S as Schemas } from './_spec-Dk7QyuoJ.js';
2
2
 
3
3
  /** Author shape embedded on posts (no `object` discriminator). */
4
4
  type BlogAuthorEmbed = Schemas['PublicBlogAuthorEmbed'];
@@ -1,4 +1,4 @@
1
- import { S as Schemas } from './_spec-t2B6ioRS.mjs';
1
+ import { S as Schemas } from './_spec-Dk7QyuoJ.mjs';
2
2
 
3
3
  /** Author shape embedded on posts (no `object` discriminator). */
4
4
  type BlogAuthorEmbed = Schemas['PublicBlogAuthorEmbed'];
@@ -1,5 +1,5 @@
1
- import { S as Schemas } from './_spec-t2B6ioRS.js';
2
- import { L as ListEnvelope, v as RelatedSearch, b as CustomFieldFilter, O as ObjectReferenceFilter, a as JobCapability } from './jobs-D_LjWgIk.js';
1
+ import { S as Schemas } from './_spec-Dk7QyuoJ.js';
2
+ import { L as ListEnvelope, v as RelatedSearch, b as CustomFieldFilter, O as ObjectReferenceFilter, a as JobCapability } from './jobs-BlAsTCQl.js';
3
3
 
4
4
  type PublicCompany = Schemas['CompanyPublic'];
5
5
  /**
@@ -1,5 +1,5 @@
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';
1
+ import { S as Schemas } from './_spec-Dk7QyuoJ.mjs';
2
+ import { L as ListEnvelope, v as RelatedSearch, b as CustomFieldFilter, O as ObjectReferenceFilter, a as JobCapability } from './jobs-BMRvZlNx.mjs';
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-On_r_ixp.js';
2
- import { P as PublicJob } from './jobs-D_LjWgIk.js';
1
+ import { P as PublicBoard, a as CompanyCategorySalary, b as CompanySalary, L as LocationSalaryDetail, S as SkillSalaryDetail, T as TitleSalaryDetail } from './board-CfmGT0yV.js';
2
+ import { P as PublicJob } from './jobs-BlAsTCQl.js';
3
3
 
4
4
  /**
5
5
  * Wire enum for `salaryTimeframe`. Defined here (not re-exported from any
@@ -1,5 +1,5 @@
1
- import { P as PublicBoard, a as CompanyCategorySalary, b as CompanySalary, L as LocationSalaryDetail, S as SkillSalaryDetail, T as TitleSalaryDetail } from './board-8RMVpFBw.mjs';
2
- import { P as PublicJob } from './jobs-CrGBikhJ.mjs';
1
+ import { P as PublicBoard, a as CompanyCategorySalary, b as CompanySalary, L as LocationSalaryDetail, S as SkillSalaryDetail, T as TitleSalaryDetail } from './board-DzBYIwKz.mjs';
2
+ import { P as PublicJob } from './jobs-BMRvZlNx.mjs';
3
3
 
4
4
  /**
5
5
  * Wire enum for `salaryTimeframe`. Defined here (not re-exported from any