@cavuno/board 4.56.0 → 4.56.2

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 (68) hide show
  1. package/CHANGELOG.md +55 -0
  2. package/dist/{_spec-DNgZ9TDp.d.mts → _spec-CDYDY0hB.d.mts} +316 -2
  3. package/dist/{_spec-DNgZ9TDp.d.ts → _spec-CDYDY0hB.d.ts} +316 -2
  4. package/dist/bin.mjs +26 -4
  5. package/dist/{blog-BWrreKht.d.ts → blog-DNGOmaKI.d.ts} +1 -1
  6. package/dist/{blog-BQ5DzpRE.d.mts → blog-WupXypHv.d.mts} +1 -1
  7. package/dist/{board-CA5yUPFF.d.ts → board-CmQox8FZ.d.ts} +2 -2
  8. package/dist/{board-PwjT7UJo.d.mts → board-DbBBz7Pv.d.mts} +2 -2
  9. package/dist/{breadcrumbs-sAlVJqL2.d.ts → breadcrumbs-DpXiAo9j.d.ts} +2 -2
  10. package/dist/{breadcrumbs-BX9xxHwd.d.mts → breadcrumbs-mQTz0vZo.d.mts} +2 -2
  11. package/dist/browser/cavuno-board.global.min.js +1 -1
  12. package/dist/{chunk-2KD2CWFL.mjs → chunk-GUXSUQCP.mjs} +18 -4
  13. package/dist/{chunk-DZD3DAEY.mjs → chunk-M4CX64RC.mjs} +25 -1
  14. package/dist/{chunk-JFDWTTOQ.mjs → chunk-MSY7ERBY.mjs} +14 -2
  15. package/dist/{chunk-P4DNSVGM.mjs → chunk-R3QB3WM6.mjs} +1 -1
  16. package/dist/doctor.js +26 -4
  17. package/dist/doctor.mjs +26 -4
  18. package/dist/filters.d.mts +2 -2
  19. package/dist/filters.d.ts +2 -2
  20. package/dist/format.d.mts +4 -4
  21. package/dist/format.d.ts +4 -4
  22. package/dist/format.js +5 -1
  23. package/dist/format.mjs +2 -2
  24. package/dist/go.js +5 -1
  25. package/dist/go.mjs +1 -1
  26. package/dist/index.d.mts +241 -13
  27. package/dist/index.d.ts +241 -13
  28. package/dist/index.js +226 -2
  29. package/dist/index.mjs +202 -2
  30. package/dist/{jobs-CslVA0vg.d.ts → jobs-B-NPmaV0.d.ts} +1 -1
  31. package/dist/{jobs-BImL-vLs.d.mts → jobs-CgmHLS8j.d.mts} +1 -1
  32. package/dist/paths.d.mts +19 -2
  33. package/dist/paths.d.ts +19 -2
  34. package/dist/paths.js +14 -2
  35. package/dist/paths.mjs +5 -1
  36. package/dist/{roles-Bh3WNF9u.d.mts → roles-B_d0igKI.d.mts} +5 -1
  37. package/dist/{roles-Bh3WNF9u.d.ts → roles-B_d0igKI.d.ts} +5 -1
  38. package/dist/route-contract.d.mts +2 -2
  39. package/dist/route-contract.d.ts +2 -2
  40. package/dist/route-contract.js +26 -4
  41. package/dist/route-contract.mjs +2 -2
  42. package/dist/{search-BOM75I5R.d.mts → search--bO1b3RJ.d.mts} +1 -1
  43. package/dist/{search-CvRPy4fO.d.ts → search-BvhQ92ZO.d.ts} +1 -1
  44. package/dist/{seo-DC-QjxoU.d.mts → seo-C7HjUu_z.d.mts} +1 -1
  45. package/dist/{seo-fuM4UfG-.d.ts → seo-CBRBS8Mc.d.ts} +1 -1
  46. package/dist/seo-files.d.mts +2 -2
  47. package/dist/seo-files.d.ts +2 -2
  48. package/dist/seo-files.js +5 -0
  49. package/dist/seo-files.mjs +5 -0
  50. package/dist/seo.d.mts +6 -6
  51. package/dist/seo.d.ts +6 -6
  52. package/dist/seo.js +5 -1
  53. package/dist/seo.mjs +2 -2
  54. package/dist/server.d.mts +6 -6
  55. package/dist/server.d.ts +6 -6
  56. package/dist/server.mjs +1 -1
  57. package/dist/sitemap.d.mts +6 -6
  58. package/dist/sitemap.d.ts +6 -6
  59. package/dist/sitemap.js +5 -1
  60. package/dist/sitemap.mjs +2 -2
  61. package/dist/suggest.d.mts +2 -2
  62. package/dist/suggest.d.ts +2 -2
  63. package/dist/well-known.d.mts +1 -1
  64. package/dist/well-known.d.ts +1 -1
  65. package/dist/well-known.js +26 -4
  66. package/dist/well-known.mjs +2 -2
  67. package/package.json +1 -1
  68. package/skills/manifest.json +1 -1
