@cavuno/board 4.44.0 → 4.45.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 +21 -0
- package/dist/{_spec-CLxrfYJb.d.mts → _spec-CdNZDaaR.d.mts} +16 -0
- package/dist/{_spec-CLxrfYJb.d.ts → _spec-CdNZDaaR.d.ts} +16 -0
- package/dist/bin.mjs +179 -14
- package/dist/{blog-mlhJ6UcD.d.ts → blog-ZvLJ6w1Q.d.ts} +1 -1
- package/dist/{blog-CQ40QX7l.d.mts → blog-uV51b4Cg.d.mts} +1 -1
- package/dist/{board-DWFDeICw.d.ts → board-3JU14eF3.d.ts} +2 -2
- package/dist/{board-TOzb2D8c.d.mts → board-CJw-MJpf.d.mts} +2 -2
- package/dist/{breadcrumbs-DauM7O7_.d.mts → breadcrumbs-BY1UMCbL.d.mts} +2 -2
- package/dist/{breadcrumbs-DJHyzBji.d.ts → breadcrumbs-CXvdv6Ry.d.ts} +2 -2
- package/dist/browser/cavuno-board.global.min.js +1 -1
- package/dist/doctor.d.mts +1 -0
- package/dist/doctor.d.ts +1 -0
- package/dist/doctor.js +179 -14
- package/dist/doctor.mjs +179 -14
- 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 -12
- package/dist/index.d.ts +31 -12
- package/dist/index.js +25 -1
- package/dist/index.mjs +25 -1
- package/dist/{jobs-DZVMzBOQ.d.ts → jobs-C7UvN_dW.d.ts} +1 -1
- package/dist/{jobs-CjQM8EPT.d.mts → jobs-D9ERWWda.d.mts} +1 -1
- package/dist/{search-BtBE6iJO.d.mts → search-BMSNK85o.d.mts} +1 -1
- package/dist/{search-CF_wa20h.d.ts → search-D0TFnn1x.d.ts} +1 -1
- package/dist/{seo-0bfk63qi.d.mts → seo-C3WmgifR.d.mts} +1 -1
- package/dist/{seo-CU9LpWH7.d.ts → seo-CYmVKHsu.d.ts} +1 -1
- package/dist/seo-files.d.mts +25 -3
- package/dist/seo-files.d.ts +25 -3
- package/dist/seo-files.js +44 -10
- package/dist/seo-files.mjs +44 -10
- package/dist/seo.d.mts +6 -6
- package/dist/seo.d.ts +6 -6
- package/dist/server.d.mts +6 -6
- package/dist/server.d.ts +6 -6
- package/dist/sitemap.d.mts +6 -6
- package/dist/sitemap.d.ts +6 -6
- package/dist/suggest.d.mts +2 -2
- package/dist/suggest.d.ts +2 -2
- package/package.json +1 -1
- package/skills/cavuno-board-filters/SKILL.md +13 -0
- package/skills/cavuno-board-i18n/SKILL.md +10 -0
- package/skills/manifest.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { S as Schemas, c as components } from './_spec-
|
|
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-
|
|
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-
|
|
4
|
-
import { L as ListEnvelope, R as RemoteOption, E as EmploymentType, S as Seniority, a as CustomFieldFilter, O as ObjectReferenceFilter, b as JobCollectionChoiceQuery, c as JobsListQuery, d as JobCardListEnvelope, e as JobsSearchBody, f as JobCardSearchEnvelope, g as JobsSimilarQuery, h as SearchEnvelope } from './jobs-
|
|
5
|
-
export { i as CustomFieldValue, C as CustomFieldValues, j as CustomFilterValue, k as EducationRequirement, l as JobCatalogPagination, m as JobCollectionChoiceList, n as JobCollectionFieldDefinition, o as JobCompany, p as JobCustomEmploymentType, J as JobSort, q as OfficeLocation, r as OffsetPagination, P as PublicJob, s as PublicJobCard, t as RelatedSearch, u as RemotePermit, v as RemoteTimezone, w as ResolvedJobCollectionField, x as StorefrontPagination } from './jobs-
|
|
6
|
-
import { c as CompaniesListQuery, d as CompanyListEnvelope, e as CompaniesSearchBody, f as CompanyJobsListQuery, g as CompanySimilarQuery, h as CompanyMarketsListQuery, i as SalaryDetailQuery } from './board-
|
|
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, b as CompanySalary, 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-
|
|
8
|
-
export { B as BoardSeo } from './seo-
|
|
9
|
-
import { a as BlogPostsListQuery, b as BlogSimilarQuery, c as BlogSearchBody } from './blog-
|
|
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-
|
|
1
|
+
import { S as Schemas, c as components } from './_spec-CdNZDaaR.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-D0TFnn1x.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-D0TFnn1x.js';
|
|
4
|
+
import { L as ListEnvelope, R as RemoteOption, E as EmploymentType, S as Seniority, a as CustomFieldFilter, O as ObjectReferenceFilter, b as JobCollectionChoiceQuery, c as JobsListQuery, d as JobCardListEnvelope, e as JobsSearchBody, f as JobCardSearchEnvelope, g as JobsSimilarQuery, h as SearchEnvelope } from './jobs-C7UvN_dW.js';
|
|
5
|
+
export { i as CustomFieldValue, C as CustomFieldValues, j as CustomFilterValue, k as EducationRequirement, l as JobCatalogPagination, m as JobCollectionChoiceList, n as JobCollectionFieldDefinition, o as JobCompany, p as JobCustomEmploymentType, J as JobSort, q as OfficeLocation, r as OffsetPagination, P as PublicJob, s as PublicJobCard, t as RelatedSearch, u as RemotePermit, v as RemoteTimezone, w as ResolvedJobCollectionField, x as StorefrontPagination } from './jobs-C7UvN_dW.js';
|
|
6
|
+
import { c as CompaniesListQuery, d as CompanyListEnvelope, e as CompaniesSearchBody, f as CompanyJobsListQuery, g as CompanySimilarQuery, h as CompanyMarketsListQuery, i as SalaryDetailQuery } from './board-3JU14eF3.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, b as CompanySalary, 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-3JU14eF3.js';
|
|
8
|
+
export { B as BoardSeo } from './seo-CYmVKHsu.js';
|
|
9
|
+
import { a as BlogPostsListQuery, b as BlogSimilarQuery, c as BlogSearchBody } from './blog-ZvLJ6w1Q.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-ZvLJ6w1Q.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.
|
|
205
|
+
declare const SDK_VERSION = "4.45.0";
|
|
206
206
|
|
|
207
207
|
type SavedJob = Schemas['SavedJob'];
|
|
208
208
|
type SavedJobsListQuery = {
|
|
@@ -1019,6 +1019,22 @@ type TalentDirectoryQuery = {
|
|
|
1019
1019
|
objectReferences?: ObjectReferenceFilter[];
|
|
1020
1020
|
};
|
|
1021
1021
|
type TalentDirectoryListEnvelope = ListEnvelope<TalentDirectoryEntry>;
|
|
1022
|
+
/**
|
|
1023
|
+
* A place the board's directory candidates live in, with how many of them
|
|
1024
|
+
* the viewer can see there: a candidate counts in their home place and every
|
|
1025
|
+
* place above it. Its `slug` is the directory's `place` filter value.
|
|
1026
|
+
*/
|
|
1027
|
+
type TalentPlace = Schemas['PublicTalentPlace'];
|
|
1028
|
+
type TalentPlacesQuery = {
|
|
1029
|
+
/**
|
|
1030
|
+
* Location search, as on `taxonomy.places.list`: ≥2 chars → places whose
|
|
1031
|
+
* name contains it or whose slug starts with it, ranked; under 2 → empty.
|
|
1032
|
+
*/
|
|
1033
|
+
q?: string;
|
|
1034
|
+
/** 1–500, default 100, busiest first. With `q`: default 10, at most 50. */
|
|
1035
|
+
limit?: number;
|
|
1036
|
+
};
|
|
1037
|
+
type TalentPlacesListEnvelope = ListEnvelope<TalentPlace>;
|
|
1022
1038
|
|
|
1023
1039
|
/**
|
|
1024
1040
|
* A board plan (employer or job-seeker pricing). `purpose` says what the plan
|
|
@@ -4168,6 +4184,9 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
|
|
|
4168
4184
|
};
|
|
4169
4185
|
objectReferences: components["schemas"]["ResolvedProfileObjectReference"][];
|
|
4170
4186
|
}>;
|
|
4187
|
+
places: {
|
|
4188
|
+
list(query?: TalentPlacesQuery, options?: FetchOptions): Promise<TalentPlacesListEnvelope>;
|
|
4189
|
+
};
|
|
4171
4190
|
};
|
|
4172
4191
|
profileFields: {
|
|
4173
4192
|
retrieve(entity: ProfileFieldEntity, options?: FetchOptions): Promise<{
|
|
@@ -4200,4 +4219,4 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
|
|
|
4200
4219
|
};
|
|
4201
4220
|
type BoardSdk = ReturnType<typeof createBoardClient>;
|
|
4202
4221
|
|
|
4203
|
-
export { type AcceptCompanyMemberInviteBody, type AccessCheckoutBody, type AccessCheckoutSession, type AccessCheckoutSessionState, type AccessGrant, type AccessPortalBody, type AccessPortalSession, type AddApplicantNoteBody, type AddSourcedCandidateBody, type AddTalentListMemberBody, type Alert, type AlertBody, type Application, type ApplicationsListQuery, type ApplyAction, type ApplyApprovalPlan, type ApplyApprovalReceipt, type ApplyBody, type ApplyDecisionState, type ApplyIntent, type AudienceAttribution, type AvailableSignInMethods, Awaitable, BOARD_API_ERROR_CODES, type BindingStorage, type Block, type BlockStatus, type BlockUserBody, type BlockedUser, BlogPostsListQuery, BlogSearchBody, BlogSimilarQuery, type BoardAccessGrant, BoardApiError, type BoardApiErrorCode, type BoardAuthSession, BoardClient, BoardRequest, type BoardSdk, type BoardSitemapBucketSummary, type BoardSitemapIndex, type BoardUser, type BuiltInSignInMethod, type BulkMoveApplicantsBody, type BulkRejectApplicantsBody, type CandidateAvatar, type CandidateEducation, type CandidateExperience, type CandidateLanguage, type CandidateProfile, type CandidateSkill, type CategoryListQuery, type ClaimableCompany, CompaniesListQuery, CompaniesSearchBody, type CompanyBillingPortalBody, type CompanyBillingPortalSession, CompanyJobsListQuery, CompanyListEnvelope, CompanyMarketsListQuery, type CompanyMember, type CompanyMemberInvite, type CompanyMemberInviteAcceptance, type CompanyMemberInvitePreview, type CompanyMembership, CompanySimilarQuery, type ConfirmEmailChangeBody, type ConfirmWorkEmailBody, type ConsumeMagicLinkBody, type Conversation, type ConversationArchive, type ConversationDetail, type ConversationRef, type ConversationsListQuery, type ConvertSourcedCandidateBody, type CreateAlertBody, type CreateApplyApprovalBody, type CreateApplyIntentBody, type CreateBoardClientOptions, type CreateCompanyBody, type CreateCompanyMemberInviteBody, type CreateEducationBody, type CreateEmployerJobBody, type CreateExperienceBody, type CreateJobPostingInput, type CreatePipelineStageBody, type CreateTalentListBody, CustomFieldFilter, type EditMessageBody, type EmbedJobsQuery, type EmployerApplicant, type EmployerBillingOption, type EmployerCheckout, type EmployerCheckoutBody, type EmployerCompany, type EmployerCompanySearchQuery, type EmployerJob, type EmployerJobStat, type EmployerJobStatsPoint, type EmployerJobStatsTimeseriesQuery, type EmployerJobSummary, type EmployerJobsListQuery, type EmployerPipeline, type EmployerPipelineQuery, type EmployerPipelineStage, type EmployerProfileStats, type EmployerProfileViewsPoint, type EmployerProfileViewsTimeseriesQuery, EmploymentType, FetchOptions, type FindExistingConversationQuery, type ForgotPasswordBody, type HandleAvailability, type JobAlertConfirmation, type JobAlertDeletePreferenceInput, type JobAlertFiltersInput, type JobAlertFrequency, type JobAlertManageQuery, type JobAlertManageResult, type JobAlertManageState, type JobAlertManageTokenInput, type JobAlertPreference, type JobAlertRemoteOption, type JobAlertResendResult, type JobAlertStoredFilters, type JobAlertSubscribeInput, type JobAlertSubscription, type JobAlertUpdatePreferenceInput, JobCardListEnvelope, JobCardSearchEnvelope, JobCollectionChoiceQuery, type JobPostingBillingOptions, type JobPostingBillingVerification, type JobPostingLogoResult, type JobPostingPlan, type JobPostingResult, JobsListQuery, JobsSearchBody, JobsSimilarQuery, ListEnvelope, type LocationResolveInput, type LocationSearchQuery, Logger, type LoginBody, type LogoutBody, type MarketingConsent, type MembershipCheckoutBody, type MembershipCheckoutSession, type MembershipCheckoutSessionState, type Message, type ModerationReport, type MoveApplicantStageBody, type NotificationPreference, type OAuthAuthorizationQuery, type OAuthAuthorizationUrl, type OAuthCompletion, type OAuthExchangeBody, type OAuthProvider, ObjectReferenceFilter, type Paginator, type PaywallOffer, type PaywallOfferListEnvelope, type PlacesListQuery, type Plan, type PlanListEnvelope, type PlansListQuery, type PreviewCompanyMemberInviteBody, type ProfileChoiceList, type ProfileChoiceQuery, type ProfileFieldEntity, type ProfileFieldValues, type ProfileObjectReferenceSelectionWrite, type ProfileObjectReferences, type PublicLocation, type PublicPlace, type PublicProfileFields, type PublicTaxonomyTerm, type ReadReceipt, type RecommendedJob, type RecommendedJobsListQuery, type RecommendedTalent, type RecommendedTalentListQuery, type RedirectResolution, type RefreshBody, type RegisterBody, RemoteOption, type RemotePermitTaxonomyEntry, type ReorderPipelineStagesBody, type ReplaceProfileObjectReferencesBody, type ReplyBody, type ReportBody, type RequestEmailChangeBody, type RequestMagicLinkBody, type ResetPasswordBody, type Resume, type ResumeUploadOptions, SDK_VERSION, SIGN_IN_REDIRECT_ERROR_CODES, SSO_LINK_PROOF_BINDING_TTL_MS, SalaryDetailQuery, type SalesLedPlan, type SalesLedPlanListEnvelope, type SaveJobBody, type SavedJob, type SavedJobsListQuery, SearchEnvelope, SearchSuggestQuery, type SendWorkEmailBody, Seniority, type SignInRedirectErrorCode, type SignInRole, type SitemapEntriesEnvelope, type SitemapEntriesQuery, type SitemapEntry, type SourcedCandidate, type SsoAuthorizationQuery, type SsoAuthorizationUrl, type SsoLinkProofBindingStore, type SsoLinkProofBody, type StartAboutApplicationBody, type StartConversationBody, StorageMode, type TalentAccess, type TalentAccessCheckoutBody, type TalentAccessCheckoutSession, type TalentAccessCheckoutSessionState, type TalentAccessClaim, type TalentAccessClaimBody, type TalentAccessUpgrade, type TalentAccessUpgradeBody, type TalentCandidateAccess, type TalentDirectoryEntry, type TalentDirectoryListEnvelope, type TalentDirectoryQuery, type TalentList, type TalentListFilters, type TalentListMember, type TalentListMembersListEnvelope, type TalentListMembersQuery, type TalentListMembership, type TalentProfile, type TalentUnlock, type TalentUnlockBody, type TaxonomyGeo, type TaxonomyListQuery, type TaxonomyResolution, type ThreadMessagesQuery, type UnreadCount, type UnsubscribeBody, type UpdateApplicationFactsBody, type UpdateCandidateProfileBody, type UpdateCompanyMemberRoleBody, type UpdateEducationBody, type UpdateEmployerCompanyBody, type UpdateEmployerJobBody, type UpdateExperienceBody, type UpdateLanguagesBody, type UpdateNotificationPreferenceBody, type UpdatePasswordBody, type UpdatePipelineStageBody, type UpdateProfileFieldValuesBody, type UpdateSkillsBody, type UpdateTalentListBody, type VerifyEmailBody, createBoardClient, isBoardApiError, isBoardPasswordRequired, isColdRule, isConflict, isForbidden, isFreeEmailWebsiteError, isNotFound, isOwnMessage, isRateLimited, isSafeApplicationUrl, isSignInMethodUnavailable, isSsoBrowserMismatch, isSsoRequired, isUnauthorized, isValidationError, lastOwnMessageId, paginate, parseOAuthCompletion, resolveApplyAction, resolveApplyDecision, ssoLinkProofBindingStore };
|
|
4222
|
+
export { type AcceptCompanyMemberInviteBody, type AccessCheckoutBody, type AccessCheckoutSession, type AccessCheckoutSessionState, type AccessGrant, type AccessPortalBody, type AccessPortalSession, type AddApplicantNoteBody, type AddSourcedCandidateBody, type AddTalentListMemberBody, type Alert, type AlertBody, type Application, type ApplicationsListQuery, type ApplyAction, type ApplyApprovalPlan, type ApplyApprovalReceipt, type ApplyBody, type ApplyDecisionState, type ApplyIntent, type AudienceAttribution, type AvailableSignInMethods, Awaitable, BOARD_API_ERROR_CODES, type BindingStorage, type Block, type BlockStatus, type BlockUserBody, type BlockedUser, BlogPostsListQuery, BlogSearchBody, BlogSimilarQuery, type BoardAccessGrant, BoardApiError, type BoardApiErrorCode, type BoardAuthSession, BoardClient, BoardRequest, type BoardSdk, type BoardSitemapBucketSummary, type BoardSitemapIndex, type BoardUser, type BuiltInSignInMethod, type BulkMoveApplicantsBody, type BulkRejectApplicantsBody, type CandidateAvatar, type CandidateEducation, type CandidateExperience, type CandidateLanguage, type CandidateProfile, type CandidateSkill, type CategoryListQuery, type ClaimableCompany, CompaniesListQuery, CompaniesSearchBody, type CompanyBillingPortalBody, type CompanyBillingPortalSession, CompanyJobsListQuery, CompanyListEnvelope, CompanyMarketsListQuery, type CompanyMember, type CompanyMemberInvite, type CompanyMemberInviteAcceptance, type CompanyMemberInvitePreview, type CompanyMembership, CompanySimilarQuery, type ConfirmEmailChangeBody, type ConfirmWorkEmailBody, type ConsumeMagicLinkBody, type Conversation, type ConversationArchive, type ConversationDetail, type ConversationRef, type ConversationsListQuery, type ConvertSourcedCandidateBody, type CreateAlertBody, type CreateApplyApprovalBody, type CreateApplyIntentBody, type CreateBoardClientOptions, type CreateCompanyBody, type CreateCompanyMemberInviteBody, type CreateEducationBody, type CreateEmployerJobBody, type CreateExperienceBody, type CreateJobPostingInput, type CreatePipelineStageBody, type CreateTalentListBody, CustomFieldFilter, type EditMessageBody, type EmbedJobsQuery, type EmployerApplicant, type EmployerBillingOption, type EmployerCheckout, type EmployerCheckoutBody, type EmployerCompany, type EmployerCompanySearchQuery, type EmployerJob, type EmployerJobStat, type EmployerJobStatsPoint, type EmployerJobStatsTimeseriesQuery, type EmployerJobSummary, type EmployerJobsListQuery, type EmployerPipeline, type EmployerPipelineQuery, type EmployerPipelineStage, type EmployerProfileStats, type EmployerProfileViewsPoint, type EmployerProfileViewsTimeseriesQuery, EmploymentType, FetchOptions, type FindExistingConversationQuery, type ForgotPasswordBody, type HandleAvailability, type JobAlertConfirmation, type JobAlertDeletePreferenceInput, type JobAlertFiltersInput, type JobAlertFrequency, type JobAlertManageQuery, type JobAlertManageResult, type JobAlertManageState, type JobAlertManageTokenInput, type JobAlertPreference, type JobAlertRemoteOption, type JobAlertResendResult, type JobAlertStoredFilters, type JobAlertSubscribeInput, type JobAlertSubscription, type JobAlertUpdatePreferenceInput, JobCardListEnvelope, JobCardSearchEnvelope, JobCollectionChoiceQuery, type JobPostingBillingOptions, type JobPostingBillingVerification, type JobPostingLogoResult, type JobPostingPlan, type JobPostingResult, JobsListQuery, JobsSearchBody, JobsSimilarQuery, ListEnvelope, type LocationResolveInput, type LocationSearchQuery, Logger, type LoginBody, type LogoutBody, type MarketingConsent, type MembershipCheckoutBody, type MembershipCheckoutSession, type MembershipCheckoutSessionState, type Message, type ModerationReport, type MoveApplicantStageBody, type NotificationPreference, type OAuthAuthorizationQuery, type OAuthAuthorizationUrl, type OAuthCompletion, type OAuthExchangeBody, type OAuthProvider, ObjectReferenceFilter, type Paginator, type PaywallOffer, type PaywallOfferListEnvelope, type PlacesListQuery, type Plan, type PlanListEnvelope, type PlansListQuery, type PreviewCompanyMemberInviteBody, type ProfileChoiceList, type ProfileChoiceQuery, type ProfileFieldEntity, type ProfileFieldValues, type ProfileObjectReferenceSelectionWrite, type ProfileObjectReferences, type PublicLocation, type PublicPlace, type PublicProfileFields, type PublicTaxonomyTerm, type ReadReceipt, type RecommendedJob, type RecommendedJobsListQuery, type RecommendedTalent, type RecommendedTalentListQuery, type RedirectResolution, type RefreshBody, type RegisterBody, RemoteOption, type RemotePermitTaxonomyEntry, type ReorderPipelineStagesBody, type ReplaceProfileObjectReferencesBody, type ReplyBody, type ReportBody, type RequestEmailChangeBody, type RequestMagicLinkBody, type ResetPasswordBody, type Resume, type ResumeUploadOptions, SDK_VERSION, SIGN_IN_REDIRECT_ERROR_CODES, SSO_LINK_PROOF_BINDING_TTL_MS, SalaryDetailQuery, type SalesLedPlan, type SalesLedPlanListEnvelope, type SaveJobBody, type SavedJob, type SavedJobsListQuery, SearchEnvelope, SearchSuggestQuery, type SendWorkEmailBody, Seniority, type SignInRedirectErrorCode, type SignInRole, type SitemapEntriesEnvelope, type SitemapEntriesQuery, type SitemapEntry, type SourcedCandidate, type SsoAuthorizationQuery, type SsoAuthorizationUrl, type SsoLinkProofBindingStore, type SsoLinkProofBody, type StartAboutApplicationBody, type StartConversationBody, StorageMode, type TalentAccess, type TalentAccessCheckoutBody, type TalentAccessCheckoutSession, type TalentAccessCheckoutSessionState, type TalentAccessClaim, type TalentAccessClaimBody, type TalentAccessUpgrade, type TalentAccessUpgradeBody, type TalentCandidateAccess, type TalentDirectoryEntry, type TalentDirectoryListEnvelope, type TalentDirectoryQuery, type TalentList, type TalentListFilters, type TalentListMember, type TalentListMembersListEnvelope, type TalentListMembersQuery, type TalentListMembership, type TalentPlace, type TalentPlacesListEnvelope, type TalentPlacesQuery, type TalentProfile, type TalentUnlock, type TalentUnlockBody, type TaxonomyGeo, type TaxonomyListQuery, type TaxonomyResolution, type ThreadMessagesQuery, type UnreadCount, type UnsubscribeBody, type UpdateApplicationFactsBody, type UpdateCandidateProfileBody, type UpdateCompanyMemberRoleBody, type UpdateEducationBody, type UpdateEmployerCompanyBody, type UpdateEmployerJobBody, type UpdateExperienceBody, type UpdateLanguagesBody, type UpdateNotificationPreferenceBody, type UpdatePasswordBody, type UpdatePipelineStageBody, type UpdateProfileFieldValuesBody, type UpdateSkillsBody, type UpdateTalentListBody, type VerifyEmailBody, createBoardClient, isBoardApiError, isBoardPasswordRequired, isColdRule, isConflict, isForbidden, isFreeEmailWebsiteError, isNotFound, isOwnMessage, isRateLimited, isSafeApplicationUrl, isSignInMethodUnavailable, isSsoBrowserMismatch, isSsoRequired, isUnauthorized, isValidationError, lastOwnMessageId, paginate, parseOAuthCompletion, resolveApplyAction, resolveApplyDecision, ssoLinkProofBindingStore };
|
package/dist/index.js
CHANGED
|
@@ -405,7 +405,7 @@ async function clearSession(storage) {
|
|
|
405
405
|
}
|
|
406
406
|
|
|
407
407
|
// src/version.ts
|
|
408
|
-
var SDK_VERSION = "4.
|
|
408
|
+
var SDK_VERSION = "4.45.0";
|
|
409
409
|
|
|
410
410
|
// src/client.ts
|
|
411
411
|
function isRawBody(body) {
|
|
@@ -3885,6 +3885,30 @@ function talentNamespace(client) {
|
|
|
3885
3885
|
`/talent/${encodeURIComponent(handle)}`,
|
|
3886
3886
|
options
|
|
3887
3887
|
);
|
|
3888
|
+
},
|
|
3889
|
+
places: {
|
|
3890
|
+
/**
|
|
3891
|
+
* List the places the board's directory candidates live in, busiest
|
|
3892
|
+
* first, each with how many candidates the caller can see there (a
|
|
3893
|
+
* country counts every candidate in its cities). Anonymous callers get
|
|
3894
|
+
* counts of `public` profiles; a signed-in board user also counts
|
|
3895
|
+
* `logged_in_only` ones. Pass a place's `slug` as `talent.list`'s
|
|
3896
|
+
* `place` filter. With `q`, returns location search matches instead,
|
|
3897
|
+
* ranked as `taxonomy.places.list` ranks them.
|
|
3898
|
+
*
|
|
3899
|
+
* Same access errors as `talent.list`. Returns an empty list until the
|
|
3900
|
+
* board's place counts are built.
|
|
3901
|
+
*
|
|
3902
|
+
* @example
|
|
3903
|
+
* const { data: places } = await board.talent.places.list({ limit: 50 });
|
|
3904
|
+
* const { data: matches } = await board.talent.places.list({ q: 'lon' });
|
|
3905
|
+
*/
|
|
3906
|
+
list(query, options) {
|
|
3907
|
+
return client.fetch("/talent/places", {
|
|
3908
|
+
...options,
|
|
3909
|
+
query
|
|
3910
|
+
});
|
|
3911
|
+
}
|
|
3888
3912
|
}
|
|
3889
3913
|
};
|
|
3890
3914
|
}
|
package/dist/index.mjs
CHANGED
|
@@ -46,7 +46,7 @@ function toSearchParams(query) {
|
|
|
46
46
|
}
|
|
47
47
|
|
|
48
48
|
// src/version.ts
|
|
49
|
-
var SDK_VERSION = "4.
|
|
49
|
+
var SDK_VERSION = "4.45.0";
|
|
50
50
|
|
|
51
51
|
// src/client.ts
|
|
52
52
|
function isRawBody(body) {
|
|
@@ -3526,6 +3526,30 @@ function talentNamespace(client) {
|
|
|
3526
3526
|
`/talent/${encodeURIComponent(handle)}`,
|
|
3527
3527
|
options
|
|
3528
3528
|
);
|
|
3529
|
+
},
|
|
3530
|
+
places: {
|
|
3531
|
+
/**
|
|
3532
|
+
* List the places the board's directory candidates live in, busiest
|
|
3533
|
+
* first, each with how many candidates the caller can see there (a
|
|
3534
|
+
* country counts every candidate in its cities). Anonymous callers get
|
|
3535
|
+
* counts of `public` profiles; a signed-in board user also counts
|
|
3536
|
+
* `logged_in_only` ones. Pass a place's `slug` as `talent.list`'s
|
|
3537
|
+
* `place` filter. With `q`, returns location search matches instead,
|
|
3538
|
+
* ranked as `taxonomy.places.list` ranks them.
|
|
3539
|
+
*
|
|
3540
|
+
* Same access errors as `talent.list`. Returns an empty list until the
|
|
3541
|
+
* board's place counts are built.
|
|
3542
|
+
*
|
|
3543
|
+
* @example
|
|
3544
|
+
* const { data: places } = await board.talent.places.list({ limit: 50 });
|
|
3545
|
+
* const { data: matches } = await board.talent.places.list({ q: 'lon' });
|
|
3546
|
+
*/
|
|
3547
|
+
list(query, options) {
|
|
3548
|
+
return client.fetch("/talent/places", {
|
|
3549
|
+
...options,
|
|
3550
|
+
query
|
|
3551
|
+
});
|
|
3552
|
+
}
|
|
3529
3553
|
}
|
|
3530
3554
|
};
|
|
3531
3555
|
}
|
package/dist/seo-files.d.mts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { B as BoardSeo } from './seo-
|
|
2
|
-
import './_spec-
|
|
1
|
+
import { B as BoardSeo } from './seo-C3WmgifR.mjs';
|
|
2
|
+
import './_spec-CdNZDaaR.mjs';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* `@cavuno/board/seo-files` — platform-owned crawler/identity file bodies
|
|
@@ -18,13 +18,35 @@ declare const INDEXNOW_CACHE_CONTROL = "public, max-age=86400, must-revalidate";
|
|
|
18
18
|
type SeoFileResponseInit = {
|
|
19
19
|
method?: string;
|
|
20
20
|
};
|
|
21
|
+
/**
|
|
22
|
+
* The board's own listing roots, for boards that rename or localize their
|
|
23
|
+
* URL words (for example `/vacatures` in place of `/jobs`). Each root scopes
|
|
24
|
+
* one group of pagination `Disallow` rules. A missing, root (`/`) or unsafe
|
|
25
|
+
* value keeps the default English root for that group.
|
|
26
|
+
*/
|
|
27
|
+
type RobotsListingPaths = {
|
|
28
|
+
jobs?: string | null;
|
|
29
|
+
companies?: string | null;
|
|
30
|
+
talent?: string | null;
|
|
31
|
+
};
|
|
21
32
|
/** Lines of the hosted robots body (no sitemap line). Exported so tests and hosted can share the literal. */
|
|
22
33
|
declare function robotsBody(input: {
|
|
23
34
|
canonicalBase: string;
|
|
24
35
|
sandbox?: boolean;
|
|
36
|
+
listingPaths?: RobotsListingPaths | null;
|
|
37
|
+
/**
|
|
38
|
+
* Listing roots of the board's secondary languages, served under a
|
|
39
|
+
* language prefix with that language's own URL words (for example
|
|
40
|
+
* `/de/stellen`). Each safe root adds one group of pagination rules after
|
|
41
|
+
* the base ones, in order. A missing, root or unsafe value adds nothing,
|
|
42
|
+
* and a root already listed is not repeated.
|
|
43
|
+
*/
|
|
44
|
+
localeListingPaths?: readonly RobotsListingPaths[] | null;
|
|
25
45
|
}): string;
|
|
26
46
|
declare function robotsResponse(seo: Pick<BoardSeo, 'canonicalBase'> & {
|
|
27
47
|
sandbox?: boolean;
|
|
48
|
+
listingPaths?: RobotsListingPaths | null;
|
|
49
|
+
localeListingPaths?: readonly RobotsListingPaths[] | null;
|
|
28
50
|
}, init?: SeoFileResponseInit): Response;
|
|
29
51
|
declare function adsTxtResponse(seo: Pick<BoardSeo, 'adsTxt'>, init?: SeoFileResponseInit): Response;
|
|
30
52
|
declare function indexNowResponse(seo: Pick<BoardSeo, 'indexNowKey'>, init?: SeoFileResponseInit): Response;
|
|
@@ -33,4 +55,4 @@ declare function googleSiteVerificationMeta(token: string | null | undefined): {
|
|
|
33
55
|
content: string;
|
|
34
56
|
} | null;
|
|
35
57
|
|
|
36
|
-
export { ADS_TXT_CACHE_CONTROL, INDEXNOW_CACHE_CONTROL, ROBOTS_CACHE_CONTROL, SEO_FILE_CONTENT_TYPE, type SeoFileResponseInit, adsTxtResponse, googleSiteVerificationMeta, indexNowResponse, robotsBody, robotsResponse };
|
|
58
|
+
export { ADS_TXT_CACHE_CONTROL, INDEXNOW_CACHE_CONTROL, ROBOTS_CACHE_CONTROL, type RobotsListingPaths, SEO_FILE_CONTENT_TYPE, type SeoFileResponseInit, adsTxtResponse, googleSiteVerificationMeta, indexNowResponse, robotsBody, robotsResponse };
|
package/dist/seo-files.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { B as BoardSeo } from './seo-
|
|
2
|
-
import './_spec-
|
|
1
|
+
import { B as BoardSeo } from './seo-CYmVKHsu.js';
|
|
2
|
+
import './_spec-CdNZDaaR.js';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* `@cavuno/board/seo-files` — platform-owned crawler/identity file bodies
|
|
@@ -18,13 +18,35 @@ declare const INDEXNOW_CACHE_CONTROL = "public, max-age=86400, must-revalidate";
|
|
|
18
18
|
type SeoFileResponseInit = {
|
|
19
19
|
method?: string;
|
|
20
20
|
};
|
|
21
|
+
/**
|
|
22
|
+
* The board's own listing roots, for boards that rename or localize their
|
|
23
|
+
* URL words (for example `/vacatures` in place of `/jobs`). Each root scopes
|
|
24
|
+
* one group of pagination `Disallow` rules. A missing, root (`/`) or unsafe
|
|
25
|
+
* value keeps the default English root for that group.
|
|
26
|
+
*/
|
|
27
|
+
type RobotsListingPaths = {
|
|
28
|
+
jobs?: string | null;
|
|
29
|
+
companies?: string | null;
|
|
30
|
+
talent?: string | null;
|
|
31
|
+
};
|
|
21
32
|
/** Lines of the hosted robots body (no sitemap line). Exported so tests and hosted can share the literal. */
|
|
22
33
|
declare function robotsBody(input: {
|
|
23
34
|
canonicalBase: string;
|
|
24
35
|
sandbox?: boolean;
|
|
36
|
+
listingPaths?: RobotsListingPaths | null;
|
|
37
|
+
/**
|
|
38
|
+
* Listing roots of the board's secondary languages, served under a
|
|
39
|
+
* language prefix with that language's own URL words (for example
|
|
40
|
+
* `/de/stellen`). Each safe root adds one group of pagination rules after
|
|
41
|
+
* the base ones, in order. A missing, root or unsafe value adds nothing,
|
|
42
|
+
* and a root already listed is not repeated.
|
|
43
|
+
*/
|
|
44
|
+
localeListingPaths?: readonly RobotsListingPaths[] | null;
|
|
25
45
|
}): string;
|
|
26
46
|
declare function robotsResponse(seo: Pick<BoardSeo, 'canonicalBase'> & {
|
|
27
47
|
sandbox?: boolean;
|
|
48
|
+
listingPaths?: RobotsListingPaths | null;
|
|
49
|
+
localeListingPaths?: readonly RobotsListingPaths[] | null;
|
|
28
50
|
}, init?: SeoFileResponseInit): Response;
|
|
29
51
|
declare function adsTxtResponse(seo: Pick<BoardSeo, 'adsTxt'>, init?: SeoFileResponseInit): Response;
|
|
30
52
|
declare function indexNowResponse(seo: Pick<BoardSeo, 'indexNowKey'>, init?: SeoFileResponseInit): Response;
|
|
@@ -33,4 +55,4 @@ declare function googleSiteVerificationMeta(token: string | null | undefined): {
|
|
|
33
55
|
content: string;
|
|
34
56
|
} | null;
|
|
35
57
|
|
|
36
|
-
export { ADS_TXT_CACHE_CONTROL, INDEXNOW_CACHE_CONTROL, ROBOTS_CACHE_CONTROL, SEO_FILE_CONTENT_TYPE, type SeoFileResponseInit, adsTxtResponse, googleSiteVerificationMeta, indexNowResponse, robotsBody, robotsResponse };
|
|
58
|
+
export { ADS_TXT_CACHE_CONTROL, INDEXNOW_CACHE_CONTROL, ROBOTS_CACHE_CONTROL, type RobotsListingPaths, SEO_FILE_CONTENT_TYPE, type SeoFileResponseInit, adsTxtResponse, googleSiteVerificationMeta, indexNowResponse, robotsBody, robotsResponse };
|
package/dist/seo-files.js
CHANGED
|
@@ -35,25 +35,54 @@ var SEO_FILE_CONTENT_TYPE = "text/plain; charset=utf-8";
|
|
|
35
35
|
var ROBOTS_CACHE_CONTROL = "public, max-age=600, s-maxage=14400, stale-while-revalidate=86400";
|
|
36
36
|
var ADS_TXT_CACHE_CONTROL = "public, max-age=3600, must-revalidate";
|
|
37
37
|
var INDEXNOW_CACHE_CONTROL = "public, max-age=86400, must-revalidate";
|
|
38
|
+
var DEFAULT_LISTING_PATHS = {
|
|
39
|
+
jobs: "/jobs",
|
|
40
|
+
companies: "/companies",
|
|
41
|
+
talent: "/talent"
|
|
42
|
+
};
|
|
43
|
+
var SAFE_LISTING_ROOT = /^(?:\/[^\s/*$?#]+)+$/;
|
|
44
|
+
function safeListingRoot(value) {
|
|
45
|
+
if (typeof value !== "string") return null;
|
|
46
|
+
const root = value.replace(/\/+$/, "");
|
|
47
|
+
return SAFE_LISTING_ROOT.test(root) ? root : null;
|
|
48
|
+
}
|
|
49
|
+
function listingRoot(value, fallback) {
|
|
50
|
+
return safeListingRoot(value) ?? fallback;
|
|
51
|
+
}
|
|
52
|
+
var LISTING_GROUPS = ["jobs", "companies", "talent"];
|
|
53
|
+
function paginationRules(root) {
|
|
54
|
+
return [
|
|
55
|
+
`Disallow: ${root}?page=`,
|
|
56
|
+
`Disallow: ${root}*&page=`,
|
|
57
|
+
`Disallow: ${root}/*?page=`
|
|
58
|
+
];
|
|
59
|
+
}
|
|
38
60
|
function robotsBody(input) {
|
|
39
61
|
if (input.sandbox) {
|
|
40
62
|
return ["User-Agent: *", "Disallow: /", ""].join("\n");
|
|
41
63
|
}
|
|
42
64
|
const canonicalBase = input.canonicalBase.replace(/\/+$/, "");
|
|
65
|
+
const paths = input.listingPaths ?? {};
|
|
66
|
+
const baseRoots = LISTING_GROUPS.map(
|
|
67
|
+
(group) => listingRoot(paths[group], DEFAULT_LISTING_PATHS[group])
|
|
68
|
+
);
|
|
69
|
+
const seen = new Set(baseRoots);
|
|
70
|
+
const localeRoots = [];
|
|
71
|
+
for (const locale of input.localeListingPaths ?? []) {
|
|
72
|
+
for (const group of LISTING_GROUPS) {
|
|
73
|
+
const root = safeListingRoot(locale[group]);
|
|
74
|
+
if (root === null || seen.has(root)) continue;
|
|
75
|
+
seen.add(root);
|
|
76
|
+
localeRoots.push(root);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
43
79
|
return [
|
|
44
80
|
"User-Agent: *",
|
|
45
81
|
"Allow: /",
|
|
46
82
|
"Disallow: /go/",
|
|
47
83
|
"Disallow: /t/",
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
"Disallow: /jobs/*?page=",
|
|
51
|
-
"Disallow: /companies?page=",
|
|
52
|
-
"Disallow: /companies*&page=",
|
|
53
|
-
"Disallow: /companies/*?page=",
|
|
54
|
-
"Disallow: /talent?page=",
|
|
55
|
-
"Disallow: /talent*&page=",
|
|
56
|
-
"Disallow: /talent/*?page=",
|
|
84
|
+
...baseRoots.flatMap(paginationRules),
|
|
85
|
+
...localeRoots.flatMap(paginationRules),
|
|
57
86
|
"",
|
|
58
87
|
`Sitemap: ${canonicalBase}/sitemap.xml`,
|
|
59
88
|
""
|
|
@@ -61,7 +90,12 @@ function robotsBody(input) {
|
|
|
61
90
|
}
|
|
62
91
|
function robotsResponse(seo, init) {
|
|
63
92
|
return textFileResponse(
|
|
64
|
-
robotsBody({
|
|
93
|
+
robotsBody({
|
|
94
|
+
canonicalBase: seo.canonicalBase,
|
|
95
|
+
sandbox: seo.sandbox,
|
|
96
|
+
listingPaths: seo.listingPaths,
|
|
97
|
+
localeListingPaths: seo.localeListingPaths
|
|
98
|
+
}),
|
|
65
99
|
ROBOTS_CACHE_CONTROL,
|
|
66
100
|
init
|
|
67
101
|
);
|
package/dist/seo-files.mjs
CHANGED
|
@@ -3,25 +3,54 @@ var SEO_FILE_CONTENT_TYPE = "text/plain; charset=utf-8";
|
|
|
3
3
|
var ROBOTS_CACHE_CONTROL = "public, max-age=600, s-maxage=14400, stale-while-revalidate=86400";
|
|
4
4
|
var ADS_TXT_CACHE_CONTROL = "public, max-age=3600, must-revalidate";
|
|
5
5
|
var INDEXNOW_CACHE_CONTROL = "public, max-age=86400, must-revalidate";
|
|
6
|
+
var DEFAULT_LISTING_PATHS = {
|
|
7
|
+
jobs: "/jobs",
|
|
8
|
+
companies: "/companies",
|
|
9
|
+
talent: "/talent"
|
|
10
|
+
};
|
|
11
|
+
var SAFE_LISTING_ROOT = /^(?:\/[^\s/*$?#]+)+$/;
|
|
12
|
+
function safeListingRoot(value) {
|
|
13
|
+
if (typeof value !== "string") return null;
|
|
14
|
+
const root = value.replace(/\/+$/, "");
|
|
15
|
+
return SAFE_LISTING_ROOT.test(root) ? root : null;
|
|
16
|
+
}
|
|
17
|
+
function listingRoot(value, fallback) {
|
|
18
|
+
return safeListingRoot(value) ?? fallback;
|
|
19
|
+
}
|
|
20
|
+
var LISTING_GROUPS = ["jobs", "companies", "talent"];
|
|
21
|
+
function paginationRules(root) {
|
|
22
|
+
return [
|
|
23
|
+
`Disallow: ${root}?page=`,
|
|
24
|
+
`Disallow: ${root}*&page=`,
|
|
25
|
+
`Disallow: ${root}/*?page=`
|
|
26
|
+
];
|
|
27
|
+
}
|
|
6
28
|
function robotsBody(input) {
|
|
7
29
|
if (input.sandbox) {
|
|
8
30
|
return ["User-Agent: *", "Disallow: /", ""].join("\n");
|
|
9
31
|
}
|
|
10
32
|
const canonicalBase = input.canonicalBase.replace(/\/+$/, "");
|
|
33
|
+
const paths = input.listingPaths ?? {};
|
|
34
|
+
const baseRoots = LISTING_GROUPS.map(
|
|
35
|
+
(group) => listingRoot(paths[group], DEFAULT_LISTING_PATHS[group])
|
|
36
|
+
);
|
|
37
|
+
const seen = new Set(baseRoots);
|
|
38
|
+
const localeRoots = [];
|
|
39
|
+
for (const locale of input.localeListingPaths ?? []) {
|
|
40
|
+
for (const group of LISTING_GROUPS) {
|
|
41
|
+
const root = safeListingRoot(locale[group]);
|
|
42
|
+
if (root === null || seen.has(root)) continue;
|
|
43
|
+
seen.add(root);
|
|
44
|
+
localeRoots.push(root);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
11
47
|
return [
|
|
12
48
|
"User-Agent: *",
|
|
13
49
|
"Allow: /",
|
|
14
50
|
"Disallow: /go/",
|
|
15
51
|
"Disallow: /t/",
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
"Disallow: /jobs/*?page=",
|
|
19
|
-
"Disallow: /companies?page=",
|
|
20
|
-
"Disallow: /companies*&page=",
|
|
21
|
-
"Disallow: /companies/*?page=",
|
|
22
|
-
"Disallow: /talent?page=",
|
|
23
|
-
"Disallow: /talent*&page=",
|
|
24
|
-
"Disallow: /talent/*?page=",
|
|
52
|
+
...baseRoots.flatMap(paginationRules),
|
|
53
|
+
...localeRoots.flatMap(paginationRules),
|
|
25
54
|
"",
|
|
26
55
|
`Sitemap: ${canonicalBase}/sitemap.xml`,
|
|
27
56
|
""
|
|
@@ -29,7 +58,12 @@ function robotsBody(input) {
|
|
|
29
58
|
}
|
|
30
59
|
function robotsResponse(seo, init) {
|
|
31
60
|
return textFileResponse(
|
|
32
|
-
robotsBody({
|
|
61
|
+
robotsBody({
|
|
62
|
+
canonicalBase: seo.canonicalBase,
|
|
63
|
+
sandbox: seo.sandbox,
|
|
64
|
+
listingPaths: seo.listingPaths,
|
|
65
|
+
localeListingPaths: seo.localeListingPaths
|
|
66
|
+
}),
|
|
33
67
|
ROBOTS_CACHE_CONTROL,
|
|
34
68
|
init
|
|
35
69
|
);
|
package/dist/seo.d.mts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { P as PublicBlogPostSummary, B as BlogAuthorEmbed } from './blog-
|
|
2
|
-
import { e as JsonLdObject } from './breadcrumbs-
|
|
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-
|
|
4
|
-
import './_spec-
|
|
5
|
-
import './board-
|
|
6
|
-
import './jobs-
|
|
1
|
+
import { P as PublicBlogPostSummary, B as BlogAuthorEmbed } from './blog-uV51b4Cg.mjs';
|
|
2
|
+
import { e as JsonLdObject } from './breadcrumbs-BY1UMCbL.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-BY1UMCbL.mjs';
|
|
4
|
+
import './_spec-CdNZDaaR.mjs';
|
|
5
|
+
import './board-CJw-MJpf.mjs';
|
|
6
|
+
import './jobs-D9ERWWda.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-
|
|
2
|
-
import { e as JsonLdObject } from './breadcrumbs-
|
|
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-
|
|
4
|
-
import './_spec-
|
|
5
|
-
import './board-
|
|
6
|
-
import './jobs-
|
|
1
|
+
import { P as PublicBlogPostSummary, B as BlogAuthorEmbed } from './blog-ZvLJ6w1Q.js';
|
|
2
|
+
import { e as JsonLdObject } from './breadcrumbs-CXvdv6Ry.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-CXvdv6Ry.js';
|
|
4
|
+
import './_spec-CdNZDaaR.js';
|
|
5
|
+
import './board-3JU14eF3.js';
|
|
6
|
+
import './jobs-C7UvN_dW.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-
|
|
3
|
-
import './search-
|
|
4
|
-
import './jobs-
|
|
5
|
-
import './board-
|
|
6
|
-
import './seo-
|
|
7
|
-
import './blog-
|
|
2
|
+
import './_spec-CdNZDaaR.mjs';
|
|
3
|
+
import './search-BMSNK85o.mjs';
|
|
4
|
+
import './jobs-D9ERWWda.mjs';
|
|
5
|
+
import './board-CJw-MJpf.mjs';
|
|
6
|
+
import './seo-C3WmgifR.mjs';
|
|
7
|
+
import './blog-uV51b4Cg.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-
|
|
3
|
-
import './search-
|
|
4
|
-
import './jobs-
|
|
5
|
-
import './board-
|
|
6
|
-
import './seo-
|
|
7
|
-
import './blog-
|
|
2
|
+
import './_spec-CdNZDaaR.js';
|
|
3
|
+
import './search-D0TFnn1x.js';
|
|
4
|
+
import './jobs-C7UvN_dW.js';
|
|
5
|
+
import './board-3JU14eF3.js';
|
|
6
|
+
import './seo-CYmVKHsu.js';
|
|
7
|
+
import './blog-ZvLJ6w1Q.js';
|
|
8
8
|
|
|
9
9
|
/**
|
|
10
10
|
* Session cookie codec — pure (no framework imports, no node imports) so it
|
package/dist/sitemap.d.mts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { BoardSdk } from './index.mjs';
|
|
2
|
-
import './_spec-
|
|
3
|
-
import './search-
|
|
4
|
-
import './jobs-
|
|
5
|
-
import './board-
|
|
6
|
-
import './seo-
|
|
7
|
-
import './blog-
|
|
2
|
+
import './_spec-CdNZDaaR.mjs';
|
|
3
|
+
import './search-BMSNK85o.mjs';
|
|
4
|
+
import './jobs-D9ERWWda.mjs';
|
|
5
|
+
import './board-CJw-MJpf.mjs';
|
|
6
|
+
import './seo-C3WmgifR.mjs';
|
|
7
|
+
import './blog-uV51b4Cg.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-
|
|
3
|
-
import './search-
|
|
4
|
-
import './jobs-
|
|
5
|
-
import './board-
|
|
6
|
-
import './seo-
|
|
7
|
-
import './blog-
|
|
2
|
+
import './_spec-CdNZDaaR.js';
|
|
3
|
+
import './search-D0TFnn1x.js';
|
|
4
|
+
import './jobs-C7UvN_dW.js';
|
|
5
|
+
import './board-3JU14eF3.js';
|
|
6
|
+
import './seo-CYmVKHsu.js';
|
|
7
|
+
import './blog-ZvLJ6w1Q.js';
|
|
8
8
|
|
|
9
9
|
/**
|
|
10
10
|
* Sitemap primitives — the pure XML + bucket-filename logic behind a board
|
package/dist/suggest.d.mts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { h as SuggestionItem, b as SearchSuggestQuery, F as FetchOptions, g as SuggestResult } from './search-
|
|
2
|
-
import './_spec-
|
|
1
|
+
import { h as SuggestionItem, b as SearchSuggestQuery, F as FetchOptions, g as SuggestResult } from './search-BMSNK85o.mjs';
|
|
2
|
+
import './_spec-CdNZDaaR.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-
|
|
2
|
-
import './_spec-
|
|
1
|
+
import { h as SuggestionItem, b as SearchSuggestQuery, F as FetchOptions, g as SuggestResult } from './search-D0TFnn1x.js';
|
|
2
|
+
import './_spec-CdNZDaaR.js';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* `@cavuno/board/suggest` — framework-agnostic headless search-suggest
|
package/package.json
CHANGED
|
@@ -150,6 +150,19 @@ const { items } = await board.search.suggest({
|
|
|
150
150
|
The host router owns URL serialization and saved-filter persistence.
|
|
151
151
|
Locations come from `board.taxonomy.places` rather than a static filter export.
|
|
152
152
|
|
|
153
|
+
A talent directory's location filter lists the places where the board's
|
|
154
|
+
candidates live instead, from `board.talent.places.list()`, with the count the
|
|
155
|
+
viewer can see. Pass `q` to search it for a location box (same matching as
|
|
156
|
+
`board.taxonomy.places.list`'s `q`). Pass the chosen `slug` as the directory's
|
|
157
|
+
`place`:
|
|
158
|
+
|
|
159
|
+
```ts snippet
|
|
160
|
+
const { data: talentPlaces } = await board.talent.places.list({ limit: 50 });
|
|
161
|
+
const nearby = await board.talent.list({ place: talentPlaces[0]?.slug ?? undefined });
|
|
162
|
+
|
|
163
|
+
void nearby.data;
|
|
164
|
+
```
|
|
165
|
+
|
|
153
166
|
## Filter jobs by a job custom field
|
|
154
167
|
|
|
155
168
|
The operator's job custom fields arrive as definitions on
|