@burdenoff/website-sdk 2026.813.3 → 2026.817.1

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.
@@ -1,4 +1,5 @@
1
- export { W as WebSDKClient, a as WebSDKClientConfig, b as WebSDKProvider, c as WebSDKProviderProps, u as useWebSDK, d as useWebSDKConfig } from '../provider-DBAnqeTv.mjs';
1
+ export { W as WebSDKClient, a as WebSDKClientConfig } from '../graphql-client-Cv6TO6hn.mjs';
2
+ export { W as WebSDKProvider, a as WebSDKProviderProps, u as useWebSDK, b as useWebSDKConfig } from '../provider-BhsbxVPo.mjs';
2
3
  import 'react/jsx-runtime';
3
4
  import 'react';
4
5
 
@@ -1,4 +1,5 @@
1
- export { W as WebSDKClient, a as WebSDKClientConfig, b as WebSDKProvider, c as WebSDKProviderProps, u as useWebSDK, d as useWebSDKConfig } from '../provider-DBAnqeTv.js';
1
+ export { W as WebSDKClient, a as WebSDKClientConfig } from '../graphql-client-Cv6TO6hn.js';
2
+ export { W as WebSDKProvider, a as WebSDKProviderProps, u as useWebSDK, b as useWebSDKConfig } from '../provider-D-Do5PmD.js';
2
3
  import 'react/jsx-runtime';
3
4
  import 'react';
4
5
 
@@ -1,6 +1,7 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import { ReactNode } from 'react';
3
3
  import { Components } from 'react-markdown';
4
+ import { W as WebSDKClient } from '../graphql-client-Cv6TO6hn.mjs';
4
5
 
