@cavuno/board 1.40.0 → 1.42.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/dist/{_spec-DRbgPIlN.d.mts → _spec-LdkTxfx0.d.mts} +55 -0
- package/dist/{_spec-DRbgPIlN.d.ts → _spec-LdkTxfx0.d.ts} +55 -0
- package/dist/{board-DCiNpgFf.d.mts → board-Cs93Lf23.d.mts} +1 -1
- package/dist/{board-BxPUtrOl.d.ts → board-FxC9Wdhi.d.ts} +1 -1
- package/dist/filters.d.mts +2 -2
- package/dist/filters.d.ts +2 -2
- package/dist/format.d.mts +3 -3
- package/dist/format.d.ts +3 -3
- package/dist/go.d.mts +65 -0
- package/dist/go.d.ts +65 -0
- package/dist/go.js +130 -0
- package/dist/go.mjs +107 -0
- package/dist/index.d.mts +44 -10
- package/dist/index.d.ts +44 -10
- package/dist/index.js +42 -1
- package/dist/index.mjs +42 -1
- package/dist/{jobs-DhePKSRe.d.mts → jobs-BtazrWfv.d.mts} +1 -1
- package/dist/{jobs-DAGAVHQL.d.ts → jobs-TIAPH3Ol.d.ts} +1 -1
- package/dist/paths.d.mts +25 -1
- package/dist/paths.d.ts +25 -1
- package/dist/paths.js +20 -1
- package/dist/paths.mjs +20 -1
- package/dist/roles-vY0AXhoc.d.mts +82 -0
- package/dist/roles-vY0AXhoc.d.ts +82 -0
- package/dist/route-contract.d.mts +257 -0
- package/dist/route-contract.d.ts +257 -0
- package/dist/route-contract.js +1131 -0
- package/dist/route-contract.mjs +1108 -0
- package/dist/{salaries-cqb78kg0.d.ts → salaries-BEAqkaFt.d.ts} +2 -2
- package/dist/{salaries-D6SUVMmt.d.mts → salaries-CB9Ve4kS.d.mts} +2 -2
- package/dist/{search-BalPAS0P.d.ts → search-DWmHHXn8.d.ts} +1 -1
- package/dist/{search-DYUQzCq_.d.mts → search-YhoVpXFY.d.mts} +1 -1
- package/dist/seo.d.mts +4 -4
- package/dist/seo.d.ts +4 -4
- package/dist/server.d.mts +5 -5
- package/dist/server.d.ts +5 -5
- package/dist/sitemap.d.mts +5 -5
- package/dist/sitemap.d.ts +5 -5
- package/dist/sitemap.js +8 -1
- package/dist/sitemap.mjs +8 -1
- package/dist/suggest.d.mts +2 -2
- package/dist/suggest.d.ts +2 -2
- package/dist/well-known.d.mts +113 -0
- package/dist/well-known.d.ts +113 -0
- package/dist/well-known.js +561 -0
- package/dist/well-known.mjs +538 -0
- package/package.json +31 -1
- package/skills/manifest.json +1 -1
package/dist/index.d.mts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { S as Schemas, c as components } from './_spec-
|
|
2
|
-
import { F as FetchOptions, c as StorageMode, B as BoardRequest, A as Awaitable, L as Logger, d as BoardClient, a as SearchSuggestQuery } from './search-
|
|
3
|
-
export { e as ACCESS_TOKEN_KEY, f as BOARD_ACCESS_GRANT_KEY, C as CompanySuggestion, g as CustomStorage, R as REFRESH_TOKEN_KEY, b as SuggestResult, S as SuggestionItem, T as TermSuggestion } from './search-
|
|
4
|
-
export { C as CustomFieldDefinition, a as CustomFieldOption, b as CustomFieldType, P as PublicBoard, c as PublicBoardAnalytics, d as PublicBoardFeatures, e as PublicBoardTheme } from './board-
|
|
5
|
-
import { R as RemoteOption, E as EmploymentType, S as Seniority, L as ListEnvelope, b as JobsListQuery, c as JobCardListEnvelope, d as JobsSearchBody, e as JobCardSearchEnvelope, f as JobsSimilarQuery, g as SearchEnvelope } from './jobs-
|
|
6
|
-
export { h as CustomFieldValue, C as CustomFieldValues, i as EducationRequirement, j as JobCatalogPagination, k as JobCompany, J as JobSort, O as OfficeLocation, l as OffsetPagination, P as PublicJob, a as PublicJobCard, m as RelatedSearch, n as RemotePermit, o as RemoteTimezone, p as StorefrontPagination } from './jobs-
|
|
7
|
-
import { b as CompaniesListQuery, c as CompanyListEnvelope, d as CompaniesSearchBody, e as CompanyJobsListQuery, f as CompanySimilarQuery, g as CompanyMarketsListQuery, h as SalaryDetailQuery, i as BlogPostsListQuery, j as BlogSimilarQuery, k as BlogSearchBody } from './salaries-
|
|
8
|
-
export { B as BlogAuthorEmbed, l as BlogTagEmbed, C as CompanyCategorySalary, m as CompanyMarket, n as CompanyMarketRef, a as CompanySalary, L as LocationSalaryDetail, o as LocationSkillsIndex, p as LocationTitlesIndex, q as PublicBlogAdjacentPosts, r as PublicBlogAuthor, s as PublicBlogPost, P as PublicBlogPostSummary, t as PublicBlogTag, u as PublicCompany, v as PublicCompanyDetail, w as SalaryCompany, x as SalaryLocation, y as SalarySkill, z as SalaryTitle, A as SkillLocationSalary, D as SkillLocationsIndex, S as SkillSalaryDetail, E as TitleLocationSalary, F as TitleLocationsIndex, T as TitleSalaryDetail } from './salaries-
|
|
1
|
+
import { S as Schemas, c as components } from './_spec-LdkTxfx0.mjs';
|
|
2
|
+
import { F as FetchOptions, c as StorageMode, B as BoardRequest, A as Awaitable, L as Logger, d as BoardClient, a as SearchSuggestQuery } from './search-YhoVpXFY.mjs';
|
|
3
|
+
export { e as ACCESS_TOKEN_KEY, f as BOARD_ACCESS_GRANT_KEY, C as CompanySuggestion, g as CustomStorage, R as REFRESH_TOKEN_KEY, b as SuggestResult, S as SuggestionItem, T as TermSuggestion } from './search-YhoVpXFY.mjs';
|
|
4
|
+
export { C as CustomFieldDefinition, a as CustomFieldOption, b as CustomFieldType, P as PublicBoard, c as PublicBoardAnalytics, d as PublicBoardFeatures, e as PublicBoardTheme } from './board-Cs93Lf23.mjs';
|
|
5
|
+
import { R as RemoteOption, E as EmploymentType, S as Seniority, L as ListEnvelope, b as JobsListQuery, c as JobCardListEnvelope, d as JobsSearchBody, e as JobCardSearchEnvelope, f as JobsSimilarQuery, g as SearchEnvelope } from './jobs-BtazrWfv.mjs';
|
|
6
|
+
export { h as CustomFieldValue, C as CustomFieldValues, i as EducationRequirement, j as JobCatalogPagination, k as JobCompany, J as JobSort, O as OfficeLocation, l as OffsetPagination, P as PublicJob, a as PublicJobCard, m as RelatedSearch, n as RemotePermit, o as RemoteTimezone, p as StorefrontPagination } from './jobs-BtazrWfv.mjs';
|
|
7
|
+
import { b as CompaniesListQuery, c as CompanyListEnvelope, d as CompaniesSearchBody, e as CompanyJobsListQuery, f as CompanySimilarQuery, g as CompanyMarketsListQuery, h as SalaryDetailQuery, i as BlogPostsListQuery, j as BlogSimilarQuery, k as BlogSearchBody } from './salaries-CB9Ve4kS.mjs';
|
|
8
|
+
export { B as BlogAuthorEmbed, l as BlogTagEmbed, C as CompanyCategorySalary, m as CompanyMarket, n as CompanyMarketRef, a as CompanySalary, L as LocationSalaryDetail, o as LocationSkillsIndex, p as LocationTitlesIndex, q as PublicBlogAdjacentPosts, r as PublicBlogAuthor, s as PublicBlogPost, P as PublicBlogPostSummary, t as PublicBlogTag, u as PublicCompany, v as PublicCompanyDetail, w as SalaryCompany, x as SalaryLocation, y as SalarySkill, z as SalaryTitle, A as SkillLocationSalary, D as SkillLocationsIndex, S as SkillSalaryDetail, E as TitleLocationSalary, F as TitleLocationsIndex, T as TitleSalaryDetail } from './salaries-CB9Ve4kS.mjs';
|
|
9
9
|
|
|
10
10
|
/**
|
|
11
11
|
* Well-known `<domain>_<snake_reason>` codes the Board API sends, grouped by
|
|
@@ -141,7 +141,7 @@ declare function paginate<Q extends Record<string, unknown>, P extends PageShape
|
|
|
141
141
|
* constant because the package is platform-neutral and cannot read
|
|
142
142
|
* package.json at runtime.
|
|
143
143
|
*/
|
|
144
|
-
declare const SDK_VERSION = "1.
|
|
144
|
+
declare const SDK_VERSION = "1.42.0";
|
|
145
145
|
|
|
146
146
|
type SavedJob = Schemas['SavedJob'];
|
|
147
147
|
type SavedJobsListQuery = {
|
|
@@ -280,6 +280,25 @@ type EmployerJobsListQuery = {
|
|
|
280
280
|
/** 1–200 (default 200). */
|
|
281
281
|
limit?: number;
|
|
282
282
|
};
|
|
283
|
+
/**
|
|
284
|
+
* One job's reporting funnel from `board.me.companies.jobStats.retrieve`.
|
|
285
|
+
* `views` / `applyClicks` degrade to `0` on a Tinybird outage (the endpoint
|
|
286
|
+
* never fails on analytics), so a `0` is "no activity" OR "analytics briefly
|
|
287
|
+
* unavailable". `applications` is `null` for an external-apply job.
|
|
288
|
+
*/
|
|
289
|
+
type EmployerJobStat = Schemas['EmployerJobStat'];
|
|
290
|
+
/**
|
|
291
|
+
* One daily bucket from `board.me.companies.jobStats.timeseries`, aggregated
|
|
292
|
+
* across the company's jobs. Zero-filled over the window, ascending by date.
|
|
293
|
+
*/
|
|
294
|
+
type EmployerJobStatsPoint = Schemas['EmployerJobStatsPoint'];
|
|
295
|
+
/** Query for `board.me.companies.jobStats.timeseries`. */
|
|
296
|
+
type EmployerJobStatsTimeseriesQuery = {
|
|
297
|
+
/** Inclusive window start (ISO 8601). Defaults to 30 days before `until`. */
|
|
298
|
+
since?: string;
|
|
299
|
+
/** Exclusive window end (ISO 8601). Defaults to now. */
|
|
300
|
+
until?: string;
|
|
301
|
+
};
|
|
283
302
|
/** A job's full applicant pipeline (job header + stage rail + applicants). */
|
|
284
303
|
type EmployerPipeline = Schemas['EmployerPipeline'];
|
|
285
304
|
/** One applicant on a job's pipeline, with its activity timeline. */
|
|
@@ -1856,6 +1875,21 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
|
|
|
1856
1875
|
renewsAt: string | null;
|
|
1857
1876
|
}>>;
|
|
1858
1877
|
};
|
|
1878
|
+
jobStats: {
|
|
1879
|
+
retrieve(slug: string, options?: FetchOptions): Promise<ListEnvelope<{
|
|
1880
|
+
object: "employer_job_stat";
|
|
1881
|
+
jobId: string;
|
|
1882
|
+
views: number;
|
|
1883
|
+
applyClicks: number;
|
|
1884
|
+
applications: number | null;
|
|
1885
|
+
}>>;
|
|
1886
|
+
timeseries(slug: string, query?: EmployerJobStatsTimeseriesQuery, options?: FetchOptions): Promise<ListEnvelope<{
|
|
1887
|
+
object: "employer_job_stats_point";
|
|
1888
|
+
date: string;
|
|
1889
|
+
views: number;
|
|
1890
|
+
applyClicks: number;
|
|
1891
|
+
}>>;
|
|
1892
|
+
};
|
|
1859
1893
|
applicants: {
|
|
1860
1894
|
list(slug: string, query: EmployerPipelineQuery, options?: FetchOptions): Promise<{
|
|
1861
1895
|
object: "employer_pipeline";
|
|
@@ -2968,4 +3002,4 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
|
|
|
2968
3002
|
};
|
|
2969
3003
|
type BoardSdk = ReturnType<typeof createBoardClient>;
|
|
2970
3004
|
|
|
2971
|
-
export { type AccessCheckoutBody, type AccessCheckoutSession, type AccessCheckoutSessionState, type AccessGrant, type AccessPortalBody, type AccessPortalSession, type AddApplicantNoteBody, type Alert, type AlertBody, type Application, type ApplicationsListQuery, type ApplyAction, type ApplyBody, Awaitable, BOARD_API_ERROR_CODES, type Block, type BlockStatus, type BlockUserBody, type BlockedUser, BlogPostsListQuery, BlogSearchBody, BlogSimilarQuery, type BoardAccessGrant, BoardApiError, type BoardApiErrorCode, type BoardAuthSession, BoardClient, BoardRequest, type BoardSdk, type BoardSeo, type BoardUser, type BulkMoveApplicantsBody, type BulkRejectApplicantsBody, type CandidateAvatar, type CandidateEducation, type CandidateExperience, type CandidateLanguage, type CandidateProfile, type CandidateSkill, type ClaimableCompany, CompaniesListQuery, CompaniesSearchBody, CompanyJobsListQuery, CompanyListEnvelope, CompanyMarketsListQuery, type CompanyMembership, CompanySimilarQuery, type ConfirmWorkEmailBody, type ConsumeMagicLinkBody, type Conversation, type ConversationArchive, type ConversationDetail, type ConversationRef, type ConversationsListQuery, type CreateBoardClientOptions, type CreateCompanyBody, type CreateEducationBody, type CreateEmployerJobBody, type CreateExperienceBody, type CreateJobPostingInput, type CreatePipelineStageBody, type EditMessageBody, type EmbedJobsQuery, type EmployerApplicant, type EmployerBillingOption, type EmployerCheckout, type EmployerCheckoutBody, type EmployerCompany, type EmployerCompanySearchQuery, type EmployerJob, type EmployerJobSummary, type EmployerJobsListQuery, type EmployerPipeline, type EmployerPipelineQuery, type EmployerPipelineStage, 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, type JobPostingBillingOptions, type JobPostingBillingVerification, type JobPostingLogoResult, type JobPostingPlan, type JobPostingResult, JobsListQuery, JobsSearchBody, JobsSimilarQuery, type LegalEntity, type LegalPageType, ListEnvelope, Logger, type LoginBody, type LogoutBody, type Message, type ModerationReport, type MoveApplicantStageBody, type NotificationPreference, type OAuthAuthorizationQuery, type OAuthAuthorizationUrl, type OAuthExchangeBody, type OAuthProvider, type Paginator, type PaywallOffer, type PaywallOfferListEnvelope, type PlacesListQuery, type Plan, type PlanListEnvelope, type PlansListQuery, type PublicLegalPage, type PublicPlace, type PublicTaxonomyTerm, type ReadReceipt, type RedirectResolution, type RefreshBody, type RegisterBody, RemoteOption, type RemotePermitTaxonomyEntry, type ReorderPipelineStagesBody, type ReplyBody, type ReportBody, type RequestMagicLinkBody, type ResetPasswordBody, type Resume, type ResumeUploadOptions, SDK_VERSION, SalaryDetailQuery, type SalesLedPlan, type SalesLedPlanListEnvelope, type SaveJobBody, type SavedJob, type SavedJobsListQuery, SearchEnvelope, SearchSuggestQuery, type SendWorkEmailBody, Seniority, type StartAboutApplicationBody, type StartConversationBody, StorageMode, type SuggestionsListQuery, type TalentAccess, type TalentDirectoryEntry, type TalentDirectoryListEnvelope, type TalentDirectoryQuery, type TalentProfile, type TaxonomyGeo, type TaxonomyListQuery, type TaxonomyResolution, type ThreadMessagesQuery, type UnreadCount, type UnsubscribeBody, type UpdateApplicationFactsBody, type UpdateCandidateProfileBody, type UpdateEducationBody, type UpdateEmployerCompanyBody, type UpdateEmployerJobBody, type UpdateExperienceBody, type UpdateLanguagesBody, type UpdateNotificationPreferenceBody, type UpdatePipelineStageBody, type UpdateSkillsBody, type VerifyEmailBody, createBoardClient, isBoardApiError, isBoardPasswordRequired, isColdRule, isConflict, isForbidden, isNotFound, isOwnMessage, isRateLimited, isSafeApplicationUrl, isUnauthorized, isValidationError, lastOwnMessageId, paginate, resolveApplyAction };
|
|
3005
|
+
export { type AccessCheckoutBody, type AccessCheckoutSession, type AccessCheckoutSessionState, type AccessGrant, type AccessPortalBody, type AccessPortalSession, type AddApplicantNoteBody, type Alert, type AlertBody, type Application, type ApplicationsListQuery, type ApplyAction, type ApplyBody, Awaitable, BOARD_API_ERROR_CODES, type Block, type BlockStatus, type BlockUserBody, type BlockedUser, BlogPostsListQuery, BlogSearchBody, BlogSimilarQuery, type BoardAccessGrant, BoardApiError, type BoardApiErrorCode, type BoardAuthSession, BoardClient, BoardRequest, type BoardSdk, type BoardSeo, type BoardUser, type BulkMoveApplicantsBody, type BulkRejectApplicantsBody, type CandidateAvatar, type CandidateEducation, type CandidateExperience, type CandidateLanguage, type CandidateProfile, type CandidateSkill, type ClaimableCompany, CompaniesListQuery, CompaniesSearchBody, CompanyJobsListQuery, CompanyListEnvelope, CompanyMarketsListQuery, type CompanyMembership, CompanySimilarQuery, type ConfirmWorkEmailBody, type ConsumeMagicLinkBody, type Conversation, type ConversationArchive, type ConversationDetail, type ConversationRef, type ConversationsListQuery, type CreateBoardClientOptions, type CreateCompanyBody, type CreateEducationBody, type CreateEmployerJobBody, type CreateExperienceBody, type CreateJobPostingInput, type CreatePipelineStageBody, 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, 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, type JobPostingBillingOptions, type JobPostingBillingVerification, type JobPostingLogoResult, type JobPostingPlan, type JobPostingResult, JobsListQuery, JobsSearchBody, JobsSimilarQuery, type LegalEntity, type LegalPageType, ListEnvelope, Logger, type LoginBody, type LogoutBody, type Message, type ModerationReport, type MoveApplicantStageBody, type NotificationPreference, type OAuthAuthorizationQuery, type OAuthAuthorizationUrl, type OAuthExchangeBody, type OAuthProvider, type Paginator, type PaywallOffer, type PaywallOfferListEnvelope, type PlacesListQuery, type Plan, type PlanListEnvelope, type PlansListQuery, type PublicLegalPage, type PublicPlace, type PublicTaxonomyTerm, type ReadReceipt, type RedirectResolution, type RefreshBody, type RegisterBody, RemoteOption, type RemotePermitTaxonomyEntry, type ReorderPipelineStagesBody, type ReplyBody, type ReportBody, type RequestMagicLinkBody, type ResetPasswordBody, type Resume, type ResumeUploadOptions, SDK_VERSION, SalaryDetailQuery, type SalesLedPlan, type SalesLedPlanListEnvelope, type SaveJobBody, type SavedJob, type SavedJobsListQuery, SearchEnvelope, SearchSuggestQuery, type SendWorkEmailBody, Seniority, type StartAboutApplicationBody, type StartConversationBody, StorageMode, type SuggestionsListQuery, type TalentAccess, type TalentDirectoryEntry, type TalentDirectoryListEnvelope, type TalentDirectoryQuery, type TalentProfile, type TaxonomyGeo, type TaxonomyListQuery, type TaxonomyResolution, type ThreadMessagesQuery, type UnreadCount, type UnsubscribeBody, type UpdateApplicationFactsBody, type UpdateCandidateProfileBody, type UpdateEducationBody, type UpdateEmployerCompanyBody, type UpdateEmployerJobBody, type UpdateExperienceBody, type UpdateLanguagesBody, type UpdateNotificationPreferenceBody, type UpdatePipelineStageBody, type UpdateSkillsBody, type VerifyEmailBody, createBoardClient, isBoardApiError, isBoardPasswordRequired, isColdRule, isConflict, isForbidden, isNotFound, isOwnMessage, isRateLimited, isSafeApplicationUrl, isUnauthorized, isValidationError, lastOwnMessageId, paginate, resolveApplyAction };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { S as Schemas, c as components } from './_spec-
|
|
2
|
-
import { F as FetchOptions, c as StorageMode, B as BoardRequest, A as Awaitable, L as Logger, d as BoardClient, a as SearchSuggestQuery } from './search-
|
|
3
|
-
export { e as ACCESS_TOKEN_KEY, f as BOARD_ACCESS_GRANT_KEY, C as CompanySuggestion, g as CustomStorage, R as REFRESH_TOKEN_KEY, b as SuggestResult, S as SuggestionItem, T as TermSuggestion } from './search-
|
|
4
|
-
export { C as CustomFieldDefinition, a as CustomFieldOption, b as CustomFieldType, P as PublicBoard, c as PublicBoardAnalytics, d as PublicBoardFeatures, e as PublicBoardTheme } from './board-
|
|
5
|
-
import { R as RemoteOption, E as EmploymentType, S as Seniority, L as ListEnvelope, b as JobsListQuery, c as JobCardListEnvelope, d as JobsSearchBody, e as JobCardSearchEnvelope, f as JobsSimilarQuery, g as SearchEnvelope } from './jobs-
|
|
6
|
-
export { h as CustomFieldValue, C as CustomFieldValues, i as EducationRequirement, j as JobCatalogPagination, k as JobCompany, J as JobSort, O as OfficeLocation, l as OffsetPagination, P as PublicJob, a as PublicJobCard, m as RelatedSearch, n as RemotePermit, o as RemoteTimezone, p as StorefrontPagination } from './jobs-
|
|
7
|
-
import { b as CompaniesListQuery, c as CompanyListEnvelope, d as CompaniesSearchBody, e as CompanyJobsListQuery, f as CompanySimilarQuery, g as CompanyMarketsListQuery, h as SalaryDetailQuery, i as BlogPostsListQuery, j as BlogSimilarQuery, k as BlogSearchBody } from './salaries-
|
|
8
|
-
export { B as BlogAuthorEmbed, l as BlogTagEmbed, C as CompanyCategorySalary, m as CompanyMarket, n as CompanyMarketRef, a as CompanySalary, L as LocationSalaryDetail, o as LocationSkillsIndex, p as LocationTitlesIndex, q as PublicBlogAdjacentPosts, r as PublicBlogAuthor, s as PublicBlogPost, P as PublicBlogPostSummary, t as PublicBlogTag, u as PublicCompany, v as PublicCompanyDetail, w as SalaryCompany, x as SalaryLocation, y as SalarySkill, z as SalaryTitle, A as SkillLocationSalary, D as SkillLocationsIndex, S as SkillSalaryDetail, E as TitleLocationSalary, F as TitleLocationsIndex, T as TitleSalaryDetail } from './salaries-
|
|
1
|
+
import { S as Schemas, c as components } from './_spec-LdkTxfx0.js';
|
|
2
|
+
import { F as FetchOptions, c as StorageMode, B as BoardRequest, A as Awaitable, L as Logger, d as BoardClient, a as SearchSuggestQuery } from './search-DWmHHXn8.js';
|
|
3
|
+
export { e as ACCESS_TOKEN_KEY, f as BOARD_ACCESS_GRANT_KEY, C as CompanySuggestion, g as CustomStorage, R as REFRESH_TOKEN_KEY, b as SuggestResult, S as SuggestionItem, T as TermSuggestion } from './search-DWmHHXn8.js';
|
|
4
|
+
export { C as CustomFieldDefinition, a as CustomFieldOption, b as CustomFieldType, P as PublicBoard, c as PublicBoardAnalytics, d as PublicBoardFeatures, e as PublicBoardTheme } from './board-FxC9Wdhi.js';
|
|
5
|
+
import { R as RemoteOption, E as EmploymentType, S as Seniority, L as ListEnvelope, b as JobsListQuery, c as JobCardListEnvelope, d as JobsSearchBody, e as JobCardSearchEnvelope, f as JobsSimilarQuery, g as SearchEnvelope } from './jobs-TIAPH3Ol.js';
|
|
6
|
+
export { h as CustomFieldValue, C as CustomFieldValues, i as EducationRequirement, j as JobCatalogPagination, k as JobCompany, J as JobSort, O as OfficeLocation, l as OffsetPagination, P as PublicJob, a as PublicJobCard, m as RelatedSearch, n as RemotePermit, o as RemoteTimezone, p as StorefrontPagination } from './jobs-TIAPH3Ol.js';
|
|
7
|
+
import { b as CompaniesListQuery, c as CompanyListEnvelope, d as CompaniesSearchBody, e as CompanyJobsListQuery, f as CompanySimilarQuery, g as CompanyMarketsListQuery, h as SalaryDetailQuery, i as BlogPostsListQuery, j as BlogSimilarQuery, k as BlogSearchBody } from './salaries-BEAqkaFt.js';
|
|
8
|
+
export { B as BlogAuthorEmbed, l as BlogTagEmbed, C as CompanyCategorySalary, m as CompanyMarket, n as CompanyMarketRef, a as CompanySalary, L as LocationSalaryDetail, o as LocationSkillsIndex, p as LocationTitlesIndex, q as PublicBlogAdjacentPosts, r as PublicBlogAuthor, s as PublicBlogPost, P as PublicBlogPostSummary, t as PublicBlogTag, u as PublicCompany, v as PublicCompanyDetail, w as SalaryCompany, x as SalaryLocation, y as SalarySkill, z as SalaryTitle, A as SkillLocationSalary, D as SkillLocationsIndex, S as SkillSalaryDetail, E as TitleLocationSalary, F as TitleLocationsIndex, T as TitleSalaryDetail } from './salaries-BEAqkaFt.js';
|
|
9
9
|
|
|
10
10
|
/**
|
|
11
11
|
* Well-known `<domain>_<snake_reason>` codes the Board API sends, grouped by
|
|
@@ -141,7 +141,7 @@ declare function paginate<Q extends Record<string, unknown>, P extends PageShape
|
|
|
141
141
|
* constant because the package is platform-neutral and cannot read
|
|
142
142
|
* package.json at runtime.
|
|
143
143
|
*/
|
|
144
|
-
declare const SDK_VERSION = "1.
|
|
144
|
+
declare const SDK_VERSION = "1.42.0";
|
|
145
145
|
|
|
146
146
|
type SavedJob = Schemas['SavedJob'];
|
|
147
147
|
type SavedJobsListQuery = {
|
|
@@ -280,6 +280,25 @@ type EmployerJobsListQuery = {
|
|
|
280
280
|
/** 1–200 (default 200). */
|
|
281
281
|
limit?: number;
|
|
282
282
|
};
|
|
283
|
+
/**
|
|
284
|
+
* One job's reporting funnel from `board.me.companies.jobStats.retrieve`.
|
|
285
|
+
* `views` / `applyClicks` degrade to `0` on a Tinybird outage (the endpoint
|
|
286
|
+
* never fails on analytics), so a `0` is "no activity" OR "analytics briefly
|
|
287
|
+
* unavailable". `applications` is `null` for an external-apply job.
|
|
288
|
+
*/
|
|
289
|
+
type EmployerJobStat = Schemas['EmployerJobStat'];
|
|
290
|
+
/**
|
|
291
|
+
* One daily bucket from `board.me.companies.jobStats.timeseries`, aggregated
|
|
292
|
+
* across the company's jobs. Zero-filled over the window, ascending by date.
|
|
293
|
+
*/
|
|
294
|
+
type EmployerJobStatsPoint = Schemas['EmployerJobStatsPoint'];
|
|
295
|
+
/** Query for `board.me.companies.jobStats.timeseries`. */
|
|
296
|
+
type EmployerJobStatsTimeseriesQuery = {
|
|
297
|
+
/** Inclusive window start (ISO 8601). Defaults to 30 days before `until`. */
|
|
298
|
+
since?: string;
|
|
299
|
+
/** Exclusive window end (ISO 8601). Defaults to now. */
|
|
300
|
+
until?: string;
|
|
301
|
+
};
|
|
283
302
|
/** A job's full applicant pipeline (job header + stage rail + applicants). */
|
|
284
303
|
type EmployerPipeline = Schemas['EmployerPipeline'];
|
|
285
304
|
/** One applicant on a job's pipeline, with its activity timeline. */
|
|
@@ -1856,6 +1875,21 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
|
|
|
1856
1875
|
renewsAt: string | null;
|
|
1857
1876
|
}>>;
|
|
1858
1877
|
};
|
|
1878
|
+
jobStats: {
|
|
1879
|
+
retrieve(slug: string, options?: FetchOptions): Promise<ListEnvelope<{
|
|
1880
|
+
object: "employer_job_stat";
|
|
1881
|
+
jobId: string;
|
|
1882
|
+
views: number;
|
|
1883
|
+
applyClicks: number;
|
|
1884
|
+
applications: number | null;
|
|
1885
|
+
}>>;
|
|
1886
|
+
timeseries(slug: string, query?: EmployerJobStatsTimeseriesQuery, options?: FetchOptions): Promise<ListEnvelope<{
|
|
1887
|
+
object: "employer_job_stats_point";
|
|
1888
|
+
date: string;
|
|
1889
|
+
views: number;
|
|
1890
|
+
applyClicks: number;
|
|
1891
|
+
}>>;
|
|
1892
|
+
};
|
|
1859
1893
|
applicants: {
|
|
1860
1894
|
list(slug: string, query: EmployerPipelineQuery, options?: FetchOptions): Promise<{
|
|
1861
1895
|
object: "employer_pipeline";
|
|
@@ -2968,4 +3002,4 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
|
|
|
2968
3002
|
};
|
|
2969
3003
|
type BoardSdk = ReturnType<typeof createBoardClient>;
|
|
2970
3004
|
|
|
2971
|
-
export { type AccessCheckoutBody, type AccessCheckoutSession, type AccessCheckoutSessionState, type AccessGrant, type AccessPortalBody, type AccessPortalSession, type AddApplicantNoteBody, type Alert, type AlertBody, type Application, type ApplicationsListQuery, type ApplyAction, type ApplyBody, Awaitable, BOARD_API_ERROR_CODES, type Block, type BlockStatus, type BlockUserBody, type BlockedUser, BlogPostsListQuery, BlogSearchBody, BlogSimilarQuery, type BoardAccessGrant, BoardApiError, type BoardApiErrorCode, type BoardAuthSession, BoardClient, BoardRequest, type BoardSdk, type BoardSeo, type BoardUser, type BulkMoveApplicantsBody, type BulkRejectApplicantsBody, type CandidateAvatar, type CandidateEducation, type CandidateExperience, type CandidateLanguage, type CandidateProfile, type CandidateSkill, type ClaimableCompany, CompaniesListQuery, CompaniesSearchBody, CompanyJobsListQuery, CompanyListEnvelope, CompanyMarketsListQuery, type CompanyMembership, CompanySimilarQuery, type ConfirmWorkEmailBody, type ConsumeMagicLinkBody, type Conversation, type ConversationArchive, type ConversationDetail, type ConversationRef, type ConversationsListQuery, type CreateBoardClientOptions, type CreateCompanyBody, type CreateEducationBody, type CreateEmployerJobBody, type CreateExperienceBody, type CreateJobPostingInput, type CreatePipelineStageBody, type EditMessageBody, type EmbedJobsQuery, type EmployerApplicant, type EmployerBillingOption, type EmployerCheckout, type EmployerCheckoutBody, type EmployerCompany, type EmployerCompanySearchQuery, type EmployerJob, type EmployerJobSummary, type EmployerJobsListQuery, type EmployerPipeline, type EmployerPipelineQuery, type EmployerPipelineStage, 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, type JobPostingBillingOptions, type JobPostingBillingVerification, type JobPostingLogoResult, type JobPostingPlan, type JobPostingResult, JobsListQuery, JobsSearchBody, JobsSimilarQuery, type LegalEntity, type LegalPageType, ListEnvelope, Logger, type LoginBody, type LogoutBody, type Message, type ModerationReport, type MoveApplicantStageBody, type NotificationPreference, type OAuthAuthorizationQuery, type OAuthAuthorizationUrl, type OAuthExchangeBody, type OAuthProvider, type Paginator, type PaywallOffer, type PaywallOfferListEnvelope, type PlacesListQuery, type Plan, type PlanListEnvelope, type PlansListQuery, type PublicLegalPage, type PublicPlace, type PublicTaxonomyTerm, type ReadReceipt, type RedirectResolution, type RefreshBody, type RegisterBody, RemoteOption, type RemotePermitTaxonomyEntry, type ReorderPipelineStagesBody, type ReplyBody, type ReportBody, type RequestMagicLinkBody, type ResetPasswordBody, type Resume, type ResumeUploadOptions, SDK_VERSION, SalaryDetailQuery, type SalesLedPlan, type SalesLedPlanListEnvelope, type SaveJobBody, type SavedJob, type SavedJobsListQuery, SearchEnvelope, SearchSuggestQuery, type SendWorkEmailBody, Seniority, type StartAboutApplicationBody, type StartConversationBody, StorageMode, type SuggestionsListQuery, type TalentAccess, type TalentDirectoryEntry, type TalentDirectoryListEnvelope, type TalentDirectoryQuery, type TalentProfile, type TaxonomyGeo, type TaxonomyListQuery, type TaxonomyResolution, type ThreadMessagesQuery, type UnreadCount, type UnsubscribeBody, type UpdateApplicationFactsBody, type UpdateCandidateProfileBody, type UpdateEducationBody, type UpdateEmployerCompanyBody, type UpdateEmployerJobBody, type UpdateExperienceBody, type UpdateLanguagesBody, type UpdateNotificationPreferenceBody, type UpdatePipelineStageBody, type UpdateSkillsBody, type VerifyEmailBody, createBoardClient, isBoardApiError, isBoardPasswordRequired, isColdRule, isConflict, isForbidden, isNotFound, isOwnMessage, isRateLimited, isSafeApplicationUrl, isUnauthorized, isValidationError, lastOwnMessageId, paginate, resolveApplyAction };
|
|
3005
|
+
export { type AccessCheckoutBody, type AccessCheckoutSession, type AccessCheckoutSessionState, type AccessGrant, type AccessPortalBody, type AccessPortalSession, type AddApplicantNoteBody, type Alert, type AlertBody, type Application, type ApplicationsListQuery, type ApplyAction, type ApplyBody, Awaitable, BOARD_API_ERROR_CODES, type Block, type BlockStatus, type BlockUserBody, type BlockedUser, BlogPostsListQuery, BlogSearchBody, BlogSimilarQuery, type BoardAccessGrant, BoardApiError, type BoardApiErrorCode, type BoardAuthSession, BoardClient, BoardRequest, type BoardSdk, type BoardSeo, type BoardUser, type BulkMoveApplicantsBody, type BulkRejectApplicantsBody, type CandidateAvatar, type CandidateEducation, type CandidateExperience, type CandidateLanguage, type CandidateProfile, type CandidateSkill, type ClaimableCompany, CompaniesListQuery, CompaniesSearchBody, CompanyJobsListQuery, CompanyListEnvelope, CompanyMarketsListQuery, type CompanyMembership, CompanySimilarQuery, type ConfirmWorkEmailBody, type ConsumeMagicLinkBody, type Conversation, type ConversationArchive, type ConversationDetail, type ConversationRef, type ConversationsListQuery, type CreateBoardClientOptions, type CreateCompanyBody, type CreateEducationBody, type CreateEmployerJobBody, type CreateExperienceBody, type CreateJobPostingInput, type CreatePipelineStageBody, 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, 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, type JobPostingBillingOptions, type JobPostingBillingVerification, type JobPostingLogoResult, type JobPostingPlan, type JobPostingResult, JobsListQuery, JobsSearchBody, JobsSimilarQuery, type LegalEntity, type LegalPageType, ListEnvelope, Logger, type LoginBody, type LogoutBody, type Message, type ModerationReport, type MoveApplicantStageBody, type NotificationPreference, type OAuthAuthorizationQuery, type OAuthAuthorizationUrl, type OAuthExchangeBody, type OAuthProvider, type Paginator, type PaywallOffer, type PaywallOfferListEnvelope, type PlacesListQuery, type Plan, type PlanListEnvelope, type PlansListQuery, type PublicLegalPage, type PublicPlace, type PublicTaxonomyTerm, type ReadReceipt, type RedirectResolution, type RefreshBody, type RegisterBody, RemoteOption, type RemotePermitTaxonomyEntry, type ReorderPipelineStagesBody, type ReplyBody, type ReportBody, type RequestMagicLinkBody, type ResetPasswordBody, type Resume, type ResumeUploadOptions, SDK_VERSION, SalaryDetailQuery, type SalesLedPlan, type SalesLedPlanListEnvelope, type SaveJobBody, type SavedJob, type SavedJobsListQuery, SearchEnvelope, SearchSuggestQuery, type SendWorkEmailBody, Seniority, type StartAboutApplicationBody, type StartConversationBody, StorageMode, type SuggestionsListQuery, type TalentAccess, type TalentDirectoryEntry, type TalentDirectoryListEnvelope, type TalentDirectoryQuery, type TalentProfile, type TaxonomyGeo, type TaxonomyListQuery, type TaxonomyResolution, type ThreadMessagesQuery, type UnreadCount, type UnsubscribeBody, type UpdateApplicationFactsBody, type UpdateCandidateProfileBody, type UpdateEducationBody, type UpdateEmployerCompanyBody, type UpdateEmployerJobBody, type UpdateExperienceBody, type UpdateLanguagesBody, type UpdateNotificationPreferenceBody, type UpdatePipelineStageBody, type UpdateSkillsBody, type VerifyEmailBody, createBoardClient, isBoardApiError, isBoardPasswordRequired, isColdRule, isConflict, isForbidden, isNotFound, isOwnMessage, isRateLimited, isSafeApplicationUrl, isUnauthorized, isValidationError, lastOwnMessageId, paginate, resolveApplyAction };
|
package/dist/index.js
CHANGED
|
@@ -312,7 +312,7 @@ async function clearSession(storage) {
|
|
|
312
312
|
}
|
|
313
313
|
|
|
314
314
|
// src/version.ts
|
|
315
|
-
var SDK_VERSION = "1.
|
|
315
|
+
var SDK_VERSION = "1.42.0";
|
|
316
316
|
|
|
317
317
|
// src/client.ts
|
|
318
318
|
function isRawBody(body) {
|
|
@@ -1614,6 +1614,47 @@ function meNamespace(client) {
|
|
|
1614
1614
|
);
|
|
1615
1615
|
}
|
|
1616
1616
|
},
|
|
1617
|
+
/**
|
|
1618
|
+
* The read-only reporting funnel that backs the hosted employer jobs
|
|
1619
|
+
* table (doc 35): per-job views / apply clicks / native applications,
|
|
1620
|
+
* plus a daily views+apply-clicks time-series for a chart. Membership-
|
|
1621
|
+
* scoped; never cached. Analytics degrade to zeroes on a Tinybird
|
|
1622
|
+
* outage — the reads never fail on an analytics problem, so a `0` means
|
|
1623
|
+
* "no activity" OR "analytics briefly unavailable".
|
|
1624
|
+
*/
|
|
1625
|
+
jobStats: {
|
|
1626
|
+
/**
|
|
1627
|
+
* Per-job stats across ALL of a company's jobs, one row per job.
|
|
1628
|
+
*
|
|
1629
|
+
* @example
|
|
1630
|
+
* const { data } = await board.me.companies.jobStats.retrieve('acme');
|
|
1631
|
+
* for (const s of data) {
|
|
1632
|
+
* console.log(s.jobId, s.views, s.applyClicks, s.applications);
|
|
1633
|
+
* }
|
|
1634
|
+
*/
|
|
1635
|
+
retrieve(slug, options) {
|
|
1636
|
+
return client.fetch(
|
|
1637
|
+
`/me/companies/${encodeURIComponent(slug)}/job-stats`,
|
|
1638
|
+
options
|
|
1639
|
+
);
|
|
1640
|
+
},
|
|
1641
|
+
/**
|
|
1642
|
+
* Daily buckets of views + apply clicks aggregated across the
|
|
1643
|
+
* company's jobs, to power a chart. Zero-filled over `[since, until]`
|
|
1644
|
+
* (default: last 30 days), ascending by date.
|
|
1645
|
+
*
|
|
1646
|
+
* @example
|
|
1647
|
+
* const { data } = await board.me.companies.jobStats.timeseries('acme', {
|
|
1648
|
+
* since: '2026-06-01T00:00:00Z',
|
|
1649
|
+
* });
|
|
1650
|
+
*/
|
|
1651
|
+
timeseries(slug, query, options) {
|
|
1652
|
+
return client.fetch(
|
|
1653
|
+
`/me/companies/${encodeURIComponent(slug)}/job-stats/timeseries`,
|
|
1654
|
+
{ ...options, query }
|
|
1655
|
+
);
|
|
1656
|
+
}
|
|
1657
|
+
},
|
|
1617
1658
|
/**
|
|
1618
1659
|
* The applicant pipeline (ATS) for a company I am an approved member of
|
|
1619
1660
|
* (doc 35 / ADR-0052 / ADR-0004). Reads return the full pipeline (job
|
package/dist/index.mjs
CHANGED
|
@@ -265,7 +265,7 @@ async function clearSession(storage) {
|
|
|
265
265
|
}
|
|
266
266
|
|
|
267
267
|
// src/version.ts
|
|
268
|
-
var SDK_VERSION = "1.
|
|
268
|
+
var SDK_VERSION = "1.42.0";
|
|
269
269
|
|
|
270
270
|
// src/client.ts
|
|
271
271
|
function isRawBody(body) {
|
|
@@ -1567,6 +1567,47 @@ function meNamespace(client) {
|
|
|
1567
1567
|
);
|
|
1568
1568
|
}
|
|
1569
1569
|
},
|
|
1570
|
+
/**
|
|
1571
|
+
* The read-only reporting funnel that backs the hosted employer jobs
|
|
1572
|
+
* table (doc 35): per-job views / apply clicks / native applications,
|
|
1573
|
+
* plus a daily views+apply-clicks time-series for a chart. Membership-
|
|
1574
|
+
* scoped; never cached. Analytics degrade to zeroes on a Tinybird
|
|
1575
|
+
* outage — the reads never fail on an analytics problem, so a `0` means
|
|
1576
|
+
* "no activity" OR "analytics briefly unavailable".
|
|
1577
|
+
*/
|
|
1578
|
+
jobStats: {
|
|
1579
|
+
/**
|
|
1580
|
+
* Per-job stats across ALL of a company's jobs, one row per job.
|
|
1581
|
+
*
|
|
1582
|
+
* @example
|
|
1583
|
+
* const { data } = await board.me.companies.jobStats.retrieve('acme');
|
|
1584
|
+
* for (const s of data) {
|
|
1585
|
+
* console.log(s.jobId, s.views, s.applyClicks, s.applications);
|
|
1586
|
+
* }
|
|
1587
|
+
*/
|
|
1588
|
+
retrieve(slug, options) {
|
|
1589
|
+
return client.fetch(
|
|
1590
|
+
`/me/companies/${encodeURIComponent(slug)}/job-stats`,
|
|
1591
|
+
options
|
|
1592
|
+
);
|
|
1593
|
+
},
|
|
1594
|
+
/**
|
|
1595
|
+
* Daily buckets of views + apply clicks aggregated across the
|
|
1596
|
+
* company's jobs, to power a chart. Zero-filled over `[since, until]`
|
|
1597
|
+
* (default: last 30 days), ascending by date.
|
|
1598
|
+
*
|
|
1599
|
+
* @example
|
|
1600
|
+
* const { data } = await board.me.companies.jobStats.timeseries('acme', {
|
|
1601
|
+
* since: '2026-06-01T00:00:00Z',
|
|
1602
|
+
* });
|
|
1603
|
+
*/
|
|
1604
|
+
timeseries(slug, query, options) {
|
|
1605
|
+
return client.fetch(
|
|
1606
|
+
`/me/companies/${encodeURIComponent(slug)}/job-stats/timeseries`,
|
|
1607
|
+
{ ...options, query }
|
|
1608
|
+
);
|
|
1609
|
+
}
|
|
1610
|
+
},
|
|
1570
1611
|
/**
|
|
1571
1612
|
* The applicant pipeline (ATS) for a company I am an approved member of
|
|
1572
1613
|
* (doc 35 / ADR-0052 / ADR-0004). Reads return the full pipeline (job
|
package/dist/paths.d.mts
CHANGED
|
@@ -62,11 +62,35 @@ declare const BOARD_PATHS: {
|
|
|
62
62
|
readonly impressum: "/impressum";
|
|
63
63
|
readonly talent: "/talent";
|
|
64
64
|
readonly employers: "/employers";
|
|
65
|
+
/**
|
|
66
|
+
* Alert-email surfaces (ADR-0090 D1/D4). Promoted out of raw literals in
|
|
67
|
+
* the job-alerts composer so /go indirection and email composition share
|
|
68
|
+
* one definition.
|
|
69
|
+
*/
|
|
70
|
+
readonly alertsManage: "/alerts/manage";
|
|
71
|
+
readonly alertsConfirm: "/alerts/confirm";
|
|
65
72
|
};
|
|
73
|
+
/**
|
|
74
|
+
* Email `/go` indirection paths (ADR-0090 D4 / LNK-05). Pure builders so
|
|
75
|
+
* Convex email composers can emit structure-independent links without
|
|
76
|
+
* importing `@cavuno/board/go` (handler code is not safe in that runtime).
|
|
77
|
+
*
|
|
78
|
+
* Shapes match the hosted handler + SDK `createGoHandler` contracts:
|
|
79
|
+
* /go/job/<immutableId>
|
|
80
|
+
* /go/alerts-manage
|
|
81
|
+
* /go/alerts-confirm
|
|
82
|
+
*
|
|
83
|
+
* No encoding — callers pass opaque Convex ids / static role segments that
|
|
84
|
+
* are already URL-safe path segments. Query strings are composed by the
|
|
85
|
+
* caller (tokens must ride through verbatim).
|
|
86
|
+
*/
|
|
87
|
+
declare function goJobPath(jobId: string): string;
|
|
88
|
+
declare function goAlertsManagePath(): string;
|
|
89
|
+
declare function goAlertsConfirmPath(): string;
|
|
66
90
|
/**
|
|
67
91
|
* Prefix a board-relative path with the board origin. A trailing slash on
|
|
68
92
|
* the origin is tolerated (stripped) so callers need not normalise first.
|
|
69
93
|
*/
|
|
70
94
|
declare function boardUrl(origin: string, path: string): string;
|
|
71
95
|
|
|
72
|
-
export { BOARD_PATHS, blogAuthorPath, blogPostPath, blogTagPath, boardUrl, companyMarketPath, companyPath, companySalaryPath, jobDetailPath, jobsCategoryPath, jobsLocationPath, jobsSkillPath, salaryLocationPath, salarySkillPath, salaryTitlePath };
|
|
96
|
+
export { BOARD_PATHS, blogAuthorPath, blogPostPath, blogTagPath, boardUrl, companyMarketPath, companyPath, companySalaryPath, goAlertsConfirmPath, goAlertsManagePath, goJobPath, jobDetailPath, jobsCategoryPath, jobsLocationPath, jobsSkillPath, salaryLocationPath, salarySkillPath, salaryTitlePath };
|
package/dist/paths.d.ts
CHANGED
|
@@ -62,11 +62,35 @@ declare const BOARD_PATHS: {
|
|
|
62
62
|
readonly impressum: "/impressum";
|
|
63
63
|
readonly talent: "/talent";
|
|
64
64
|
readonly employers: "/employers";
|
|
65
|
+
/**
|
|
66
|
+
* Alert-email surfaces (ADR-0090 D1/D4). Promoted out of raw literals in
|
|
67
|
+
* the job-alerts composer so /go indirection and email composition share
|
|
68
|
+
* one definition.
|
|
69
|
+
*/
|
|
70
|
+
readonly alertsManage: "/alerts/manage";
|
|
71
|
+
readonly alertsConfirm: "/alerts/confirm";
|
|
65
72
|
};
|
|
73
|
+
/**
|
|
74
|
+
* Email `/go` indirection paths (ADR-0090 D4 / LNK-05). Pure builders so
|
|
75
|
+
* Convex email composers can emit structure-independent links without
|
|
76
|
+
* importing `@cavuno/board/go` (handler code is not safe in that runtime).
|
|
77
|
+
*
|
|
78
|
+
* Shapes match the hosted handler + SDK `createGoHandler` contracts:
|
|
79
|
+
* /go/job/<immutableId>
|
|
80
|
+
* /go/alerts-manage
|
|
81
|
+
* /go/alerts-confirm
|
|
82
|
+
*
|
|
83
|
+
* No encoding — callers pass opaque Convex ids / static role segments that
|
|
84
|
+
* are already URL-safe path segments. Query strings are composed by the
|
|
85
|
+
* caller (tokens must ride through verbatim).
|
|
86
|
+
*/
|
|
87
|
+
declare function goJobPath(jobId: string): string;
|
|
88
|
+
declare function goAlertsManagePath(): string;
|
|
89
|
+
declare function goAlertsConfirmPath(): string;
|
|
66
90
|
/**
|
|
67
91
|
* Prefix a board-relative path with the board origin. A trailing slash on
|
|
68
92
|
* the origin is tolerated (stripped) so callers need not normalise first.
|
|
69
93
|
*/
|
|
70
94
|
declare function boardUrl(origin: string, path: string): string;
|
|
71
95
|
|
|
72
|
-
export { BOARD_PATHS, blogAuthorPath, blogPostPath, blogTagPath, boardUrl, companyMarketPath, companyPath, companySalaryPath, jobDetailPath, jobsCategoryPath, jobsLocationPath, jobsSkillPath, salaryLocationPath, salarySkillPath, salaryTitlePath };
|
|
96
|
+
export { BOARD_PATHS, blogAuthorPath, blogPostPath, blogTagPath, boardUrl, companyMarketPath, companyPath, companySalaryPath, goAlertsConfirmPath, goAlertsManagePath, goJobPath, jobDetailPath, jobsCategoryPath, jobsLocationPath, jobsSkillPath, salaryLocationPath, salarySkillPath, salaryTitlePath };
|
package/dist/paths.js
CHANGED
|
@@ -28,6 +28,9 @@ __export(paths_exports, {
|
|
|
28
28
|
companyMarketPath: () => companyMarketPath,
|
|
29
29
|
companyPath: () => companyPath,
|
|
30
30
|
companySalaryPath: () => companySalaryPath,
|
|
31
|
+
goAlertsConfirmPath: () => goAlertsConfirmPath,
|
|
32
|
+
goAlertsManagePath: () => goAlertsManagePath,
|
|
33
|
+
goJobPath: () => goJobPath,
|
|
31
34
|
jobDetailPath: () => jobDetailPath,
|
|
32
35
|
jobsCategoryPath: () => jobsCategoryPath,
|
|
33
36
|
jobsLocationPath: () => jobsLocationPath,
|
|
@@ -92,8 +95,24 @@ var BOARD_PATHS = {
|
|
|
92
95
|
cookiePolicy: "/cookie-policy",
|
|
93
96
|
impressum: "/impressum",
|
|
94
97
|
talent: "/talent",
|
|
95
|
-
employers: "/employers"
|
|
98
|
+
employers: "/employers",
|
|
99
|
+
/**
|
|
100
|
+
* Alert-email surfaces (ADR-0090 D1/D4). Promoted out of raw literals in
|
|
101
|
+
* the job-alerts composer so /go indirection and email composition share
|
|
102
|
+
* one definition.
|
|
103
|
+
*/
|
|
104
|
+
alertsManage: "/alerts/manage",
|
|
105
|
+
alertsConfirm: "/alerts/confirm"
|
|
96
106
|
};
|
|
107
|
+
function goJobPath(jobId) {
|
|
108
|
+
return `/go/job/${jobId}`;
|
|
109
|
+
}
|
|
110
|
+
function goAlertsManagePath() {
|
|
111
|
+
return "/go/alerts-manage";
|
|
112
|
+
}
|
|
113
|
+
function goAlertsConfirmPath() {
|
|
114
|
+
return "/go/alerts-confirm";
|
|
115
|
+
}
|
|
97
116
|
function boardUrl(origin, path) {
|
|
98
117
|
return `${origin.replace(/\/+$/, "")}${path}`;
|
|
99
118
|
}
|
package/dist/paths.mjs
CHANGED
|
@@ -54,8 +54,24 @@ var BOARD_PATHS = {
|
|
|
54
54
|
cookiePolicy: "/cookie-policy",
|
|
55
55
|
impressum: "/impressum",
|
|
56
56
|
talent: "/talent",
|
|
57
|
-
employers: "/employers"
|
|
57
|
+
employers: "/employers",
|
|
58
|
+
/**
|
|
59
|
+
* Alert-email surfaces (ADR-0090 D1/D4). Promoted out of raw literals in
|
|
60
|
+
* the job-alerts composer so /go indirection and email composition share
|
|
61
|
+
* one definition.
|
|
62
|
+
*/
|
|
63
|
+
alertsManage: "/alerts/manage",
|
|
64
|
+
alertsConfirm: "/alerts/confirm"
|
|
58
65
|
};
|
|
66
|
+
function goJobPath(jobId) {
|
|
67
|
+
return `/go/job/${jobId}`;
|
|
68
|
+
}
|
|
69
|
+
function goAlertsManagePath() {
|
|
70
|
+
return "/go/alerts-manage";
|
|
71
|
+
}
|
|
72
|
+
function goAlertsConfirmPath() {
|
|
73
|
+
return "/go/alerts-confirm";
|
|
74
|
+
}
|
|
59
75
|
function boardUrl(origin, path) {
|
|
60
76
|
return `${origin.replace(/\/+$/, "")}${path}`;
|
|
61
77
|
}
|
|
@@ -68,6 +84,9 @@ export {
|
|
|
68
84
|
companyMarketPath,
|
|
69
85
|
companyPath,
|
|
70
86
|
companySalaryPath,
|
|
87
|
+
goAlertsConfirmPath,
|
|
88
|
+
goAlertsManagePath,
|
|
89
|
+
goJobPath,
|
|
71
90
|
jobDetailPath,
|
|
72
91
|
jobsCategoryPath,
|
|
73
92
|
jobsLocationPath,
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* One discovered route. `template` uses URLPattern `:param` syntax
|
|
3
|
+
* (e.g. `/companies/:companySlug/jobs/:jobSlug`). Callers on other
|
|
4
|
+
* runtimes instantiate matchers; this module only emits strings.
|
|
5
|
+
*/
|
|
6
|
+
type RouteEntry = {
|
|
7
|
+
template: string;
|
|
8
|
+
/** Absolute or project-relative source path — keys the marker map. */
|
|
9
|
+
sourcePath?: string;
|
|
10
|
+
};
|
|
11
|
+
/** Versioned role → template map. Additive schema evolution only. */
|
|
12
|
+
type ManifestV1 = {
|
|
13
|
+
version: 1;
|
|
14
|
+
roles: Partial<Record<RouteRole, string>>;
|
|
15
|
+
};
|
|
16
|
+
type Ambiguity = {
|
|
17
|
+
role: RouteRole;
|
|
18
|
+
candidates: RouteEntry[];
|
|
19
|
+
};
|
|
20
|
+
type ClassifyResult = {
|
|
21
|
+
assignments: Partial<Record<RouteRole, RouteEntry>>;
|
|
22
|
+
ambiguities: Ambiguity[];
|
|
23
|
+
missingRequired: RouteRole[];
|
|
24
|
+
};
|
|
25
|
+
type CompileResult = {
|
|
26
|
+
manifest: ManifestV1;
|
|
27
|
+
blockingMissing: RouteRole[];
|
|
28
|
+
warnings: string[];
|
|
29
|
+
ambiguities: Ambiguity[];
|
|
30
|
+
};
|
|
31
|
+
type ValidateManifestError = {
|
|
32
|
+
code: 'invalid_shape' | 'invalid_version' | 'unknown_role' | 'unregistered_param' | 'missing_entity_param' | 'static_has_params' | 'invalid_template'
|
|
33
|
+
/** Protocol-relative or double-slash path (open redirect / SSRF shape). */
|
|
34
|
+
| 'template_double_slash'
|
|
35
|
+
/** '.' or '..' path segments. */
|
|
36
|
+
| 'template_dot_segment'
|
|
37
|
+
/** Query string or fragment in a path template. */
|
|
38
|
+
| 'template_query_or_fragment'
|
|
39
|
+
/** Characters outside the allowed path/token charset. */
|
|
40
|
+
| 'template_illegal_charset';
|
|
41
|
+
message: string;
|
|
42
|
+
role?: string;
|
|
43
|
+
token?: string;
|
|
44
|
+
};
|
|
45
|
+
type ValidateManifestResult = {
|
|
46
|
+
ok: true;
|
|
47
|
+
manifest: ManifestV1;
|
|
48
|
+
} | {
|
|
49
|
+
ok: false;
|
|
50
|
+
errors: ValidateManifestError[];
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* Role vocabulary for the per-board route manifest (ADR-0090 D1).
|
|
55
|
+
*
|
|
56
|
+
* Parameterized roles mirror the helpers in `../paths`; static roles mirror
|
|
57
|
+
* `BOARD_PATHS` keys; `alertsManage` / `alertsConfirm` are promoted out of
|
|
58
|
+
* raw literals in the job-alerts composer.
|
|
59
|
+
*
|
|
60
|
+
* Pure + isomorphic — imports only the sibling paths module.
|
|
61
|
+
*/
|
|
62
|
+
|
|
63
|
+
/** Every role the compiler can assign. */
|
|
64
|
+
type RouteRole = 'jobDetail' | 'jobsCategory' | 'jobsSkill' | 'jobsLocation' | 'company' | 'companyMarket' | 'companySalary' | 'salaryTitle' | 'salarySkill' | 'salaryLocation' | 'blogPost' | 'blogTag' | 'blogAuthor' | 'home' | 'jobs' | 'companies' | 'salaries' | 'salaryCompanies' | 'salaryTitles' | 'salarySkills' | 'salaryLocations' | 'blog' | 'about' | 'privacyPolicy' | 'termsOfService' | 'cookiePolicy' | 'impressum' | 'talent' | 'employers' | 'alertsManage' | 'alertsConfirm';
|
|
65
|
+
/**
|
|
66
|
+
* Exact param-name set per role, derived from each helper's signature.
|
|
67
|
+
* Empty arrays = static / zero-param roles (never inferred by signature).
|
|
68
|
+
*/
|
|
69
|
+
declare const ROLE_PARAM_REGISTRY: Record<RouteRole, readonly string[]>;
|
|
70
|
+
/** Email-emitting roles — a missing one blocks publish (ADR-0090 D1/D6). */
|
|
71
|
+
declare const REQUIRED_ROLES: readonly RouteRole[];
|
|
72
|
+
/** All known roles (stable iteration order = registry key order). */
|
|
73
|
+
declare const ALL_ROLES: readonly RouteRole[];
|
|
74
|
+
declare function isRouteRole(value: string): value is RouteRole;
|
|
75
|
+
/**
|
|
76
|
+
* Identity manifest reproducing the current canonical structure from the
|
|
77
|
+
* paths module. Built by calling helpers with `:param` placeholders so the
|
|
78
|
+
* templates stay locked to the helpers (ADR-0070 / ADR-0090).
|
|
79
|
+
*/
|
|
80
|
+
declare const CANONICAL_MANIFEST: ManifestV1;
|
|
81
|
+
|
|
82
|
+
export { ALL_ROLES as A, type ClassifyResult as C, type ManifestV1 as M, type RouteEntry as R, type ValidateManifestError as V, type RouteRole as a, type CompileResult as b, type ValidateManifestResult as c, type Ambiguity as d, CANONICAL_MANIFEST as e, REQUIRED_ROLES as f, ROLE_PARAM_REGISTRY as g, isRouteRole as i };
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* One discovered route. `template` uses URLPattern `:param` syntax
|
|
3
|
+
* (e.g. `/companies/:companySlug/jobs/:jobSlug`). Callers on other
|
|
4
|
+
* runtimes instantiate matchers; this module only emits strings.
|
|
5
|
+
*/
|
|
6
|
+
type RouteEntry = {
|
|
7
|
+
template: string;
|
|
8
|
+
/** Absolute or project-relative source path — keys the marker map. */
|
|
9
|
+
sourcePath?: string;
|
|
10
|
+
};
|
|
11
|
+
/** Versioned role → template map. Additive schema evolution only. */
|
|
12
|
+
type ManifestV1 = {
|
|
13
|
+
version: 1;
|
|
14
|
+
roles: Partial<Record<RouteRole, string>>;
|
|
15
|
+
};
|
|
16
|
+
type Ambiguity = {
|
|
17
|
+
role: RouteRole;
|
|
18
|
+
candidates: RouteEntry[];
|
|
19
|
+
};
|
|
20
|
+
type ClassifyResult = {
|
|
21
|
+
assignments: Partial<Record<RouteRole, RouteEntry>>;
|
|
22
|
+
ambiguities: Ambiguity[];
|
|
23
|
+
missingRequired: RouteRole[];
|
|
24
|
+
};
|
|
25
|
+
type CompileResult = {
|
|
26
|
+
manifest: ManifestV1;
|
|
27
|
+
blockingMissing: RouteRole[];
|
|
28
|
+
warnings: string[];
|
|
29
|
+
ambiguities: Ambiguity[];
|
|
30
|
+
};
|
|
31
|
+
type ValidateManifestError = {
|
|
32
|
+
code: 'invalid_shape' | 'invalid_version' | 'unknown_role' | 'unregistered_param' | 'missing_entity_param' | 'static_has_params' | 'invalid_template'
|
|
33
|
+
/** Protocol-relative or double-slash path (open redirect / SSRF shape). */
|
|
34
|
+
| 'template_double_slash'
|
|
35
|
+
/** '.' or '..' path segments. */
|
|
36
|
+
| 'template_dot_segment'
|
|
37
|
+
/** Query string or fragment in a path template. */
|
|
38
|
+
| 'template_query_or_fragment'
|
|
39
|
+
/** Characters outside the allowed path/token charset. */
|
|
40
|
+
| 'template_illegal_charset';
|
|
41
|
+
message: string;
|
|
42
|
+
role?: string;
|
|
43
|
+
token?: string;
|
|
44
|
+
};
|
|
45
|
+
type ValidateManifestResult = {
|
|
46
|
+
ok: true;
|
|
47
|
+
manifest: ManifestV1;
|
|
48
|
+
} | {
|
|
49
|
+
ok: false;
|
|
50
|
+
errors: ValidateManifestError[];
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* Role vocabulary for the per-board route manifest (ADR-0090 D1).
|
|
55
|
+
*
|
|
56
|
+
* Parameterized roles mirror the helpers in `../paths`; static roles mirror
|
|
57
|
+
* `BOARD_PATHS` keys; `alertsManage` / `alertsConfirm` are promoted out of
|
|
58
|
+
* raw literals in the job-alerts composer.
|
|
59
|
+
*
|
|
60
|
+
* Pure + isomorphic — imports only the sibling paths module.
|
|
61
|
+
*/
|
|
62
|
+
|
|
63
|
+
/** Every role the compiler can assign. */
|
|
64
|
+
type RouteRole = 'jobDetail' | 'jobsCategory' | 'jobsSkill' | 'jobsLocation' | 'company' | 'companyMarket' | 'companySalary' | 'salaryTitle' | 'salarySkill' | 'salaryLocation' | 'blogPost' | 'blogTag' | 'blogAuthor' | 'home' | 'jobs' | 'companies' | 'salaries' | 'salaryCompanies' | 'salaryTitles' | 'salarySkills' | 'salaryLocations' | 'blog' | 'about' | 'privacyPolicy' | 'termsOfService' | 'cookiePolicy' | 'impressum' | 'talent' | 'employers' | 'alertsManage' | 'alertsConfirm';
|
|
65
|
+
/**
|
|
66
|
+
* Exact param-name set per role, derived from each helper's signature.
|
|
67
|
+
* Empty arrays = static / zero-param roles (never inferred by signature).
|
|
68
|
+
*/
|
|
69
|
+
declare const ROLE_PARAM_REGISTRY: Record<RouteRole, readonly string[]>;
|
|
70
|
+
/** Email-emitting roles — a missing one blocks publish (ADR-0090 D1/D6). */
|
|
71
|
+
declare const REQUIRED_ROLES: readonly RouteRole[];
|
|
72
|
+
/** All known roles (stable iteration order = registry key order). */
|
|
73
|
+
declare const ALL_ROLES: readonly RouteRole[];
|
|
74
|
+
declare function isRouteRole(value: string): value is RouteRole;
|
|
75
|
+
/**
|
|
76
|
+
* Identity manifest reproducing the current canonical structure from the
|
|
77
|
+
* paths module. Built by calling helpers with `:param` placeholders so the
|
|
78
|
+
* templates stay locked to the helpers (ADR-0070 / ADR-0090).
|
|
79
|
+
*/
|
|
80
|
+
declare const CANONICAL_MANIFEST: ManifestV1;
|
|
81
|
+
|
|
82
|
+
export { ALL_ROLES as A, type ClassifyResult as C, type ManifestV1 as M, type RouteEntry as R, type ValidateManifestError as V, type RouteRole as a, type CompileResult as b, type ValidateManifestResult as c, type Ambiguity as d, CANONICAL_MANIFEST as e, REQUIRED_ROLES as f, ROLE_PARAM_REGISTRY as g, isRouteRole as i };
|