@cavuno/board 4.70.0 → 4.71.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +10 -0
- package/dist/{_spec-Dk7QyuoJ.d.mts → _spec-OPrym0QJ.d.mts} +26 -1
- package/dist/{_spec-Dk7QyuoJ.d.ts → _spec-OPrym0QJ.d.ts} +26 -1
- package/dist/{blog-DfUNkngR.d.ts → blog-BlRb84MY.d.ts} +1 -1
- package/dist/{blog-Oo6YHXSE.d.mts → blog-CHQYIhHH.d.mts} +1 -1
- package/dist/{board-DzBYIwKz.d.mts → board-Btc1dzQB.d.mts} +2 -2
- package/dist/{board-CfmGT0yV.d.ts → board-D74R4Iml.d.ts} +2 -2
- package/dist/{breadcrumbs-CS0nlknq.d.ts → breadcrumbs-Bv76gXvF.d.ts} +2 -2
- package/dist/{breadcrumbs-DeIA0RQp.d.mts → breadcrumbs-CSm6P79s.d.mts} +2 -2
- package/dist/browser/cavuno-board.global.min.js +1 -1
- package/dist/{chunk-UIKN2ERI.mjs → chunk-AQD4OMX4.mjs} +2 -0
- package/dist/filters.d.mts +2 -2
- package/dist/filters.d.ts +2 -2
- package/dist/format.d.mts +4 -4
- package/dist/format.d.ts +4 -4
- package/dist/index.d.mts +31 -13
- package/dist/index.d.ts +31 -13
- package/dist/index.js +17 -7
- package/dist/index.mjs +16 -8
- package/dist/{jobs-BlAsTCQl.d.ts → jobs-BMG0vrVI.d.ts} +1 -1
- package/dist/{jobs-BMRvZlNx.d.mts → jobs-xjE0IrNu.d.mts} +1 -1
- package/dist/{search-BB1TaaLa.d.mts → search-BJkiU3Ic.d.mts} +1 -1
- package/dist/{search-CoBeDgYT.d.ts → search-suUh-E7O.d.ts} +1 -1
- package/dist/{seo-BmqJ_ChV.d.ts → seo-CW1JjEXH.d.ts} +1 -1
- package/dist/{seo-M_8j5vdP.d.mts → seo-DGdqWPLo.d.mts} +1 -1
- package/dist/seo-files.d.mts +2 -2
- package/dist/seo-files.d.ts +2 -2
- package/dist/seo-files.js +6 -0
- package/dist/seo-files.mjs +6 -0
- package/dist/seo.d.mts +6 -6
- package/dist/seo.d.ts +6 -6
- package/dist/server.d.mts +6 -6
- package/dist/server.d.ts +6 -6
- package/dist/server.mjs +1 -1
- package/dist/sitemap.d.mts +6 -6
- package/dist/sitemap.d.ts +6 -6
- package/dist/sitemap.mjs +1 -1
- package/dist/suggest.d.mts +2 -2
- package/dist/suggest.d.ts +2 -2
- package/package.json +1 -1
- package/skills/cavuno-board-auth/SKILL.md +3 -0
- package/skills/cavuno-board-job-alerts/SKILL.md +8 -3
- package/skills/cavuno-board-newsletter/SKILL.md +2 -0
- package/skills/manifest.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -21,6 +21,16 @@ types, runtime behavior, or supported integration patterns.
|
|
|
21
21
|
with Cavuno's AI Builder. A frontend that calls the API from the browser
|
|
22
22
|
or its own server records neither, since the address and user agent the
|
|
23
23
|
API sees are not the visitor's.
|
|
24
|
+
- The place rows of the title-by-location and skill-by-location salary
|
|
25
|
+
pages (`childLocations`, `childLocationsByRegion[].cities` and
|
|
26
|
+
`otherLocations`) carry `indexable` for the page each row links to, as
|
|
27
|
+
the other salary list items already do. Link only rows where it is
|
|
28
|
+
`true` from an indexable page. Skill-by-location rows are never
|
|
29
|
+
indexable.
|
|
30
|
+
- `robotsBody()` and `robotsResponse()` from `@cavuno/board/seo-files`
|
|
31
|
+
add `Content-Signal: search=yes, ai-input=yes, ai-train=yes` under
|
|
32
|
+
`User-Agent: *`, so the board says how its content may be used by search
|
|
33
|
+
and AI. Sandbox boards, which are not indexed, leave it out.
|
|
24
34
|
|
|
25
35
|
## 4.70.0 — 2026-11-12
|
|
26
36
|
|
|
@@ -247,6 +247,8 @@ interface components {
|
|
|
247
247
|
};
|
|
248
248
|
BoardAuthConsumeMagicLinkBody: {
|
|
249
249
|
token: string;
|
|
250
|
+
/** @description The person's IANA time zone from their browser (`Intl.DateTimeFormat().resolvedOptions().timeZone`), such as `Europe/Berlin`. Stored the first time only; an invalid value is ignored. */
|
|
251
|
+
timeZone?: string;
|
|
250
252
|
};
|
|
251
253
|
BoardAuthForgotPasswordBody: {
|
|
252
254
|
/** Format: email */
|
|
@@ -303,6 +305,8 @@ interface components {
|
|
|
303
305
|
returnTo?: string;
|
|
304
306
|
/** @description The company member invite token, when the person is signing up from an invite link. When `role` is `employer` and it is a pending invite on this board sent to this same email, no verification email is sent: accepting the invite (`POST /boards/{identifier}/me/invites/accept`) verifies the address. Registration never accepts the invite itself. Any other token is ignored and the verification email is sent as usual. */
|
|
305
307
|
inviteToken?: string;
|
|
308
|
+
/** @description The person's IANA time zone from their browser (`Intl.DateTimeFormat().resolvedOptions().timeZone`), such as `Europe/Berlin`. Stored the first time only; an invalid value is ignored. */
|
|
309
|
+
timeZone?: string;
|
|
306
310
|
};
|
|
307
311
|
BoardAuthRequestMagicLinkBody: {
|
|
308
312
|
audienceAttribution?: components["schemas"]["AudienceAttribution"];
|
|
@@ -583,6 +587,8 @@ interface components {
|
|
|
583
587
|
pageUrl?: string;
|
|
584
588
|
/** @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
589
|
website?: string;
|
|
590
|
+
/** @description The person's IANA time zone from their browser (`Intl.DateTimeFormat().resolvedOptions().timeZone`), such as `Europe/Berlin`. Stored the first time only; an invalid value is ignored. */
|
|
591
|
+
timeZone?: string;
|
|
586
592
|
};
|
|
587
593
|
BoardUser: {
|
|
588
594
|
/** @description Board user ID. */
|
|
@@ -3388,7 +3394,7 @@ interface components {
|
|
|
3388
3394
|
/** @enum {string} */
|
|
3389
3395
|
object: "job_alert_confirmation";
|
|
3390
3396
|
/**
|
|
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.
|
|
3397
|
+
* @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. To get them again, subscribe again (`POST /boards/{identifier}/job-alerts`): an address that unsubscribed is sent a fresh confirmation email at most once every 12 hours (none while the address is suppressed, or when the board's team unsubscribed the address), and clicking it re-subscribes. The manage token (`POST /boards/{identifier}/job-alerts/resubscribe`) or a signed-in alert create also resumes them.
|
|
3392
3398
|
* @enum {string}
|
|
3393
3399
|
*/
|
|
3394
3400
|
status: "confirmed" | "already_confirmed" | "expired" | "not_found" | "waitlisted" | "unsubscribed";
|
|
@@ -3449,6 +3455,13 @@ interface components {
|
|
|
3449
3455
|
*/
|
|
3450
3456
|
status: "submitted";
|
|
3451
3457
|
};
|
|
3458
|
+
PublicJobAlertResubscribeResult: components["schemas"]["PublicJobAlertManageResult"] & {
|
|
3459
|
+
/**
|
|
3460
|
+
* @description `resubscribed`: the subscription is resumed; its alerts start again, or wait for a spot when the board can't send to more people yet. `confirmation_sent`: the address never confirmed, so nothing is on yet; a confirmation email went out, and the alerts start when the person clicks its link. Tell them to check their inbox, and don't show the alerts as on.
|
|
3461
|
+
* @enum {string}
|
|
3462
|
+
*/
|
|
3463
|
+
status: "resubscribed" | "confirmation_sent";
|
|
3464
|
+
};
|
|
3452
3465
|
PublicJobAlertSubscription: {
|
|
3453
3466
|
/** @enum {string} */
|
|
3454
3467
|
object: "job_alert_subscription";
|
|
@@ -4285,6 +4298,8 @@ interface components {
|
|
|
4285
4298
|
avgSalaryMin: number;
|
|
4286
4299
|
avgSalaryMax: number;
|
|
4287
4300
|
jobCount: number;
|
|
4301
|
+
/** @description Whether the salary page this item links to is worth indexing. When `false`, that page renders `<meta name="robots" content="noindex, follow">` and is left out of the board sitemap. */
|
|
4302
|
+
indexable: boolean;
|
|
4288
4303
|
}[];
|
|
4289
4304
|
childLocationsByRegion: {
|
|
4290
4305
|
regionName: string;
|
|
@@ -4297,6 +4312,8 @@ interface components {
|
|
|
4297
4312
|
avgSalaryMin: number;
|
|
4298
4313
|
avgSalaryMax: number;
|
|
4299
4314
|
jobCount: number;
|
|
4315
|
+
/** @description Whether the salary page this item links to is worth indexing. When `false`, that page renders `<meta name="robots" content="noindex, follow">` and is left out of the board sitemap. */
|
|
4316
|
+
indexable: boolean;
|
|
4300
4317
|
}[];
|
|
4301
4318
|
}[];
|
|
4302
4319
|
otherLocations: {
|
|
@@ -4307,6 +4324,8 @@ interface components {
|
|
|
4307
4324
|
avgSalaryMin: number;
|
|
4308
4325
|
avgSalaryMax: number;
|
|
4309
4326
|
jobCount: number;
|
|
4327
|
+
/** @description Whether the salary page this item links to is worth indexing. When `false`, that page renders `<meta name="robots" content="noindex, follow">` and is left out of the board sitemap. */
|
|
4328
|
+
indexable: boolean;
|
|
4310
4329
|
}[];
|
|
4311
4330
|
topSkills: {
|
|
4312
4331
|
avgSalaryMin: number;
|
|
@@ -4845,6 +4864,8 @@ interface components {
|
|
|
4845
4864
|
avgSalaryMin: number;
|
|
4846
4865
|
avgSalaryMax: number;
|
|
4847
4866
|
jobCount: number;
|
|
4867
|
+
/** @description Whether the salary page this item links to is worth indexing. When `false`, that page renders `<meta name="robots" content="noindex, follow">` and is left out of the board sitemap. */
|
|
4868
|
+
indexable: boolean;
|
|
4848
4869
|
}[];
|
|
4849
4870
|
childLocationsByRegion: {
|
|
4850
4871
|
regionName: string;
|
|
@@ -4857,6 +4878,8 @@ interface components {
|
|
|
4857
4878
|
avgSalaryMin: number;
|
|
4858
4879
|
avgSalaryMax: number;
|
|
4859
4880
|
jobCount: number;
|
|
4881
|
+
/** @description Whether the salary page this item links to is worth indexing. When `false`, that page renders `<meta name="robots" content="noindex, follow">` and is left out of the board sitemap. */
|
|
4882
|
+
indexable: boolean;
|
|
4860
4883
|
}[];
|
|
4861
4884
|
}[];
|
|
4862
4885
|
otherLocations: {
|
|
@@ -4867,6 +4890,8 @@ interface components {
|
|
|
4867
4890
|
avgSalaryMin: number;
|
|
4868
4891
|
avgSalaryMax: number;
|
|
4869
4892
|
jobCount: number;
|
|
4893
|
+
/** @description Whether the salary page this item links to is worth indexing. When `false`, that page renders `<meta name="robots" content="noindex, follow">` and is left out of the board sitemap. */
|
|
4894
|
+
indexable: boolean;
|
|
4870
4895
|
}[];
|
|
4871
4896
|
topSkills: {
|
|
4872
4897
|
avgSalaryMin: number;
|
|
@@ -247,6 +247,8 @@ interface components {
|
|
|
247
247
|
};
|
|
248
248
|
BoardAuthConsumeMagicLinkBody: {
|
|
249
249
|
token: string;
|
|
250
|
+
/** @description The person's IANA time zone from their browser (`Intl.DateTimeFormat().resolvedOptions().timeZone`), such as `Europe/Berlin`. Stored the first time only; an invalid value is ignored. */
|
|
251
|
+
timeZone?: string;
|
|
250
252
|
};
|
|
251
253
|
BoardAuthForgotPasswordBody: {
|
|
252
254
|
/** Format: email */
|
|
@@ -303,6 +305,8 @@ interface components {
|
|
|
303
305
|
returnTo?: string;
|
|
304
306
|
/** @description The company member invite token, when the person is signing up from an invite link. When `role` is `employer` and it is a pending invite on this board sent to this same email, no verification email is sent: accepting the invite (`POST /boards/{identifier}/me/invites/accept`) verifies the address. Registration never accepts the invite itself. Any other token is ignored and the verification email is sent as usual. */
|
|
305
307
|
inviteToken?: string;
|
|
308
|
+
/** @description The person's IANA time zone from their browser (`Intl.DateTimeFormat().resolvedOptions().timeZone`), such as `Europe/Berlin`. Stored the first time only; an invalid value is ignored. */
|
|
309
|
+
timeZone?: string;
|
|
306
310
|
};
|
|
307
311
|
BoardAuthRequestMagicLinkBody: {
|
|
308
312
|
audienceAttribution?: components["schemas"]["AudienceAttribution"];
|
|
@@ -583,6 +587,8 @@ interface components {
|
|
|
583
587
|
pageUrl?: string;
|
|
584
588
|
/** @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
589
|
website?: string;
|
|
590
|
+
/** @description The person's IANA time zone from their browser (`Intl.DateTimeFormat().resolvedOptions().timeZone`), such as `Europe/Berlin`. Stored the first time only; an invalid value is ignored. */
|
|
591
|
+
timeZone?: string;
|
|
586
592
|
};
|
|
587
593
|
BoardUser: {
|
|
588
594
|
/** @description Board user ID. */
|
|
@@ -3388,7 +3394,7 @@ interface components {
|
|
|
3388
3394
|
/** @enum {string} */
|
|
3389
3395
|
object: "job_alert_confirmation";
|
|
3390
3396
|
/**
|
|
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.
|
|
3397
|
+
* @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. To get them again, subscribe again (`POST /boards/{identifier}/job-alerts`): an address that unsubscribed is sent a fresh confirmation email at most once every 12 hours (none while the address is suppressed, or when the board's team unsubscribed the address), and clicking it re-subscribes. The manage token (`POST /boards/{identifier}/job-alerts/resubscribe`) or a signed-in alert create also resumes them.
|
|
3392
3398
|
* @enum {string}
|
|
3393
3399
|
*/
|
|
3394
3400
|
status: "confirmed" | "already_confirmed" | "expired" | "not_found" | "waitlisted" | "unsubscribed";
|
|
@@ -3449,6 +3455,13 @@ interface components {
|
|
|
3449
3455
|
*/
|
|
3450
3456
|
status: "submitted";
|
|
3451
3457
|
};
|
|
3458
|
+
PublicJobAlertResubscribeResult: components["schemas"]["PublicJobAlertManageResult"] & {
|
|
3459
|
+
/**
|
|
3460
|
+
* @description `resubscribed`: the subscription is resumed; its alerts start again, or wait for a spot when the board can't send to more people yet. `confirmation_sent`: the address never confirmed, so nothing is on yet; a confirmation email went out, and the alerts start when the person clicks its link. Tell them to check their inbox, and don't show the alerts as on.
|
|
3461
|
+
* @enum {string}
|
|
3462
|
+
*/
|
|
3463
|
+
status: "resubscribed" | "confirmation_sent";
|
|
3464
|
+
};
|
|
3452
3465
|
PublicJobAlertSubscription: {
|
|
3453
3466
|
/** @enum {string} */
|
|
3454
3467
|
object: "job_alert_subscription";
|
|
@@ -4285,6 +4298,8 @@ interface components {
|
|
|
4285
4298
|
avgSalaryMin: number;
|
|
4286
4299
|
avgSalaryMax: number;
|
|
4287
4300
|
jobCount: number;
|
|
4301
|
+
/** @description Whether the salary page this item links to is worth indexing. When `false`, that page renders `<meta name="robots" content="noindex, follow">` and is left out of the board sitemap. */
|
|
4302
|
+
indexable: boolean;
|
|
4288
4303
|
}[];
|
|
4289
4304
|
childLocationsByRegion: {
|
|
4290
4305
|
regionName: string;
|
|
@@ -4297,6 +4312,8 @@ interface components {
|
|
|
4297
4312
|
avgSalaryMin: number;
|
|
4298
4313
|
avgSalaryMax: number;
|
|
4299
4314
|
jobCount: number;
|
|
4315
|
+
/** @description Whether the salary page this item links to is worth indexing. When `false`, that page renders `<meta name="robots" content="noindex, follow">` and is left out of the board sitemap. */
|
|
4316
|
+
indexable: boolean;
|
|
4300
4317
|
}[];
|
|
4301
4318
|
}[];
|
|
4302
4319
|
otherLocations: {
|
|
@@ -4307,6 +4324,8 @@ interface components {
|
|
|
4307
4324
|
avgSalaryMin: number;
|
|
4308
4325
|
avgSalaryMax: number;
|
|
4309
4326
|
jobCount: number;
|
|
4327
|
+
/** @description Whether the salary page this item links to is worth indexing. When `false`, that page renders `<meta name="robots" content="noindex, follow">` and is left out of the board sitemap. */
|
|
4328
|
+
indexable: boolean;
|
|
4310
4329
|
}[];
|
|
4311
4330
|
topSkills: {
|
|
4312
4331
|
avgSalaryMin: number;
|
|
@@ -4845,6 +4864,8 @@ interface components {
|
|
|
4845
4864
|
avgSalaryMin: number;
|
|
4846
4865
|
avgSalaryMax: number;
|
|
4847
4866
|
jobCount: number;
|
|
4867
|
+
/** @description Whether the salary page this item links to is worth indexing. When `false`, that page renders `<meta name="robots" content="noindex, follow">` and is left out of the board sitemap. */
|
|
4868
|
+
indexable: boolean;
|
|
4848
4869
|
}[];
|
|
4849
4870
|
childLocationsByRegion: {
|
|
4850
4871
|
regionName: string;
|
|
@@ -4857,6 +4878,8 @@ interface components {
|
|
|
4857
4878
|
avgSalaryMin: number;
|
|
4858
4879
|
avgSalaryMax: number;
|
|
4859
4880
|
jobCount: number;
|
|
4881
|
+
/** @description Whether the salary page this item links to is worth indexing. When `false`, that page renders `<meta name="robots" content="noindex, follow">` and is left out of the board sitemap. */
|
|
4882
|
+
indexable: boolean;
|
|
4860
4883
|
}[];
|
|
4861
4884
|
}[];
|
|
4862
4885
|
otherLocations: {
|
|
@@ -4867,6 +4890,8 @@ interface components {
|
|
|
4867
4890
|
avgSalaryMin: number;
|
|
4868
4891
|
avgSalaryMax: number;
|
|
4869
4892
|
jobCount: number;
|
|
4893
|
+
/** @description Whether the salary page this item links to is worth indexing. When `false`, that page renders `<meta name="robots" content="noindex, follow">` and is left out of the board sitemap. */
|
|
4894
|
+
indexable: boolean;
|
|
4870
4895
|
}[];
|
|
4871
4896
|
topSkills: {
|
|
4872
4897
|
avgSalaryMin: number;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { S as Schemas } from './_spec-
|
|
2
|
-
import { L as ListEnvelope, v as RelatedSearch, b as CustomFieldFilter, O as ObjectReferenceFilter, a as JobCapability } from './jobs-
|
|
1
|
+
import { S as Schemas } from './_spec-OPrym0QJ.mjs';
|
|
2
|
+
import { L as ListEnvelope, v as RelatedSearch, b as CustomFieldFilter, O as ObjectReferenceFilter, a as JobCapability } from './jobs-xjE0IrNu.mjs';
|
|
3
3
|
|
|
4
4
|
type PublicCompany = Schemas['CompanyPublic'];
|
|
5
5
|
/**
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { S as Schemas } from './_spec-
|
|
2
|
-
import { L as ListEnvelope, v as RelatedSearch, b as CustomFieldFilter, O as ObjectReferenceFilter, a as JobCapability } from './jobs-
|
|
1
|
+
import { S as Schemas } from './_spec-OPrym0QJ.js';
|
|
2
|
+
import { L as ListEnvelope, v as RelatedSearch, b as CustomFieldFilter, O as ObjectReferenceFilter, a as JobCapability } from './jobs-BMG0vrVI.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-
|
|
2
|
-
import { P as PublicJob } from './jobs-
|
|
1
|
+
import { P as PublicBoard, a as CompanyCategorySalary, b as CompanySalary, L as LocationSalaryDetail, S as SkillSalaryDetail, T as TitleSalaryDetail } from './board-D74R4Iml.js';
|
|
2
|
+
import { P as PublicJob } from './jobs-BMG0vrVI.js';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* Wire enum for `salaryTimeframe`. Defined here (not re-exported from any
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { P as PublicBoard, a as CompanyCategorySalary, b as CompanySalary, L as LocationSalaryDetail, S as SkillSalaryDetail, T as TitleSalaryDetail } from './board-
|
|
2
|
-
import { P as PublicJob } from './jobs-
|
|
1
|
+
import { P as PublicBoard, a as CompanyCategorySalary, b as CompanySalary, L as LocationSalaryDetail, S as SkillSalaryDetail, T as TitleSalaryDetail } from './board-Btc1dzQB.mjs';
|
|
2
|
+
import { P as PublicJob } from './jobs-xjE0IrNu.mjs';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* Wire enum for `salaryTimeframe`. Defined here (not re-exported from any
|