5
6
  interface ContentPageData {
6
7
  id: string;
@@ -116,6 +117,78 @@ interface MarkdownProps {
116
117
  */
117
118
  declare function Markdown({ children, className, inline, components, }: MarkdownProps): ReactNode;
118
119
 
120
+ interface PublicInterviewRoundConfig {
121
+ roundNumber: number;
122
+ name: string;
123
+ /** Round type enum from the backend (PHONE_SCREEN, TECHNICAL, …) as a string. */
124
+ roundType: string;
125
+ isRequired: boolean;
126
+ description?: string | null;
127
+ }
128
+ interface PublicJobPosting {
129
+ id: string;
130
+ slug: string;
131
+ title: string;
132
+ department?: string | null;
133
+ location?: string | null;
134
+ employmentType?: string | null;
135
+ openings?: number | null;
136
+ description?: string | null;
137
+ overview?: string | null;
138
+ responsibilities: string[];
139
+ learnings: string[];
140
+ qualifications: string[];
141
+ rounds: PublicInterviewRoundConfig[];
142
+ }
143
+ interface UsePublicJobPostingsOptions {
144
+ /** Product ID override (falls back to product context / SDK config). */
145
+ productId?: string;
146
+ limit?: number;
147
+ offset?: number;
148
+ }
149
+ interface UsePublicJobPostingOptions {
150
+ /** Product ID override (falls back to product context / SDK config). */
151
+ productId?: string;
152
+ }
153
+ /**
154
+ * Fetch the list of public job postings for a product.
155
+ * Throws on GraphQL/transport errors so callers can settle an error state.
156
+ */
157
+ declare function fetchPublicJobPostings(client: WebSDKClient, options?: UsePublicJobPostingsOptions): Promise<PublicJobPosting[]>;
158
+ /**
159
+ * Fetch a single public job posting by slug. Returns `null` when the posting
160
+ * does not exist; throws on GraphQL/transport errors.
161
+ */
162
+ declare function fetchPublicJobPosting(client: WebSDKClient, slug: string, options?: UsePublicJobPostingOptions): Promise<PublicJobPosting | null>;
163
+ /**
164
+ * Hook to fetch the public job postings for the current product.
165
+ *
166
+ * @example
167
+ * ```tsx
168
+ * const { postings, loading, error } = usePublicJobPostings({ limit: 20 });
169
+ * ```
170
+ */
171
+ declare function usePublicJobPostings(options?: UsePublicJobPostingsOptions): {
172
+ postings: PublicJobPosting[];
173
+ loading: boolean;
174
+ error: string | null;
175
+ refetch: () => void;
176
+ };
177
+ /**
178
+ * Hook to fetch a single public job posting by slug.
179
+ *
180
+ * @example
181
+ * ```tsx
182
+ * const { posting, loading, error } = usePublicJobPosting('senior-engineer');
183
+ * ```
184
+ */
185
+ declare function usePublicJobPosting(slug: string, options?: UsePublicJobPostingOptions): {
186
+ posting: PublicJobPosting | null;
187
+ loading: boolean;
188
+ error: string | null;
189
+ refetch: () => void;
190
+ };
191
+
119
192
  interface BlogListPageProps {
120
193
  productName?: string;
121
194
  heroTitle?: string;
@@ -284,4 +357,4 @@ interface ContractsPageProps {
284
357
  }
285
358
  declare function ContractsPage(props: ContractsPageProps): react_jsx_runtime.JSX.Element;
286
359
 
287
- export { BlogListPage, type BlogListPageProps, BlogPostPage, type BlogPostPageProps, CaseStudiesListPage, type CaseStudiesListPageProps, CaseStudyPage, type CaseStudyPageProps, type ChangelogEntry, ChangelogPage, type ChangelogPageProps, type ContentPageData, type ContentPageListData, type ContentPageListItem, ContentRenderer, type ContractAsset, ContractsPage, type ContractsPageProps, Markdown, type MarkdownProps, type PressKitAsset, type PressKitAssetCategory, PressKitPage, type PressKitPageProps, type UseContentPageOptions, useContentPage, useContentPages };
360
+ export { BlogListPage, type BlogListPageProps, BlogPostPage, type BlogPostPageProps, CaseStudiesListPage, type CaseStudiesListPageProps, CaseStudyPage, type CaseStudyPageProps, type ChangelogEntry, ChangelogPage, type ChangelogPageProps, type ContentPageData, type ContentPageListData, type ContentPageListItem, ContentRenderer, type ContractAsset, ContractsPage, type ContractsPageProps, Markdown, type MarkdownProps, type PressKitAsset, type PressKitAssetCategory, PressKitPage, type PressKitPageProps, type PublicInterviewRoundConfig, type PublicJobPosting, type UseContentPageOptions, type UsePublicJobPostingOptions, type UsePublicJobPostingsOptions, fetchPublicJobPosting, fetchPublicJobPostings, useContentPage, useContentPages, usePublicJobPosting, usePublicJobPostings };
@@ -1,6 +1,7 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import { ReactNode } from 'react';
3
3
  import { Components } from 'react-markdown';
4
+ import { W as WebSDKClient } from '../graphql-client-Cv6TO6hn.js';
4
5
 
5
6
  interface ContentPageData {
6
7
  id: string;
@@ -116,6 +117,78 @@ interface MarkdownProps {
116
117
  */
117
118
  declare function Markdown({ children, className, inline, components, }: MarkdownProps): ReactNode;
118
119
 
120
+ interface PublicInterviewRoundConfig {
121
+ roundNumber: number;
122
+ name: string;
123
+ /** Round type enum from the backend (PHONE_SCREEN, TECHNICAL, …) as a string. */
124
+ roundType: string;
125
+ isRequired: boolean;
126
+ description?: string | null;
127
+ }
128
+ interface PublicJobPosting {
129
+ id: string;
130
+ slug: string;
131
+ title: string;
132
+ department?: string | null;
133
+ location?: string | null;
134
+ employmentType?: string | null;
135
+ openings?: number | null;
136
+ description?: string | null;
137
+ overview?: string | null;
138
+ responsibilities: string[];
139
+ learnings: string[];
140
+ qualifications: string[];
141
+ rounds: PublicInterviewRoundConfig[];
142
+ }
143
+ interface UsePublicJobPostingsOptions {
144
+ /** Product ID override (falls back to product context / SDK config). */
145
+ productId?: string;
146
+ limit?: number;
147
+ offset?: number;
148
+ }
149
+ interface UsePublicJobPostingOptions {
150
+ /** Product ID override (falls back to product context / SDK config). */
151
+ productId?: string;
152
+ }
153
+ /**
154
+ * Fetch the list of public job postings for a product.
155
+ * Throws on GraphQL/transport errors so callers can settle an error state.
156
+ */
157
+ declare function fetchPublicJobPostings(client: WebSDKClient, options?: UsePublicJobPostingsOptions): Promise<PublicJobPosting[]>;
158
+ /**
159
+ * Fetch a single public job posting by slug. Returns `null` when the posting
160
+ * does not exist; throws on GraphQL/transport errors.
161
+ */
162
+ declare function fetchPublicJobPosting(client: WebSDKClient, slug: string, options?: UsePublicJobPostingOptions): Promise<PublicJobPosting | null>;
163
+ /**
164
+ * Hook to fetch the public job postings for the current product.
165
+ *
166
+ * @example
167
+ * ```tsx
168
+ * const { postings, loading, error } = usePublicJobPostings({ limit: 20 });
169
+ * ```
170
+ */
171
+ declare function usePublicJobPostings(options?: UsePublicJobPostingsOptions): {
172
+ postings: PublicJobPosting[];
173
+ loading: boolean;
174
+ error: string | null;
175
+ refetch: () => void;
176
+ };
177
+ /**
178
+ * Hook to fetch a single public job posting by slug.
179
+ *
180
+ * @example
181
+ * ```tsx
182
+ * const { posting, loading, error } = usePublicJobPosting('senior-engineer');
183
+ * ```
184
+ */
185
+ declare function usePublicJobPosting(slug: string, options?: UsePublicJobPostingOptions): {
186
+ posting: PublicJobPosting | null;
187
+ loading: boolean;
188
+ error: string | null;
189
+ refetch: () => void;
190
+ };
191
+
119
192
  interface BlogListPageProps {
120
193
  productName?: string;
121
194
  heroTitle?: string;
@@ -284,4 +357,4 @@ interface ContractsPageProps {
284
357
  }
285
358
  declare function ContractsPage(props: ContractsPageProps): react_jsx_runtime.JSX.Element;
286
359
 
287
- export { BlogListPage, type BlogListPageProps, BlogPostPage, type BlogPostPageProps, CaseStudiesListPage, type CaseStudiesListPageProps, CaseStudyPage, type CaseStudyPageProps, type ChangelogEntry, ChangelogPage, type ChangelogPageProps, type ContentPageData, type ContentPageListData, type ContentPageListItem, ContentRenderer, type ContractAsset, ContractsPage, type ContractsPageProps, Markdown, type MarkdownProps, type PressKitAsset, type PressKitAssetCategory, PressKitPage, type PressKitPageProps, type UseContentPageOptions, useContentPage, useContentPages };
360
+ export { BlogListPage, type BlogListPageProps, BlogPostPage, type BlogPostPageProps, CaseStudiesListPage, type CaseStudiesListPageProps, CaseStudyPage, type CaseStudyPageProps, type ChangelogEntry, ChangelogPage, type ChangelogPageProps, type ContentPageData, type ContentPageListData, type ContentPageListItem, ContentRenderer, type ContractAsset, ContractsPage, type ContractsPageProps, Markdown, type MarkdownProps, type PressKitAsset, type PressKitAssetCategory, PressKitPage, type PressKitPageProps, type PublicInterviewRoundConfig, type PublicJobPosting, type UseContentPageOptions, type UsePublicJobPostingOptions, type UsePublicJobPostingsOptions, fetchPublicJobPosting, fetchPublicJobPostings, useContentPage, useContentPages, usePublicJobPosting, usePublicJobPostings };
@@ -449,6 +449,138 @@ function ContentRenderer({
449
449
  }
450
450
  return /* @__PURE__ */ jsxRuntime.jsx("div", { className, children: /* @__PURE__ */ jsxRuntime.jsx("pre", { style: { whiteSpace: "pre-wrap", fontFamily: "inherit" }, children: content }) });
451
451
  }
452
+ var PUBLIC_JOB_POSTING_FIELDS = (
453
+ /* GraphQL */
454
+ `
455
+ id
456
+ slug
457
+ title
458
+ department
459
+ location
460
+ employmentType
461
+ openings
462
+ description
463
+ overview
464
+ responsibilities
465
+ learnings
466
+ qualifications
467
+ rounds {
468
+ roundNumber
469
+ name
470
+ roundType
471
+ isRequired
472
+ description
473
+ }
474
+ `
475
+ );
476
+ var PUBLIC_JOB_POSTINGS_QUERY = (
477
+ /* GraphQL */
478
+ `
479
+ query PublicJobPostings($productId: ID, $limit: Int, $offset: Int) {
480
+ publicJobPostings(productId: $productId, limit: $limit, offset: $offset) {
481
+ ${PUBLIC_JOB_POSTING_FIELDS}
482
+ }
483
+ }
484
+ `
485
+ );
486
+ var PUBLIC_JOB_POSTING_QUERY = (
487
+ /* GraphQL */
488
+ `
489
+ query PublicJobPosting($slug: String!, $productId: ID) {
490
+ publicJobPosting(slug: $slug, productId: $productId) {
491
+ ${PUBLIC_JOB_POSTING_FIELDS}
492
+ }
493
+ }
494
+ `
495
+ );
496
+ async function fetchPublicJobPostings(client, options) {
497
+ const result = await client.query(PUBLIC_JOB_POSTINGS_QUERY, {
498
+ productId: options?.productId,
499
+ limit: options?.limit ?? 50,
500
+ offset: options?.offset ?? 0
501
+ });
502
+ if (result.errors?.length) {
503
+ throw new Error(result.errors[0]?.message ?? "Unknown error");
504
+ }
505
+ return result.data?.publicJobPostings ?? [];
506
+ }
507
+ async function fetchPublicJobPosting(client, slug, options) {
508
+ const result = await client.query(PUBLIC_JOB_POSTING_QUERY, {
509
+ slug,
510
+ productId: options?.productId
511
+ });
512
+ if (result.errors?.length) {
513
+ throw new Error(result.errors[0]?.message ?? "Unknown error");
514
+ }
515
+ return result.data?.publicJobPosting ?? null;
516
+ }
517
+ function usePublicJobPostings(options) {
518
+ const client = useWebSDK();
519
+ const config = useWebSDKConfig();
520
+ const { product } = useProduct();
521
+ const resolvedProductId = options?.productId ?? product?.id ?? config.productId;
522
+ const [postings, setPostings] = React.useState([]);
523
+ const [loading, setLoading] = React.useState(true);
524
+ const [error, setError] = React.useState(null);
525
+ const fetchPostings = React.useCallback(async () => {
526
+ setLoading(true);
527
+ setError(null);
528
+ try {
529
+ const items = await fetchPublicJobPostings(client, {
530
+ productId: resolvedProductId,
531
+ limit: options?.limit,
532
+ offset: options?.offset
533
+ });
534
+ setPostings(items);
535
+ } catch (err) {
536
+ setError(
537
+ err instanceof Error ? err.message : "Failed to fetch job postings"
538
+ );
539
+ setPostings([]);
540
+ } finally {
541
+ setLoading(false);
542
+ }
543
+ }, [client, resolvedProductId, options?.limit, options?.offset]);
544
+ React.useEffect(() => {
545
+ fetchPostings();
546
+ }, [fetchPostings]);
547
+ return { postings, loading, error, refetch: fetchPostings };
548
+ }
549
+ function usePublicJobPosting(slug, options) {
550
+ const client = useWebSDK();
551
+ const config = useWebSDKConfig();
552
+ const { product } = useProduct();
553
+ const resolvedProductId = options?.productId ?? product?.id ?? config.productId;
554
+ const [posting, setPosting] = React.useState(null);
555
+ const [loading, setLoading] = React.useState(true);
556
+ const [error, setError] = React.useState(null);
557
+ const fetchPosting = React.useCallback(async () => {
558
+ if (!slug) {
559
+ setPosting(null);
560
+ setLoading(false);
561
+ return;
562
+ }
563
+ setLoading(true);
564
+ setError(null);
565
+ try {
566
+ const item = await fetchPublicJobPosting(client, slug, {
567
+ productId: resolvedProductId
568
+ });
569
+ setPosting(item);
570
+ } catch (err) {
571
+ setError(
572
+ err instanceof Error ? err.message : "Failed to fetch job posting"
573
+ );
574
+ setPosting(null);
575
+ } finally {
576
+ setLoading(false);
577
+ }
578
+ }, [client, resolvedProductId, slug]);
579
+ React.useEffect(() => {
580
+ fetchPosting();
581
+ }, [fetchPosting]);
582
+ return { posting, loading, error, refetch: fetchPosting };
583
+ }
452
584
  var PROSE_CSS = `
453
585
  .boff-prose {
454
586
  max-width: none;
@@ -3095,7 +3227,11 @@ exports.ContentRenderer = ContentRenderer;
3095
3227
  exports.ContractsPage = ContractsPage;
3096
3228
  exports.Markdown = Markdown;
3097
3229
  exports.PressKitPage = PressKitPage;
3230
+ exports.fetchPublicJobPosting = fetchPublicJobPosting;
3231
+ exports.fetchPublicJobPostings = fetchPublicJobPostings;
3098
3232
  exports.useContentPage = useContentPage;
3099
3233
  exports.useContentPages = useContentPages;
3234
+ exports.usePublicJobPosting = usePublicJobPosting;
3235
+ exports.usePublicJobPostings = usePublicJobPostings;
3100
3236
  //# sourceMappingURL=index.js.map
3101
3237
  //# sourceMappingURL=index.js.map