@cavuno/board 4.61.0 → 4.63.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 +32 -0
- package/dist/{_spec-B6YOcfhm.d.mts → _spec-D1Qg_Twd.d.mts} +109 -3
- package/dist/{_spec-B6YOcfhm.d.ts → _spec-D1Qg_Twd.d.ts} +109 -3
- package/dist/bin.mjs +12 -5
- package/dist/{blog-Iz3vKyol.d.ts → blog-Dp2jAVVM.d.ts} +1 -1
- package/dist/{blog-BazgjIMl.d.mts → blog-e0YbZBjg.d.mts} +1 -1
- package/dist/{board-Bd7H1jwl.d.ts → board-BeNZLOYC.d.ts} +2 -2
- package/dist/{board-BwOeOQ6v.d.mts → board-Cc3wbTKI.d.mts} +2 -2
- package/dist/{breadcrumbs-pccdTbvQ.d.ts → breadcrumbs-BOFeIYEX.d.ts} +2 -2
- package/dist/{breadcrumbs-DxlE86G-.d.mts → breadcrumbs-C5WjB8jm.d.mts} +2 -2
- package/dist/browser/cavuno-board.global.min.js +1 -1
- package/dist/{chunk-R3QB3WM6.mjs → chunk-4KMZZR3A.mjs} +1 -1
- package/dist/{chunk-M4CX64RC.mjs → chunk-COHTNSU2.mjs} +9 -1
- package/dist/{chunk-LO7D3AIX.mjs → chunk-HHMY3W7T.mjs} +7 -4
- package/dist/{chunk-MSY7ERBY.mjs → chunk-RAE63XH5.mjs} +3 -1
- package/dist/doctor.js +12 -5
- package/dist/doctor.mjs +12 -5
- 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 +3 -1
- package/dist/format.mjs +2 -2
- package/dist/go.js +3 -1
- package/dist/go.mjs +1 -1
- package/dist/index.d.mts +114 -13
- package/dist/index.d.ts +114 -13
- package/dist/index.js +82 -6
- package/dist/index.mjs +74 -6
- package/dist/{jobs-DrDmqiBb.d.mts → jobs-CClqlUld.d.mts} +1 -1
- package/dist/{jobs-BwxCoTRJ.d.ts → jobs-D04ngjCP.d.ts} +1 -1
- package/dist/paths.d.mts +2 -0
- package/dist/paths.d.ts +2 -0
- package/dist/paths.js +3 -1
- package/dist/paths.mjs +1 -1
- package/dist/{roles-B_d0igKI.d.mts → roles-D745cT5b.d.mts} +3 -1
- package/dist/{roles-B_d0igKI.d.ts → roles-D745cT5b.d.ts} +3 -1
- package/dist/route-contract.d.mts +2 -2
- package/dist/route-contract.d.ts +2 -2
- package/dist/route-contract.js +9 -4
- package/dist/route-contract.mjs +2 -2
- package/dist/{search-CbGEG89W.d.mts → search-BtrwcLkc.d.mts} +1 -1
- package/dist/{search-D4Uo2bRh.d.ts → search-DZeNdYN6.d.ts} +1 -1
- package/dist/{seo-CnqvU41p.d.ts → seo-DLoyZRTo.d.ts} +1 -1
- package/dist/{seo-DiJBveAA.d.mts → seo-LfpgbdnO.d.mts} +1 -1
- package/dist/seo-files.d.mts +2 -2
- package/dist/seo-files.d.ts +2 -2
- package/dist/seo.d.mts +6 -6
- package/dist/seo.d.ts +6 -6
- package/dist/seo.js +3 -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 +3 -1
- package/dist/sitemap.mjs +2 -2
- 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 +9 -4
- package/dist/well-known.mjs +2 -2
- package/package.json +1 -1
- package/skills/cavuno-board-products/SKILL.md +30 -1
- package/skills/manifest.json +2 -2
package/dist/index.js
CHANGED
|
@@ -53,7 +53,8 @@ __export(src_exports, {
|
|
|
53
53
|
parseOAuthCompletion: () => parseOAuthCompletion,
|
|
54
54
|
resolveApplyAction: () => resolveApplyAction,
|
|
55
55
|
resolveApplyDecision: () => resolveApplyDecision,
|
|
56
|
-
ssoLinkProofBindingStore: () => ssoLinkProofBindingStore
|
|
56
|
+
ssoLinkProofBindingStore: () => ssoLinkProofBindingStore,
|
|
57
|
+
tipCoverFeeCents: () => tipCoverFeeCents
|
|
57
58
|
});
|
|
58
59
|
module.exports = __toCommonJS(src_exports);
|
|
59
60
|
|
|
@@ -259,7 +260,15 @@ var BOARD_API_ERROR_CODES = [
|
|
|
259
260
|
// false for it, and retrying never helps.
|
|
260
261
|
"purchase_download_limit_reached",
|
|
261
262
|
"purchase_review_invalid",
|
|
262
|
-
"purchase_download_all_unavailable"
|
|
263
|
+
"purchase_download_all_unavailable",
|
|
264
|
+
// Tip jar
|
|
265
|
+
"tip_jar_not_found",
|
|
266
|
+
"tip_checkout_not_found",
|
|
267
|
+
"tip_amount_below_minimum",
|
|
268
|
+
"tip_amount_invalid",
|
|
269
|
+
"tip_note_not_allowed",
|
|
270
|
+
"tip_note_too_long",
|
|
271
|
+
"tip_fee_cover_not_allowed"
|
|
263
272
|
];
|
|
264
273
|
var BoardApiError = class extends Error {
|
|
265
274
|
status;
|
|
@@ -432,7 +441,7 @@ async function clearSession(storage) {
|
|
|
432
441
|
}
|
|
433
442
|
|
|
434
443
|
// src/version.ts
|
|
435
|
-
var SDK_VERSION = "4.
|
|
444
|
+
var SDK_VERSION = "4.63.0";
|
|
436
445
|
|
|
437
446
|
// src/client.ts
|
|
438
447
|
function isRawBody(body) {
|
|
@@ -1831,11 +1840,15 @@ function meNamespace(client) {
|
|
|
1831
1840
|
);
|
|
1832
1841
|
},
|
|
1833
1842
|
/**
|
|
1834
|
-
* List the
|
|
1835
|
-
* education and collection entries)
|
|
1843
|
+
* List the items on my profile that can be verified (experience,
|
|
1844
|
+
* education and collection entries) with their status. Each row's
|
|
1845
|
+
* `nextStep` says which step the item allows now (an email check
|
|
1846
|
+
* can still be rate limited), and `emailCheck` is set while an
|
|
1847
|
+
* emailed code is waiting to be typed.
|
|
1836
1848
|
*
|
|
1837
1849
|
* @example
|
|
1838
1850
|
* const { data } = await board.me.profile.listVerifications();
|
|
1851
|
+
* const canEmail = data.filter((item) => item.nextStep === 'email');
|
|
1839
1852
|
*/
|
|
1840
1853
|
listVerifications(options) {
|
|
1841
1854
|
return client.fetch(
|
|
@@ -2069,7 +2082,10 @@ function meNamespace(client) {
|
|
|
2069
2082
|
{ ...options, method: "PUT", body }
|
|
2070
2083
|
);
|
|
2071
2084
|
},
|
|
2072
|
-
/**
|
|
2085
|
+
/**
|
|
2086
|
+
* List the items on one of my companies that can be verified, with
|
|
2087
|
+
* their status and `nextStep`.
|
|
2088
|
+
*/
|
|
2073
2089
|
listVerifications(slug, options) {
|
|
2074
2090
|
return client.fetch(
|
|
2075
2091
|
`/me/companies/${encodeURIComponent(slug)}/verifications`,
|
|
@@ -4486,6 +4502,55 @@ function taxonomyNamespace(client) {
|
|
|
4486
4502
|
};
|
|
4487
4503
|
}
|
|
4488
4504
|
|
|
4505
|
+
// src/namespaces/tip-jar.ts
|
|
4506
|
+
function tipJarNamespace(client) {
|
|
4507
|
+
return {
|
|
4508
|
+
/**
|
|
4509
|
+
* The board's tip page. A `tip_jar_not_found` error (404) means the
|
|
4510
|
+
* board has no tip jar or it is archived: hide the page and its links.
|
|
4511
|
+
*
|
|
4512
|
+
* @example
|
|
4513
|
+
* const jar = await board.tipJar.get();
|
|
4514
|
+
* jar.suggestedCents; // [300, 500, 1000]
|
|
4515
|
+
*/
|
|
4516
|
+
get(options) {
|
|
4517
|
+
return client.fetch("/tip-jar", options);
|
|
4518
|
+
},
|
|
4519
|
+
/**
|
|
4520
|
+
* Start a tip: returns an embedded Stripe Checkout mount kit (it expires
|
|
4521
|
+
* after 30 minutes). Signed in, the visitor's email is filled in on
|
|
4522
|
+
* Stripe's form. `amountCents` is at least `minimumCents`; send a `note`
|
|
4523
|
+
* only when `allowNote` is true.
|
|
4524
|
+
*
|
|
4525
|
+
* @example
|
|
4526
|
+
* const kit = await board.tipJar.checkout({ amountCents: 500 });
|
|
4527
|
+
* // mount Stripe's embedded checkout with kit.clientSecret
|
|
4528
|
+
*/
|
|
4529
|
+
checkout(body, options) {
|
|
4530
|
+
return client.fetch("/tip-jar/checkout", {
|
|
4531
|
+
...options,
|
|
4532
|
+
method: "POST",
|
|
4533
|
+
body
|
|
4534
|
+
});
|
|
4535
|
+
},
|
|
4536
|
+
/**
|
|
4537
|
+
* After Stripe returns the tipper (`session_id` on the return URL):
|
|
4538
|
+
* `processing` while a delayed payment clears, then `paid`, with the
|
|
4539
|
+
* amount, the masked receipt email and the thank-you message.
|
|
4540
|
+
*
|
|
4541
|
+
* @example
|
|
4542
|
+
* const s = await board.tipJar.getCheckout(sessionId);
|
|
4543
|
+
* if (s.status === 'paid') showThanks(s.thankYouMessage);
|
|
4544
|
+
*/
|
|
4545
|
+
getCheckout(sessionId, options) {
|
|
4546
|
+
return client.fetch(
|
|
4547
|
+
`/tip-jar/checkout/${encodeURIComponent(sessionId)}`,
|
|
4548
|
+
options
|
|
4549
|
+
);
|
|
4550
|
+
}
|
|
4551
|
+
};
|
|
4552
|
+
}
|
|
4553
|
+
|
|
4489
4554
|
// src/pagination.ts
|
|
4490
4555
|
function paginate(listFn, query, options) {
|
|
4491
4556
|
async function* pages() {
|
|
@@ -4604,6 +4669,16 @@ function parseJobAlertUnsubscribeParams(url) {
|
|
|
4604
4669
|
return { alertId, emailId };
|
|
4605
4670
|
}
|
|
4606
4671
|
|
|
4672
|
+
// src/tip-cover-fee.ts
|
|
4673
|
+
function tipCoverFeeCents(amountCents, coverFee) {
|
|
4674
|
+
if (!coverFee || !Number.isInteger(amountCents) || amountCents <= 0) {
|
|
4675
|
+
return 0;
|
|
4676
|
+
}
|
|
4677
|
+
const keepBps = 1e4 - coverFee.percentBps;
|
|
4678
|
+
const numerator = (amountCents + coverFee.fixedMinor) * 1e4;
|
|
4679
|
+
return Math.floor((numerator + keepBps - 1) / keepBps) - amountCents;
|
|
4680
|
+
}
|
|
4681
|
+
|
|
4607
4682
|
// src/index.ts
|
|
4608
4683
|
function createBoardClient(options) {
|
|
4609
4684
|
const client = new BoardClient({
|
|
@@ -4667,6 +4742,7 @@ function createBoardClient(options) {
|
|
|
4667
4742
|
paywall: paywallNamespace(client),
|
|
4668
4743
|
products: productsNamespace(client),
|
|
4669
4744
|
purchases: purchasesNamespace(client),
|
|
4745
|
+
tipJar: tipJarNamespace(client),
|
|
4670
4746
|
sitemap: sitemapNamespace(client)
|
|
4671
4747
|
};
|
|
4672
4748
|
}
|
package/dist/index.mjs
CHANGED
|
@@ -25,7 +25,7 @@ import {
|
|
|
25
25
|
isSsoRequired,
|
|
26
26
|
isUnauthorized,
|
|
27
27
|
isValidationError
|
|
28
|
-
} from "./chunk-
|
|
28
|
+
} from "./chunk-COHTNSU2.mjs";
|
|
29
29
|
|
|
30
30
|
// src/query.ts
|
|
31
31
|
function toSearchParams(query) {
|
|
@@ -46,7 +46,7 @@ function toSearchParams(query) {
|
|
|
46
46
|
}
|
|
47
47
|
|
|
48
48
|
// src/version.ts
|
|
49
|
-
var SDK_VERSION = "4.
|
|
49
|
+
var SDK_VERSION = "4.63.0";
|
|
50
50
|
|
|
51
51
|
// src/client.ts
|
|
52
52
|
function isRawBody(body) {
|
|
@@ -1445,11 +1445,15 @@ function meNamespace(client) {
|
|
|
1445
1445
|
);
|
|
1446
1446
|
},
|
|
1447
1447
|
/**
|
|
1448
|
-
* List the
|
|
1449
|
-
* education and collection entries)
|
|
1448
|
+
* List the items on my profile that can be verified (experience,
|
|
1449
|
+
* education and collection entries) with their status. Each row's
|
|
1450
|
+
* `nextStep` says which step the item allows now (an email check
|
|
1451
|
+
* can still be rate limited), and `emailCheck` is set while an
|
|
1452
|
+
* emailed code is waiting to be typed.
|
|
1450
1453
|
*
|
|
1451
1454
|
* @example
|
|
1452
1455
|
* const { data } = await board.me.profile.listVerifications();
|
|
1456
|
+
* const canEmail = data.filter((item) => item.nextStep === 'email');
|
|
1453
1457
|
*/
|
|
1454
1458
|
listVerifications(options) {
|
|
1455
1459
|
return client.fetch(
|
|
@@ -1683,7 +1687,10 @@ function meNamespace(client) {
|
|
|
1683
1687
|
{ ...options, method: "PUT", body }
|
|
1684
1688
|
);
|
|
1685
1689
|
},
|
|
1686
|
-
/**
|
|
1690
|
+
/**
|
|
1691
|
+
* List the items on one of my companies that can be verified, with
|
|
1692
|
+
* their status and `nextStep`.
|
|
1693
|
+
*/
|
|
1687
1694
|
listVerifications(slug, options) {
|
|
1688
1695
|
return client.fetch(
|
|
1689
1696
|
`/me/companies/${encodeURIComponent(slug)}/verifications`,
|
|
@@ -4100,6 +4107,55 @@ function taxonomyNamespace(client) {
|
|
|
4100
4107
|
};
|
|
4101
4108
|
}
|
|
4102
4109
|
|
|
4110
|
+
// src/namespaces/tip-jar.ts
|
|
4111
|
+
function tipJarNamespace(client) {
|
|
4112
|
+
return {
|
|
4113
|
+
/**
|
|
4114
|
+
* The board's tip page. A `tip_jar_not_found` error (404) means the
|
|
4115
|
+
* board has no tip jar or it is archived: hide the page and its links.
|
|
4116
|
+
*
|
|
4117
|
+
* @example
|
|
4118
|
+
* const jar = await board.tipJar.get();
|
|
4119
|
+
* jar.suggestedCents; // [300, 500, 1000]
|
|
4120
|
+
*/
|
|
4121
|
+
get(options) {
|
|
4122
|
+
return client.fetch("/tip-jar", options);
|
|
4123
|
+
},
|
|
4124
|
+
/**
|
|
4125
|
+
* Start a tip: returns an embedded Stripe Checkout mount kit (it expires
|
|
4126
|
+
* after 30 minutes). Signed in, the visitor's email is filled in on
|
|
4127
|
+
* Stripe's form. `amountCents` is at least `minimumCents`; send a `note`
|
|
4128
|
+
* only when `allowNote` is true.
|
|
4129
|
+
*
|
|
4130
|
+
* @example
|
|
4131
|
+
* const kit = await board.tipJar.checkout({ amountCents: 500 });
|
|
4132
|
+
* // mount Stripe's embedded checkout with kit.clientSecret
|
|
4133
|
+
*/
|
|
4134
|
+
checkout(body, options) {
|
|
4135
|
+
return client.fetch("/tip-jar/checkout", {
|
|
4136
|
+
...options,
|
|
4137
|
+
method: "POST",
|
|
4138
|
+
body
|
|
4139
|
+
});
|
|
4140
|
+
},
|
|
4141
|
+
/**
|
|
4142
|
+
* After Stripe returns the tipper (`session_id` on the return URL):
|
|
4143
|
+
* `processing` while a delayed payment clears, then `paid`, with the
|
|
4144
|
+
* amount, the masked receipt email and the thank-you message.
|
|
4145
|
+
*
|
|
4146
|
+
* @example
|
|
4147
|
+
* const s = await board.tipJar.getCheckout(sessionId);
|
|
4148
|
+
* if (s.status === 'paid') showThanks(s.thankYouMessage);
|
|
4149
|
+
*/
|
|
4150
|
+
getCheckout(sessionId, options) {
|
|
4151
|
+
return client.fetch(
|
|
4152
|
+
`/tip-jar/checkout/${encodeURIComponent(sessionId)}`,
|
|
4153
|
+
options
|
|
4154
|
+
);
|
|
4155
|
+
}
|
|
4156
|
+
};
|
|
4157
|
+
}
|
|
4158
|
+
|
|
4103
4159
|
// src/messaging-derive.ts
|
|
4104
4160
|
function isOwnMessage(message, counterpartyId) {
|
|
4105
4161
|
return message.authorBoardUserId !== counterpartyId;
|
|
@@ -4188,6 +4244,16 @@ function parseJobAlertUnsubscribeParams(url) {
|
|
|
4188
4244
|
return { alertId, emailId };
|
|
4189
4245
|
}
|
|
4190
4246
|
|
|
4247
|
+
// src/tip-cover-fee.ts
|
|
4248
|
+
function tipCoverFeeCents(amountCents, coverFee) {
|
|
4249
|
+
if (!coverFee || !Number.isInteger(amountCents) || amountCents <= 0) {
|
|
4250
|
+
return 0;
|
|
4251
|
+
}
|
|
4252
|
+
const keepBps = 1e4 - coverFee.percentBps;
|
|
4253
|
+
const numerator = (amountCents + coverFee.fixedMinor) * 1e4;
|
|
4254
|
+
return Math.floor((numerator + keepBps - 1) / keepBps) - amountCents;
|
|
4255
|
+
}
|
|
4256
|
+
|
|
4191
4257
|
// src/index.ts
|
|
4192
4258
|
function createBoardClient(options) {
|
|
4193
4259
|
const client = new BoardClient({
|
|
@@ -4251,6 +4317,7 @@ function createBoardClient(options) {
|
|
|
4251
4317
|
paywall: paywallNamespace(client),
|
|
4252
4318
|
products: productsNamespace(client),
|
|
4253
4319
|
purchases: purchasesNamespace(client),
|
|
4320
|
+
tipJar: tipJarNamespace(client),
|
|
4254
4321
|
sitemap: sitemapNamespace(client)
|
|
4255
4322
|
};
|
|
4256
4323
|
}
|
|
@@ -4288,5 +4355,6 @@ export {
|
|
|
4288
4355
|
parseOAuthCompletion,
|
|
4289
4356
|
resolveApplyAction,
|
|
4290
4357
|
resolveApplyDecision,
|
|
4291
|
-
ssoLinkProofBindingStore
|
|
4358
|
+
ssoLinkProofBindingStore,
|
|
4359
|
+
tipCoverFeeCents
|
|
4292
4360
|
};
|
package/dist/paths.d.mts
CHANGED
|
@@ -186,6 +186,8 @@ declare const BOARD_PATHS: {
|
|
|
186
186
|
readonly products: "/products";
|
|
187
187
|
/** A signed-in board user's purchased products. */
|
|
188
188
|
readonly mePurchases: "/me/purchases";
|
|
189
|
+
/** The tip page: visitors tip the board through its tip jar. */
|
|
190
|
+
readonly tip: "/tip";
|
|
189
191
|
};
|
|
190
192
|
/**
|
|
191
193
|
* Email `/go` indirection paths. Pure builders so
|
package/dist/paths.d.ts
CHANGED
|
@@ -186,6 +186,8 @@ declare const BOARD_PATHS: {
|
|
|
186
186
|
readonly products: "/products";
|
|
187
187
|
/** A signed-in board user's purchased products. */
|
|
188
188
|
readonly mePurchases: "/me/purchases";
|
|
189
|
+
/** The tip page: visitors tip the board through its tip jar. */
|
|
190
|
+
readonly tip: "/tip";
|
|
189
191
|
};
|
|
190
192
|
/**
|
|
191
193
|
* Email `/go` indirection paths. Pure builders so
|
package/dist/paths.js
CHANGED
|
@@ -171,7 +171,9 @@ var BOARD_PATHS = {
|
|
|
171
171
|
/** The digital product catalogue. */
|
|
172
172
|
products: "/products",
|
|
173
173
|
/** A signed-in board user's purchased products. */
|
|
174
|
-
mePurchases: "/me/purchases"
|
|
174
|
+
mePurchases: "/me/purchases",
|
|
175
|
+
/** The tip page: visitors tip the board through its tip jar. */
|
|
176
|
+
tip: "/tip"
|
|
175
177
|
};
|
|
176
178
|
function goJobPath(jobId) {
|
|
177
179
|
return `/go/job/${jobId}`;
|
package/dist/paths.mjs
CHANGED
|
@@ -67,7 +67,9 @@ type RouteRole = 'jobDetail' | 'jobsCategory' | 'jobsSkill' | 'jobsLocation' | '
|
|
|
67
67
|
/** A digital product's page. */
|
|
68
68
|
| 'product'
|
|
69
69
|
/** A purchase's download page (emails link here). */
|
|
70
|
-
| 'purchase' | 'home' | 'jobs' | 'companies' | 'salaries' | 'salaryCompanies' | 'salaryTitles' | 'salarySkills' | 'salaryLocations' | 'blog' | 'about' | 'privacyPolicy' | 'termsOfService' | 'cookiePolicy' | 'impressum' | 'talent' | 'employers' | 'alertsManage' | 'alertsConfirm' | 'products' | 'mePurchases'
|
|
70
|
+
| 'purchase' | 'home' | 'jobs' | 'companies' | 'salaries' | 'salaryCompanies' | 'salaryTitles' | 'salarySkills' | 'salaryLocations' | 'blog' | 'about' | 'privacyPolicy' | 'termsOfService' | 'cookiePolicy' | 'impressum' | 'talent' | 'employers' | 'alertsManage' | 'alertsConfirm' | 'products' | 'mePurchases'
|
|
71
|
+
/** The tip page (the board's tip jar); optional, never required. */
|
|
72
|
+
| 'tip';
|
|
71
73
|
/**
|
|
72
74
|
* Exact param-name set per role, derived from each helper's signature.
|
|
73
75
|
* Empty arrays = static / zero-param roles (never inferred by signature).
|
|
@@ -67,7 +67,9 @@ type RouteRole = 'jobDetail' | 'jobsCategory' | 'jobsSkill' | 'jobsLocation' | '
|
|
|
67
67
|
/** A digital product's page. */
|
|
68
68
|
| 'product'
|
|
69
69
|
/** A purchase's download page (emails link here). */
|
|
70
|
-
| 'purchase' | 'home' | 'jobs' | 'companies' | 'salaries' | 'salaryCompanies' | 'salaryTitles' | 'salarySkills' | 'salaryLocations' | 'blog' | 'about' | 'privacyPolicy' | 'termsOfService' | 'cookiePolicy' | 'impressum' | 'talent' | 'employers' | 'alertsManage' | 'alertsConfirm' | 'products' | 'mePurchases'
|
|
70
|
+
| 'purchase' | 'home' | 'jobs' | 'companies' | 'salaries' | 'salaryCompanies' | 'salaryTitles' | 'salarySkills' | 'salaryLocations' | 'blog' | 'about' | 'privacyPolicy' | 'termsOfService' | 'cookiePolicy' | 'impressum' | 'talent' | 'employers' | 'alertsManage' | 'alertsConfirm' | 'products' | 'mePurchases'
|
|
71
|
+
/** The tip page (the board's tip jar); optional, never required. */
|
|
72
|
+
| 'tip';
|
|
71
73
|
/**
|
|
72
74
|
* Exact param-name set per role, derived from each helper's signature.
|
|
73
75
|
* Empty arrays = static / zero-param roles (never inferred by signature).
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { R as RouteEntry, a as RouteRole, C as ClassifyResult, b as CompileResult, V as ValidateManifestError, c as ValidateManifestResult, M as ManifestV1 } from './roles-
|
|
2
|
-
export { A as ALL_ROLES, d as Ambiguity, e as CANONICAL_MANIFEST, f as REQUIRED_ROLES, g as ROLE_PARAM_REGISTRY, i as isRouteRole } from './roles-
|
|
1
|
+
import { R as RouteEntry, a as RouteRole, C as ClassifyResult, b as CompileResult, V as ValidateManifestError, c as ValidateManifestResult, M as ManifestV1 } from './roles-D745cT5b.mjs';
|
|
2
|
+
export { A as ALL_ROLES, d as Ambiguity, e as CANONICAL_MANIFEST, f as REQUIRED_ROLES, g as ROLE_PARAM_REGISTRY, i as isRouteRole } from './roles-D745cT5b.mjs';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* Classify routes into role assignments. Markers (keyed by `sourcePath`)
|
package/dist/route-contract.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { R as RouteEntry, a as RouteRole, C as ClassifyResult, b as CompileResult, V as ValidateManifestError, c as ValidateManifestResult, M as ManifestV1 } from './roles-
|
|
2
|
-
export { A as ALL_ROLES, d as Ambiguity, e as CANONICAL_MANIFEST, f as REQUIRED_ROLES, g as ROLE_PARAM_REGISTRY, i as isRouteRole } from './roles-
|
|
1
|
+
import { R as RouteEntry, a as RouteRole, C as ClassifyResult, b as CompileResult, V as ValidateManifestError, c as ValidateManifestResult, M as ManifestV1 } from './roles-D745cT5b.js';
|
|
2
|
+
export { A as ALL_ROLES, d as Ambiguity, e as CANONICAL_MANIFEST, f as REQUIRED_ROLES, g as ROLE_PARAM_REGISTRY, i as isRouteRole } from './roles-D745cT5b.js';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* Classify routes into role assignments. Markers (keyed by `sourcePath`)
|
package/dist/route-contract.js
CHANGED
|
@@ -137,7 +137,9 @@ var BOARD_PATHS = {
|
|
|
137
137
|
/** The digital product catalogue. */
|
|
138
138
|
products: "/products",
|
|
139
139
|
/** A signed-in board user's purchased products. */
|
|
140
|
-
mePurchases: "/me/purchases"
|
|
140
|
+
mePurchases: "/me/purchases",
|
|
141
|
+
/** The tip page: visitors tip the board through its tip jar. */
|
|
142
|
+
tip: "/tip"
|
|
141
143
|
};
|
|
142
144
|
|
|
143
145
|
// src/route-contract/roles.ts
|
|
@@ -177,7 +179,8 @@ var ROLE_PARAM_REGISTRY = {
|
|
|
177
179
|
alertsManage: [],
|
|
178
180
|
alertsConfirm: [],
|
|
179
181
|
products: [],
|
|
180
|
-
mePurchases: []
|
|
182
|
+
mePurchases: [],
|
|
183
|
+
tip: []
|
|
181
184
|
};
|
|
182
185
|
var REQUIRED_ROLES = [
|
|
183
186
|
"jobDetail",
|
|
@@ -229,7 +232,8 @@ var CANONICAL_MANIFEST = {
|
|
|
229
232
|
alertsManage: "/alerts/manage",
|
|
230
233
|
alertsConfirm: "/alerts/confirm",
|
|
231
234
|
products: BOARD_PATHS.products,
|
|
232
|
-
mePurchases: BOARD_PATHS.mePurchases
|
|
235
|
+
mePurchases: BOARD_PATHS.mePurchases,
|
|
236
|
+
tip: BOARD_PATHS.tip
|
|
233
237
|
}
|
|
234
238
|
};
|
|
235
239
|
|
|
@@ -1155,7 +1159,8 @@ var ROLE_INDEX_PATHS = {
|
|
|
1155
1159
|
product: BOARD_PATHS.products,
|
|
1156
1160
|
purchase: BOARD_PATHS.home,
|
|
1157
1161
|
products: BOARD_PATHS.products,
|
|
1158
|
-
mePurchases: BOARD_PATHS.home
|
|
1162
|
+
mePurchases: BOARD_PATHS.home,
|
|
1163
|
+
tip: BOARD_PATHS.home
|
|
1159
1164
|
};
|
|
1160
1165
|
function splitSegments(path) {
|
|
1161
1166
|
const withoutLeading = path.startsWith("/") ? path.slice(1) : path;
|
package/dist/route-contract.mjs
CHANGED
package/dist/seo-files.d.mts
CHANGED
package/dist/seo-files.d.ts
CHANGED
package/dist/seo.d.mts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { P as PublicBlogPostSummary, B as BlogAuthorEmbed } from './blog-
|
|
2
|
-
import { e as JsonLdObject } from './breadcrumbs-
|
|
3
|
-
export { A as ALL_COUNTRY_CODES, B as BreadcrumbItemInput, g as FaqItem, J as JobBreadcrumb, h as JsonLdBoard, N as NumberNotation, i as SENIORITY_ORDER, j as SalaryFaqEntry, k as SalaryJsonLdOptions, l as SalaryOccupationListOptions, b as buildJobBreadcrumbs, m as buildSalaryFaq, o as companyCategorySalaryJsonLd, p as companySalaryJsonLd, q as createBreadcrumbJsonLd, r as createJobPostingJsonLd, s as crossAxisSalaryJsonLd, t as faqJsonLd, c as formatSalaryStat, d as formatSalaryStatRange, u as itemListJsonLd, v as locationSalaryJsonLd, n as normalizeWebsiteUrl, w as skillSalaryJsonLd, x as sortBySeniority, y as titleSalaryJsonLd } from './breadcrumbs-
|
|
4
|
-
import './_spec-
|
|
5
|
-
import './board-
|
|
6
|
-
import './jobs-
|
|
1
|
+
import { P as PublicBlogPostSummary, B as BlogAuthorEmbed } from './blog-e0YbZBjg.mjs';
|
|
2
|
+
import { e as JsonLdObject } from './breadcrumbs-C5WjB8jm.mjs';
|
|
3
|
+
export { A as ALL_COUNTRY_CODES, B as BreadcrumbItemInput, g as FaqItem, J as JobBreadcrumb, h as JsonLdBoard, N as NumberNotation, i as SENIORITY_ORDER, j as SalaryFaqEntry, k as SalaryJsonLdOptions, l as SalaryOccupationListOptions, b as buildJobBreadcrumbs, m as buildSalaryFaq, o as companyCategorySalaryJsonLd, p as companySalaryJsonLd, q as createBreadcrumbJsonLd, r as createJobPostingJsonLd, s as crossAxisSalaryJsonLd, t as faqJsonLd, c as formatSalaryStat, d as formatSalaryStatRange, u as itemListJsonLd, v as locationSalaryJsonLd, n as normalizeWebsiteUrl, w as skillSalaryJsonLd, x as sortBySeniority, y as titleSalaryJsonLd } from './breadcrumbs-C5WjB8jm.mjs';
|
|
4
|
+
import './_spec-D1Qg_Twd.mjs';
|
|
5
|
+
import './board-Cc3wbTKI.mjs';
|
|
6
|
+
import './jobs-CClqlUld.mjs';
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
9
|
* Blog structured data on the `@cavuno/board` wire types, transcribed from
|
package/dist/seo.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { P as PublicBlogPostSummary, B as BlogAuthorEmbed } from './blog-
|
|
2
|
-
import { e as JsonLdObject } from './breadcrumbs-
|
|
3
|
-
export { A as ALL_COUNTRY_CODES, B as BreadcrumbItemInput, g as FaqItem, J as JobBreadcrumb, h as JsonLdBoard, N as NumberNotation, i as SENIORITY_ORDER, j as SalaryFaqEntry, k as SalaryJsonLdOptions, l as SalaryOccupationListOptions, b as buildJobBreadcrumbs, m as buildSalaryFaq, o as companyCategorySalaryJsonLd, p as companySalaryJsonLd, q as createBreadcrumbJsonLd, r as createJobPostingJsonLd, s as crossAxisSalaryJsonLd, t as faqJsonLd, c as formatSalaryStat, d as formatSalaryStatRange, u as itemListJsonLd, v as locationSalaryJsonLd, n as normalizeWebsiteUrl, w as skillSalaryJsonLd, x as sortBySeniority, y as titleSalaryJsonLd } from './breadcrumbs-
|
|
4
|
-
import './_spec-
|
|
5
|
-
import './board-
|
|
6
|
-
import './jobs-
|
|
1
|
+
import { P as PublicBlogPostSummary, B as BlogAuthorEmbed } from './blog-Dp2jAVVM.js';
|
|
2
|
+
import { e as JsonLdObject } from './breadcrumbs-BOFeIYEX.js';
|
|
3
|
+
export { A as ALL_COUNTRY_CODES, B as BreadcrumbItemInput, g as FaqItem, J as JobBreadcrumb, h as JsonLdBoard, N as NumberNotation, i as SENIORITY_ORDER, j as SalaryFaqEntry, k as SalaryJsonLdOptions, l as SalaryOccupationListOptions, b as buildJobBreadcrumbs, m as buildSalaryFaq, o as companyCategorySalaryJsonLd, p as companySalaryJsonLd, q as createBreadcrumbJsonLd, r as createJobPostingJsonLd, s as crossAxisSalaryJsonLd, t as faqJsonLd, c as formatSalaryStat, d as formatSalaryStatRange, u as itemListJsonLd, v as locationSalaryJsonLd, n as normalizeWebsiteUrl, w as skillSalaryJsonLd, x as sortBySeniority, y as titleSalaryJsonLd } from './breadcrumbs-BOFeIYEX.js';
|
|
4
|
+
import './_spec-D1Qg_Twd.js';
|
|
5
|
+
import './board-BeNZLOYC.js';
|
|
6
|
+
import './jobs-D04ngjCP.js';
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
9
|
* Blog structured data on the `@cavuno/board` wire types, transcribed from
|
package/dist/seo.js
CHANGED
|
@@ -211,7 +211,9 @@ var BOARD_PATHS = {
|
|
|
211
211
|
/** The digital product catalogue. */
|
|
212
212
|
products: "/products",
|
|
213
213
|
/** A signed-in board user's purchased products. */
|
|
214
|
-
mePurchases: "/me/purchases"
|
|
214
|
+
mePurchases: "/me/purchases",
|
|
215
|
+
/** The tip page: visitors tip the board through its tip jar. */
|
|
216
|
+
tip: "/tip"
|
|
215
217
|
};
|
|
216
218
|
function boardUrl(origin, path) {
|
|
217
219
|
return `${origin.replace(/\/+$/, "")}${path}`;
|
package/dist/seo.mjs
CHANGED
|
@@ -17,11 +17,11 @@ import {
|
|
|
17
17
|
skillSalaryJsonLd,
|
|
18
18
|
sortBySeniority,
|
|
19
19
|
titleSalaryJsonLd
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-4KMZZR3A.mjs";
|
|
21
21
|
import {
|
|
22
22
|
boardUrl,
|
|
23
23
|
jobDetailPath
|
|
24
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-RAE63XH5.mjs";
|
|
25
25
|
|
|
26
26
|
// src/seo/blog.ts
|
|
27
27
|
function createBlogArticleJsonLd({
|
package/dist/server.d.mts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { BoardSdk } from './index.mjs';
|
|
2
|
-
import './_spec-
|
|
3
|
-
import './search-
|
|
4
|
-
import './jobs-
|
|
5
|
-
import './board-
|
|
6
|
-
import './seo-
|
|
7
|
-
import './blog-
|
|
2
|
+
import './_spec-D1Qg_Twd.mjs';
|
|
3
|
+
import './search-BtrwcLkc.mjs';
|
|
4
|
+
import './jobs-CClqlUld.mjs';
|
|
5
|
+
import './board-Cc3wbTKI.mjs';
|
|
6
|
+
import './seo-LfpgbdnO.mjs';
|
|
7
|
+
import './blog-e0YbZBjg.mjs';
|
|
8
8
|
|
|
9
9
|
/**
|
|
10
10
|
* Session cookie codec — pure (no framework imports, no node imports) so it
|
package/dist/server.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { BoardSdk } from './index.js';
|
|
2
|
-
import './_spec-
|
|
3
|
-
import './search-
|
|
4
|
-
import './jobs-
|
|
5
|
-
import './board-
|
|
6
|
-
import './seo-
|
|
7
|
-
import './blog-
|
|
2
|
+
import './_spec-D1Qg_Twd.js';
|
|
3
|
+
import './search-DZeNdYN6.js';
|
|
4
|
+
import './jobs-D04ngjCP.js';
|
|
5
|
+
import './board-BeNZLOYC.js';
|
|
6
|
+
import './seo-DLoyZRTo.js';
|
|
7
|
+
import './blog-Dp2jAVVM.js';
|
|
8
8
|
|
|
9
9
|
/**
|
|
10
10
|
* Session cookie codec — pure (no framework imports, no node imports) so it
|
package/dist/server.mjs
CHANGED
package/dist/sitemap.d.mts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { BoardSdk } from './index.mjs';
|
|
2
|
-
import './_spec-
|
|
3
|
-
import './search-
|
|
4
|
-
import './jobs-
|
|
5
|
-
import './board-
|
|
6
|
-
import './seo-
|
|
7
|
-
import './blog-
|
|
2
|
+
import './_spec-D1Qg_Twd.mjs';
|
|
3
|
+
import './search-BtrwcLkc.mjs';
|
|
4
|
+
import './jobs-CClqlUld.mjs';
|
|
5
|
+
import './board-Cc3wbTKI.mjs';
|
|
6
|
+
import './seo-LfpgbdnO.mjs';
|
|
7
|
+
import './blog-e0YbZBjg.mjs';
|
|
8
8
|
|
|
9
9
|
/**
|
|
10
10
|
* Sitemap primitives — the pure XML + bucket-filename logic behind a board
|
package/dist/sitemap.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { BoardSdk } from './index.js';
|
|
2
|
-
import './_spec-
|
|
3
|
-
import './search-
|
|
4
|
-
import './jobs-
|
|
5
|
-
import './board-
|
|
6
|
-
import './seo-
|
|
7
|
-
import './blog-
|
|
2
|
+
import './_spec-D1Qg_Twd.js';
|
|
3
|
+
import './search-DZeNdYN6.js';
|
|
4
|
+
import './jobs-D04ngjCP.js';
|
|
5
|
+
import './board-BeNZLOYC.js';
|
|
6
|
+
import './seo-DLoyZRTo.js';
|
|
7
|
+
import './blog-Dp2jAVVM.js';
|
|
8
8
|
|
|
9
9
|
/**
|
|
10
10
|
* Sitemap primitives — the pure XML + bucket-filename logic behind a board
|
package/dist/sitemap.js
CHANGED
|
@@ -252,7 +252,9 @@ var BOARD_PATHS = {
|
|
|
252
252
|
/** The digital product catalogue. */
|
|
253
253
|
products: "/products",
|
|
254
254
|
/** A signed-in board user's purchased products. */
|
|
255
|
-
mePurchases: "/me/purchases"
|
|
255
|
+
mePurchases: "/me/purchases",
|
|
256
|
+
/** The tip page: visitors tip the board through its tip jar. */
|
|
257
|
+
tip: "/tip"
|
|
256
258
|
};
|
|
257
259
|
|
|
258
260
|
// src/sitemap/walker.ts
|