@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
|
@@ -2292,6 +2292,174 @@ interface components {
|
|
|
2292
2292
|
/** @description The `token` query parameter from the invite link (`/employers/invites/accept?token=…`). */
|
|
2293
2293
|
token: string;
|
|
2294
2294
|
};
|
|
2295
|
+
ProductCard: {
|
|
2296
|
+
/** @enum {string} */
|
|
2297
|
+
object: "product";
|
|
2298
|
+
slug: string;
|
|
2299
|
+
name: string;
|
|
2300
|
+
summary: string | null;
|
|
2301
|
+
coverImageUrl: string | null;
|
|
2302
|
+
price: components["schemas"]["ProductPrice"];
|
|
2303
|
+
rating: components["schemas"]["ProductRatingSummary"];
|
|
2304
|
+
soldOut: boolean;
|
|
2305
|
+
/** @description The product page path on the board (its route manifest words). */
|
|
2306
|
+
url: string;
|
|
2307
|
+
};
|
|
2308
|
+
ProductCheckout: {
|
|
2309
|
+
/** @enum {string} */
|
|
2310
|
+
object: "product_checkout";
|
|
2311
|
+
/**
|
|
2312
|
+
* @description `complete`: a free claim was recorded; send the buyer to `downloadUrl`. `open`: mount the embedded Stripe Checkout with the mount kit fields.
|
|
2313
|
+
* @enum {string}
|
|
2314
|
+
*/
|
|
2315
|
+
status: "complete" | "open";
|
|
2316
|
+
/** @description `complete` only: the download page path on the board, with its token. */
|
|
2317
|
+
downloadUrl: string | null;
|
|
2318
|
+
/** @description `complete` only: the purchase token for `GET /purchases/{token}`. */
|
|
2319
|
+
purchaseToken: string | null;
|
|
2320
|
+
sessionId: string | null;
|
|
2321
|
+
/** @description `open` only: the Checkout Session client secret. The session expires after 30 minutes. */
|
|
2322
|
+
clientSecret: string | null;
|
|
2323
|
+
/** @description `open` only: the board’s connected Stripe account. */
|
|
2324
|
+
stripeAccountId: string | null;
|
|
2325
|
+
/** @description `open` only: the Stripe publishable key for `loadStripe`. */
|
|
2326
|
+
publishableKey: string | null;
|
|
2327
|
+
};
|
|
2328
|
+
ProductCheckoutBody: {
|
|
2329
|
+
/** @description Where the download link and receipt are sent. */
|
|
2330
|
+
email: string;
|
|
2331
|
+
/**
|
|
2332
|
+
* @description Answers to the product’s `questions`, by question id.
|
|
2333
|
+
* @default []
|
|
2334
|
+
*/
|
|
2335
|
+
answers: {
|
|
2336
|
+
questionId: string;
|
|
2337
|
+
value: string | boolean;
|
|
2338
|
+
}[];
|
|
2339
|
+
/** @description Pay what you want: the amount the buyer chose, in cents. Omit to let the buyer choose on the Stripe page. `0` on a $0+ product claims it for free. */
|
|
2340
|
+
amountCents?: number;
|
|
2341
|
+
/** @description Free products: also subscribe the email to the board’s job alerts. Show it unticked. */
|
|
2342
|
+
jobAlertOptIn?: boolean;
|
|
2343
|
+
/** @description Paid products: the relative path Stripe returns the buyer to (`session_id` is appended). Defaults to the product page. */
|
|
2344
|
+
returnPath?: string;
|
|
2345
|
+
/** @description Honeypot. Render it hidden and leave it empty; a filled value is answered like a success and nothing is recorded or sent. */
|
|
2346
|
+
website?: string;
|
|
2347
|
+
};
|
|
2348
|
+
ProductCheckoutStatus: {
|
|
2349
|
+
/** @enum {string} */
|
|
2350
|
+
object: "product_checkout_status";
|
|
2351
|
+
/**
|
|
2352
|
+
* @description `awaiting_payment` until the payment webhook lands (poll briefly), then `paid` with the download page.
|
|
2353
|
+
* @enum {string}
|
|
2354
|
+
*/
|
|
2355
|
+
status: "awaiting_payment" | "paid" | "free" | "access_removed";
|
|
2356
|
+
/** @description `paid` only: the download page path on the board, with its token. */
|
|
2357
|
+
downloadUrl: string | null;
|
|
2358
|
+
/** @description `paid` only: the purchase token for `GET /purchases/{token}`. */
|
|
2359
|
+
purchaseToken: string | null;
|
|
2360
|
+
};
|
|
2361
|
+
ProductDetail: {
|
|
2362
|
+
/** @enum {string} */
|
|
2363
|
+
object: "product";
|
|
2364
|
+
slug: string;
|
|
2365
|
+
name: string;
|
|
2366
|
+
/** @description Plain-text description. When `descriptionHtml` is set, this is its text. */
|
|
2367
|
+
description: string | null;
|
|
2368
|
+
/** @description Formatted description as sanitized HTML: `h2`, `h3`, `p`, `br`, `strong`, `em`, `u`, `s`, `ul`, `ol`, `li`, `blockquote`, `hr`, `a` (`rel="noopener nofollow ugc"`, new tab) and `img` (images uploaded to this board only). `null` when the seller wrote none; show `description` instead. */
|
|
2369
|
+
descriptionHtml: string | null;
|
|
2370
|
+
summary: string | null;
|
|
2371
|
+
/** @description Operator facts shown on the product page. */
|
|
2372
|
+
details: components["schemas"]["ProductDetailRow"][];
|
|
2373
|
+
images: string[];
|
|
2374
|
+
price: components["schemas"]["ProductPrice"];
|
|
2375
|
+
soldOut: boolean;
|
|
2376
|
+
/** @description Sales so far, when the seller shows the number of sales; otherwise `null`. */
|
|
2377
|
+
salesCount: number | null;
|
|
2378
|
+
refundPolicy: string | null;
|
|
2379
|
+
questions: components["schemas"]["ProductQuestion"][];
|
|
2380
|
+
contents: {
|
|
2381
|
+
displayName: string;
|
|
2382
|
+
description: string | null;
|
|
2383
|
+
/** @enum {string} */
|
|
2384
|
+
kind: "file" | "link";
|
|
2385
|
+
/** @description File extension (`pdf`, `zip`, …) or `link`. */
|
|
2386
|
+
fileType: string;
|
|
2387
|
+
pageCount: number | null;
|
|
2388
|
+
sizeBytes: number | null;
|
|
2389
|
+
}[];
|
|
2390
|
+
facts: {
|
|
2391
|
+
fileCount: number;
|
|
2392
|
+
linkCount: number;
|
|
2393
|
+
fileTypes: string[];
|
|
2394
|
+
pageCount: number | null;
|
|
2395
|
+
totalSizeBytes: number;
|
|
2396
|
+
};
|
|
2397
|
+
/** @description `false` for an unlisted (link-only) product: keep it out of listings, sitemaps and search indexes. */
|
|
2398
|
+
isListed: boolean;
|
|
2399
|
+
ratingsEnabled: boolean;
|
|
2400
|
+
rating: {
|
|
2401
|
+
average: number | null;
|
|
2402
|
+
count: number;
|
|
2403
|
+
/** @description Counted reviews per star, 1 star first. */
|
|
2404
|
+
histogram: number[];
|
|
2405
|
+
} | null;
|
|
2406
|
+
/** @description The product page path on the board. */
|
|
2407
|
+
url: string;
|
|
2408
|
+
};
|
|
2409
|
+
/** @description A facts box row: `text` shows `value`; `check` is a yes/no row shown as a tick or a cross. */
|
|
2410
|
+
ProductDetailRow: {
|
|
2411
|
+
/** @enum {string} */
|
|
2412
|
+
kind: "text";
|
|
2413
|
+
label: string;
|
|
2414
|
+
value: string;
|
|
2415
|
+
} | {
|
|
2416
|
+
/** @enum {string} */
|
|
2417
|
+
kind: "check";
|
|
2418
|
+
label: string;
|
|
2419
|
+
/** @description Yes/no: show a tick for `true` and a cross for `false`, not a word. */
|
|
2420
|
+
checked: boolean;
|
|
2421
|
+
};
|
|
2422
|
+
ProductPrice: {
|
|
2423
|
+
/**
|
|
2424
|
+
* @description `free`: claimed with an email. `fixed`: one price. `pay_what_you_want`: the buyer chooses at least `minimumCents`.
|
|
2425
|
+
* @enum {string}
|
|
2426
|
+
*/
|
|
2427
|
+
kind: "free" | "fixed" | "pay_what_you_want";
|
|
2428
|
+
/** @description Lowercase ISO currency code; `null` for free products. */
|
|
2429
|
+
currency: string | null;
|
|
2430
|
+
/** @description The price (fixed), the minimum (pay what you want), or 0 (free). */
|
|
2431
|
+
amountCents: number;
|
|
2432
|
+
minimumCents?: number;
|
|
2433
|
+
suggestedCents?: number | null;
|
|
2434
|
+
};
|
|
2435
|
+
ProductQuestion: {
|
|
2436
|
+
id: string;
|
|
2437
|
+
/** @enum {string} */
|
|
2438
|
+
kind: "text" | "checkbox" | "dropdown";
|
|
2439
|
+
label: string;
|
|
2440
|
+
required: boolean;
|
|
2441
|
+
/** @description Dropdown choices; `null` for the other kinds. */
|
|
2442
|
+
options: string[] | null;
|
|
2443
|
+
};
|
|
2444
|
+
/** @description `null` when ratings are off for the product. */
|
|
2445
|
+
ProductRatingSummary: {
|
|
2446
|
+
/** @description Average stars, 1 to 5; `null` with no counted reviews. */
|
|
2447
|
+
average: number | null;
|
|
2448
|
+
count: number;
|
|
2449
|
+
} | null;
|
|
2450
|
+
ProductReview: {
|
|
2451
|
+
id: string;
|
|
2452
|
+
/** @enum {string} */
|
|
2453
|
+
object: "product_review";
|
|
2454
|
+
stars: number;
|
|
2455
|
+
comment: string | null;
|
|
2456
|
+
displayName: string | null;
|
|
2457
|
+
/** @description The operator’s public reply. */
|
|
2458
|
+
reply: string | null;
|
|
2459
|
+
replyAt: string | null;
|
|
2460
|
+
createdAt: string;
|
|
2461
|
+
updatedAt: string;
|
|
2462
|
+
};
|
|
2295
2463
|
ProfileChoiceList: {
|
|
2296
2464
|
data: {
|
|
2297
2465
|
id: string;
|
|
@@ -3169,6 +3337,148 @@ interface components {
|
|
|
3169
3337
|
/** @description The board password. */
|
|
3170
3338
|
password: string;
|
|
3171
3339
|
};
|
|
3340
|
+
Purchase: {
|
|
3341
|
+
/** @enum {string} */
|
|
3342
|
+
object: "purchase";
|
|
3343
|
+
/** @enum {string} */
|
|
3344
|
+
status: "awaiting_payment" | "paid" | "free";
|
|
3345
|
+
product: {
|
|
3346
|
+
slug: string;
|
|
3347
|
+
name: string;
|
|
3348
|
+
thankYouMessage: string | null;
|
|
3349
|
+
};
|
|
3350
|
+
email: string;
|
|
3351
|
+
purchasedAt: string;
|
|
3352
|
+
amountCents: number;
|
|
3353
|
+
currency: string;
|
|
3354
|
+
/** @description Downloads allowed per file. */
|
|
3355
|
+
downloadCap: number;
|
|
3356
|
+
files: ({
|
|
3357
|
+
/** @enum {string} */
|
|
3358
|
+
kind: "file";
|
|
3359
|
+
fileId: string;
|
|
3360
|
+
displayName: string;
|
|
3361
|
+
description: string | null;
|
|
3362
|
+
contentType: string | null;
|
|
3363
|
+
sizeBytes: number | null;
|
|
3364
|
+
pageCount: number | null;
|
|
3365
|
+
/**
|
|
3366
|
+
* @description `preparing`: the buyer’s personal stamped copy is being made (they are emailed when it is ready). `limit_reached`: no downloads left.
|
|
3367
|
+
* @enum {string}
|
|
3368
|
+
*/
|
|
3369
|
+
state: "ready" | "preparing" | "limit_reached";
|
|
3370
|
+
downloadsUsed: number;
|
|
3371
|
+
downloadsLeft: number;
|
|
3372
|
+
/** @description The buyer gets their own stamped copy of this PDF. */
|
|
3373
|
+
stamped: boolean;
|
|
3374
|
+
} | {
|
|
3375
|
+
/** @enum {string} */
|
|
3376
|
+
kind: "link";
|
|
3377
|
+
fileId: string;
|
|
3378
|
+
displayName: string;
|
|
3379
|
+
description: string | null;
|
|
3380
|
+
url: string;
|
|
3381
|
+
})[];
|
|
3382
|
+
/** @description Whether to offer Download all: a file is ready to download and the ready files total at most 500 MB. Above 500 MB the buyer downloads the files one by one. */
|
|
3383
|
+
downloadAllAvailable: boolean;
|
|
3384
|
+
/** @enum {string} */
|
|
3385
|
+
stamping: "off" | "ready" | "preparing";
|
|
3386
|
+
/** @description The Stripe receipt or paid invoice; `null` for free claims. */
|
|
3387
|
+
receiptUrl: string | null;
|
|
3388
|
+
refundPolicy: string | null;
|
|
3389
|
+
ratingsEnabled: boolean;
|
|
3390
|
+
/** @description The buyer’s own review, if any. */
|
|
3391
|
+
review: {
|
|
3392
|
+
stars: number;
|
|
3393
|
+
comment: string | null;
|
|
3394
|
+
displayName: string | null;
|
|
3395
|
+
hidden: boolean;
|
|
3396
|
+
reply: string | null;
|
|
3397
|
+
updatedAt: string;
|
|
3398
|
+
} | null;
|
|
3399
|
+
purchaseToken: string;
|
|
3400
|
+
/** @description Send it back in `X-Cavuno-Purchase-Confirmation` on later requests for this purchase; `null` when the request already carried it. */
|
|
3401
|
+
confirmationToken: string | null;
|
|
3402
|
+
};
|
|
3403
|
+
PurchaseConfirmBody: {
|
|
3404
|
+
email: string;
|
|
3405
|
+
};
|
|
3406
|
+
PurchaseConfirmation: {
|
|
3407
|
+
/** @enum {string} */
|
|
3408
|
+
object: "purchase_confirmation";
|
|
3409
|
+
confirmationToken: string;
|
|
3410
|
+
};
|
|
3411
|
+
PurchaseDownload: {
|
|
3412
|
+
/** @enum {string} */
|
|
3413
|
+
object: "purchase_download";
|
|
3414
|
+
/** @description A signed, short-lived link that downloads as an attachment. */
|
|
3415
|
+
url: string;
|
|
3416
|
+
expiresAt: string;
|
|
3417
|
+
/** @description The name it downloads under: the file's `displayName`, with the file's extension added when that name has none. */
|
|
3418
|
+
fileName: string;
|
|
3419
|
+
downloadsLeft: number;
|
|
3420
|
+
confirmationToken: string | null;
|
|
3421
|
+
};
|
|
3422
|
+
PurchaseDownloadAll: {
|
|
3423
|
+
/** @enum {string} */
|
|
3424
|
+
object: "purchase_download_all";
|
|
3425
|
+
/** @description A short-lived link to the streamed ZIP of every ready file. */
|
|
3426
|
+
url: string;
|
|
3427
|
+
expiresAt: string;
|
|
3428
|
+
fileCount: number;
|
|
3429
|
+
totalBytes: number;
|
|
3430
|
+
/** @description File ids left out while their stamped copy is made. */
|
|
3431
|
+
preparing: string[];
|
|
3432
|
+
/** @description File ids left out because no downloads are left. */
|
|
3433
|
+
limitReached: string[];
|
|
3434
|
+
confirmationToken: string | null;
|
|
3435
|
+
};
|
|
3436
|
+
PurchaseResendBody: {
|
|
3437
|
+
email: string;
|
|
3438
|
+
/** @description Only this product’s purchases; omit for all of them. */
|
|
3439
|
+
productSlug?: string;
|
|
3440
|
+
/** @description Honeypot. Render it hidden and leave it empty. */
|
|
3441
|
+
website?: string;
|
|
3442
|
+
};
|
|
3443
|
+
PurchaseResendResult: {
|
|
3444
|
+
/** @enum {string} */
|
|
3445
|
+
object: "purchase_resend";
|
|
3446
|
+
/** @enum {boolean} */
|
|
3447
|
+
accepted: true;
|
|
3448
|
+
};
|
|
3449
|
+
PurchaseReviewBody: {
|
|
3450
|
+
stars: number;
|
|
3451
|
+
comment?: string;
|
|
3452
|
+
/** @description The name shown with the review; omit to stay anonymous. */
|
|
3453
|
+
displayName?: string;
|
|
3454
|
+
};
|
|
3455
|
+
PurchaseReviewResult: {
|
|
3456
|
+
id: string;
|
|
3457
|
+
/** @enum {string} */
|
|
3458
|
+
object: "purchase_review";
|
|
3459
|
+
/** @description Whether the stars count toward the product rating. */
|
|
3460
|
+
counted: boolean;
|
|
3461
|
+
};
|
|
3462
|
+
PurchaseSummary: {
|
|
3463
|
+
id: string;
|
|
3464
|
+
/** @enum {string} */
|
|
3465
|
+
object: "purchase_summary";
|
|
3466
|
+
product: {
|
|
3467
|
+
slug: string;
|
|
3468
|
+
name: string;
|
|
3469
|
+
coverImageUrl: string | null;
|
|
3470
|
+
};
|
|
3471
|
+
/** @enum {string} */
|
|
3472
|
+
status: "paid" | "free";
|
|
3473
|
+
purchasedAt: string;
|
|
3474
|
+
amountCents: number;
|
|
3475
|
+
currency: string;
|
|
3476
|
+
/** @description `false` while the product cannot be delivered (taken down, or the board is closed). */
|
|
3477
|
+
available: boolean;
|
|
3478
|
+
purchaseToken: string;
|
|
3479
|
+
/** @description The download page path on the board. */
|
|
3480
|
+
downloadUrl: string;
|
|
3481
|
+
};
|
|
3172
3482
|
ReadReceipt: {
|
|
3173
3483
|
/** @enum {string} */
|
|
3174
3484
|
object: "read_receipt";
|
package/dist/bin.mjs
CHANGED
|
@@ -92,6 +92,12 @@ function blogAuthorPath(authorSlug) {
|
|
|
92
92
|
function talentProfilePath(handle) {
|
|
93
93
|
return `/p/${encodePathSegment(handle)}`;
|
|
94
94
|
}
|
|
95
|
+
function productPath(productSlug) {
|
|
96
|
+
return `/products/${encodePathSegment(productSlug)}`;
|
|
97
|
+
}
|
|
98
|
+
function purchasePath(purchaseToken) {
|
|
99
|
+
return `/purchases/${encodePathSegment(purchaseToken)}`;
|
|
100
|
+
}
|
|
95
101
|
var BOARD_PATHS = {
|
|
96
102
|
home: "/",
|
|
97
103
|
jobs: "/jobs",
|
|
@@ -116,7 +122,11 @@ var BOARD_PATHS = {
|
|
|
116
122
|
* one definition.
|
|
117
123
|
*/
|
|
118
124
|
alertsManage: "/alerts/manage",
|
|
119
|
-
alertsConfirm: "/alerts/confirm"
|
|
125
|
+
alertsConfirm: "/alerts/confirm",
|
|
126
|
+
/** The digital product catalogue. */
|
|
127
|
+
products: "/products",
|
|
128
|
+
/** A signed-in board user's purchased products. */
|
|
129
|
+
mePurchases: "/me/purchases"
|
|
120
130
|
};
|
|
121
131
|
|
|
122
132
|
// src/route-contract/roles.ts
|
|
@@ -135,6 +145,8 @@ var ROLE_PARAM_REGISTRY = {
|
|
|
135
145
|
blogTag: ["tagSlug"],
|
|
136
146
|
blogAuthor: ["authorSlug"],
|
|
137
147
|
talentProfile: ["handle"],
|
|
148
|
+
product: ["productSlug"],
|
|
149
|
+
purchase: ["purchaseToken"],
|
|
138
150
|
home: [],
|
|
139
151
|
jobs: [],
|
|
140
152
|
companies: [],
|
|
@@ -152,7 +164,9 @@ var ROLE_PARAM_REGISTRY = {
|
|
|
152
164
|
talent: [],
|
|
153
165
|
employers: [],
|
|
154
166
|
alertsManage: [],
|
|
155
|
-
alertsConfirm: []
|
|
167
|
+
alertsConfirm: [],
|
|
168
|
+
products: [],
|
|
169
|
+
mePurchases: []
|
|
156
170
|
};
|
|
157
171
|
var ALL_ROLES = Object.keys(
|
|
158
172
|
ROLE_PARAM_REGISTRY
|
|
@@ -175,6 +189,8 @@ var CANONICAL_MANIFEST = {
|
|
|
175
189
|
blogTag: blogTagPath(":tagSlug"),
|
|
176
190
|
blogAuthor: blogAuthorPath(":authorSlug"),
|
|
177
191
|
talentProfile: talentProfilePath(":handle"),
|
|
192
|
+
product: productPath(":productSlug"),
|
|
193
|
+
purchase: purchasePath(":purchaseToken"),
|
|
178
194
|
home: BOARD_PATHS.home,
|
|
179
195
|
jobs: BOARD_PATHS.jobs,
|
|
180
196
|
companies: BOARD_PATHS.companies,
|
|
@@ -192,7 +208,9 @@ var CANONICAL_MANIFEST = {
|
|
|
192
208
|
talent: BOARD_PATHS.talent,
|
|
193
209
|
employers: BOARD_PATHS.employers,
|
|
194
210
|
alertsManage: "/alerts/manage",
|
|
195
|
-
alertsConfirm: "/alerts/confirm"
|
|
211
|
+
alertsConfirm: "/alerts/confirm",
|
|
212
|
+
products: BOARD_PATHS.products,
|
|
213
|
+
mePurchases: BOARD_PATHS.mePurchases
|
|
196
214
|
}
|
|
197
215
|
};
|
|
198
216
|
|
|
@@ -229,7 +247,11 @@ var ROLE_INDEX_PATHS = {
|
|
|
229
247
|
talent: BOARD_PATHS.talent,
|
|
230
248
|
employers: BOARD_PATHS.employers,
|
|
231
249
|
alertsManage: BOARD_PATHS.home,
|
|
232
|
-
alertsConfirm: BOARD_PATHS.home
|
|
250
|
+
alertsConfirm: BOARD_PATHS.home,
|
|
251
|
+
product: BOARD_PATHS.products,
|
|
252
|
+
purchase: BOARD_PATHS.home,
|
|
253
|
+
products: BOARD_PATHS.products,
|
|
254
|
+
mePurchases: BOARD_PATHS.home
|
|
233
255
|
};
|
|
234
256
|
function splitSegments(path) {
|
|
235
257
|
const withoutLeading = path.startsWith("/") ? path.slice(1) : path;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { S as Schemas } from './_spec-
|
|
2
|
-
import { L as ListEnvelope, v as RelatedSearch, b as CustomFieldFilter, O as ObjectReferenceFilter, a as JobCapability } from './jobs-
|
|
1
|
+
import { S as Schemas } from './_spec-CDYDY0hB.js';
|
|
2
|
+
import { L as ListEnvelope, v as RelatedSearch, b as CustomFieldFilter, O as ObjectReferenceFilter, a as JobCapability } from './jobs-B-NPmaV0.js';
|
|
3
3
|
|
|
4
4
|
type PublicCompany = Schemas['CompanyPublic'];
|
|
5
5
|
/**
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { S as Schemas } from './_spec-
|
|
2
|
-
import { L as ListEnvelope, v as RelatedSearch, b as CustomFieldFilter, O as ObjectReferenceFilter, a as JobCapability } from './jobs-
|
|
1
|
+
import { S as Schemas } from './_spec-CDYDY0hB.mjs';
|
|
2
|
+
import { L as ListEnvelope, v as RelatedSearch, b as CustomFieldFilter, O as ObjectReferenceFilter, a as JobCapability } from './jobs-CgmHLS8j.mjs';
|
|
3
3
|
|
|
4
4
|
type PublicCompany = Schemas['CompanyPublic'];
|
|
5
5
|
/**
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { P as PublicBoard, a as CompanyCategorySalary, b as CompanySalary, L as LocationSalaryDetail, S as SkillSalaryDetail, T as TitleSalaryDetail } from './board-
|
|
2
|
-
import { P as PublicJob } from './jobs-
|
|
1
|
+
import { P as PublicBoard, a as CompanyCategorySalary, b as CompanySalary, L as LocationSalaryDetail, S as SkillSalaryDetail, T as TitleSalaryDetail } from './board-CmQox8FZ.js';
|
|
2
|
+
import { P as PublicJob } from './jobs-B-NPmaV0.js';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* Wire enum for `salaryTimeframe`. Defined here (not re-exported from any
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { P as PublicBoard, a as CompanyCategorySalary, b as CompanySalary, L as LocationSalaryDetail, S as SkillSalaryDetail, T as TitleSalaryDetail } from './board-
|
|
2
|
-
import { P as PublicJob } from './jobs-
|
|
1
|
+
import { P as PublicBoard, a as CompanyCategorySalary, b as CompanySalary, L as LocationSalaryDetail, S as SkillSalaryDetail, T as TitleSalaryDetail } from './board-DbBBz7Pv.mjs';
|
|
2
|
+
import { P as PublicJob } from './jobs-CgmHLS8j.mjs';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* Wire enum for `salaryTimeframe`. Defined here (not re-exported from any
|