@cavuno/board 4.51.0 → 4.53.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.
Files changed (44) hide show
  1. package/CHANGELOG.md +70 -0
  2. package/dist/{_spec-Pr6ZvyW_.d.mts → _spec-B4TxcV4W.d.mts} +83 -0
  3. package/dist/{_spec-Pr6ZvyW_.d.ts → _spec-B4TxcV4W.d.ts} +83 -0
  4. package/dist/{blog-D-MQEaMU.d.mts → blog-BYuzCPFi.d.mts} +1 -1
  5. package/dist/{blog-BBBiKhsA.d.ts → blog-C1nsaLmM.d.ts} +1 -1
  6. package/dist/{board-C6PEXL7n.d.mts → board-BtipyMwh.d.ts} +8 -2
  7. package/dist/{board-CaZu8nEl.d.ts → board-j0KFqNBp.d.mts} +8 -2
  8. package/dist/{breadcrumbs-WcxTd2Ka.d.mts → breadcrumbs-BCEsjVMn.d.mts} +4 -3
  9. package/dist/{breadcrumbs-DIIA4MaX.d.ts → breadcrumbs-BKpfMLqi.d.ts} +4 -3
  10. package/dist/browser/cavuno-board.global.min.js +1 -1
  11. package/dist/{chunk-JTFUOGWE.mjs → chunk-P4DNSVGM.mjs} +1 -1
  12. package/dist/filters.d.mts +2 -2
  13. package/dist/filters.d.ts +2 -2
  14. package/dist/format.d.mts +4 -4
  15. package/dist/format.d.ts +4 -4
  16. package/dist/format.mjs +1 -1
  17. package/dist/index.d.mts +56 -12
  18. package/dist/index.d.ts +56 -12
  19. package/dist/index.js +52 -9
  20. package/dist/index.mjs +52 -9
  21. package/dist/{jobs-CeB5FVGG.d.mts → jobs-BMJHIKTi.d.ts} +18 -4
  22. package/dist/{jobs-DN0ePjTg.d.ts → jobs-DKo4rx45.d.mts} +18 -4
  23. package/dist/{search-Kgs7ubkH.d.mts → search-DJQkMA5T.d.mts} +1 -1
  24. package/dist/{search-CDl4MJV4.d.ts → search-DVSEJ5aj.d.ts} +1 -1
  25. package/dist/{seo-BhHH3OMM.d.ts → seo-CIOAZCuc.d.ts} +1 -1
  26. package/dist/{seo-CPX54V1D.d.mts → seo-D2oDCBT0.d.mts} +1 -1
  27. package/dist/seo-files.d.mts +2 -2
  28. package/dist/seo-files.d.ts +2 -2
  29. package/dist/seo.d.mts +6 -6
  30. package/dist/seo.d.ts +6 -6
  31. package/dist/seo.js +1 -1
  32. package/dist/seo.mjs +1 -1
  33. package/dist/server.d.mts +6 -6
  34. package/dist/server.d.ts +6 -6
  35. package/dist/sitemap.d.mts +6 -6
  36. package/dist/sitemap.d.ts +6 -6
  37. package/dist/suggest.d.mts +2 -2
  38. package/dist/suggest.d.ts +2 -2
  39. package/package.json +1 -1
  40. package/skills/cavuno-board-companies/SKILL.md +13 -0
  41. package/skills/cavuno-board-jobs/SKILL.md +15 -0
  42. package/skills/cavuno-board-paywall/SKILL.md +8 -2
  43. package/skills/cavuno-board-talent-access/SKILL.md +6 -2
  44. package/skills/manifest.json +1 -1
