@cavuno/board 4.56.1 → 4.57.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 +48 -0
- package/dist/{_spec-DS4-nx__.d.mts → _spec-CDYDY0hB.d.mts} +310 -0
- package/dist/{_spec-DS4-nx__.d.ts → _spec-CDYDY0hB.d.ts} +310 -0
- package/dist/bin.mjs +26 -4
- package/dist/{blog-By6dc-Ce.d.ts → blog-DNGOmaKI.d.ts} +1 -1
- package/dist/{blog-BcjUrzqE.d.mts → blog-WupXypHv.d.mts} +1 -1
- package/dist/{board-B7104o4G.d.ts → board-CmQox8FZ.d.ts} +2 -2
- package/dist/{board-BboonvQM.d.mts → board-DbBBz7Pv.d.mts} +2 -2
- package/dist/{breadcrumbs-CfRlf9_7.d.ts → breadcrumbs-DpXiAo9j.d.ts} +2 -2
- package/dist/{breadcrumbs-DmnLLDr9.d.mts → breadcrumbs-mQTz0vZo.d.mts} +2 -2
- package/dist/browser/cavuno-board.global.min.js +1 -1
- package/dist/{chunk-VERFP5OF.mjs → chunk-GUXSUQCP.mjs} +18 -4
- package/dist/{chunk-DZD3DAEY.mjs → chunk-M4CX64RC.mjs} +25 -1
- package/dist/{chunk-ENQ4ZIO2.mjs → chunk-MSY7ERBY.mjs} +13 -1
- package/dist/{chunk-EWD4PIOM.mjs → chunk-R3QB3WM6.mjs} +1 -1
- package/dist/doctor.js +26 -4
- package/dist/doctor.mjs +26 -4
- 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/format.js +5 -1
- package/dist/format.mjs +2 -2
- package/dist/go.js +5 -1
- package/dist/go.mjs +1 -1
- package/dist/index.d.mts +241 -13
- package/dist/index.d.ts +241 -13
- package/dist/index.js +226 -2
- package/dist/index.mjs +202 -2
- package/dist/{jobs-DkDmvx2n.d.ts → jobs-B-NPmaV0.d.ts} +1 -1
- package/dist/{jobs-D70pujRc.d.mts → jobs-CgmHLS8j.d.mts} +1 -1
- package/dist/paths.d.mts +16 -1
- package/dist/paths.d.ts +16 -1
- package/dist/paths.js +13 -1
- package/dist/paths.mjs +5 -1
- package/dist/{roles-Bh3WNF9u.d.mts → roles-B_d0igKI.d.mts} +5 -1
- package/dist/{roles-Bh3WNF9u.d.ts → roles-B_d0igKI.d.ts} +5 -1
- package/dist/route-contract.d.mts +2 -2
- package/dist/route-contract.d.ts +2 -2
- package/dist/route-contract.js +26 -4
- package/dist/route-contract.mjs +2 -2
- package/dist/{search-DCNHOZQK.d.mts → search--bO1b3RJ.d.mts} +1 -1
- package/dist/{search-DAwVPHKk.d.ts → search-BvhQ92ZO.d.ts} +1 -1
- package/dist/{seo-Duj1plPG.d.mts → seo-C7HjUu_z.d.mts} +1 -1
- package/dist/{seo-BH3Ryx7D.d.ts → seo-CBRBS8Mc.d.ts} +1 -1
- package/dist/seo-files.d.mts +2 -2
- package/dist/seo-files.d.ts +2 -2
- package/dist/seo-files.js +5 -0
- package/dist/seo-files.mjs +5 -0
- package/dist/seo.d.mts +6 -6
- package/dist/seo.d.ts +6 -6
- package/dist/seo.js +5 -1
- package/dist/seo.mjs +2 -2
- package/dist/server.d.mts +6 -6
- package/dist/server.d.ts +6 -6
- package/dist/server.mjs +1 -1
- package/dist/sitemap.d.mts +6 -6
- package/dist/sitemap.d.ts +6 -6
- package/dist/sitemap.js +9 -3
- package/dist/sitemap.mjs +6 -4
- package/dist/suggest.d.mts +2 -2
- package/dist/suggest.d.ts +2 -2
- package/dist/well-known.d.mts +1 -1
- package/dist/well-known.d.ts +1 -1
- package/dist/well-known.js +26 -4
- package/dist/well-known.mjs +2 -2
- package/package.json +1 -1
- 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 JobCapability, b as CustomFieldFilter, O as ObjectReferenceFilter, c as JobCollectionChoiceQuery, d as JobsListQuery, e as JobCardListEnvelope, f as JobRetrieveQuery, g as JobsSearchBody, h as JobCardSearchEnvelope, i as JobsSimilarQuery, j as SearchEnvelope } from './jobs-
|
|
5
|
-
export { k as CustomFieldValue, C as CustomFieldValues, l as CustomFilterValue, m as EducationRequirement, n as JobCatalogPagination, o as JobCollectionChoiceList, p as JobCollectionFieldDefinition, q as JobCompany, r as JobCustomEmploymentType, J as JobSort, s as OfficeLocation, t as OffsetPagination, P as PublicJob, u as PublicJobCard, v as RelatedSearch, w as RemotePermit, x as RemoteTimezone, y as ResolvedJobCollectionField, z as StorefrontPagination } from './jobs-
|
|
6
|
-
import { c as CompaniesListQuery, d as CompanyListEnvelope, e as CompaniesSearchBody, f as CompanyJobsListQuery, g as CompanySimilarQuery, h as CompanyMarketsListQuery, i as SalaryDetailQuery, b as CompanySalary } from './board-
|
|
7
|
-
export { B as BoardCustomEmploymentType, j as BoardFormBuiltinField, k as BoardFormField, l as BoardFormLayout, m as BoardFormLockReason, n as BoardJobFormField, o as BoardProfileFormField, p as BoardRoleSignIn, q as BoardSignInSsoConnection, a as CompanyCategorySalary, r as CompanyMarket, s as CompanyMarketRef, t as CompanySalarySummary, C as CustomFieldDefinition, u as CustomFieldOption, v as CustomFieldType, L as LocationSalaryDetail, w as LocationSkillsIndex, x as LocationTitlesIndex, P as PublicBoard, y as PublicBoardAds, z as PublicBoardAnalytics, A as PublicBoardFeatures, D as PublicBoardJobForm, E as PublicBoardSignIn, F as PublicCompany, G as PublicCompanyDetail, H as PublicCompanyMembership, I as SalaryCompany, J as SalaryLocation, K as SalarySkill, M as SalaryTitle, N as SkillLocationSalary, O as SkillLocationsIndex, S as SkillSalaryDetail, Q as TitleLocationSalary, R as TitleLocationsIndex, T as TitleSalaryDetail } from './board-
|
|
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-CDYDY0hB.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-BvhQ92ZO.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-BvhQ92ZO.js';
|
|
4
|
+
import { L as ListEnvelope, R as RemoteOption, E as EmploymentType, S as Seniority, a as JobCapability, b as CustomFieldFilter, O as ObjectReferenceFilter, c as JobCollectionChoiceQuery, d as JobsListQuery, e as JobCardListEnvelope, f as JobRetrieveQuery, g as JobsSearchBody, h as JobCardSearchEnvelope, i as JobsSimilarQuery, j as SearchEnvelope } from './jobs-B-NPmaV0.js';
|
|
5
|
+
export { k as CustomFieldValue, C as CustomFieldValues, l as CustomFilterValue, m as EducationRequirement, n as JobCatalogPagination, o as JobCollectionChoiceList, p as JobCollectionFieldDefinition, q as JobCompany, r as JobCustomEmploymentType, J as JobSort, s as OfficeLocation, t as OffsetPagination, P as PublicJob, u as PublicJobCard, v as RelatedSearch, w as RemotePermit, x as RemoteTimezone, y as ResolvedJobCollectionField, z as StorefrontPagination } from './jobs-B-NPmaV0.js';
|
|
6
|
+
import { c as CompaniesListQuery, d as CompanyListEnvelope, e as CompaniesSearchBody, f as CompanyJobsListQuery, g as CompanySimilarQuery, h as CompanyMarketsListQuery, i as SalaryDetailQuery, b as CompanySalary } from './board-CmQox8FZ.js';
|
|
7
|
+
export { B as BoardCustomEmploymentType, j as BoardFormBuiltinField, k as BoardFormField, l as BoardFormLayout, m as BoardFormLockReason, n as BoardJobFormField, o as BoardProfileFormField, p as BoardRoleSignIn, q as BoardSignInSsoConnection, a as CompanyCategorySalary, r as CompanyMarket, s as CompanyMarketRef, t as CompanySalarySummary, C as CustomFieldDefinition, u as CustomFieldOption, v as CustomFieldType, L as LocationSalaryDetail, w as LocationSkillsIndex, x as LocationTitlesIndex, P as PublicBoard, y as PublicBoardAds, z as PublicBoardAnalytics, A as PublicBoardFeatures, D as PublicBoardJobForm, E as PublicBoardSignIn, F as PublicCompany, G as PublicCompanyDetail, H as PublicCompanyMembership, I as SalaryCompany, J as SalaryLocation, K as SalarySkill, M as SalaryTitle, N as SkillLocationSalary, O as SkillLocationsIndex, S as SkillSalaryDetail, Q as TitleLocationSalary, R as TitleLocationsIndex, T as TitleSalaryDetail } from './board-CmQox8FZ.js';
|
|
8
|
+
export { B as BoardSeo } from './seo-CBRBS8Mc.js';
|
|
9
|
+
import { a as BlogPostsListQuery, b as BlogSimilarQuery, c as BlogSearchBody } from './blog-DNGOmaKI.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-DNGOmaKI.js';
|
|
11
11
|
|
|
12
12
|
/**
|
|
13
13
|
* Well-known `<domain>_<snake_reason>` codes the Board API sends, grouped by
|
|
@@ -20,7 +20,7 @@ export { B as BlogAuthorEmbed, d as BlogTagEmbed, e as PublicBlogAdjacentPosts,
|
|
|
20
20
|
* `unknown_error` is SDK-synthesized when a response carries no parseable
|
|
21
21
|
* envelope.
|
|
22
22
|
*/
|
|
23
|
-
declare const BOARD_API_ERROR_CODES: readonly ["internal_error", "validation_bad_request", "validation_payload_too_large", "rate_limited", "rate_limit_unavailable", "search_unavailable", "search_filter_unavailable", "too_many_filter_values", "pagination_invalid_cursor", "pagination_offset_too_large", "auth_unauthenticated", "auth_forbidden", "plan_upgrade_required", "unknown_error", "boards_not_found", "board_page_not_found", "board_auth_account_not_found", "board_auth_email_taken", "board_auth_invalid_credentials", "board_auth_invalid_token", "board_auth_registration_disabled", "board_auth_token_expired", "board_development_origin_not_allowed_for_email", "board_development_origin_not_registered", "board_development_origin_requires_publishable_key", "sso_required", "board_auth_method_unavailable", "board_auth_sso_connection_not_found", "board_auth_sso_role_unavailable", "board_auth_sso_provider_unavailable", "board_auth_sso_browser_mismatch", "board_auth_sso_not_provisioned", "board_auth_sso_identity_linked_elsewhere", "invalid_current_password", "no_password", "same_email", "email_taken", "invalid_token", "board_password_required", "board_password_invalid", "jobs_not_found", "jobs_invalid_filter", "categories_not_found", "skills_not_found", "places_not_found", "locations_invalid_id", "locations_unavailable", "companies_not_found", "company_markets_not_found", "company_salary_not_found", "company_category_salary_not_found", "salaries_title_not_found", "salaries_skill_not_found", "salaries_location_not_found", "salaries_title_location_not_found", "salaries_skill_location_not_found", "blog_post_not_found", "blog_author_not_found", "blog_tag_not_found", "feeds_not_found", "feed_not_ready", "talent_not_found", "talent_directory_not_found", "talent_directory_restricted", "job_recommendations_not_found", "recommended_talent_not_found", "job_alert_not_found", "job_alerts_disabled", "candidate_alert_limit_reached", "candidate_alert_not_found", "candidate_entry_not_found", "candidate_handle_taken", "candidate_job_not_found", "candidate_notification_preference_paused", "candidate_profile_required", "resume_invalid_file", "resume_upload_forbidden", "applications_external_apply_only", "applications_country_not_allowed", "applications_guest_not_allowed", "applications_job_not_found", "applications_not_found", "applications_resume_invalid_file", "applications_unprocessable", "messaging_application_not_found", "messaging_application_not_linked", "messaging_blocked", "messaging_cannot_block_self", "messaging_cold_rule", "messaging_conversation_not_found", "messaging_disabled", "messaging_edit_window_expired", "messaging_message_deleted", "messaging_message_not_found", "messaging_not_author", "messaging_not_participant", "messaging_not_permitted", "messaging_not_recipient", "messaging_rate_limited", "messaging_recipient_not_found", "messaging_recipient_not_open", "messaging_unsend_window_expired", "employer_applicant_not_found", "employer_ats_unprocessable", "employer_checkout_failed", "employer_company_exists", "employer_free_email_website", "employer_company_name_taken", "employer_company_not_found", "employer_job_not_found", "employer_job_slug_taken", "employer_jobs_quota_exceeded", "membership_required", "employer_not_member", "employer_payment_required", "employer_pipeline_stage_not_found", "employer_member_not_found", "employer_invite_not_found", "not_company_admin", "not_company_member", "company_deletion_disabled", "last_admin", "already_member", "already_invited", "invalid_email", "invite_email_mismatch", "candidate_role", "job_not_published", "talent_list_not_found", "sourced_candidate_not_found", "sourced_convert_unavailable", "talent_list_full", "candidate_paywall_access_required", "paywall_already_active", "paywall_disabled", "paywall_invalid_checkout_session", "paywall_no_candidate_profile", "paywall_no_recurring_subscription", "paywall_offer_not_found", "talent_access_unavailable", "company_required", "already_on_plan", "talent_access_required", "messaging_talent_access_required", "stripe_not_connected", "membership_plan_not_found", "membership_seat_taken", "job_posting_logo_lookup_unavailable", "job_posting_logo_not_found", "job_posting_rejected"];
|
|
23
|
+
declare const BOARD_API_ERROR_CODES: readonly ["internal_error", "validation_bad_request", "validation_payload_too_large", "rate_limited", "rate_limit_unavailable", "search_unavailable", "search_filter_unavailable", "too_many_filter_values", "pagination_invalid_cursor", "pagination_offset_too_large", "auth_unauthenticated", "auth_forbidden", "plan_upgrade_required", "unknown_error", "boards_not_found", "board_page_not_found", "board_auth_account_not_found", "board_auth_email_taken", "board_auth_invalid_credentials", "board_auth_invalid_token", "board_auth_registration_disabled", "board_auth_token_expired", "board_development_origin_not_allowed_for_email", "board_development_origin_not_registered", "board_development_origin_requires_publishable_key", "sso_required", "board_auth_method_unavailable", "board_auth_sso_connection_not_found", "board_auth_sso_role_unavailable", "board_auth_sso_provider_unavailable", "board_auth_sso_browser_mismatch", "board_auth_sso_not_provisioned", "board_auth_sso_identity_linked_elsewhere", "invalid_current_password", "no_password", "same_email", "email_taken", "invalid_token", "board_password_required", "board_password_invalid", "jobs_not_found", "jobs_invalid_filter", "categories_not_found", "skills_not_found", "places_not_found", "locations_invalid_id", "locations_unavailable", "companies_not_found", "company_markets_not_found", "company_salary_not_found", "company_category_salary_not_found", "salaries_title_not_found", "salaries_skill_not_found", "salaries_location_not_found", "salaries_title_location_not_found", "salaries_skill_location_not_found", "blog_post_not_found", "blog_author_not_found", "blog_tag_not_found", "feeds_not_found", "feed_not_ready", "talent_not_found", "talent_directory_not_found", "talent_directory_restricted", "job_recommendations_not_found", "recommended_talent_not_found", "job_alert_not_found", "job_alerts_disabled", "candidate_alert_limit_reached", "candidate_alert_not_found", "candidate_entry_not_found", "candidate_handle_taken", "candidate_job_not_found", "candidate_notification_preference_paused", "candidate_profile_required", "resume_invalid_file", "resume_upload_forbidden", "applications_external_apply_only", "applications_country_not_allowed", "applications_guest_not_allowed", "applications_job_not_found", "applications_not_found", "applications_resume_invalid_file", "applications_unprocessable", "messaging_application_not_found", "messaging_application_not_linked", "messaging_blocked", "messaging_cannot_block_self", "messaging_cold_rule", "messaging_conversation_not_found", "messaging_disabled", "messaging_edit_window_expired", "messaging_message_deleted", "messaging_message_not_found", "messaging_not_author", "messaging_not_participant", "messaging_not_permitted", "messaging_not_recipient", "messaging_rate_limited", "messaging_recipient_not_found", "messaging_recipient_not_open", "messaging_unsend_window_expired", "employer_applicant_not_found", "employer_ats_unprocessable", "employer_checkout_failed", "employer_company_exists", "employer_free_email_website", "employer_company_name_taken", "employer_company_not_found", "employer_job_not_found", "employer_job_slug_taken", "employer_jobs_quota_exceeded", "membership_required", "employer_not_member", "employer_payment_required", "employer_pipeline_stage_not_found", "employer_member_not_found", "employer_invite_not_found", "not_company_admin", "not_company_member", "company_deletion_disabled", "last_admin", "already_member", "already_invited", "invalid_email", "invite_email_mismatch", "candidate_role", "job_not_published", "talent_list_not_found", "sourced_candidate_not_found", "sourced_convert_unavailable", "talent_list_full", "candidate_paywall_access_required", "paywall_already_active", "paywall_disabled", "paywall_invalid_checkout_session", "paywall_no_candidate_profile", "paywall_no_recurring_subscription", "paywall_offer_not_found", "talent_access_unavailable", "company_required", "already_on_plan", "talent_access_required", "messaging_talent_access_required", "stripe_not_connected", "membership_plan_not_found", "membership_seat_taken", "job_posting_logo_lookup_unavailable", "job_posting_logo_not_found", "job_posting_rejected", "products_not_found", "product_checkout_not_found", "product_reviews_disabled", "product_sold_out", "product_email_invalid", "product_email_blocked", "product_amount_below_minimum", "product_amount_invalid", "product_answers_invalid", "purchases_not_found", "purchase_file_not_found", "purchase_unavailable", "purchase_access_removed", "purchase_awaiting_payment", "purchase_refunded", "purchase_email_confirmation_required", "purchase_email_mismatch", "purchase_file_preparing", "purchase_download_limit_reached", "purchase_review_invalid", "purchase_download_all_unavailable"];
|
|
24
24
|
/**
|
|
25
25
|
* The known code set plus open string — new codes ship additively within v1,
|
|
26
26
|
* so exhaustive narrowing is intentionally impossible.
|
|
@@ -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.57.0";
|
|
206
206
|
|
|
207
207
|
type SavedJob = Schemas['SavedJob'];
|
|
208
208
|
type SavedJobsListQuery = {
|
|
@@ -1101,6 +1101,80 @@ type AccessCheckoutBody = Schemas['AccessCheckoutBody'];
|
|
|
1101
1101
|
type AccessPortalBody = Schemas['AccessPortalBody'];
|
|
1102
1102
|
type PaywallOfferListEnvelope = ListEnvelope<PaywallOffer>;
|
|
1103
1103
|
|
|
1104
|
+
/** A product card in `products.list`. */
|
|
1105
|
+
type ProductCard = Schemas['ProductCard'];
|
|
1106
|
+
/** A product page (`products.get`). */
|
|
1107
|
+
type Product = Schemas['ProductDetail'];
|
|
1108
|
+
/**
|
|
1109
|
+
* A row of a product page's facts box. `kind: 'text'` shows `value`;
|
|
1110
|
+
* `kind: 'check'` is a yes/no row: render a tick for `checked: true` and a
|
|
1111
|
+
* cross for `false`, not the words Yes or No.
|
|
1112
|
+
*/
|
|
1113
|
+
type ProductDetailRow = Schemas['ProductDetailRow'];
|
|
1114
|
+
/** The price model of a product. */
|
|
1115
|
+
type ProductPrice = Schemas['ProductPrice'];
|
|
1116
|
+
/** A question the buyer answers at checkout. */
|
|
1117
|
+
type ProductQuestion = Schemas['ProductQuestion'];
|
|
1118
|
+
/** A visible review (`products.reviews`). */
|
|
1119
|
+
type ProductReview = Schemas['ProductReview'];
|
|
1120
|
+
/** Body for `products.checkout`. */
|
|
1121
|
+
type ProductCheckoutBody = Schemas['ProductCheckoutBody'];
|
|
1122
|
+
/**
|
|
1123
|
+
* `products.checkout` result: `status: 'complete'` (free claim; send the
|
|
1124
|
+
* buyer to `downloadUrl`) or `status: 'open'` (mount the embedded Stripe
|
|
1125
|
+
* Checkout with `publishableKey`, `stripeAccountId` and `clientSecret`).
|
|
1126
|
+
*/
|
|
1127
|
+
type ProductCheckout = Schemas['ProductCheckout'];
|
|
1128
|
+
/** `products.getCheckout` result, after Stripe returns the buyer. */
|
|
1129
|
+
type ProductCheckoutStatus = Schemas['ProductCheckoutStatus'];
|
|
1130
|
+
/** A purchase's download page (`purchases.get`). */
|
|
1131
|
+
type Purchase = Schemas['Purchase'];
|
|
1132
|
+
/** `purchases.confirmEmail` result. */
|
|
1133
|
+
type PurchaseConfirmation = Schemas['PurchaseConfirmation'];
|
|
1134
|
+
/** `purchases.download` result: a signed, short-lived link. */
|
|
1135
|
+
type PurchaseDownload = Schemas['PurchaseDownload'];
|
|
1136
|
+
/** `purchases.downloadAll` result: a short-lived ZIP link. */
|
|
1137
|
+
type PurchaseDownloadAll = Schemas['PurchaseDownloadAll'];
|
|
1138
|
+
/** Body for `purchases.review`. */
|
|
1139
|
+
type PurchaseReviewBody = Schemas['PurchaseReviewBody'];
|
|
1140
|
+
/** `purchases.review` result. */
|
|
1141
|
+
type PurchaseReviewResult = Schemas['PurchaseReviewResult'];
|
|
1142
|
+
/** Body for `purchases.resend`. */
|
|
1143
|
+
type PurchaseResendBody = Schemas['PurchaseResendBody'];
|
|
1144
|
+
/** `purchases.resend` result (always accepted). */
|
|
1145
|
+
type PurchaseResendResult = Schemas['PurchaseResendResult'];
|
|
1146
|
+
/** One row of the signed-in user's library (`purchases.mine`). */
|
|
1147
|
+
type PurchaseSummary = Schemas['PurchaseSummary'];
|
|
1148
|
+
type ProductsListQuery = {
|
|
1149
|
+
/** Search words; every word must appear in the name or summary. */
|
|
1150
|
+
q?: string;
|
|
1151
|
+
price?: 'free' | 'paid';
|
|
1152
|
+
sort?: 'featured' | 'newest' | 'rating' | 'price_asc';
|
|
1153
|
+
cursor?: string;
|
|
1154
|
+
/** 1 to 50 (default 20). */
|
|
1155
|
+
limit?: number;
|
|
1156
|
+
};
|
|
1157
|
+
type ProductReviewsQuery = {
|
|
1158
|
+
cursor?: string;
|
|
1159
|
+
/** 1 to 50 (default 20). */
|
|
1160
|
+
limit?: number;
|
|
1161
|
+
};
|
|
1162
|
+
/**
|
|
1163
|
+
* Options on every purchase-token call. `confirmationToken` is the value a
|
|
1164
|
+
* previous response returned; a frontend that calls the API from its server
|
|
1165
|
+
* keeps it (for example in its own cookie) and passes it back so a shared
|
|
1166
|
+
* link does not ask for the email again.
|
|
1167
|
+
*/
|
|
1168
|
+
type PurchaseRequestOptions = {
|
|
1169
|
+
confirmationToken?: string | null;
|
|
1170
|
+
};
|
|
1171
|
+
type ProductCardListEnvelope = ListEnvelope<ProductCard>;
|
|
1172
|
+
type ProductReviewListEnvelope = ListEnvelope<ProductReview>;
|
|
1173
|
+
type PurchaseSummaryListEnvelope = ListEnvelope<PurchaseSummary>;
|
|
1174
|
+
|
|
1175
|
+
/** Header the API reads the email confirmation from. */
|
|
1176
|
+
declare const PURCHASE_CONFIRMATION_HEADER = "x-cavuno-purchase-confirmation";
|
|
1177
|
+
|
|
1104
1178
|
/** First-touch signup evidence, supplied only when analytics capture is allowed. */
|
|
1105
1179
|
type AudienceAttribution = Schemas['AudienceAttribution'];
|
|
1106
1180
|
|
|
@@ -4368,6 +4442,160 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
|
|
|
4368
4442
|
paywall: {
|
|
4369
4443
|
offers(options?: FetchOptions): Promise<PaywallOfferListEnvelope>;
|
|
4370
4444
|
};
|
|
4445
|
+
products: {
|
|
4446
|
+
list(query?: ProductsListQuery, options?: FetchOptions): Promise<ProductCardListEnvelope>;
|
|
4447
|
+
get(slug: string, options?: FetchOptions): Promise<{
|
|
4448
|
+
object: "product";
|
|
4449
|
+
slug: string;
|
|
4450
|
+
name: string;
|
|
4451
|
+
description: string | null;
|
|
4452
|
+
descriptionHtml: string | null;
|
|
4453
|
+
summary: string | null;
|
|
4454
|
+
details: components["schemas"]["ProductDetailRow"][];
|
|
4455
|
+
images: string[];
|
|
4456
|
+
price: components["schemas"]["ProductPrice"];
|
|
4457
|
+
soldOut: boolean;
|
|
4458
|
+
salesCount: number | null;
|
|
4459
|
+
refundPolicy: string | null;
|
|
4460
|
+
questions: components["schemas"]["ProductQuestion"][];
|
|
4461
|
+
contents: {
|
|
4462
|
+
displayName: string;
|
|
4463
|
+
description: string | null;
|
|
4464
|
+
kind: "file" | "link";
|
|
4465
|
+
fileType: string;
|
|
4466
|
+
pageCount: number | null;
|
|
4467
|
+
sizeBytes: number | null;
|
|
4468
|
+
}[];
|
|
4469
|
+
facts: {
|
|
4470
|
+
fileCount: number;
|
|
4471
|
+
linkCount: number;
|
|
4472
|
+
fileTypes: string[];
|
|
4473
|
+
pageCount: number | null;
|
|
4474
|
+
totalSizeBytes: number;
|
|
4475
|
+
};
|
|
4476
|
+
isListed: boolean;
|
|
4477
|
+
ratingsEnabled: boolean;
|
|
4478
|
+
rating: {
|
|
4479
|
+
average: number | null;
|
|
4480
|
+
count: number;
|
|
4481
|
+
histogram: number[];
|
|
4482
|
+
} | null;
|
|
4483
|
+
url: string;
|
|
4484
|
+
}>;
|
|
4485
|
+
reviews(slug: string, query?: ProductReviewsQuery, options?: FetchOptions): Promise<ProductReviewListEnvelope>;
|
|
4486
|
+
checkout(slug: string, body: ProductCheckoutBody, options?: FetchOptions): Promise<{
|
|
4487
|
+
object: "product_checkout";
|
|
4488
|
+
status: "complete" | "open";
|
|
4489
|
+
downloadUrl: string | null;
|
|
4490
|
+
purchaseToken: string | null;
|
|
4491
|
+
sessionId: string | null;
|
|
4492
|
+
clientSecret: string | null;
|
|
4493
|
+
stripeAccountId: string | null;
|
|
4494
|
+
publishableKey: string | null;
|
|
4495
|
+
}>;
|
|
4496
|
+
getCheckout(slug: string, sessionId: string, options?: FetchOptions): Promise<{
|
|
4497
|
+
object: "product_checkout_status";
|
|
4498
|
+
status: "awaiting_payment" | "paid" | "free" | "access_removed";
|
|
4499
|
+
downloadUrl: string | null;
|
|
4500
|
+
purchaseToken: string | null;
|
|
4501
|
+
}>;
|
|
4502
|
+
};
|
|
4503
|
+
purchases: {
|
|
4504
|
+
get(token: string, options?: Omit<RequestInit, "body"> & {
|
|
4505
|
+
body?: unknown;
|
|
4506
|
+
query?: Record<string, unknown>;
|
|
4507
|
+
} & PurchaseRequestOptions): Promise<{
|
|
4508
|
+
object: "purchase";
|
|
4509
|
+
status: "awaiting_payment" | "paid" | "free";
|
|
4510
|
+
product: {
|
|
4511
|
+
slug: string;
|
|
4512
|
+
name: string;
|
|
4513
|
+
thankYouMessage: string | null;
|
|
4514
|
+
};
|
|
4515
|
+
email: string;
|
|
4516
|
+
purchasedAt: string;
|
|
4517
|
+
amountCents: number;
|
|
4518
|
+
currency: string;
|
|
4519
|
+
downloadCap: number;
|
|
4520
|
+
files: ({
|
|
4521
|
+
kind: "file";
|
|
4522
|
+
fileId: string;
|
|
4523
|
+
displayName: string;
|
|
4524
|
+
description: string | null;
|
|
4525
|
+
contentType: string | null;
|
|
4526
|
+
sizeBytes: number | null;
|
|
4527
|
+
pageCount: number | null;
|
|
4528
|
+
state: "ready" | "preparing" | "limit_reached";
|
|
4529
|
+
downloadsUsed: number;
|
|
4530
|
+
downloadsLeft: number;
|
|
4531
|
+
stamped: boolean;
|
|
4532
|
+
} | {
|
|
4533
|
+
kind: "link";
|
|
4534
|
+
fileId: string;
|
|
4535
|
+
displayName: string;
|
|
4536
|
+
description: string | null;
|
|
4537
|
+
url: string;
|
|
4538
|
+
})[];
|
|
4539
|
+
downloadAllAvailable: boolean;
|
|
4540
|
+
stamping: "off" | "ready" | "preparing";
|
|
4541
|
+
receiptUrl: string | null;
|
|
4542
|
+
refundPolicy: string | null;
|
|
4543
|
+
ratingsEnabled: boolean;
|
|
4544
|
+
review: {
|
|
4545
|
+
stars: number;
|
|
4546
|
+
comment: string | null;
|
|
4547
|
+
displayName: string | null;
|
|
4548
|
+
hidden: boolean;
|
|
4549
|
+
reply: string | null;
|
|
4550
|
+
updatedAt: string;
|
|
4551
|
+
} | null;
|
|
4552
|
+
purchaseToken: string;
|
|
4553
|
+
confirmationToken: string | null;
|
|
4554
|
+
}>;
|
|
4555
|
+
confirmEmail(token: string, body: {
|
|
4556
|
+
email: string;
|
|
4557
|
+
}, options?: FetchOptions): Promise<{
|
|
4558
|
+
object: "purchase_confirmation";
|
|
4559
|
+
confirmationToken: string;
|
|
4560
|
+
}>;
|
|
4561
|
+
download(token: string, fileId: string, options?: Omit<RequestInit, "body"> & {
|
|
4562
|
+
body?: unknown;
|
|
4563
|
+
query?: Record<string, unknown>;
|
|
4564
|
+
} & PurchaseRequestOptions): Promise<{
|
|
4565
|
+
object: "purchase_download";
|
|
4566
|
+
url: string;
|
|
4567
|
+
expiresAt: string;
|
|
4568
|
+
fileName: string;
|
|
4569
|
+
downloadsLeft: number;
|
|
4570
|
+
confirmationToken: string | null;
|
|
4571
|
+
}>;
|
|
4572
|
+
downloadAll(token: string, options?: Omit<RequestInit, "body"> & {
|
|
4573
|
+
body?: unknown;
|
|
4574
|
+
query?: Record<string, unknown>;
|
|
4575
|
+
} & PurchaseRequestOptions): Promise<{
|
|
4576
|
+
object: "purchase_download_all";
|
|
4577
|
+
url: string;
|
|
4578
|
+
expiresAt: string;
|
|
4579
|
+
fileCount: number;
|
|
4580
|
+
totalBytes: number;
|
|
4581
|
+
preparing: string[];
|
|
4582
|
+
limitReached: string[];
|
|
4583
|
+
confirmationToken: string | null;
|
|
4584
|
+
}>;
|
|
4585
|
+
review(token: string, body: PurchaseReviewBody, options?: Omit<RequestInit, "body"> & {
|
|
4586
|
+
body?: unknown;
|
|
4587
|
+
query?: Record<string, unknown>;
|
|
4588
|
+
} & PurchaseRequestOptions): Promise<{
|
|
4589
|
+
id: string;
|
|
4590
|
+
object: "purchase_review";
|
|
4591
|
+
counted: boolean;
|
|
4592
|
+
}>;
|
|
4593
|
+
resend(body: PurchaseResendBody, options?: FetchOptions): Promise<{
|
|
4594
|
+
object: "purchase_resend";
|
|
4595
|
+
accepted: true;
|
|
4596
|
+
}>;
|
|
4597
|
+
mine(options?: FetchOptions): Promise<PurchaseSummaryListEnvelope>;
|
|
4598
|
+
};
|
|
4371
4599
|
sitemap: ((options?: FetchOptions) => Promise<{
|
|
4372
4600
|
object: "board_sitemap";
|
|
4373
4601
|
buckets: components["schemas"]["BoardSitemapBucketSummary"][];
|
|
@@ -4377,4 +4605,4 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
|
|
|
4377
4605
|
};
|
|
4378
4606
|
type BoardSdk = ReturnType<typeof createBoardClient>;
|
|
4379
4607
|
|
|
4380
|
-
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, CompanySalary, 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 JobAlertAnchorJob, type JobAlertConfirmation, type JobAlertDeletePreferenceInput, type JobAlertFiltersInput, type JobAlertFrequency, type JobAlertKind, type JobAlertManageQuery, type JobAlertManageResult, type JobAlertManageState, type JobAlertManageTokenInput, type JobAlertPreference, type JobAlertRemoteOption, type JobAlertResendResult, type JobAlertStoredFilters, type JobAlertSubscribeInput, type JobAlertSubscription, type JobAlertUpdatePreferenceInput, JobCapability, JobCardListEnvelope, JobCardSearchEnvelope, JobCollectionChoiceQuery, type JobPostingBillingOptions, type JobPostingBillingVerification, type JobPostingLogoResult, type JobPostingPlan, type JobPostingResult, JobRetrieveQuery, 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 PlaceSuggestQuery, 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 UpdateResumeBody, 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 };
|
|
4608
|
+
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, CompanySalary, 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 JobAlertAnchorJob, type JobAlertConfirmation, type JobAlertDeletePreferenceInput, type JobAlertFiltersInput, type JobAlertFrequency, type JobAlertKind, type JobAlertManageQuery, type JobAlertManageResult, type JobAlertManageState, type JobAlertManageTokenInput, type JobAlertPreference, type JobAlertRemoteOption, type JobAlertResendResult, type JobAlertStoredFilters, type JobAlertSubscribeInput, type JobAlertSubscription, type JobAlertUpdatePreferenceInput, JobCapability, JobCardListEnvelope, JobCardSearchEnvelope, JobCollectionChoiceQuery, type JobPostingBillingOptions, type JobPostingBillingVerification, type JobPostingLogoResult, type JobPostingPlan, type JobPostingResult, JobRetrieveQuery, 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, PURCHASE_CONFIRMATION_HEADER, type Paginator, type PaywallOffer, type PaywallOfferListEnvelope, type PlaceSuggestQuery, type PlacesListQuery, type Plan, type PlanListEnvelope, type PlansListQuery, type PreviewCompanyMemberInviteBody, type Product, type ProductCard, type ProductCardListEnvelope, type ProductCheckout, type ProductCheckoutBody, type ProductCheckoutStatus, type ProductDetailRow, type ProductPrice, type ProductQuestion, type ProductReview, type ProductReviewListEnvelope, type ProductReviewsQuery, type ProductsListQuery, type ProfileChoiceList, type ProfileChoiceQuery, type ProfileFieldEntity, type ProfileFieldValues, type ProfileObjectReferenceSelectionWrite, type ProfileObjectReferences, type PublicLocation, type PublicPlace, type PublicProfileFields, type PublicTaxonomyTerm, type Purchase, type PurchaseConfirmation, type PurchaseDownload, type PurchaseDownloadAll, type PurchaseRequestOptions, type PurchaseResendBody, type PurchaseResendResult, type PurchaseReviewBody, type PurchaseReviewResult, type PurchaseSummary, type PurchaseSummaryListEnvelope, 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 UpdateResumeBody, 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
|
@@ -25,6 +25,7 @@ __export(src_exports, {
|
|
|
25
25
|
BOARD_API_ERROR_CODES: () => BOARD_API_ERROR_CODES,
|
|
26
26
|
BoardApiError: () => BoardApiError,
|
|
27
27
|
BoardClient: () => BoardClient,
|
|
28
|
+
PURCHASE_CONFIRMATION_HEADER: () => PURCHASE_CONFIRMATION_HEADER,
|
|
28
29
|
REFRESH_TOKEN_KEY: () => REFRESH_TOKEN_KEY,
|
|
29
30
|
SDK_VERSION: () => SDK_VERSION,
|
|
30
31
|
SIGN_IN_REDIRECT_ERROR_CODES: () => SIGN_IN_REDIRECT_ERROR_CODES,
|
|
@@ -232,7 +233,31 @@ var BOARD_API_ERROR_CODES = [
|
|
|
232
233
|
// Public job posting
|
|
233
234
|
"job_posting_logo_lookup_unavailable",
|
|
234
235
|
"job_posting_logo_not_found",
|
|
235
|
-
"job_posting_rejected"
|
|
236
|
+
"job_posting_rejected",
|
|
237
|
+
// Digital products and purchases
|
|
238
|
+
"products_not_found",
|
|
239
|
+
"product_checkout_not_found",
|
|
240
|
+
"product_reviews_disabled",
|
|
241
|
+
"product_sold_out",
|
|
242
|
+
"product_email_invalid",
|
|
243
|
+
"product_email_blocked",
|
|
244
|
+
"product_amount_below_minimum",
|
|
245
|
+
"product_amount_invalid",
|
|
246
|
+
"product_answers_invalid",
|
|
247
|
+
"purchases_not_found",
|
|
248
|
+
"purchase_file_not_found",
|
|
249
|
+
"purchase_unavailable",
|
|
250
|
+
"purchase_access_removed",
|
|
251
|
+
"purchase_awaiting_payment",
|
|
252
|
+
"purchase_refunded",
|
|
253
|
+
"purchase_email_confirmation_required",
|
|
254
|
+
"purchase_email_mismatch",
|
|
255
|
+
"purchase_file_preparing",
|
|
256
|
+
// A permanent per-file cap (409), not a rate limit: `isRateLimited` is
|
|
257
|
+
// false for it, and retrying never helps.
|
|
258
|
+
"purchase_download_limit_reached",
|
|
259
|
+
"purchase_review_invalid",
|
|
260
|
+
"purchase_download_all_unavailable"
|
|
236
261
|
];
|
|
237
262
|
var BoardApiError = class extends Error {
|
|
238
263
|
status;
|
|
@@ -405,7 +430,7 @@ async function clearSession(storage) {
|
|
|
405
430
|
}
|
|
406
431
|
|
|
407
432
|
// src/version.ts
|
|
408
|
-
var SDK_VERSION = "4.
|
|
433
|
+
var SDK_VERSION = "4.57.0";
|
|
409
434
|
|
|
410
435
|
// src/client.ts
|
|
411
436
|
function isRawBody(body) {
|
|
@@ -3767,6 +3792,84 @@ function plansNamespace(client) {
|
|
|
3767
3792
|
};
|
|
3768
3793
|
}
|
|
3769
3794
|
|
|
3795
|
+
// src/namespaces/products.ts
|
|
3796
|
+
var productBase = (slug) => `/products/${encodeURIComponent(slug)}`;
|
|
3797
|
+
function productsNamespace(client) {
|
|
3798
|
+
return {
|
|
3799
|
+
/**
|
|
3800
|
+
* List the board's listed digital products. Filter with `price`,
|
|
3801
|
+
* search with `q`, sort with `sort`, page with `cursor`.
|
|
3802
|
+
*
|
|
3803
|
+
* @example
|
|
3804
|
+
* const { data, nextCursor } = await board.products.list({ price: 'free' });
|
|
3805
|
+
*/
|
|
3806
|
+
list(query, options) {
|
|
3807
|
+
return client.fetch("/products", {
|
|
3808
|
+
...options,
|
|
3809
|
+
query
|
|
3810
|
+
});
|
|
3811
|
+
},
|
|
3812
|
+
/**
|
|
3813
|
+
* A product page by slug. Unlisted products answer by their exact slug
|
|
3814
|
+
* with `isListed: false`: keep those out of listings and sitemaps.
|
|
3815
|
+
*
|
|
3816
|
+
* @example
|
|
3817
|
+
* const product = await board.products.get('salary-guide');
|
|
3818
|
+
*/
|
|
3819
|
+
get(slug, options) {
|
|
3820
|
+
return client.fetch(productBase(slug), options);
|
|
3821
|
+
},
|
|
3822
|
+
/**
|
|
3823
|
+
* A product's visible reviews, newest first. Empty when ratings are off.
|
|
3824
|
+
*
|
|
3825
|
+
* @example
|
|
3826
|
+
* const { data } = await board.products.reviews('salary-guide');
|
|
3827
|
+
*/
|
|
3828
|
+
reviews(slug, query, options) {
|
|
3829
|
+
return client.fetch(
|
|
3830
|
+
`${productBase(slug)}/reviews`,
|
|
3831
|
+
{ ...options, query }
|
|
3832
|
+
);
|
|
3833
|
+
},
|
|
3834
|
+
/**
|
|
3835
|
+
* Buy or claim a product. A free product returns `status: 'complete'`
|
|
3836
|
+
* with the download page path in `downloadUrl`; a paid one returns
|
|
3837
|
+
* `status: 'open'` with an embedded Stripe Checkout mount kit (it
|
|
3838
|
+
* expires after 30 minutes). Signed in, the purchase also lands in
|
|
3839
|
+
* `purchases.mine()`.
|
|
3840
|
+
*
|
|
3841
|
+
* @example
|
|
3842
|
+
* const result = await board.products.checkout('salary-guide', {
|
|
3843
|
+
* email: 'ada@example.com',
|
|
3844
|
+
* answers: [],
|
|
3845
|
+
* });
|
|
3846
|
+
* if (result.status === 'complete') redirect(result.downloadUrl!);
|
|
3847
|
+
*/
|
|
3848
|
+
checkout(slug, body, options) {
|
|
3849
|
+
return client.fetch(`${productBase(slug)}/checkout`, {
|
|
3850
|
+
...options,
|
|
3851
|
+
method: "POST",
|
|
3852
|
+
body
|
|
3853
|
+
});
|
|
3854
|
+
},
|
|
3855
|
+
/**
|
|
3856
|
+
* After Stripe returns the buyer (`session_id` on the return URL):
|
|
3857
|
+
* `awaiting_payment` until the payment lands, then `paid` with
|
|
3858
|
+
* `downloadUrl`. Poll briefly.
|
|
3859
|
+
*
|
|
3860
|
+
* @example
|
|
3861
|
+
* const s = await board.products.getCheckout('salary-guide', sessionId);
|
|
3862
|
+
* if (s.downloadUrl) redirect(s.downloadUrl);
|
|
3863
|
+
*/
|
|
3864
|
+
getCheckout(slug, sessionId, options) {
|
|
3865
|
+
return client.fetch(
|
|
3866
|
+
`${productBase(slug)}/checkout/${encodeURIComponent(sessionId)}`,
|
|
3867
|
+
options
|
|
3868
|
+
);
|
|
3869
|
+
}
|
|
3870
|
+
};
|
|
3871
|
+
}
|
|
3872
|
+
|
|
3770
3873
|
// src/namespaces/profile-fields.ts
|
|
3771
3874
|
function profileFieldsNamespace(client) {
|
|
3772
3875
|
return {
|
|
@@ -3787,6 +3890,125 @@ function profileFieldsNamespace(client) {
|
|
|
3787
3890
|
};
|
|
3788
3891
|
}
|
|
3789
3892
|
|
|
3893
|
+
// src/namespaces/purchases.ts
|
|
3894
|
+
var PURCHASE_CONFIRMATION_HEADER = "x-cavuno-purchase-confirmation";
|
|
3895
|
+
var purchaseBase = (token) => `/purchases/${encodeURIComponent(token)}`;
|
|
3896
|
+
function withConfirmation(options) {
|
|
3897
|
+
if (!options) return {};
|
|
3898
|
+
const { confirmationToken, ...rest } = options;
|
|
3899
|
+
if (!confirmationToken) return rest;
|
|
3900
|
+
const headers = new Headers(rest.headers);
|
|
3901
|
+
headers.set(PURCHASE_CONFIRMATION_HEADER, confirmationToken);
|
|
3902
|
+
return { ...rest, headers };
|
|
3903
|
+
}
|
|
3904
|
+
function purchasesNamespace(client) {
|
|
3905
|
+
return {
|
|
3906
|
+
/**
|
|
3907
|
+
* Open a purchase's download page by its token. A shared link asks for
|
|
3908
|
+
* the purchase email (`purchase_email_confirmation_required`, 403): call
|
|
3909
|
+
* `confirmEmail`, keep the `confirmationToken` it returns, and pass it
|
|
3910
|
+
* back on later calls.
|
|
3911
|
+
*
|
|
3912
|
+
* @example
|
|
3913
|
+
* const purchase = await board.purchases.get(token, { confirmationToken });
|
|
3914
|
+
*/
|
|
3915
|
+
get(token, options) {
|
|
3916
|
+
return client.fetch(
|
|
3917
|
+
purchaseBase(token),
|
|
3918
|
+
withConfirmation(options)
|
|
3919
|
+
);
|
|
3920
|
+
},
|
|
3921
|
+
/**
|
|
3922
|
+
* Confirm the purchase email on a shared link. Returns the
|
|
3923
|
+
* `confirmationToken` to pass on later calls for this purchase.
|
|
3924
|
+
*
|
|
3925
|
+
* @example
|
|
3926
|
+
* const { confirmationToken } = await board.purchases.confirmEmail(token, {
|
|
3927
|
+
* email: 'ada@example.com',
|
|
3928
|
+
* });
|
|
3929
|
+
*/
|
|
3930
|
+
confirmEmail(token, body, options) {
|
|
3931
|
+
return client.fetch(
|
|
3932
|
+
`${purchaseBase(token)}/confirm`,
|
|
3933
|
+
{ ...options, method: "POST", body }
|
|
3934
|
+
);
|
|
3935
|
+
},
|
|
3936
|
+
/**
|
|
3937
|
+
* Count one download of a file and get a signed, short-lived link.
|
|
3938
|
+
* `purchase_file_preparing` (409) while the buyer's stamped copy is made
|
|
3939
|
+
* (they are emailed when it is ready); `purchase_download_limit_reached`
|
|
3940
|
+
* (409) when no downloads are left (only the board can reset it).
|
|
3941
|
+
*
|
|
3942
|
+
* @example
|
|
3943
|
+
* const { url } = await board.purchases.download(token, fileId);
|
|
3944
|
+
*/
|
|
3945
|
+
download(token, fileId, options) {
|
|
3946
|
+
return client.fetch(
|
|
3947
|
+
`${purchaseBase(token)}/files/${encodeURIComponent(fileId)}/download`,
|
|
3948
|
+
{ ...withConfirmation(options), method: "POST" }
|
|
3949
|
+
);
|
|
3950
|
+
},
|
|
3951
|
+
/**
|
|
3952
|
+
* Count every ready file and get a short-lived link to one streamed ZIP.
|
|
3953
|
+
* Offer it only while the page's `downloadAllAvailable` is true: files
|
|
3954
|
+
* totalling more than 500 MB are refused, with nothing counted, as
|
|
3955
|
+
* `409 purchase_download_all_unavailable` (download them one by one).
|
|
3956
|
+
*
|
|
3957
|
+
* @example
|
|
3958
|
+
* const { url } = await board.purchases.downloadAll(token);
|
|
3959
|
+
*/
|
|
3960
|
+
downloadAll(token, options) {
|
|
3961
|
+
return client.fetch(
|
|
3962
|
+
`${purchaseBase(token)}/download-all`,
|
|
3963
|
+
{ ...withConfirmation(options), method: "POST" }
|
|
3964
|
+
);
|
|
3965
|
+
},
|
|
3966
|
+
/**
|
|
3967
|
+
* Write or replace the buyer's review (1 to 5 stars).
|
|
3968
|
+
*
|
|
3969
|
+
* @example
|
|
3970
|
+
* await board.purchases.review(token, { stars: 5, comment: 'Useful' });
|
|
3971
|
+
*/
|
|
3972
|
+
review(token, body, options) {
|
|
3973
|
+
return client.fetch(
|
|
3974
|
+
`${purchaseBase(token)}/review`,
|
|
3975
|
+
{
|
|
3976
|
+
...withConfirmation(options),
|
|
3977
|
+
method: "PUT",
|
|
3978
|
+
body
|
|
3979
|
+
}
|
|
3980
|
+
);
|
|
3981
|
+
},
|
|
3982
|
+
/**
|
|
3983
|
+
* "Email me this link again". Always accepted, whether or not the email
|
|
3984
|
+
* holds a purchase.
|
|
3985
|
+
*
|
|
3986
|
+
* @example
|
|
3987
|
+
* await board.purchases.resend({ email: 'ada@example.com' });
|
|
3988
|
+
*/
|
|
3989
|
+
resend(body, options) {
|
|
3990
|
+
return client.fetch("/purchases/resend", {
|
|
3991
|
+
...options,
|
|
3992
|
+
method: "POST",
|
|
3993
|
+
body
|
|
3994
|
+
});
|
|
3995
|
+
},
|
|
3996
|
+
/**
|
|
3997
|
+
* The signed-in user's purchases (by account and verified email), each
|
|
3998
|
+
* with its download page path. Requires a board user session.
|
|
3999
|
+
*
|
|
4000
|
+
* @example
|
|
4001
|
+
* const { data } = await board.purchases.mine();
|
|
4002
|
+
*/
|
|
4003
|
+
mine(options) {
|
|
4004
|
+
return client.fetch(
|
|
4005
|
+
"/me/purchases",
|
|
4006
|
+
options
|
|
4007
|
+
);
|
|
4008
|
+
}
|
|
4009
|
+
};
|
|
4010
|
+
}
|
|
4011
|
+
|
|
3790
4012
|
// src/namespaces/redirects.ts
|
|
3791
4013
|
function redirectsNamespace(client) {
|
|
3792
4014
|
return {
|
|
@@ -4251,6 +4473,8 @@ function createBoardClient(options) {
|
|
|
4251
4473
|
profileFields: profileFieldsNamespace(client),
|
|
4252
4474
|
plans: plansNamespace(client),
|
|
4253
4475
|
paywall: paywallNamespace(client),
|
|
4476
|
+
products: productsNamespace(client),
|
|
4477
|
+
purchases: purchasesNamespace(client),
|
|
4254
4478
|
sitemap: sitemapNamespace(client)
|
|
4255
4479
|
};
|
|
4256
4480
|
}
|