@cavuno/board 3.0.0 → 3.2.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 (64) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/README.md +11 -0
  3. package/dist/blog-DGBHmExV.d.mts +29 -0
  4. package/dist/blog-iV9XEIGf.d.ts +29 -0
  5. package/dist/{salaries-ChSqDBAM.d.mts → board-BJbXd_9_.d.mts} +14 -27
  6. package/dist/{salaries-BahBpxWT.d.ts → board-JhdUWIoq.d.ts} +14 -27
  7. package/dist/breadcrumbs-1hMjcsqA.d.mts +171 -0
  8. package/dist/breadcrumbs-DexU07TT.d.ts +171 -0
  9. package/dist/chunk-2ETP5UH4.mjs +271 -0
  10. package/dist/chunk-DLSO6XXY.mjs +33 -0
  11. package/dist/chunk-IJCJ26SQ.mjs +596 -0
  12. package/dist/chunk-L7ZOYWHW.mjs +98 -0
  13. package/dist/chunk-LUGJWOT7.mjs +96 -0
  14. package/dist/chunk-NXY3OWGF.mjs +1060 -0
  15. package/dist/chunk-STE77MAT.mjs +844 -0
  16. package/dist/filters.mjs +7 -668
  17. package/dist/format.d.mts +2 -1
  18. package/dist/format.d.ts +2 -1
  19. package/dist/format.js +592 -523
  20. package/dist/format.mjs +19 -680
  21. package/dist/go.mjs +4 -29
  22. package/dist/index.d.mts +5 -4
  23. package/dist/index.d.ts +5 -4
  24. package/dist/index.js +1 -1
  25. package/dist/index.mjs +22 -278
  26. package/dist/paths.mjs +20 -77
  27. package/dist/route-contract.mjs +30 -1079
  28. package/dist/seo.d.mts +14 -171
  29. package/dist/seo.d.ts +14 -171
  30. package/dist/seo.js +1 -1
  31. package/dist/seo.mjs +24 -1399
  32. package/dist/server.d.mts +2 -2
  33. package/dist/server.d.ts +2 -2
  34. package/dist/server.mjs +5 -31
  35. package/dist/sitemap.d.mts +2 -2
  36. package/dist/sitemap.d.ts +2 -2
  37. package/dist/sitemap.mjs +20 -96
  38. package/dist/well-known.mjs +4 -421
  39. package/package.json +6 -3
  40. package/skills/cavuno-board-account/SKILL.md +4 -0
  41. package/skills/cavuno-board-api-client/SKILL.md +4 -0
  42. package/skills/cavuno-board-applications/SKILL.md +4 -0
  43. package/skills/cavuno-board-auth/SKILL.md +4 -0
  44. package/skills/cavuno-board-blog/SKILL.md +4 -0
  45. package/skills/cavuno-board-companies/SKILL.md +4 -0
  46. package/skills/cavuno-board-errors/SKILL.md +4 -0
  47. package/skills/cavuno-board-filters/SKILL.md +4 -0
  48. package/skills/cavuno-board-format/SKILL.md +4 -0
  49. package/skills/cavuno-board-i18n/SKILL.md +4 -0
  50. package/skills/cavuno-board-job-alerts/SKILL.md +4 -0
  51. package/skills/cavuno-board-jobs/SKILL.md +4 -0
  52. package/skills/cavuno-board-messaging/SKILL.md +4 -0
  53. package/skills/cavuno-board-paywall/SKILL.md +4 -0
  54. package/skills/cavuno-board-post-a-job/SKILL.md +4 -0
  55. package/skills/cavuno-board-salaries/SKILL.md +4 -0
  56. package/skills/cavuno-board-search-suggestions/SKILL.md +4 -0
  57. package/skills/cavuno-board-seo/SKILL.md +4 -0
  58. package/skills/cavuno-board-server-sessions/SKILL.md +4 -0
  59. package/skills/cavuno-board-setup/SKILL.md +4 -0
  60. package/skills/cavuno-board-sitemap/SKILL.md +4 -0
  61. package/skills/cavuno-board-smoke-test/SKILL.md +4 -0
  62. package/skills/manifest.json +1 -1
  63. package/dist/board-NE98PlwN.d.ts +0 -16
  64. package/dist/board-muu8BI8P.d.mts +0 -16