@@ -62,12 +62,16 @@ The kit contains `sessionId`, `clientSecret`, `stripeAccountId`, `publishableKey
62
62
 
63
63
  ## Confirm access from the grant
64
64
 
65
- `retrieveCheckout` reports `open`, `complete`, or `expired`. Open sessions are remountable with their `clientSecret`; expired sessions require a new checkout. After completion, poll `grant()` within a bounded window because webhook delivery is asynchronous.
65
+ `retrieveCheckout` reports `open`, `complete`, or `expired`. Open sessions are remountable with their `clientSecret`; expired sessions require a new checkout. A `complete` session also carries `paymentStatus`. With `paid`, poll `grant()` within a bounded window because webhook delivery is asynchronous. With `processing`, the buyer paid by bank debit or transfer and the money has not cleared: access is granted only once it does, usually within a few business days. Do not poll; tell the buyer their payment is processing, and read the checkout again on their next visit to see whether it cleared or failed. With `failed`, the bank payment did not go through: nothing was granted, and the buyer can start a new checkout.
66
66
 
67
67
  ```ts snippet
68
68
  const checkout = await board.me.access.retrieveCheckout(kit.sessionId);
69
69
 
70
- if (checkout.status === 'complete') {
70
+ if (checkout.status === 'complete' && checkout.paymentStatus === 'processing') {
71
+ renderPaymentProcessing();
72
+ } else if (checkout.status === 'complete' && checkout.paymentStatus === 'failed') {
73
+ renderPaymentFailed(); // offer a new checkout
74
+ } else if (checkout.status === 'complete') {
71
75
  let grant = await board.me.access.grant();
72
76
  for (let poll = 0; !grant.hasAccess && poll < 10; poll++) {
73
77
  await new Promise((resolve) => setTimeout(resolve, 1000));
@@ -101,6 +105,8 @@ A lifetime grant produces `paywall_no_recurring_subscription` for `portal`.
101
105
  - Anonymous offers render without authorization; disabled paywall renders no tiers.
102
106
  - Unentitled jobs show `gatedCount`; the active-grant request exposes the full list.
103
107
  - Test checkout reaches `complete`, then bounded grant polling reaches `hasAccess: true` after webhook delivery.
108
+ - A `complete` checkout with `paymentStatus: 'processing'` shows a payment-processing state instead of polling.
109
+ - A `complete` checkout with `paymentStatus: 'failed'` says the payment did not go through and offers a new checkout.
104
110
  - UI access decisions read `grant().hasAccess`.
105
111
  - Recurring grants open the portal; lifetime grants show a deliberate non-portal state.
106
112
 
@@ -64,12 +64,16 @@ The kit contains `sessionId`, `clientSecret`, `stripeAccountId`, `publishableKey
64
64
 
65
65
  ## Confirm from remaining credits
66
66
 
67
- `retrieveCheckout` reports `open`, `complete`, or `expired`. Open sessions are remountable with their `clientSecret`; expired sessions require a new checkout. After completion, poll `retrieve()` because webhook delivery is asynchronous.
67
+ `retrieveCheckout` reports `open`, `complete`, or `expired`. Open sessions are remountable with their `clientSecret`; expired sessions require a new checkout. A `complete` session also carries `paymentStatus`. With `paid`, poll `retrieve()` because webhook delivery is asynchronous. With `processing`, a bank debit or transfer has not cleared: access is granted only once it does, so tell the buyer instead of polling, and read the checkout again on their next visit to see whether it cleared or failed. With `failed`, the bank payment did not go through: nothing was granted, and the buyer can start a new checkout.
68
68
 
69
69
  ```ts snippet
70
70
  const checkout = await board.me.talentAccess.retrieveCheckout(kit.sessionId);
71
71
 
72
- if (checkout.status === 'complete') {
72
+ if (checkout.status === 'complete' && checkout.paymentStatus === 'processing') {
73
+ renderPaymentProcessing();
74
+ } else if (checkout.status === 'complete' && checkout.paymentStatus === 'failed') {
75
+ renderPaymentFailed(); // offer a new checkout
76
+ } else if (checkout.status === 'complete') {
73
77
  let access = await board.me.talentAccess.retrieve();
74
78
  for (let poll = 0; !access.hasTalentAccess && poll < 10; poll++) {
75
79
  await new Promise((resolve) => setTimeout(resolve, 1000));
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "4.51.0",
2
+ "version": "4.53.0",
3
3
  "skills": [
4
4
  {
5
5
  "name": "cavuno-board-account",