@b10cks/client 1.4.0 → 1.6.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.
- package/README.md +113 -0
- package/dist/index.cjs +19 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +184 -5
- package/dist/index.mjs +625 -420
- package/dist/index.mjs.map +1 -1
- package/package.json +13 -9
- package/dist/index.js +0 -8
- package/dist/index.js.map +0 -1
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../src/content.ts","../src/data-api.ts","../src/preview-bridge.ts","../src/sitemap.ts","../src/index.ts"],"sourcesContent":["import type { B10cksLink } from './types'\n\nexport interface B10cksLinkResolved {\n href: string\n target: string\n}\n\n/**\n * Resolves a B10cksLink value to a plain { href, target } object.\n *\n * - `'email'` links produce a `mailto:` href with optional subject/body/cc/bcc query params.\n * - `'url'` and `'internal'` links use the stored `url` field; an `anchor` is appended as a\n * hash fragment when present.\n * - `'asset'` links cannot be resolved to a URL without the asset record — returns `undefined`.\n * - Locale prefixing and router integration are intentionally left to the caller.\n */\nexport function resolveB10cksLink(\n link: B10cksLink | undefined | null\n): B10cksLinkResolved | undefined {\n if (!link) return undefined\n\n if (link.type === 'email') {\n const params = new URLSearchParams()\n if (link.subject) params.set('subject', link.subject)\n if (link.body) params.set('body', link.body)\n if (link.cc) params.set('cc', link.cc)\n if (link.bcc) params.set('bcc', link.bcc)\n const query = params.toString()\n return { href: `mailto:${link.email}${query ? `?${query}` : ''}`, target: '_self' }\n }\n\n if (link.type === 'asset') {\n return undefined\n }\n\n // 'url' and 'internal' share url + target + optional anchor\n const target = link.target ?? '_self'\n let href = link.url ?? ''\n if ('anchor' in link && link.anchor) {\n href = `${href.trimEnd()}#${link.anchor}`\n }\n\n return { href, target }\n}\n","import type {\n IBCollectionResponse,\n Endpoint,\n IBBaseQueryParams,\n IBBlock,\n IBContent,\n IBContentQueryParams,\n IBDataEntry,\n IBDataSource,\n IBGetBlocksParams,\n IBGetContentsParams,\n IBGetRedirectsParams,\n IBRedirect,\n IBRedirectLookupResult,\n IBSearchParams,\n IBSearchResponse,\n IBSearchResult,\n IBSitemapEntry,\n IBSpace,\n} from './types'\n\ntype ApiQueryParams = Omit<IBBaseQueryParams, 'token'> & Record<string, unknown>\ntype ApiCollectionResponse<T> =\n | T[]\n | IBCollectionResponse<T>\n | { data: T[]; rv?: string | number }\n | { data: IBCollectionResponse<T>; rv?: string | number }\ntype ApiCollectionResult<T> =\n | ApiCollectionResponse<T>\n | { data: ApiCollectionResponse<T>; rv?: string | number }\n\nexport interface CollectionFetchOptions {\n allPages?: boolean\n}\n\nexport interface RedirectFetchOptions extends CollectionFetchOptions {\n forceRefresh?: boolean\n}\n\nexport interface DataApiClient {\n get<T>(\n endpoint: Endpoint,\n params?: ApiQueryParams\n ): Promise<T | { data: T; rv?: string | number }>\n getAll<T>(endpoint: Endpoint, params?: ApiQueryParams): Promise<T[]>\n post?<T>(endpoint: string, body?: unknown, params?: ApiQueryParams): Promise<T>\n setRv(value: string | number): void\n}\n\nexport type RedirectMap = Record<string, { target: string; status_code: number }>\n\nexport interface GetConfigOptions extends Omit<IBContentQueryParams, 'token' | 'full_slug'> {\n slug?: string\n language?: string\n bypassCache?: boolean\n}\n\nfunction serializeFilterValue(value: unknown): string | undefined {\n if (value === null || value === undefined) return undefined\n if (typeof value === 'boolean') return String(value)\n if (typeof value === 'number') return String(value)\n if (typeof value === 'string') return value\n\n if (typeof value === 'object' && !Array.isArray(value)) {\n const obj = value as Record<string, unknown>\n\n if ('null' in obj) return 'null:'\n if ('!null' in obj) return '!null:'\n if ('between' in obj) {\n const [from, to] = obj.between as [string, string]\n return `${from}...${to}`\n }\n\n const ops = [\n 'eq', 'neq', 'like', '!like', '^like', 'like$',\n 'lt', 'gt', 'lte', 'gte', 'in', '!in', 'empty', '!empty',\n ] as const\n for (const op of ops) {\n if (op in obj) {\n const val = obj[op]\n if (Array.isArray(val)) return `${op}:${val.join(',')}`\n return `${op}:${String(val)}`\n }\n }\n }\n\n return undefined\n}\n\nexport function serializeFilter(filter: Record<string, unknown>): Record<string, string> {\n const result: Record<string, string> = {}\n for (const [key, value] of Object.entries(filter)) {\n const serialized = serializeFilterValue(value)\n if (serialized !== undefined) {\n result[key] = serialized\n }\n }\n return result\n}\n\nfunction buildParamsWithFilter(\n params: Record<string, unknown>,\n filter: unknown,\n sort: string | string[] | undefined\n): ApiQueryParams {\n const filterParams =\n filter && typeof filter === 'object'\n ? serializeFilter(filter as Record<string, unknown>)\n : {}\n const sortParam =\n Array.isArray(sort) ? { sort: sort.join(',') } : sort != null ? { sort } : {}\n return { ...params, ...filterParams, ...sortParam }\n}\n\nexport class B10cksDataApi {\n private redirectsCache: RedirectMap | null = null\n private readonly configCache = new Map<string, unknown>()\n\n constructor(private readonly client: DataApiClient) {}\n\n async getResource<T>(endpoint: Endpoint, params: ApiQueryParams = {}): Promise<T> {\n const response = await this.client.get<T>(endpoint, params)\n return this.unwrapResource(response)\n }\n\n async getCollection<T>(\n endpoint: Endpoint,\n params: ApiQueryParams = {},\n options: CollectionFetchOptions = {}\n ): Promise<T[]> {\n if (options.allPages) {\n return this.client.getAll<T>(endpoint, params)\n }\n\n const response = await this.client.get<ApiCollectionResponse<T>>(endpoint, params)\n return this.unwrapCollection(response)\n }\n\n async getContent<T = Record<string, unknown>>(\n fullSlug: string,\n params: Omit<IBContentQueryParams, 'token' | 'full_slug'> = {}\n ): Promise<IBContent<T>> {\n return this.getResource<IBContent<T>>(`contents/${fullSlug}`, params)\n }\n\n async getContents<T = Record<string, unknown>>(\n params: IBGetContentsParams = {},\n options: CollectionFetchOptions = {}\n ): Promise<IBContent<T>[]> {\n const { filter, sort, ...rest } = params\n return this.getCollection<IBContent<T>>(\n 'contents',\n buildParamsWithFilter(rest, filter, sort),\n options\n )\n }\n\n async getBlock(blockId: string, params: ApiQueryParams = {}): Promise<IBBlock> {\n return this.getResource<IBBlock>(`blocks/${blockId}`, params)\n }\n\n async getBlocks(\n params: IBGetBlocksParams = {},\n options: CollectionFetchOptions = {}\n ): Promise<IBBlock[]> {\n const { filter, ...rest } = params\n return this.getCollection<IBBlock>(\n 'blocks',\n buildParamsWithFilter(rest, filter, undefined),\n options\n )\n }\n\n async search<T = Record<string, unknown>>(\n params: IBSearchParams\n ): Promise<IBSearchResponse<T>> {\n const response = await this.client.get<IBSearchResponse<T>>(\n 'search',\n params as unknown as ApiQueryParams\n )\n if (\n typeof response === 'object' &&\n response !== null &&\n 'data' in response &&\n 'meta' in (response as Record<string, unknown>)\n ) {\n return response as IBSearchResponse<T>\n }\n if (typeof response === 'object' && response !== null && 'data' in response) {\n const inner = (response as { data: unknown }).data\n if (\n typeof inner === 'object' &&\n inner !== null &&\n 'meta' in inner &&\n 'data' in inner\n ) {\n return inner as IBSearchResponse<T>\n }\n }\n return response as unknown as IBSearchResponse<T>\n }\n\n async getSitemap(\n params: Omit<IBContentQueryParams, 'token'> = {},\n options: CollectionFetchOptions = {}\n ): Promise<IBSitemapEntry[]> {\n return this.getCollection<IBSitemapEntry>('sitemap', params, options)\n }\n\n async getDataEntries(\n source: string,\n params: ApiQueryParams = {},\n options: CollectionFetchOptions = {}\n ): Promise<IBDataEntry[]> {\n return this.getCollection<IBDataEntry>(`datasources/${source}/entries`, params, options)\n }\n\n async getDataSources(\n params: ApiQueryParams = {},\n options: CollectionFetchOptions = {}\n ): Promise<IBDataSource[]> {\n return this.getCollection<IBDataSource>('datasources', params, options)\n }\n\n async getSpace(params: ApiQueryParams = {}): Promise<IBSpace> {\n return this.getResource<IBSpace>('spaces/me', params)\n }\n\n async lookupRedirect(source: string): Promise<IBRedirectLookupResult | false> {\n if (!this.client.post) {\n throw new Error(\n 'lookupRedirect requires a client that supports POST. Use ApiClient from @b10cks/client.'\n )\n }\n return this.client.post<IBRedirectLookupResult | false>('redirects/lookup', { source })\n }\n\n async getRedirects(params?: IBGetRedirectsParams, forceRefresh?: boolean): Promise<RedirectMap>\n async getRedirects(\n params?: IBGetRedirectsParams,\n options?: RedirectFetchOptions\n ): Promise<RedirectMap>\n async getRedirects(\n params: IBGetRedirectsParams = {},\n forceRefreshOrOptions: boolean | RedirectFetchOptions = false\n ): Promise<RedirectMap> {\n const { allPages = false, forceRefresh = false } =\n typeof forceRefreshOrOptions === 'boolean'\n ? { allPages: true, forceRefresh: forceRefreshOrOptions }\n : forceRefreshOrOptions\n\n if (allPages && this.redirectsCache && !forceRefresh) {\n return this.redirectsCache\n }\n\n const { filter, ...rest } = params\n const flatParams = buildParamsWithFilter(rest, filter, undefined)\n const redirects = await this.getCollection<IBRedirect>('redirects', flatParams, { allPages })\n const map = Object.fromEntries(\n redirects.map(({ source, target, status_code }) => [source, { target, status_code }])\n )\n\n if (allPages) {\n this.redirectsCache = map\n }\n\n return map\n }\n\n async getConfig<T = Record<string, unknown>>({\n slug = '_config',\n language_iso,\n language,\n bypassCache = false,\n ...params\n }: GetConfigOptions = {}): Promise<T> {\n const normalizedLanguage = language_iso ?? language\n const cacheKey = JSON.stringify({ slug, language_iso: normalizedLanguage, ...params })\n if (!bypassCache && this.configCache.has(cacheKey)) {\n return this.configCache.get(cacheKey) as T\n }\n\n const configContent = await this.getContent<Record<string, unknown>>(slug, {\n ...params,\n language_iso: normalizedLanguage,\n })\n const value = (configContent.content ?? {}) as T\n\n if (!bypassCache) {\n this.configCache.set(cacheKey, value)\n }\n\n return value\n }\n\n async syncRevision(fallbackRv = 426713400): Promise<string | number> {\n const space = await this.getSpace()\n const nextRv = space.rv || fallbackRv\n this.client.setRv(nextRv)\n return nextRv\n }\n\n clearCache() {\n this.redirectsCache = null\n this.configCache.clear()\n }\n\n private unwrapResource<T>(response: T | { data: T }): T {\n if (typeof response === 'object' && response !== null && 'data' in response) {\n return (response as { data: T }).data\n }\n\n return response\n }\n\n private unwrapCollection<T>(response: ApiCollectionResult<T>): T[] {\n if (Array.isArray(response)) {\n return response\n }\n\n if (typeof response === 'object' && response !== null && 'data' in response) {\n if (Array.isArray(response.data)) {\n return response.data\n }\n\n if (\n typeof response.data === 'object' &&\n response.data !== null &&\n 'data' in response.data &&\n Array.isArray(response.data.data)\n ) {\n return response.data.data\n }\n }\n\n return []\n }\n}\n\nexport function createB10cksDataApi(client: DataApiClient): B10cksDataApi {\n return new B10cksDataApi(client)\n}\n","export type ContentUpdateEvent = {\n content: Record<string, unknown>\n}\n\nexport type SelectUpdateEvent = {\n selectedItem: string\n}\n\nexport type FieldUpdateEvent = {\n itemId: string\n field: string\n value: string\n}\n\nexport type EventType = 'CONTENT_UPDATE' | 'SELECT_UPDATE' | 'HOVER_UPDATE' | 'FIELD_UPDATE'\n\nexport type EventPayloadMap = {\n CONTENT_UPDATE: ContentUpdateEvent\n SELECT_UPDATE: SelectUpdateEvent\n HOVER_UPDATE: SelectUpdateEvent\n FIELD_UPDATE: FieldUpdateEvent\n}\n\ntype EventCallback<T> = (payload: T) => void\n\nexport type BridgeEvent = {\n type: EventType\n payload: EventPayloadMap[EventType]\n b10cksId?: string\n}\n\nexport class PreviewBridge {\n private static instance: PreviewBridge\n private readonly listeners: Partial<Record<EventType, Set<EventCallback<unknown>>>> = {}\n private initialized = false\n\n private constructor() {}\n\n static getInstance() {\n if (!PreviewBridge.instance) {\n PreviewBridge.instance = new PreviewBridge()\n }\n return PreviewBridge.instance\n }\n\n init() {\n if (!this.isInPreviewMode() || this.initialized) {\n return\n }\n\n window.addEventListener('message', this.handleMessage)\n this.initialized = true\n }\n\n destroy() {\n if (this.initialized && typeof window !== 'undefined') {\n window.removeEventListener('message', this.handleMessage)\n }\n this.initialized = false\n for (const eventType of Object.keys(this.listeners) as EventType[]) {\n this.listeners[eventType]?.clear()\n }\n }\n\n isInPreviewMode(): boolean {\n return typeof window !== 'undefined' && window.self !== window.top\n }\n\n on<T extends EventType>(eventType: T, callback: EventCallback<EventPayloadMap[T]>): () => void {\n if (!this.isInPreviewMode()) {\n return () => {}\n }\n\n const listeners = this.listeners[eventType] || new Set<EventCallback<unknown>>()\n this.listeners[eventType] = listeners\n listeners.add(callback as EventCallback<unknown>)\n\n return () => {\n listeners.delete(callback as EventCallback<unknown>)\n }\n }\n\n selectItem(selectedItem: string) {\n if (!this.isInPreviewMode()) {\n return\n }\n\n window.parent.postMessage(\n {\n type: 'SELECT_UPDATE',\n payload: { selectedItem },\n },\n '*'\n )\n }\n\n updateField(itemId: string, field: string, value: string) {\n if (!this.isInPreviewMode()) {\n return\n }\n\n window.parent.postMessage(\n {\n type: 'FIELD_UPDATE',\n payload: { itemId, field, value },\n },\n '*'\n )\n }\n\n private handleMessage = (event: MessageEvent) => {\n if (!event.data || typeof event.data !== 'object') {\n return\n }\n\n const { type, payload } = event.data as BridgeEvent\n if (!type || !payload) {\n return\n }\n\n this.notify(type, payload as never)\n }\n\n private notify<T extends EventType>(type: T, payload: EventPayloadMap[T]) {\n const callbacks = this.listeners[type]\n if (!callbacks) {\n return\n }\n\n for (const callback of callbacks) {\n ;(callback as EventCallback<EventPayloadMap[T]>)(payload)\n }\n }\n}\n\nexport const previewBridge = PreviewBridge.getInstance()\n","import type { IBSitemapEntry } from './types'\n\nexport function normalizePathSegment(value: string | null | undefined): string {\n return (value ?? '').trim().replace(/^\\/+|\\/+$/g, '')\n}\n\n/**\n * Combines a b10cks `full_slug` and `language_iso` into a rooted, locale-prefixed path.\n *\n * - The slug `home` is treated as the root (`/` or `/<locale>`).\n * - Slugs that already start with the locale prefix are not double-prefixed.\n */\nexport function buildLocalizedPath(\n fullSlug: string | null | undefined,\n languageIso: string | null | undefined\n): string {\n const slug = normalizePathSegment(fullSlug)\n const locale = normalizePathSegment(languageIso)\n\n if (!locale) {\n return slug && slug !== 'home' ? `/${slug}` : '/'\n }\n\n if (!slug || slug === 'home') {\n return `/${locale}`\n }\n\n const localePrefix = `${locale}/`\n if (slug === locale || slug.startsWith(localePrefix)) {\n return `/${slug}`\n }\n\n return `/${locale}/${slug}`\n}\n\nfunction toAbsoluteUrl(path: string, siteUrl?: string): string | null {\n if (!siteUrl) return null\n try {\n return new URL(path, siteUrl).toString()\n } catch {\n return null\n }\n}\n\nfunction escapeXml(value: string): string {\n return value\n .replace(/&/g, '&')\n .replace(/</g, '<')\n .replace(/>/g, '>')\n .replace(/\"/g, '"')\n .replace(/'/g, ''')\n}\n\nexport interface SitemapFilterOptions {\n /** Absolute base URL used for deduplication. Without it, paths are compared as strings. */\n siteUrl?: string\n /** Only include entries for this locale (ISO code). */\n locale?: string\n}\n\n/**\n * Filters sitemap entries by locale, deduplicates by resolved URL, and drops `noindex` entries.\n */\nexport function filterSitemapEntries(\n entries: IBSitemapEntry[],\n options: SitemapFilterOptions = {}\n): IBSitemapEntry[] {\n const { siteUrl, locale } = options\n const seen = new Set<string>()\n\n return entries.filter((entry) => {\n if (locale && entry.language_iso !== locale) return false\n if (entry.meta?.robots?.toLowerCase().includes('noindex')) return false\n\n const path = buildLocalizedPath(entry.full_slug, entry.language_iso)\n const key = siteUrl ? (toAbsoluteUrl(path, siteUrl) ?? path) : path\n if (seen.has(key)) return false\n\n seen.add(key)\n return true\n })\n}\n\n/**\n * Renders `IBSitemapEntry[]` as a `<urlset>` XML string.\n * Pass `siteUrl` to emit absolute `<loc>` values; without it, relative paths are used.\n */\nexport function renderSitemapXml(entries: IBSitemapEntry[], siteUrl?: string): string {\n const urls = entries\n .map((entry) => {\n const path = buildLocalizedPath(entry.full_slug, entry.language_iso)\n const loc = siteUrl ? toAbsoluteUrl(path, siteUrl) : path\n if (!loc) return ''\n const lines = [' <url>', ` <loc>${escapeXml(loc)}</loc>`]\n if (entry.published_at) lines.push(` <lastmod>${escapeXml(entry.published_at)}</lastmod>`)\n lines.push(' </url>')\n return lines.join('\\n')\n })\n .filter(Boolean)\n .join('\\n')\n\n return [\n '<?xml version=\"1.0\" encoding=\"UTF-8\"?>',\n '<urlset xmlns=\"http://www.sitemaps.org/schemas/sitemap/0.9\">',\n urls,\n '</urlset>',\n ].join('\\n')\n}\n\n/**\n * Renders a list of sitemap paths as a `<sitemapindex>` XML string.\n */\nexport function renderSitemapIndex(paths: string[], siteUrl?: string): string {\n const sitemaps = paths\n .map((path) => {\n const loc = siteUrl ? toAbsoluteUrl(path, siteUrl) : path\n if (!loc) return ''\n return [' <sitemap>', ` <loc>${escapeXml(loc)}</loc>`, ' </sitemap>'].join('\\n')\n })\n .filter(Boolean)\n .join('\\n')\n\n return [\n '<?xml version=\"1.0\" encoding=\"UTF-8\"?>',\n '<sitemapindex xmlns=\"http://www.sitemaps.org/schemas/sitemap/0.9\">',\n sitemaps,\n '</sitemapindex>',\n ].join('\\n')\n}\n","import type {\n B10cksApiClientOptions,\n Endpoint,\n FetchClient,\n IBBaseQueryParams,\n IBCollectionResponse,\n IBMeta,\n IBResponse,\n} from './types'\n\nexport interface B10cksApiClientRvOptions {\n getRv?: () => string | number\n setRv?: (value: string | number) => void\n}\n\nexport * from './content'\nexport * from './data-api'\nexport * from './preview-bridge'\nexport * from './sitemap'\nexport type * from './types'\nexport * as types from './types'\n\nlet rv: string | number = 0\n\ntype ApiResourceResponse<T> = IBResponse<T> | T\ntype ApiCollectionResponse<T> =\n | IBCollectionResponse<T>\n | IBResponse<IBCollectionResponse<T>>\n | T[]\n | { data: T[]; meta?: IBMeta; rv?: string | number }\n\nexport class ApiClient {\n private readonly baseUrl: string\n readonly token: string\n private readonly vid: string\n private readonly fetchClient: FetchClient\n private readonly getRvFn?: () => string | number\n private readonly setRvFn?: (value: string | number) => void\n\n constructor(options: B10cksApiClientOptions, requestUrl?: URL | string) {\n this.baseUrl = options.baseUrl.endsWith('/') ? options.baseUrl.slice(0, -1) : options.baseUrl\n this.token = options.token\n const defaultFetch =\n typeof globalThis.fetch === 'function' ? globalThis.fetch.bind(globalThis) : null\n if (options.fetchClient) {\n this.fetchClient = options.fetchClient\n } else if (defaultFetch) {\n this.fetchClient = defaultFetch as FetchClient\n } else {\n throw new Error(\n 'No fetch implementation available. Provide `fetchClient` in ApiClient options.'\n )\n }\n\n this.getRvFn = options.getRv\n this.setRvFn = options.setRv\n\n const url = this.resolveRequestUrl(requestUrl)\n this.vid = options.version || 'published'\n this.setRv(url?.searchParams.get('b10cks_rv') || options.rv || rv)\n }\n\n async get<T>(\n endpoint: Endpoint,\n params: Omit<IBBaseQueryParams, 'token'> & Record<string, unknown> = {}\n ): Promise<ApiResourceResponse<T>> {\n const url = this.buildUrl(endpoint, {\n vid: this.vid,\n rv: this.getRv(),\n ...params,\n token: this.token,\n })\n\n const payload = await this.fetchClient(url)\n const response = await this.parseResponse<ApiResourceResponse<T>>(payload)\n\n if (this.hasRevision(response)) {\n this.setRv(response.rv)\n }\n\n return response\n }\n\n async post<T>(\n endpoint: string,\n body?: unknown,\n params: Omit<IBBaseQueryParams, 'token'> & Record<string, unknown> = {}\n ): Promise<T> {\n const url = this.buildUrl(endpoint, {\n vid: this.vid,\n rv: this.getRv(),\n ...params,\n token: this.token,\n })\n\n const payload = await this.fetchClient(url, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: body !== undefined ? JSON.stringify(body) : undefined,\n })\n\n return this.parseResponse<T>(payload)\n }\n\n async getAll<T>(\n endpoint: Endpoint,\n params: Omit<IBBaseQueryParams, 'token'> & Record<string, unknown> = {}\n ): Promise<T[]> {\n const firstResponse = await this.get<IBCollectionResponse<T> & { meta?: IBMeta }>(endpoint, {\n ...params,\n page: 1,\n })\n const normalizedFirstResponse = this.normalizeCollectionResponse<T>(firstResponse)\n\n if (normalizedFirstResponse.rv) {\n this.setRv(normalizedFirstResponse.rv)\n }\n\n if (!normalizedFirstResponse.meta || normalizedFirstResponse.meta.last_page <= 1) {\n return normalizedFirstResponse.data\n }\n\n const pageRequests = Array.from(\n { length: normalizedFirstResponse.meta.last_page - 1 },\n (_, i) => this.get<IBCollectionResponse<T>>(endpoint, { ...params, page: i + 2 })\n )\n\n const allResponses = await Promise.all(pageRequests)\n\n return normalizedFirstResponse.data.concat(\n allResponses.flatMap((response) => this.normalizeCollectionResponse<T>(response).data)\n )\n }\n\n setRv(value: string | number) {\n if (this.setRvFn) {\n this.setRvFn(value)\n } else {\n rv = value\n }\n }\n\n getRv() {\n if (this.getRvFn) {\n return this.getRvFn()\n }\n return rv\n }\n\n private async parseResponse<T>(payload: unknown): Promise<T> {\n if (this.isFetchResponse(payload)) {\n if (!payload.ok) {\n throw new Error(`Request failed with status ${payload.status}`)\n }\n\n return (await payload.json()) as T\n }\n\n return payload as T\n }\n\n private normalizeCollectionResponse<T>(response: ApiCollectionResponse<T>) {\n if (this.isCollectionResponseEnvelope(response)) {\n const nestedResponse = response.data\n\n return {\n data: nestedResponse.data,\n meta: (nestedResponse as IBCollectionResponse<T> & { meta?: IBMeta }).meta,\n rv: response.rv || nestedResponse.rv,\n }\n }\n\n if (Array.isArray(response)) {\n return { data: response, meta: undefined, rv: undefined }\n }\n\n if (typeof response === 'object' && response !== null && 'data' in response) {\n const {\n data,\n meta,\n rv: responseRv,\n } = response as {\n data: T[]\n meta?: IBMeta\n rv?: string | number\n }\n return { data, meta, rv: responseRv }\n }\n\n return { data: [], meta: undefined, rv: undefined }\n }\n\n private buildUrl(endpoint: string, params: Record<string, unknown>): string {\n const url = new URL(`${this.baseUrl}/v1/${endpoint}`)\n\n Object.entries(params).forEach(([key, value]) => {\n if (value !== undefined && value !== null) {\n url.searchParams.append(key, String(value))\n }\n })\n\n return url.toString()\n }\n\n private resolveRequestUrl(requestUrl?: URL | string): URL | null {\n if (!requestUrl) {\n return null\n }\n\n if (requestUrl instanceof URL) {\n return requestUrl\n }\n\n return new URL(requestUrl, 'http://localhost')\n }\n\n private isFetchResponse(value: unknown): value is Response {\n return (\n typeof value === 'object' &&\n value !== null &&\n 'json' in value &&\n typeof (value as Response).json === 'function' &&\n 'ok' in value\n )\n }\n\n private hasRevision(value: unknown): value is { rv: string | number } {\n return typeof value === 'object' && value !== null && 'rv' in value\n }\n\n private isCollectionResponseEnvelope<T>(\n value: ApiCollectionResponse<T>\n ): value is IBResponse<IBCollectionResponse<T>> {\n return (\n typeof value === 'object' &&\n value !== null &&\n 'data' in value &&\n typeof value.data === 'object' &&\n value.data !== null &&\n 'data' in value.data &&\n Array.isArray(value.data.data)\n )\n }\n}\n"],"names":["resolveB10cksLink","link","params","query","target","href","serializeFilterValue","value","obj","from","to","ops","op","val","serializeFilter","filter","result","key","serialized","buildParamsWithFilter","sort","filterParams","sortParam","B10cksDataApi","client","endpoint","response","options","fullSlug","rest","blockId","inner","source","forceRefreshOrOptions","allPages","forceRefresh","flatParams","redirects","map","status_code","slug","language_iso","language","bypassCache","normalizedLanguage","cacheKey","fallbackRv","nextRv","createB10cksDataApi","PreviewBridge","eventType","callback","listeners","selectedItem","itemId","field","event","type","payload","callbacks","previewBridge","normalizePathSegment","buildLocalizedPath","languageIso","locale","localePrefix","toAbsoluteUrl","path","siteUrl","escapeXml","filterSitemapEntries","entries","seen","entry","renderSitemapXml","loc","lines","renderSitemapIndex","paths","rv","ApiClient","requestUrl","defaultFetch","url","body","firstResponse","normalizedFirstResponse","pageRequests","_","i","allResponses","nestedResponse","data","meta","responseRv"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.mjs","names":[],"sources":["../src/content.ts","../src/data-api.ts","../src/preview-bridge.ts","../src/editable.ts","../src/preview-store.ts","../src/sitemap.ts","../src/types.ts","../src/index.ts"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@b10cks/client",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.6.0",
|
|
4
4
|
"description": "Core b10cks API client",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Michael Wallner @ Coder's Cantina",
|
|
@@ -15,25 +15,27 @@
|
|
|
15
15
|
],
|
|
16
16
|
"type": "module",
|
|
17
17
|
"sideEffects": false,
|
|
18
|
-
"main": "./dist/index.
|
|
18
|
+
"main": "./dist/index.cjs",
|
|
19
19
|
"module": "./dist/index.mjs",
|
|
20
20
|
"types": "./dist/index.d.ts",
|
|
21
21
|
"exports": {
|
|
22
22
|
".": {
|
|
23
23
|
"types": "./dist/index.d.ts",
|
|
24
24
|
"import": "./dist/index.mjs",
|
|
25
|
-
"require": "./dist/index.
|
|
25
|
+
"require": "./dist/index.cjs"
|
|
26
26
|
}
|
|
27
27
|
},
|
|
28
28
|
"publishConfig": {
|
|
29
29
|
"access": "public"
|
|
30
30
|
},
|
|
31
31
|
"devDependencies": {
|
|
32
|
+
"@microsoft/api-extractor": "^7.58.7",
|
|
32
33
|
"chalk": "^5.6.2",
|
|
33
|
-
"
|
|
34
|
+
"happy-dom": "^20.10.6",
|
|
35
|
+
"vite": "^8.1.3",
|
|
34
36
|
"vite-plugin-banner": "^0.8.1",
|
|
35
|
-
"vite-plugin-dts": "^
|
|
36
|
-
"vitest": "^
|
|
37
|
+
"vite-plugin-dts": "^5.0.3",
|
|
38
|
+
"vitest": "^4.1.9"
|
|
37
39
|
},
|
|
38
40
|
"release": {
|
|
39
41
|
"branches": [
|
|
@@ -43,8 +45,10 @@
|
|
|
43
45
|
"scripts": {
|
|
44
46
|
"build": "vite build",
|
|
45
47
|
"dev": "vite build --watch",
|
|
46
|
-
"test": "vitest",
|
|
47
|
-
"lint": "
|
|
48
|
-
"clean": "rm -rf dist"
|
|
48
|
+
"test": "vitest run --passWithNoTests",
|
|
49
|
+
"lint": "oxlint src",
|
|
50
|
+
"clean": "rm -rf dist",
|
|
51
|
+
"lint:fix": "oxlint --fix src",
|
|
52
|
+
"typecheck": "tsc --noEmit -p tsconfig.json"
|
|
49
53
|
}
|
|
50
54
|
}
|
package/dist/index.js
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});function C(r){if(!r)return;if(r.type==="email"){const n=new URLSearchParams;r.subject&&n.set("subject",r.subject),r.body&&n.set("body",r.body),r.cc&&n.set("cc",r.cc),r.bcc&&n.set("bcc",r.bcc);const i=n.toString();return{href:`mailto:${r.email}${i?`?${i}`:""}`,target:"_self"}}if(r.type==="asset")return;const t=r.target??"_self";let e=r.url??"";return"anchor"in r&&r.anchor&&(e=`${e.trimEnd()}#${r.anchor}`),{href:e,target:t}}function j(r){if(r!=null){if(typeof r=="boolean"||typeof r=="number")return String(r);if(typeof r=="string")return r;if(typeof r=="object"&&!Array.isArray(r)){const t=r;if("null"in t)return"null:";if("!null"in t)return"!null:";if("between"in t){const[n,i]=t.between;return`${n}...${i}`}const e=["eq","neq","like","!like","^like","like$","lt","gt","lte","gte","in","!in","empty","!empty"];for(const n of e)if(n in t){const i=t[n];return Array.isArray(i)?`${n}:${i.join(",")}`:`${n}:${String(i)}`}}}}function y(r){const t={};for(const[e,n]of Object.entries(r)){const i=j(n);i!==void 0&&(t[e]=i)}return t}function f(r,t,e){const n=t&&typeof t=="object"?y(t):{},i=Array.isArray(e)?{sort:e.join(",")}:e!=null?{sort:e}:{};return{...r,...n,...i}}class b{constructor(t){this.client=t}redirectsCache=null;configCache=new Map;async getResource(t,e={}){const n=await this.client.get(t,e);return this.unwrapResource(n)}async getCollection(t,e={},n={}){if(n.allPages)return this.client.getAll(t,e);const i=await this.client.get(t,e);return this.unwrapCollection(i)}async getContent(t,e={}){return this.getResource(`contents/${t}`,e)}async getContents(t={},e={}){const{filter:n,sort:i,...s}=t;return this.getCollection("contents",f(s,n,i),e)}async getBlock(t,e={}){return this.getResource(`blocks/${t}`,e)}async getBlocks(t={},e={}){const{filter:n,...i}=t;return this.getCollection("blocks",f(i,n,void 0),e)}async search(t){const e=await this.client.get("search",t);if(typeof e=="object"&&e!==null&&"data"in e&&"meta"in e)return e;if(typeof e=="object"&&e!==null&&"data"in e){const n=e.data;if(typeof n=="object"&&n!==null&&"meta"in n&&"data"in n)return n}return e}async getSitemap(t={},e={}){return this.getCollection("sitemap",t,e)}async getDataEntries(t,e={},n={}){return this.getCollection(`datasources/${t}/entries`,e,n)}async getDataSources(t={},e={}){return this.getCollection("datasources",t,e)}async getSpace(t={}){return this.getResource("spaces/me",t)}async lookupRedirect(t){if(!this.client.post)throw new Error("lookupRedirect requires a client that supports POST. Use ApiClient from @b10cks/client.");return this.client.post("redirects/lookup",{source:t})}async getRedirects(t={},e=!1){const{allPages:n=!1,forceRefresh:i=!1}=typeof e=="boolean"?{allPages:!0,forceRefresh:e}:e;if(n&&this.redirectsCache&&!i)return this.redirectsCache;const{filter:s,...a}=t,o=f(a,s,void 0),u=await this.getCollection("redirects",o,{allPages:n}),l=Object.fromEntries(u.map(({source:w,target:v,status_code:R})=>[w,{target:v,status_code:R}]));return n&&(this.redirectsCache=l),l}async getConfig({slug:t="_config",language_iso:e,language:n,bypassCache:i=!1,...s}={}){const a=e??n,o=JSON.stringify({slug:t,language_iso:a,...s});if(!i&&this.configCache.has(o))return this.configCache.get(o);const l=(await this.getContent(t,{...s,language_iso:a})).content??{};return i||this.configCache.set(o,l),l}async syncRevision(t=426713400){const n=(await this.getSpace()).rv||t;return this.client.setRv(n),n}clearCache(){this.redirectsCache=null,this.configCache.clear()}unwrapResource(t){return typeof t=="object"&&t!==null&&"data"in t?t.data:t}unwrapCollection(t){if(Array.isArray(t))return t;if(typeof t=="object"&&t!==null&&"data"in t){if(Array.isArray(t.data))return t.data;if(typeof t.data=="object"&&t.data!==null&&"data"in t.data&&Array.isArray(t.data.data))return t.data.data}return[]}}function S(r){return new b(r)}class c{static instance;listeners={};initialized=!1;constructor(){}static getInstance(){return c.instance||(c.instance=new c),c.instance}init(){!this.isInPreviewMode()||this.initialized||(window.addEventListener("message",this.handleMessage),this.initialized=!0)}destroy(){this.initialized&&typeof window<"u"&&window.removeEventListener("message",this.handleMessage),this.initialized=!1;for(const t of Object.keys(this.listeners))this.listeners[t]?.clear()}isInPreviewMode(){return typeof window<"u"&&window.self!==window.top}on(t,e){if(!this.isInPreviewMode())return()=>{};const n=this.listeners[t]||new Set;return this.listeners[t]=n,n.add(e),()=>{n.delete(e)}}selectItem(t){this.isInPreviewMode()&&window.parent.postMessage({type:"SELECT_UPDATE",payload:{selectedItem:t}},"*")}updateField(t,e,n){this.isInPreviewMode()&&window.parent.postMessage({type:"FIELD_UPDATE",payload:{itemId:t,field:e,value:n}},"*")}handleMessage=t=>{if(!t.data||typeof t.data!="object")return;const{type:e,payload:n}=t.data;!e||!n||this.notify(e,n)};notify(t,e){const n=this.listeners[t];if(n)for(const i of n)i(e)}}const A=c.getInstance();function d(r){return(r??"").trim().replace(/^\/+|\/+$/g,"")}function p(r,t){const e=d(r),n=d(t);if(!n)return e&&e!=="home"?`/${e}`:"/";if(!e||e==="home")return`/${n}`;const i=`${n}/`;return e===n||e.startsWith(i)?`/${e}`:`/${n}/${e}`}function m(r,t){if(!t)return null;try{return new URL(r,t).toString()}catch{return null}}function g(r){return r.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}function $(r,t={}){const{siteUrl:e,locale:n}=t,i=new Set;return r.filter(s=>{if(n&&s.language_iso!==n||s.meta?.robots?.toLowerCase().includes("noindex"))return!1;const a=p(s.full_slug,s.language_iso),o=e?m(a,e)??a:a;return i.has(o)?!1:(i.add(o),!0)})}function P(r,t){return['<?xml version="1.0" encoding="UTF-8"?>','<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">',r.map(n=>{const i=p(n.full_slug,n.language_iso),s=t?m(i,t):i;if(!s)return"";const a=[" <url>",` <loc>${g(s)}</loc>`];return n.published_at&&a.push(` <lastmod>${g(n.published_at)}</lastmod>`),a.push(" </url>"),a.join(`
|
|
2
|
-
`)}).filter(Boolean).join(`
|
|
3
|
-
`),"</urlset>"].join(`
|
|
4
|
-
`)}function F(r,t){return['<?xml version="1.0" encoding="UTF-8"?>','<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">',r.map(n=>{const i=t?m(n,t):n;return i?[" <sitemap>",` <loc>${g(i)}</loc>`," </sitemap>"].join(`
|
|
5
|
-
`):""}).filter(Boolean).join(`
|
|
6
|
-
`),"</sitemapindex>"].join(`
|
|
7
|
-
`)}const z=Object.freeze(Object.defineProperty({__proto__:null},Symbol.toStringTag,{value:"Module"}));let h=0;class k{baseUrl;token;vid;fetchClient;getRvFn;setRvFn;constructor(t,e){this.baseUrl=t.baseUrl.endsWith("/")?t.baseUrl.slice(0,-1):t.baseUrl,this.token=t.token;const n=typeof globalThis.fetch=="function"?globalThis.fetch.bind(globalThis):null;if(t.fetchClient)this.fetchClient=t.fetchClient;else if(n)this.fetchClient=n;else throw new Error("No fetch implementation available. Provide `fetchClient` in ApiClient options.");this.getRvFn=t.getRv,this.setRvFn=t.setRv;const i=this.resolveRequestUrl(e);this.vid=t.version||"published",this.setRv(i?.searchParams.get("b10cks_rv")||t.rv||h)}async get(t,e={}){const n=this.buildUrl(t,{vid:this.vid,rv:this.getRv(),...e,token:this.token}),i=await this.fetchClient(n),s=await this.parseResponse(i);return this.hasRevision(s)&&this.setRv(s.rv),s}async post(t,e,n={}){const i=this.buildUrl(t,{vid:this.vid,rv:this.getRv(),...n,token:this.token}),s=await this.fetchClient(i,{method:"POST",headers:{"Content-Type":"application/json"},body:e!==void 0?JSON.stringify(e):void 0});return this.parseResponse(s)}async getAll(t,e={}){const n=await this.get(t,{...e,page:1}),i=this.normalizeCollectionResponse(n);if(i.rv&&this.setRv(i.rv),!i.meta||i.meta.last_page<=1)return i.data;const s=Array.from({length:i.meta.last_page-1},(o,u)=>this.get(t,{...e,page:u+2})),a=await Promise.all(s);return i.data.concat(a.flatMap(o=>this.normalizeCollectionResponse(o).data))}setRv(t){this.setRvFn?this.setRvFn(t):h=t}getRv(){return this.getRvFn?this.getRvFn():h}async parseResponse(t){if(this.isFetchResponse(t)){if(!t.ok)throw new Error(`Request failed with status ${t.status}`);return await t.json()}return t}normalizeCollectionResponse(t){if(this.isCollectionResponseEnvelope(t)){const e=t.data;return{data:e.data,meta:e.meta,rv:t.rv||e.rv}}if(Array.isArray(t))return{data:t,meta:void 0,rv:void 0};if(typeof t=="object"&&t!==null&&"data"in t){const{data:e,meta:n,rv:i}=t;return{data:e,meta:n,rv:i}}return{data:[],meta:void 0,rv:void 0}}buildUrl(t,e){const n=new URL(`${this.baseUrl}/v1/${t}`);return Object.entries(e).forEach(([i,s])=>{s!=null&&n.searchParams.append(i,String(s))}),n.toString()}resolveRequestUrl(t){return t?t instanceof URL?t:new URL(t,"http://localhost"):null}isFetchResponse(t){return typeof t=="object"&&t!==null&&"json"in t&&typeof t.json=="function"&&"ok"in t}hasRevision(t){return typeof t=="object"&&t!==null&&"rv"in t}isCollectionResponseEnvelope(t){return typeof t=="object"&&t!==null&&"data"in t&&typeof t.data=="object"&&t.data!==null&&"data"in t.data&&Array.isArray(t.data.data)}}exports.ApiClient=k;exports.B10cksDataApi=b;exports.PreviewBridge=c;exports.buildLocalizedPath=p;exports.createB10cksDataApi=S;exports.filterSitemapEntries=$;exports.normalizePathSegment=d;exports.previewBridge=A;exports.renderSitemapIndex=F;exports.renderSitemapXml=P;exports.resolveB10cksLink=C;exports.serializeFilter=y;exports.types=z;
|
|
8
|
-
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/content.ts","../src/data-api.ts","../src/preview-bridge.ts","../src/sitemap.ts","../src/index.ts"],"sourcesContent":["import type { B10cksLink } from './types'\n\nexport interface B10cksLinkResolved {\n href: string\n target: string\n}\n\n/**\n * Resolves a B10cksLink value to a plain { href, target } object.\n *\n * - `'email'` links produce a `mailto:` href with optional subject/body/cc/bcc query params.\n * - `'url'` and `'internal'` links use the stored `url` field; an `anchor` is appended as a\n * hash fragment when present.\n * - `'asset'` links cannot be resolved to a URL without the asset record — returns `undefined`.\n * - Locale prefixing and router integration are intentionally left to the caller.\n */\nexport function resolveB10cksLink(\n link: B10cksLink | undefined | null\n): B10cksLinkResolved | undefined {\n if (!link) return undefined\n\n if (link.type === 'email') {\n const params = new URLSearchParams()\n if (link.subject) params.set('subject', link.subject)\n if (link.body) params.set('body', link.body)\n if (link.cc) params.set('cc', link.cc)\n if (link.bcc) params.set('bcc', link.bcc)\n const query = params.toString()\n return { href: `mailto:${link.email}${query ? `?${query}` : ''}`, target: '_self' }\n }\n\n if (link.type === 'asset') {\n return undefined\n }\n\n // 'url' and 'internal' share url + target + optional anchor\n const target = link.target ?? '_self'\n let href = link.url ?? ''\n if ('anchor' in link && link.anchor) {\n href = `${href.trimEnd()}#${link.anchor}`\n }\n\n return { href, target }\n}\n","import type {\n IBCollectionResponse,\n Endpoint,\n IBBaseQueryParams,\n IBBlock,\n IBContent,\n IBContentQueryParams,\n IBDataEntry,\n IBDataSource,\n IBGetBlocksParams,\n IBGetContentsParams,\n IBGetRedirectsParams,\n IBRedirect,\n IBRedirectLookupResult,\n IBSearchParams,\n IBSearchResponse,\n IBSearchResult,\n IBSitemapEntry,\n IBSpace,\n} from './types'\n\ntype ApiQueryParams = Omit<IBBaseQueryParams, 'token'> & Record<string, unknown>\ntype ApiCollectionResponse<T> =\n | T[]\n | IBCollectionResponse<T>\n | { data: T[]; rv?: string | number }\n | { data: IBCollectionResponse<T>; rv?: string | number }\ntype ApiCollectionResult<T> =\n | ApiCollectionResponse<T>\n | { data: ApiCollectionResponse<T>; rv?: string | number }\n\nexport interface CollectionFetchOptions {\n allPages?: boolean\n}\n\nexport interface RedirectFetchOptions extends CollectionFetchOptions {\n forceRefresh?: boolean\n}\n\nexport interface DataApiClient {\n get<T>(\n endpoint: Endpoint,\n params?: ApiQueryParams\n ): Promise<T | { data: T; rv?: string | number }>\n getAll<T>(endpoint: Endpoint, params?: ApiQueryParams): Promise<T[]>\n post?<T>(endpoint: string, body?: unknown, params?: ApiQueryParams): Promise<T>\n setRv(value: string | number): void\n}\n\nexport type RedirectMap = Record<string, { target: string; status_code: number }>\n\nexport interface GetConfigOptions extends Omit<IBContentQueryParams, 'token' | 'full_slug'> {\n slug?: string\n language?: string\n bypassCache?: boolean\n}\n\nfunction serializeFilterValue(value: unknown): string | undefined {\n if (value === null || value === undefined) return undefined\n if (typeof value === 'boolean') return String(value)\n if (typeof value === 'number') return String(value)\n if (typeof value === 'string') return value\n\n if (typeof value === 'object' && !Array.isArray(value)) {\n const obj = value as Record<string, unknown>\n\n if ('null' in obj) return 'null:'\n if ('!null' in obj) return '!null:'\n if ('between' in obj) {\n const [from, to] = obj.between as [string, string]\n return `${from}...${to}`\n }\n\n const ops = [\n 'eq', 'neq', 'like', '!like', '^like', 'like$',\n 'lt', 'gt', 'lte', 'gte', 'in', '!in', 'empty', '!empty',\n ] as const\n for (const op of ops) {\n if (op in obj) {\n const val = obj[op]\n if (Array.isArray(val)) return `${op}:${val.join(',')}`\n return `${op}:${String(val)}`\n }\n }\n }\n\n return undefined\n}\n\nexport function serializeFilter(filter: Record<string, unknown>): Record<string, string> {\n const result: Record<string, string> = {}\n for (const [key, value] of Object.entries(filter)) {\n const serialized = serializeFilterValue(value)\n if (serialized !== undefined) {\n result[key] = serialized\n }\n }\n return result\n}\n\nfunction buildParamsWithFilter(\n params: Record<string, unknown>,\n filter: unknown,\n sort: string | string[] | undefined\n): ApiQueryParams {\n const filterParams =\n filter && typeof filter === 'object'\n ? serializeFilter(filter as Record<string, unknown>)\n : {}\n const sortParam =\n Array.isArray(sort) ? { sort: sort.join(',') } : sort != null ? { sort } : {}\n return { ...params, ...filterParams, ...sortParam }\n}\n\nexport class B10cksDataApi {\n private redirectsCache: RedirectMap | null = null\n private readonly configCache = new Map<string, unknown>()\n\n constructor(private readonly client: DataApiClient) {}\n\n async getResource<T>(endpoint: Endpoint, params: ApiQueryParams = {}): Promise<T> {\n const response = await this.client.get<T>(endpoint, params)\n return this.unwrapResource(response)\n }\n\n async getCollection<T>(\n endpoint: Endpoint,\n params: ApiQueryParams = {},\n options: CollectionFetchOptions = {}\n ): Promise<T[]> {\n if (options.allPages) {\n return this.client.getAll<T>(endpoint, params)\n }\n\n const response = await this.client.get<ApiCollectionResponse<T>>(endpoint, params)\n return this.unwrapCollection(response)\n }\n\n async getContent<T = Record<string, unknown>>(\n fullSlug: string,\n params: Omit<IBContentQueryParams, 'token' | 'full_slug'> = {}\n ): Promise<IBContent<T>> {\n return this.getResource<IBContent<T>>(`contents/${fullSlug}`, params)\n }\n\n async getContents<T = Record<string, unknown>>(\n params: IBGetContentsParams = {},\n options: CollectionFetchOptions = {}\n ): Promise<IBContent<T>[]> {\n const { filter, sort, ...rest } = params\n return this.getCollection<IBContent<T>>(\n 'contents',\n buildParamsWithFilter(rest, filter, sort),\n options\n )\n }\n\n async getBlock(blockId: string, params: ApiQueryParams = {}): Promise<IBBlock> {\n return this.getResource<IBBlock>(`blocks/${blockId}`, params)\n }\n\n async getBlocks(\n params: IBGetBlocksParams = {},\n options: CollectionFetchOptions = {}\n ): Promise<IBBlock[]> {\n const { filter, ...rest } = params\n return this.getCollection<IBBlock>(\n 'blocks',\n buildParamsWithFilter(rest, filter, undefined),\n options\n )\n }\n\n async search<T = Record<string, unknown>>(\n params: IBSearchParams\n ): Promise<IBSearchResponse<T>> {\n const response = await this.client.get<IBSearchResponse<T>>(\n 'search',\n params as unknown as ApiQueryParams\n )\n if (\n typeof response === 'object' &&\n response !== null &&\n 'data' in response &&\n 'meta' in (response as Record<string, unknown>)\n ) {\n return response as IBSearchResponse<T>\n }\n if (typeof response === 'object' && response !== null && 'data' in response) {\n const inner = (response as { data: unknown }).data\n if (\n typeof inner === 'object' &&\n inner !== null &&\n 'meta' in inner &&\n 'data' in inner\n ) {\n return inner as IBSearchResponse<T>\n }\n }\n return response as unknown as IBSearchResponse<T>\n }\n\n async getSitemap(\n params: Omit<IBContentQueryParams, 'token'> = {},\n options: CollectionFetchOptions = {}\n ): Promise<IBSitemapEntry[]> {\n return this.getCollection<IBSitemapEntry>('sitemap', params, options)\n }\n\n async getDataEntries(\n source: string,\n params: ApiQueryParams = {},\n options: CollectionFetchOptions = {}\n ): Promise<IBDataEntry[]> {\n return this.getCollection<IBDataEntry>(`datasources/${source}/entries`, params, options)\n }\n\n async getDataSources(\n params: ApiQueryParams = {},\n options: CollectionFetchOptions = {}\n ): Promise<IBDataSource[]> {\n return this.getCollection<IBDataSource>('datasources', params, options)\n }\n\n async getSpace(params: ApiQueryParams = {}): Promise<IBSpace> {\n return this.getResource<IBSpace>('spaces/me', params)\n }\n\n async lookupRedirect(source: string): Promise<IBRedirectLookupResult | false> {\n if (!this.client.post) {\n throw new Error(\n 'lookupRedirect requires a client that supports POST. Use ApiClient from @b10cks/client.'\n )\n }\n return this.client.post<IBRedirectLookupResult | false>('redirects/lookup', { source })\n }\n\n async getRedirects(params?: IBGetRedirectsParams, forceRefresh?: boolean): Promise<RedirectMap>\n async getRedirects(\n params?: IBGetRedirectsParams,\n options?: RedirectFetchOptions\n ): Promise<RedirectMap>\n async getRedirects(\n params: IBGetRedirectsParams = {},\n forceRefreshOrOptions: boolean | RedirectFetchOptions = false\n ): Promise<RedirectMap> {\n const { allPages = false, forceRefresh = false } =\n typeof forceRefreshOrOptions === 'boolean'\n ? { allPages: true, forceRefresh: forceRefreshOrOptions }\n : forceRefreshOrOptions\n\n if (allPages && this.redirectsCache && !forceRefresh) {\n return this.redirectsCache\n }\n\n const { filter, ...rest } = params\n const flatParams = buildParamsWithFilter(rest, filter, undefined)\n const redirects = await this.getCollection<IBRedirect>('redirects', flatParams, { allPages })\n const map = Object.fromEntries(\n redirects.map(({ source, target, status_code }) => [source, { target, status_code }])\n )\n\n if (allPages) {\n this.redirectsCache = map\n }\n\n return map\n }\n\n async getConfig<T = Record<string, unknown>>({\n slug = '_config',\n language_iso,\n language,\n bypassCache = false,\n ...params\n }: GetConfigOptions = {}): Promise<T> {\n const normalizedLanguage = language_iso ?? language\n const cacheKey = JSON.stringify({ slug, language_iso: normalizedLanguage, ...params })\n if (!bypassCache && this.configCache.has(cacheKey)) {\n return this.configCache.get(cacheKey) as T\n }\n\n const configContent = await this.getContent<Record<string, unknown>>(slug, {\n ...params,\n language_iso: normalizedLanguage,\n })\n const value = (configContent.content ?? {}) as T\n\n if (!bypassCache) {\n this.configCache.set(cacheKey, value)\n }\n\n return value\n }\n\n async syncRevision(fallbackRv = 426713400): Promise<string | number> {\n const space = await this.getSpace()\n const nextRv = space.rv || fallbackRv\n this.client.setRv(nextRv)\n return nextRv\n }\n\n clearCache() {\n this.redirectsCache = null\n this.configCache.clear()\n }\n\n private unwrapResource<T>(response: T | { data: T }): T {\n if (typeof response === 'object' && response !== null && 'data' in response) {\n return (response as { data: T }).data\n }\n\n return response\n }\n\n private unwrapCollection<T>(response: ApiCollectionResult<T>): T[] {\n if (Array.isArray(response)) {\n return response\n }\n\n if (typeof response === 'object' && response !== null && 'data' in response) {\n if (Array.isArray(response.data)) {\n return response.data\n }\n\n if (\n typeof response.data === 'object' &&\n response.data !== null &&\n 'data' in response.data &&\n Array.isArray(response.data.data)\n ) {\n return response.data.data\n }\n }\n\n return []\n }\n}\n\nexport function createB10cksDataApi(client: DataApiClient): B10cksDataApi {\n return new B10cksDataApi(client)\n}\n","export type ContentUpdateEvent = {\n content: Record<string, unknown>\n}\n\nexport type SelectUpdateEvent = {\n selectedItem: string\n}\n\nexport type FieldUpdateEvent = {\n itemId: string\n field: string\n value: string\n}\n\nexport type EventType = 'CONTENT_UPDATE' | 'SELECT_UPDATE' | 'HOVER_UPDATE' | 'FIELD_UPDATE'\n\nexport type EventPayloadMap = {\n CONTENT_UPDATE: ContentUpdateEvent\n SELECT_UPDATE: SelectUpdateEvent\n HOVER_UPDATE: SelectUpdateEvent\n FIELD_UPDATE: FieldUpdateEvent\n}\n\ntype EventCallback<T> = (payload: T) => void\n\nexport type BridgeEvent = {\n type: EventType\n payload: EventPayloadMap[EventType]\n b10cksId?: string\n}\n\nexport class PreviewBridge {\n private static instance: PreviewBridge\n private readonly listeners: Partial<Record<EventType, Set<EventCallback<unknown>>>> = {}\n private initialized = false\n\n private constructor() {}\n\n static getInstance() {\n if (!PreviewBridge.instance) {\n PreviewBridge.instance = new PreviewBridge()\n }\n return PreviewBridge.instance\n }\n\n init() {\n if (!this.isInPreviewMode() || this.initialized) {\n return\n }\n\n window.addEventListener('message', this.handleMessage)\n this.initialized = true\n }\n\n destroy() {\n if (this.initialized && typeof window !== 'undefined') {\n window.removeEventListener('message', this.handleMessage)\n }\n this.initialized = false\n for (const eventType of Object.keys(this.listeners) as EventType[]) {\n this.listeners[eventType]?.clear()\n }\n }\n\n isInPreviewMode(): boolean {\n return typeof window !== 'undefined' && window.self !== window.top\n }\n\n on<T extends EventType>(eventType: T, callback: EventCallback<EventPayloadMap[T]>): () => void {\n if (!this.isInPreviewMode()) {\n return () => {}\n }\n\n const listeners = this.listeners[eventType] || new Set<EventCallback<unknown>>()\n this.listeners[eventType] = listeners\n listeners.add(callback as EventCallback<unknown>)\n\n return () => {\n listeners.delete(callback as EventCallback<unknown>)\n }\n }\n\n selectItem(selectedItem: string) {\n if (!this.isInPreviewMode()) {\n return\n }\n\n window.parent.postMessage(\n {\n type: 'SELECT_UPDATE',\n payload: { selectedItem },\n },\n '*'\n )\n }\n\n updateField(itemId: string, field: string, value: string) {\n if (!this.isInPreviewMode()) {\n return\n }\n\n window.parent.postMessage(\n {\n type: 'FIELD_UPDATE',\n payload: { itemId, field, value },\n },\n '*'\n )\n }\n\n private handleMessage = (event: MessageEvent) => {\n if (!event.data || typeof event.data !== 'object') {\n return\n }\n\n const { type, payload } = event.data as BridgeEvent\n if (!type || !payload) {\n return\n }\n\n this.notify(type, payload as never)\n }\n\n private notify<T extends EventType>(type: T, payload: EventPayloadMap[T]) {\n const callbacks = this.listeners[type]\n if (!callbacks) {\n return\n }\n\n for (const callback of callbacks) {\n ;(callback as EventCallback<EventPayloadMap[T]>)(payload)\n }\n }\n}\n\nexport const previewBridge = PreviewBridge.getInstance()\n","import type { IBSitemapEntry } from './types'\n\nexport function normalizePathSegment(value: string | null | undefined): string {\n return (value ?? '').trim().replace(/^\\/+|\\/+$/g, '')\n}\n\n/**\n * Combines a b10cks `full_slug` and `language_iso` into a rooted, locale-prefixed path.\n *\n * - The slug `home` is treated as the root (`/` or `/<locale>`).\n * - Slugs that already start with the locale prefix are not double-prefixed.\n */\nexport function buildLocalizedPath(\n fullSlug: string | null | undefined,\n languageIso: string | null | undefined\n): string {\n const slug = normalizePathSegment(fullSlug)\n const locale = normalizePathSegment(languageIso)\n\n if (!locale) {\n return slug && slug !== 'home' ? `/${slug}` : '/'\n }\n\n if (!slug || slug === 'home') {\n return `/${locale}`\n }\n\n const localePrefix = `${locale}/`\n if (slug === locale || slug.startsWith(localePrefix)) {\n return `/${slug}`\n }\n\n return `/${locale}/${slug}`\n}\n\nfunction toAbsoluteUrl(path: string, siteUrl?: string): string | null {\n if (!siteUrl) return null\n try {\n return new URL(path, siteUrl).toString()\n } catch {\n return null\n }\n}\n\nfunction escapeXml(value: string): string {\n return value\n .replace(/&/g, '&')\n .replace(/</g, '<')\n .replace(/>/g, '>')\n .replace(/\"/g, '"')\n .replace(/'/g, ''')\n}\n\nexport interface SitemapFilterOptions {\n /** Absolute base URL used for deduplication. Without it, paths are compared as strings. */\n siteUrl?: string\n /** Only include entries for this locale (ISO code). */\n locale?: string\n}\n\n/**\n * Filters sitemap entries by locale, deduplicates by resolved URL, and drops `noindex` entries.\n */\nexport function filterSitemapEntries(\n entries: IBSitemapEntry[],\n options: SitemapFilterOptions = {}\n): IBSitemapEntry[] {\n const { siteUrl, locale } = options\n const seen = new Set<string>()\n\n return entries.filter((entry) => {\n if (locale && entry.language_iso !== locale) return false\n if (entry.meta?.robots?.toLowerCase().includes('noindex')) return false\n\n const path = buildLocalizedPath(entry.full_slug, entry.language_iso)\n const key = siteUrl ? (toAbsoluteUrl(path, siteUrl) ?? path) : path\n if (seen.has(key)) return false\n\n seen.add(key)\n return true\n })\n}\n\n/**\n * Renders `IBSitemapEntry[]` as a `<urlset>` XML string.\n * Pass `siteUrl` to emit absolute `<loc>` values; without it, relative paths are used.\n */\nexport function renderSitemapXml(entries: IBSitemapEntry[], siteUrl?: string): string {\n const urls = entries\n .map((entry) => {\n const path = buildLocalizedPath(entry.full_slug, entry.language_iso)\n const loc = siteUrl ? toAbsoluteUrl(path, siteUrl) : path\n if (!loc) return ''\n const lines = [' <url>', ` <loc>${escapeXml(loc)}</loc>`]\n if (entry.published_at) lines.push(` <lastmod>${escapeXml(entry.published_at)}</lastmod>`)\n lines.push(' </url>')\n return lines.join('\\n')\n })\n .filter(Boolean)\n .join('\\n')\n\n return [\n '<?xml version=\"1.0\" encoding=\"UTF-8\"?>',\n '<urlset xmlns=\"http://www.sitemaps.org/schemas/sitemap/0.9\">',\n urls,\n '</urlset>',\n ].join('\\n')\n}\n\n/**\n * Renders a list of sitemap paths as a `<sitemapindex>` XML string.\n */\nexport function renderSitemapIndex(paths: string[], siteUrl?: string): string {\n const sitemaps = paths\n .map((path) => {\n const loc = siteUrl ? toAbsoluteUrl(path, siteUrl) : path\n if (!loc) return ''\n return [' <sitemap>', ` <loc>${escapeXml(loc)}</loc>`, ' </sitemap>'].join('\\n')\n })\n .filter(Boolean)\n .join('\\n')\n\n return [\n '<?xml version=\"1.0\" encoding=\"UTF-8\"?>',\n '<sitemapindex xmlns=\"http://www.sitemaps.org/schemas/sitemap/0.9\">',\n sitemaps,\n '</sitemapindex>',\n ].join('\\n')\n}\n","import type {\n B10cksApiClientOptions,\n Endpoint,\n FetchClient,\n IBBaseQueryParams,\n IBCollectionResponse,\n IBMeta,\n IBResponse,\n} from './types'\n\nexport interface B10cksApiClientRvOptions {\n getRv?: () => string | number\n setRv?: (value: string | number) => void\n}\n\nexport * from './content'\nexport * from './data-api'\nexport * from './preview-bridge'\nexport * from './sitemap'\nexport type * from './types'\nexport * as types from './types'\n\nlet rv: string | number = 0\n\ntype ApiResourceResponse<T> = IBResponse<T> | T\ntype ApiCollectionResponse<T> =\n | IBCollectionResponse<T>\n | IBResponse<IBCollectionResponse<T>>\n | T[]\n | { data: T[]; meta?: IBMeta; rv?: string | number }\n\nexport class ApiClient {\n private readonly baseUrl: string\n readonly token: string\n private readonly vid: string\n private readonly fetchClient: FetchClient\n private readonly getRvFn?: () => string | number\n private readonly setRvFn?: (value: string | number) => void\n\n constructor(options: B10cksApiClientOptions, requestUrl?: URL | string) {\n this.baseUrl = options.baseUrl.endsWith('/') ? options.baseUrl.slice(0, -1) : options.baseUrl\n this.token = options.token\n const defaultFetch =\n typeof globalThis.fetch === 'function' ? globalThis.fetch.bind(globalThis) : null\n if (options.fetchClient) {\n this.fetchClient = options.fetchClient\n } else if (defaultFetch) {\n this.fetchClient = defaultFetch as FetchClient\n } else {\n throw new Error(\n 'No fetch implementation available. Provide `fetchClient` in ApiClient options.'\n )\n }\n\n this.getRvFn = options.getRv\n this.setRvFn = options.setRv\n\n const url = this.resolveRequestUrl(requestUrl)\n this.vid = options.version || 'published'\n this.setRv(url?.searchParams.get('b10cks_rv') || options.rv || rv)\n }\n\n async get<T>(\n endpoint: Endpoint,\n params: Omit<IBBaseQueryParams, 'token'> & Record<string, unknown> = {}\n ): Promise<ApiResourceResponse<T>> {\n const url = this.buildUrl(endpoint, {\n vid: this.vid,\n rv: this.getRv(),\n ...params,\n token: this.token,\n })\n\n const payload = await this.fetchClient(url)\n const response = await this.parseResponse<ApiResourceResponse<T>>(payload)\n\n if (this.hasRevision(response)) {\n this.setRv(response.rv)\n }\n\n return response\n }\n\n async post<T>(\n endpoint: string,\n body?: unknown,\n params: Omit<IBBaseQueryParams, 'token'> & Record<string, unknown> = {}\n ): Promise<T> {\n const url = this.buildUrl(endpoint, {\n vid: this.vid,\n rv: this.getRv(),\n ...params,\n token: this.token,\n })\n\n const payload = await this.fetchClient(url, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: body !== undefined ? JSON.stringify(body) : undefined,\n })\n\n return this.parseResponse<T>(payload)\n }\n\n async getAll<T>(\n endpoint: Endpoint,\n params: Omit<IBBaseQueryParams, 'token'> & Record<string, unknown> = {}\n ): Promise<T[]> {\n const firstResponse = await this.get<IBCollectionResponse<T> & { meta?: IBMeta }>(endpoint, {\n ...params,\n page: 1,\n })\n const normalizedFirstResponse = this.normalizeCollectionResponse<T>(firstResponse)\n\n if (normalizedFirstResponse.rv) {\n this.setRv(normalizedFirstResponse.rv)\n }\n\n if (!normalizedFirstResponse.meta || normalizedFirstResponse.meta.last_page <= 1) {\n return normalizedFirstResponse.data\n }\n\n const pageRequests = Array.from(\n { length: normalizedFirstResponse.meta.last_page - 1 },\n (_, i) => this.get<IBCollectionResponse<T>>(endpoint, { ...params, page: i + 2 })\n )\n\n const allResponses = await Promise.all(pageRequests)\n\n return normalizedFirstResponse.data.concat(\n allResponses.flatMap((response) => this.normalizeCollectionResponse<T>(response).data)\n )\n }\n\n setRv(value: string | number) {\n if (this.setRvFn) {\n this.setRvFn(value)\n } else {\n rv = value\n }\n }\n\n getRv() {\n if (this.getRvFn) {\n return this.getRvFn()\n }\n return rv\n }\n\n private async parseResponse<T>(payload: unknown): Promise<T> {\n if (this.isFetchResponse(payload)) {\n if (!payload.ok) {\n throw new Error(`Request failed with status ${payload.status}`)\n }\n\n return (await payload.json()) as T\n }\n\n return payload as T\n }\n\n private normalizeCollectionResponse<T>(response: ApiCollectionResponse<T>) {\n if (this.isCollectionResponseEnvelope(response)) {\n const nestedResponse = response.data\n\n return {\n data: nestedResponse.data,\n meta: (nestedResponse as IBCollectionResponse<T> & { meta?: IBMeta }).meta,\n rv: response.rv || nestedResponse.rv,\n }\n }\n\n if (Array.isArray(response)) {\n return { data: response, meta: undefined, rv: undefined }\n }\n\n if (typeof response === 'object' && response !== null && 'data' in response) {\n const {\n data,\n meta,\n rv: responseRv,\n } = response as {\n data: T[]\n meta?: IBMeta\n rv?: string | number\n }\n return { data, meta, rv: responseRv }\n }\n\n return { data: [], meta: undefined, rv: undefined }\n }\n\n private buildUrl(endpoint: string, params: Record<string, unknown>): string {\n const url = new URL(`${this.baseUrl}/v1/${endpoint}`)\n\n Object.entries(params).forEach(([key, value]) => {\n if (value !== undefined && value !== null) {\n url.searchParams.append(key, String(value))\n }\n })\n\n return url.toString()\n }\n\n private resolveRequestUrl(requestUrl?: URL | string): URL | null {\n if (!requestUrl) {\n return null\n }\n\n if (requestUrl instanceof URL) {\n return requestUrl\n }\n\n return new URL(requestUrl, 'http://localhost')\n }\n\n private isFetchResponse(value: unknown): value is Response {\n return (\n typeof value === 'object' &&\n value !== null &&\n 'json' in value &&\n typeof (value as Response).json === 'function' &&\n 'ok' in value\n )\n }\n\n private hasRevision(value: unknown): value is { rv: string | number } {\n return typeof value === 'object' && value !== null && 'rv' in value\n }\n\n private isCollectionResponseEnvelope<T>(\n value: ApiCollectionResponse<T>\n ): value is IBResponse<IBCollectionResponse<T>> {\n return (\n typeof value === 'object' &&\n value !== null &&\n 'data' in value &&\n typeof value.data === 'object' &&\n value.data !== null &&\n 'data' in value.data &&\n Array.isArray(value.data.data)\n )\n }\n}\n"],"names":["resolveB10cksLink","link","params","query","target","href","serializeFilterValue","value","obj","from","to","ops","op","val","serializeFilter","filter","result","key","serialized","buildParamsWithFilter","sort","filterParams","sortParam","B10cksDataApi","client","endpoint","response","options","fullSlug","rest","blockId","inner","source","forceRefreshOrOptions","allPages","forceRefresh","flatParams","redirects","map","status_code","slug","language_iso","language","bypassCache","normalizedLanguage","cacheKey","fallbackRv","nextRv","createB10cksDataApi","PreviewBridge","eventType","callback","listeners","selectedItem","itemId","field","event","type","payload","callbacks","previewBridge","normalizePathSegment","buildLocalizedPath","languageIso","locale","localePrefix","toAbsoluteUrl","path","siteUrl","escapeXml","filterSitemapEntries","entries","seen","entry","renderSitemapXml","loc","lines","renderSitemapIndex","paths","rv","ApiClient","requestUrl","defaultFetch","url","body","firstResponse","normalizedFirstResponse","pageRequests","_","i","allResponses","nestedResponse","data","meta","responseRv"],"mappings":"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"}
|