@cavuno/board 1.35.1 → 1.37.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.
@@ -63,6 +63,11 @@ interface components {
63
63
  AddCategoryAliasesBody: {
64
64
  aliases: string[];
65
65
  };
66
+ AddForagerCompanyBody: {
67
+ companyUrl: string;
68
+ companyName: string;
69
+ description?: string | null;
70
+ };
66
71
  AddForagerExclusionBody: {
67
72
  pattern: string;
68
73
  type: string;
@@ -236,6 +241,19 @@ interface components {
236
241
  /** @description Time at which the audit entry was written. Unix epoch in milliseconds. */
237
242
  timestamp: number;
238
243
  };
244
+ BatchForagerCompaniesBody: {
245
+ /** @enum {string} */
246
+ mode: "add";
247
+ companies: {
248
+ url: string;
249
+ name: string;
250
+ }[];
251
+ description?: string | null;
252
+ } | {
253
+ /** @enum {string} */
254
+ mode: "remove";
255
+ companyUrls: string[];
256
+ };
239
257
  BatchRequestBody: {
240
258
  /** @description Array of sub-operations to execute. Each entry runs independently and reports its result on the corresponding entry of the response `data` array. Sub-operation `id` values must be unique within the batch. Up to 100 entries. */
241
259
  operations: ({
@@ -258,6 +276,61 @@ interface components {
258
276
  resourceId: string;
259
277
  })[];
260
278
  };
279
+ BillingConnect: {
280
+ /** @enum {string} */
281
+ object: "billing_connect";
282
+ connected: boolean;
283
+ stripeConnectAccountId: string | null;
284
+ chargesEnabled: boolean;
285
+ payoutsEnabled: boolean;
286
+ detailsSubmitted: boolean;
287
+ requirements: components["schemas"]["BillingConnectRequirements"];
288
+ };
289
+ BillingConnectRequirements: {
290
+ currentlyDue: string[];
291
+ eventuallyDue: string[];
292
+ pastDue: string[];
293
+ disabledReason: string | null;
294
+ /** @description Unix timestamp (seconds) from Stripe, or null. */
295
+ currentDeadline: number | null;
296
+ } | null;
297
+ BillingEntitlements: {
298
+ /** @enum {string} */
299
+ object: "billing_entitlements";
300
+ /** @description Platform plan slug, or 'unknown' when absent. */
301
+ planKey: string;
302
+ limits: components["schemas"]["BillingEntitlementsLimits"];
303
+ /**
304
+ * @description Whether the stored flat limits came from the plan defaults or a staff override.
305
+ * @enum {string|null}
306
+ */
307
+ limitsSource: "plan" | "override" | null;
308
+ };
309
+ BillingEntitlementsLimits: {
310
+ activeJobs: number | null;
311
+ subscribers: number | null;
312
+ teamSeats: number | null;
313
+ canBePublic: boolean;
314
+ canRemoveBranding: boolean;
315
+ apiAccess: boolean;
316
+ };
317
+ BillingSubscription: {
318
+ /** @enum {string} */
319
+ object: "billing_subscription";
320
+ active: boolean;
321
+ status: string | null;
322
+ planSlug: string | null;
323
+ stripeSubscriptionId: string | null;
324
+ stripeCustomerId: string | null;
325
+ /** @description Subscription period end as a millisecond epoch. */
326
+ currentPeriodEnd: number | null;
327
+ cancelAtPeriodEnd: boolean;
328
+ items: components["schemas"]["BillingSubscriptionItem"][];
329
+ };
330
+ BillingSubscriptionItem: {
331
+ stripePriceId: string;
332
+ quantity: number;
333
+ };
261
334
  Block: {
262
335
  /** @enum {string} */
263
336
  object: "block";
@@ -1110,6 +1183,12 @@ interface components {
1110
1183
  description?: string;
1111
1184
  sortOrder?: number;
1112
1185
  };
1186
+ CreateForagerSubscriptionBody: {
1187
+ name: string;
1188
+ rules: components["schemas"]["ForagerRule"][];
1189
+ filters?: components["schemas"]["ForagerFilters"];
1190
+ description?: string | null;
1191
+ };
1113
1192
  CreateInvitationBody: {
1114
1193
  /**
1115
1194
  * Format: email
@@ -1311,6 +1390,17 @@ interface components {
1311
1390
  /** @description The stage label. */
1312
1391
  label: string;
1313
1392
  };
1393
+ CreateRedirectBody: {
1394
+ /** @description Source path to match, for example `/old-careers`. */
1395
+ fromPath: string;
1396
+ /** @description Destination path or URL, for example `/jobs`. */
1397
+ toPath: string;
1398
+ /**
1399
+ * @description HTTP status code. One of `301` or `302`. Defaults to `301`.
1400
+ * @default 301
1401
+ */
1402
+ statusCode: 301 | 302;
1403
+ };
1314
1404
  CreateSkillBody: {
1315
1405
  name: string;
1316
1406
  slug?: string;
@@ -1910,6 +2000,24 @@ interface components {
1910
2000
  errorMessage: string | null;
1911
2001
  createdAt: string;
1912
2002
  };
2003
+ ForagerBatchResult: {
2004
+ /** @enum {string} */
2005
+ object: "forager_batch_result";
2006
+ successCount: number;
2007
+ failureCount: number;
2008
+ };
2009
+ ForagerCompany: {
2010
+ /** @enum {string} */
2011
+ object: "forager_company";
2012
+ companyId: string;
2013
+ companyUrl: string;
2014
+ companyName: string;
2015
+ slug: string;
2016
+ about: string | null;
2017
+ atsType: string | null;
2018
+ atsIdentifier: string | null;
2019
+ addedAt: string;
2020
+ };
1913
2021
  ForagerConfig: {
1914
2022
  /** @enum {string} */
1915
2023
  object: "forager_config";
@@ -1923,6 +2031,11 @@ interface components {
1923
2031
  hasApiKey?: boolean;
1924
2032
  hasWebhookSecret?: boolean;
1925
2033
  };
2034
+ ForagerDescription: {
2035
+ /** @enum {string} */
2036
+ object: "forager_description";
2037
+ description: string | null;
2038
+ };
1926
2039
  ForagerExclusion: {
1927
2040
  id: string;
1928
2041
  /** @enum {string} */
@@ -1931,6 +2044,37 @@ interface components {
1931
2044
  type: string;
1932
2045
  createdAt: string;
1933
2046
  };
2047
+ ForagerFilters: {
2048
+ countries?: string[];
2049
+ subdivisions?: string[];
2050
+ seniorities?: string[];
2051
+ employment_types?: string[];
2052
+ workplace_types?: string[];
2053
+ };
2054
+ ForagerRule: {
2055
+ /** @enum {string} */
2056
+ field: "title" | "description" | "category_list";
2057
+ query: {
2058
+ [key: string]: unknown;
2059
+ };
2060
+ active?: boolean;
2061
+ };
2062
+ ForagerSubscription: {
2063
+ /** @enum {string} */
2064
+ object: "forager_subscription";
2065
+ verticalKey: string;
2066
+ verticalId: string;
2067
+ /** @enum {string} */
2068
+ kind: "role" | "company";
2069
+ name: string;
2070
+ active: boolean;
2071
+ description: string | null;
2072
+ filters?: unknown;
2073
+ rules?: unknown;
2074
+ backfillId?: string;
2075
+ createdAt: string;
2076
+ updatedAt: string;
2077
+ };
1934
2078
  ForagerSyncRun: {
1935
2079
  id: string;
1936
2080
  /** @enum {string} */
@@ -2747,8 +2891,25 @@ interface components {
2747
2891
  requireApprovalAggregatedJobs?: boolean;
2748
2892
  /** @description Whether visitors must sign in to view jobs. */
2749
2893
  registrationWallEnabled?: boolean;
2750
- /** @description Whether the public talent directory is enabled. */
2894
+ /** @description Legacy shorthand for the talent directory. `true` maps to `talentDirectoryVisibility: "public"`; `false` maps to `"off"`. Prefer the tri-state field. Providing both with conflicting values returns `settings_conflicting_fields`. */
2751
2895
  talentDirectoryEnabled?: boolean;
2896
+ /**
2897
+ * @description Talent directory access mode: `off` (hidden), `public` (anyone), or `employers_only` (approved employers). Canonical field; supersedes `talentDirectoryEnabled`.
2898
+ * @enum {string}
2899
+ */
2900
+ talentDirectoryVisibility?: "off" | "public" | "employers_only";
2901
+ /** @description Whether the public board shows a cookie consent banner before non-essential tracking runs. */
2902
+ requireCookieConsent?: boolean;
2903
+ /** @description Title shown on the cookie consent banner. 1–200 characters. */
2904
+ cookieBannerTitle?: string;
2905
+ /** @description Body copy shown on the cookie consent banner. 1–500 characters. */
2906
+ cookieBannerDescription?: string;
2907
+ /** @description Reject-button label on the cookie consent banner. 1–80 characters. */
2908
+ cookieBannerRejectLabel?: string;
2909
+ /** @description Accept-button label on the cookie consent banner. 1–80 characters. */
2910
+ cookieBannerAcceptLabel?: string;
2911
+ /** @description Preferences/manage-button label on the cookie consent banner. 1–80 characters. */
2912
+ cookieBannerManageLabel?: string;
2752
2913
  /** @description Whether the Cavuno-branded footer is displayed on the public board. Plan-gated; lower-tier plans cannot disable this. */
2753
2914
  showCavunoBranding?: boolean;
2754
2915
  /** @description Default expiry, in days, applied to newly published jobs when no `expiresAt` is supplied. */
@@ -3371,6 +3532,23 @@ interface components {
3371
3532
  /** Format: date-time */
3372
3533
  markedAt: string;
3373
3534
  };
3535
+ Redirect: {
3536
+ /** @description Unique identifier for the redirect. */
3537
+ id: string;
3538
+ /**
3539
+ * @description String representing the object's type. Objects of the same type share the same value.
3540
+ * @enum {string}
3541
+ */
3542
+ object: "redirect";
3543
+ /** @description Source path matched by this redirect. */
3544
+ fromPath: string;
3545
+ /** @description Destination path or URL. */
3546
+ toPath: string;
3547
+ /** @description HTTP status code used when redirecting. */
3548
+ statusCode: 301 | 302;
3549
+ /** @description Time at which the redirect was created. ISO 8601 datetime. */
3550
+ createdAt: string;
3551
+ };
3374
3552
  RedirectResolution: {
3375
3553
  /** @enum {string} */
3376
3554
  object: "redirect_resolution";
@@ -3378,6 +3556,28 @@ interface components {
3378
3556
  /** @description The redirect target (board-relative), or `null` when no redirect matches. The consumer 308s to `target`, or 404s when `null`. */
3379
3557
  target: string | null;
3380
3558
  };
3559
+ RedirectsBatchRequest: {
3560
+ /** @description Array of sub-operations to execute. Each entry runs independently and reports its result on the corresponding entry of the response `data` array. Sub-operation `id` values must be unique within the batch. Up to 100 entries. */
3561
+ operations: ({
3562
+ id: string;
3563
+ /** @enum {string} */
3564
+ method: "POST";
3565
+ body?: unknown;
3566
+ action?: string;
3567
+ resourceId?: string;
3568
+ } | {
3569
+ id: string;
3570
+ /** @enum {string} */
3571
+ method: "PATCH";
3572
+ body?: unknown;
3573
+ resourceId: string;
3574
+ } | {
3575
+ id: string;
3576
+ /** @enum {string} */
3577
+ method: "DELETE";
3578
+ resourceId: string;
3579
+ })[];
3580
+ };
3381
3581
  RejectClaimBody: {
3382
3582
  /** @description Optional free-form reason recorded in the audit log. */
3383
3583
  reason?: string;
@@ -3398,6 +3598,9 @@ interface components {
3398
3598
  /** @description Human-readable display label. */
3399
3599
  label: string;
3400
3600
  };
3601
+ RemoveForagerCompanyBody: {
3602
+ companyUrl: string;
3603
+ };
3401
3604
  ReorderPipelineStagesBody: {
3402
3605
  /** @description The job whose stages are reordered. */
3403
3606
  jobId: string;
@@ -4387,6 +4590,16 @@ interface components {
4387
4590
  description?: string;
4388
4591
  sortOrder?: number;
4389
4592
  };
4593
+ UpdateForagerDescriptionBody: {
4594
+ description: string | null;
4595
+ };
4596
+ UpdateForagerSubscriptionBody: {
4597
+ name?: string;
4598
+ rules?: components["schemas"]["ForagerRule"][];
4599
+ filters?: components["schemas"]["ForagerFilters"];
4600
+ active?: boolean;
4601
+ description?: string | null;
4602
+ };
4390
4603
  UpdateInvitationBody: {
4391
4604
  /**
4392
4605
  * @description The new role for the pending invitation.
@@ -4508,6 +4721,14 @@ interface components {
4508
4721
  label?: string;
4509
4722
  hidden?: boolean;
4510
4723
  };
4724
+ UpdateRedirectBody: {
4725
+ /** @description Source path to match, for example `/old-careers`. */
4726
+ fromPath?: string;
4727
+ /** @description Destination path or URL, for example `/jobs`. */
4728
+ toPath?: string;
4729
+ /** @description HTTP status code. One of `301` or `302`. */
4730
+ statusCode?: 301 | 302;
4731
+ };
4511
4732
  UpdateSkillBody: {
4512
4733
  name?: string;
4513
4734
  slug?: string;
@@ -1,4 +1,4 @@
1
- import { b as Schemas, L as ListEnvelope, o as RelatedSearch } from './jobs-Dq2a9oPj.mjs';
1
+ import { b as Schemas, L as ListEnvelope, o as RelatedSearch } from './jobs-CMCADU_-.mjs';
2
2
 
3
3
  /** Author shape embedded on posts (no `object` discriminator). */
4
4
  type BlogAuthorEmbed = Schemas['PublicBlogAuthorEmbed'];
@@ -1,4 +1,4 @@
1
- import { b as Schemas, L as ListEnvelope, o as RelatedSearch } from './jobs-Dq2a9oPj.js';
1
+ import { b as Schemas, L as ListEnvelope, o as RelatedSearch } from './jobs-CMCADU_-.js';
2
2
 
3
3
  /** Author shape embedded on posts (no `object` discriminator). */
4
4
  type BlogAuthorEmbed = Schemas['PublicBlogAuthorEmbed'];
package/dist/seo.d.mts CHANGED
@@ -1,6 +1,6 @@
1
- import { P as PublicBlogPostSummary, B as BlogAuthorEmbed, C as CompanyCategorySalary, a as CompanySalary, L as LocationSalaryDetail, S as SkillSalaryDetail, T as TitleSalaryDetail } from './salaries-CWg82dOz.mjs';
2
- import { P as PublicBoard } from './board-t_WltBBa.mjs';
3
- import { P as PublicJob } from './jobs-Dq2a9oPj.mjs';
1
+ import { P as PublicBlogPostSummary, B as BlogAuthorEmbed, C as CompanyCategorySalary, a as CompanySalary, L as LocationSalaryDetail, S as SkillSalaryDetail, T as TitleSalaryDetail } from './salaries-9U42CM5A.mjs';
2
+ import { P as PublicBoard } from './board-D0guOBYy.mjs';
3
+ import { P as PublicJob } from './jobs-CMCADU_-.mjs';
4
4
  import { B as BoardLabelOverrides } from './ui-copy-CKfFTtLk.mjs';
5
5
 
6
6
  /**
package/dist/seo.d.ts CHANGED
@@ -1,6 +1,6 @@
1
- import { P as PublicBlogPostSummary, B as BlogAuthorEmbed, C as CompanyCategorySalary, a as CompanySalary, L as LocationSalaryDetail, S as SkillSalaryDetail, T as TitleSalaryDetail } from './salaries-CTin-18R.js';
2
- import { P as PublicBoard } from './board-Z7hjKDp8.js';
3
- import { P as PublicJob } from './jobs-Dq2a9oPj.js';
1
+ import { P as PublicBlogPostSummary, B as BlogAuthorEmbed, C as CompanyCategorySalary, a as CompanySalary, L as LocationSalaryDetail, S as SkillSalaryDetail, T as TitleSalaryDetail } from './salaries-C3w9kvPJ.js';
2
+ import { P as PublicBoard } from './board-D_BRa2zC.js';
3
+ import { P as PublicJob } from './jobs-CMCADU_-.js';
4
4
  import { B as BoardLabelOverrides } from './ui-copy-CKfFTtLk.js';
5
5
 
6
6
  /**
package/dist/server.d.mts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { BoardSdk } from './index.mjs';
2
- import './jobs-Dq2a9oPj.mjs';
3
- import './board-t_WltBBa.mjs';
4
- import './salaries-CWg82dOz.mjs';
2
+ import './jobs-CMCADU_-.mjs';
3
+ import './board-D0guOBYy.mjs';
4
+ import './salaries-9U42CM5A.mjs';
5
5
 
6
6
  /**
7
7
  * Session cookie codec — pure (no framework imports, no node imports) so it
package/dist/server.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { BoardSdk } from './index.js';
2
- import './jobs-Dq2a9oPj.js';
3
- import './board-Z7hjKDp8.js';
4
- import './salaries-CTin-18R.js';
2
+ import './jobs-CMCADU_-.js';
3
+ import './board-D_BRa2zC.js';
4
+ import './salaries-C3w9kvPJ.js';
5
5
 
6
6
  /**
7
7
  * Session cookie codec — pure (no framework imports, no node imports) so it
@@ -1,7 +1,7 @@
1
1
  import { BoardSdk } from './index.mjs';
2
- import './jobs-Dq2a9oPj.mjs';
3
- import './board-t_WltBBa.mjs';
4
- import './salaries-CWg82dOz.mjs';
2
+ import './jobs-CMCADU_-.mjs';
3
+ import './board-D0guOBYy.mjs';
4
+ import './salaries-9U42CM5A.mjs';
5
5
 
6
6
  /**
7
7
  * Sitemap primitives — the pure XML + bucket-filename logic behind a board
package/dist/sitemap.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { BoardSdk } from './index.js';
2
- import './jobs-Dq2a9oPj.js';
3
- import './board-Z7hjKDp8.js';
4
- import './salaries-CTin-18R.js';
2
+ import './jobs-CMCADU_-.js';
3
+ import './board-D_BRa2zC.js';
4
+ import './salaries-C3w9kvPJ.js';
5
5
 
6
6
  /**
7
7
  * Sitemap primitives — the pure XML + bucket-filename logic behind a board
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cavuno/board",
3
- "version": "1.35.1",
3
+ "version": "1.37.0",
4
4
  "description": "Typed isomorphic client for the Cavuno Board API",
5
5
  "license": "MIT",
6
6
  "type": "commonjs",
@@ -120,6 +120,16 @@
120
120
  "default": "./dist/skills-types.js"
121
121
  }
122
122
  },
123
+ "./doctor": {
124
+ "import": {
125
+ "types": "./dist/doctor.d.mts",
126
+ "default": "./dist/doctor.mjs"
127
+ },
128
+ "require": {
129
+ "types": "./dist/doctor.d.ts",
130
+ "default": "./dist/doctor.js"
131
+ }
132
+ },
123
133
  "./skills/*": "./skills/*"
124
134
  },
125
135
  "files": [
@@ -143,6 +153,7 @@
143
153
  },
144
154
  "devDependencies": {
145
155
  "@arethetypeswrong/cli": "^0.18.2",
156
+ "@kit/data-remote": "workspace:*",
146
157
  "@kit/tsconfig": "workspace:*",
147
158
  "@types/node": "catalog:",
148
159
  "openapi-typescript": "^7.6.0",
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "1.35.1",
2
+ "version": "1.37.0",
3
3
  "skills": [
4
4
  {
5
5
  "name": "cavuno-board-account",