@@ -72,3 +72,7 @@ const data = await board.client.fetch<{
72
72
  ```
73
73
 
74
74
  **Complete when:** the call uses a board-relative path, supplies an honest response type, and no parallel raw-fetch client was introduced.
75
+
76
+ ## Cavuno SDK reference
77
+
78
+ For setup and API details beyond this workflow, use the [Cavuno Board SDK documentation](https://cavuno.com/docs/sdk).
@@ -94,3 +94,7 @@ await board.me.savedJobs.unsave(job.id);
94
94
  - `myApplication` plus `isNotFound` drives the apply-button state.
95
95
  - Re-fetching after withdrawal removes the application.
96
96
  - Repeating `unsave` leaves the saved list consistent.
97
+
98
+ ## Cavuno SDK reference
99
+
100
+ For setup and API details beyond this workflow, use the [Cavuno Board SDK documentation](https://cavuno.com/docs/sdk).
@@ -86,3 +86,7 @@ await board.auth.resetPassword({ token, password: 'a-new-password' });
86
86
  The signed-in OTP verification, resend, magic-link, and OAuth branches use their corresponding `board.auth` methods. Password-reset requests preserve account privacy; a successful single-use reset invalidates existing sessions.
87
87
 
88
88
  **Complete when:** each implemented auth route exercises its success state and typed failure state, with bearer tokens absent from server-rendered browser payloads.
89
+
90
+ ## Cavuno SDK reference
91
+
92
+ For setup and API details beyond this workflow, use the [Cavuno Board SDK documentation](https://cavuno.com/docs/sdk).
@@ -108,3 +108,7 @@ Finish only after every applicable check passes:
108
108
  - Featured archives send the exact string `featured: 'true'`.
109
109
  - Cursor paging reaches `nextCursor: null` without relying on count or offset.
110
110
  - Newest and oldest posts handle the null side of `adjacent`.
111
+
112
+ ## Cavuno SDK reference
113
+
114
+ For setup and API details beyond this workflow, use the [Cavuno Board SDK documentation](https://cavuno.com/docs/sdk).
@@ -115,3 +115,7 @@ Finish only after every applicable check passes:
115
115
  - A non-canonical market or salary-category route returns a 308 to the slug
116
116
  supplied by the API.
117
117
  - Salary figures and comparisons come directly from `CompanySalary` fields.
118
+
119
+ ## Cavuno SDK reference
120
+
121
+ For setup and API details beyond this workflow, use the [Cavuno Board SDK documentation](https://cavuno.com/docs/sdk).
@@ -67,3 +67,7 @@ try {
67
67
  The grant is board access, not a user session. Server-rendered apps keep it in the app-owned grant cookie and pass it per request; `cavuno-board-server-sessions` defines that cookie and redirect contract. A fresh `board_password_required` response means the grant expired or the password rotated, so return to the challenge flow.
68
68
 
69
69
  **Complete when:** a valid password unlocks one retry, an invalid password renders its typed error, and a stale server grant is cleared before rechallenge.
70
+
71
+ ## Cavuno SDK reference
72
+
73
+ For setup and API details beyond this workflow, use the [Cavuno Board SDK documentation](https://cavuno.com/docs/sdk).
@@ -123,3 +123,7 @@ Finish only after every applicable check passes:
123
123
  - Category and skill filtering sends `sourceSlug`, while links use
124
124
  `canonicalSlug`.
125
125
  - Every paged taxonomy request forwards the previous opaque `nextCursor`.
126
+
127
+ ## Cavuno SDK reference
128
+
129
+ For setup and API details beyond this workflow, use the [Cavuno Board SDK documentation](https://cavuno.com/docs/sdk).
@@ -97,3 +97,7 @@ Finish only after every applicable check passes:
97
97
  - Cards use `cardLocationLabel`; full jobs use `locationLabel`; saved full jobs
98
98
  are converted with `fullJobToCard` before card rendering.
99
99
  - Formatting changes neither salary amounts nor currency.
100
+
101
+ ## Cavuno SDK reference
102
+
103
+ For setup and API details beyond this workflow, use the [Cavuno Board SDK documentation](https://cavuno.com/docs/sdk).
@@ -50,3 +50,7 @@ A compile-time i18n system can replace the seam's backing source. Keep the seam
50
50
  - Server HTML uses the active locale in `<html lang>` with no hydration mismatch.
51
51
  - Canonical, `hreflang`, and sitemap URLs agree for every locale route.
52
52
  - Missing translation keys fail generation or tests rather than appearing as raw keys.
53
+
54
+ ## Cavuno SDK reference
55
+
56
+ For setup and API details beyond this workflow, use the [Cavuno Board SDK documentation](https://cavuno.com/docs/sdk).
@@ -124,3 +124,7 @@ Removal is the signed-in lane's stop action; there is no pause state.
124
124
  - Manage reads use `subscription`; manage writes use `subscriptionId`.
125
125
  - Editing one field preserves every other field in both full-replace APIs.
126
126
  - UI promises only weekly delivery filtered by job function, place, and remote option.
127
+
128
+ ## Cavuno SDK reference
129
+
130
+ For setup and API details beyond this workflow, use the [Cavuno Board SDK documentation](https://cavuno.com/docs/sdk).
@@ -130,3 +130,7 @@ Finish only after every applicable check passes:
130
130
  entitled request renders the ungated view.
131
131
  - Full-catalog code uses `paginate()` and any order-sensitive walk has an
132
132
  explicit sort or search.
133
+
134
+ ## Cavuno SDK reference
135
+
136
+ For setup and API details beyond this workflow, use the [Cavuno Board SDK documentation](https://cavuno.com/docs/sdk).
@@ -112,3 +112,7 @@ Report reasons are `'spam' | 'harassment' | 'misrepresentation' | 'other'`. `boa
112
112
  - Opening a thread calls `markRead`; the sender later sees `readAt`.
113
113
  - Unsend renders a tombstone in place.
114
114
  - Messaging policy errors produce deliberate UI states rather than a generic success path.
115
+
116
+ ## Cavuno SDK reference
117
+
118
+ For setup and API details beyond this workflow, use the [Cavuno Board SDK documentation](https://cavuno.com/docs/sdk).
@@ -100,3 +100,7 @@ A lifetime grant produces `paywall_no_recurring_subscription` for `portal`.
100
100
  - Test checkout reaches `complete`, then bounded grant polling reaches `hasAccess: true` after webhook delivery.
101
101
  - UI access decisions read `grant().hasAccess`.
102
102
  - Recurring grants open the portal; lifetime grants show a deliberate non-portal state.
103
+
104
+ ## Cavuno SDK reference
105
+
106
+ For setup and API details beyond this workflow, use the [Cavuno Board SDK documentation](https://cavuno.com/docs/sdk).
@@ -116,3 +116,7 @@ Bare-email billing lookup is intentionally absent because it would expose whethe
116
116
  - Free unmoderated submission returns a resolving `jobSlug`.
117
117
  - Missing domain logos leave submission usable without `logoUrl`.
118
118
  - Existing credit is selectable only after token verification.
119
+
120
+ ## Cavuno SDK reference
121
+
122
+ For setup and API details beyond this workflow, use the [Cavuno Board SDK documentation](https://cavuno.com/docs/sdk).
@@ -108,3 +108,7 @@ Finish only after every applicable check passes:
108
108
  - `overallSalary: null` renders an empty state rather than `0` or `NaN`.
109
109
  - Every salary, comparison, and sample size maps directly to a response field
110
110
  and uses the response currency.
111
+
112
+ ## Cavuno SDK reference
113
+
114
+ For setup and API details beyond this workflow, use the [Cavuno Board SDK documentation](https://cavuno.com/docs/sdk).
@@ -80,3 +80,7 @@ Unknown slugs are dropped server-side. If none resolve, the listing has `count:
80
80
  - Excluded companies disappear without changing the relative order of other items.
81
81
  - Selecting a company writes its slug to the URL and sends `companySlug` directly.
82
82
  - Teardown unsubscribes listeners and calls `dispose`.
83
+
84
+ ## Cavuno SDK reference
85
+
86
+ For setup and API details beyond this workflow, use the [Cavuno Board SDK documentation](https://cavuno.com/docs/sdk).
@@ -45,3 +45,7 @@ Finish only after every applicable branch check passes:
45
45
  requires it, and rendered figures match the returned salary read model.
46
46
  - Listing head output supplies title, description, Open Graph descriptors,
47
47
  and canonical link for the requested absolute origin and path.
48
+
49
+ ## Cavuno SDK reference
50
+
51
+ For setup and API details beyond this workflow, use the [Cavuno Board SDK documentation](https://cavuno.com/docs/sdk).
@@ -141,3 +141,7 @@ const restored = parseSessionCookie(cookieHeader, scope);
141
141
  ```
142
142
 
143
143
  Single-board origins omit the scope.
144
+
145
+ ## Cavuno SDK reference
146
+
147
+ For setup and API details beyond this workflow, use the [Cavuno Board SDK documentation](https://cavuno.com/docs/sdk).
@@ -80,3 +80,7 @@ Run `cavuno-board-smoke-test` with the real `pk_…` value. Its runtime probes a
80
80
  Pause with a concrete blocker when the board identifier or a required test credential is unavailable, or the public API probe fails before it reaches app code.
81
81
 
82
82
  **Complete when:** doctor, direct API probes, implemented-surface checks, and the production-build probe all pass or each skipped credentialed check is reported.
83
+
84
+ ## Cavuno SDK reference
85
+
86
+ For setup and API details beyond this workflow, use the [Cavuno Board SDK documentation](https://cavuno.com/docs/sdk).
@@ -128,3 +128,7 @@ Finish only after every applicable check passes:
128
128
  dropping or duplicating a URL.
129
129
  - robots.txt points to the absolute `/sitemap.xml` URL.
130
130
  - No excluded N+1 URL family is enumerated outside the walker.
131
+
132
+ ## Cavuno SDK reference
133
+
134
+ For setup and API details beyond this workflow, use the [Cavuno Board SDK documentation](https://cavuno.com/docs/sdk).
@@ -67,3 +67,7 @@ Run the app's production build, boot that output, and repeat the three app probe
67
67
  **Complete when:** the build succeeds and the running production artifact passes the shell, listing/detail-link, and not-found probes.
68
68
 
69
69
  The smoke test covers Cavuno board wiring. Performance, visual regression, and broader SEO scoring belong to their dedicated project checks.
70
+
71
+ ## Cavuno SDK reference
72
+
73
+ For setup and API details beyond this workflow, use the [Cavuno Board SDK documentation](https://cavuno.com/docs/sdk).
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "3.0.0",
2
+ "version": "3.2.0",
3
3
  "skills": [
4
4
  {
5
5
  "name": "cavuno-board-account",
@@ -1,16 +0,0 @@
1
- import { S as Schemas } from './_spec-nkWAraS0.js';
2
-
3
- type PublicBoard = Schemas['PublicBoardContext'];
4
- type PublicBoardFeatures = PublicBoard['features'];
5
- type PublicBoardAnalytics = PublicBoard['analytics'];
6
- /**
7
- * An operator-defined custom job-field definition. Board-wide;
8
- * use it to render and localize a job's opaque `customFieldValues` (resolve
9
- * option `key`s → labels, honour field `type` and display order). Shared with
10
- * the Operator API's custom-field surface (one canonical schema).
11
- */
12
- type CustomFieldDefinition = Schemas['CustomFieldDefinition'];
13
- type CustomFieldType = CustomFieldDefinition['type'];
14
- type CustomFieldOption = Schemas['CustomFieldOption'];
15
-
16
- export type { CustomFieldDefinition as C, PublicBoard as P, CustomFieldOption as a, CustomFieldType as b, PublicBoardAnalytics as c, PublicBoardFeatures as d };
@@ -1,16 +0,0 @@
1
- import { S as Schemas } from './_spec-nkWAraS0.mjs';
2
-
3
- type PublicBoard = Schemas['PublicBoardContext'];
4
- type PublicBoardFeatures = PublicBoard['features'];
5
- type PublicBoardAnalytics = PublicBoard['analytics'];
6
- /**
7
- * An operator-defined custom job-field definition. Board-wide;
8
- * use it to render and localize a job's opaque `customFieldValues` (resolve
9
- * option `key`s → labels, honour field `type` and display order). Shared with
10
- * the Operator API's custom-field surface (one canonical schema).
11
- */
12
- type CustomFieldDefinition = Schemas['CustomFieldDefinition'];
13
- type CustomFieldType = CustomFieldDefinition['type'];
14
- type CustomFieldOption = Schemas['CustomFieldOption'];
15
-
16
- export type { CustomFieldDefinition as C, PublicBoard as P, CustomFieldOption as a, CustomFieldType as b, PublicBoardAnalytics as c, PublicBoardFeatures as d };