@@ -2079,10 +2079,14 @@ interface components {
2079
2079
  type: "market";
2080
2080
  /** @description Stable market identity (source slug; markets are slug-keyed). */
2081
2081
  id: string;
2082
- /** @description Public market URL slug. */
2082
+ /** @description Source slug of the market. Filters (`marketSlug`) accept it. */
2083
2083
  slug: string;
2084
- /** @description Market display name. */
2084
+ /** @description English source name of the market. */
2085
2085
  name: string;
2086
+ /** @description The slug of the market's page in the board language. Equals `slug` when the market has no translation. Link market pages with this slug. */
2087
+ canonicalSlug: string;
2088
+ /** @description The market name in the board language, for labels. Equals `name` when the market has no translation. The query matches it as well as `name`. */
2089
+ displayName: string;
2086
2090
  /** @description Number of companies on the board in this market. */
2087
2091
  companyCount: number;
2088
2092
  };
@@ -2288,6 +2292,174 @@ interface components {
2288
2292
  /** @description The `token` query parameter from the invite link (`/employers/invites/accept?token=…`). */
2289
2293
  token: string;
2290
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
+ };
2291
2463
  ProfileChoiceList: {
2292
2464
  data: {
2293
2465
  id: string;
@@ -3165,6 +3337,148 @@ interface components {
3165
3337
  /** @description The board password. */
3166
3338
  password: string;
3167
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
+ };
3168
3482
  ReadReceipt: {
3169
3483
  /** @enum {string} */
3170
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,4 +1,4 @@
1
- import { S as Schemas } from './_spec-DNgZ9TDp.js';
1
+ import { S as Schemas } from './_spec-CDYDY0hB.js';
2
2
 
3
3
  /** Author shape embedded on posts (no `object` discriminator). */
4
4
  type BlogAuthorEmbed = Schemas['PublicBlogAuthorEmbed'];
@@ -1,4 +1,4 @@
1
- import { S as Schemas } from './_spec-DNgZ9TDp.mjs';
1
+ import { S as Schemas } from './_spec-CDYDY0hB.mjs';
2
2
 
3
3
  /** Author shape embedded on posts (no `object` discriminator). */
4
4
  type BlogAuthorEmbed = Schemas['PublicBlogAuthorEmbed'];
@@ -1,5 +1,5 @@
1
- import { S as Schemas } from './_spec-DNgZ9TDp.js';
2
- import { L as ListEnvelope, v as RelatedSearch, b as CustomFieldFilter, O as ObjectReferenceFilter, a as JobCapability } from './jobs-CslVA0vg.js';
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-DNgZ9TDp.mjs';
2
- import { L as ListEnvelope, v as RelatedSearch, b as CustomFieldFilter, O as ObjectReferenceFilter, a as JobCapability } from './jobs-BImL-vLs.mjs';
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-CA5yUPFF.js';
2
- import { P as PublicJob } from './jobs-CslVA0vg.js';
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-PwjT7UJo.mjs';
2
- import { P as PublicJob } from './jobs-BImL-vLs.mjs';
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