@roottale/cms-client 0.73.0 → 0.74.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/CHANGELOG.md +13 -0
- package/dist/server.d.ts +8 -1
- package/dist/server.js +19 -1
- package/dist/server.js.map +1 -1
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
# @roottale/cms-client
|
|
2
2
|
|
|
3
|
+
## 0.74.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- ee30023: 사이트의 등록된 공개 경로 메타데이터를 한 번에 읽는 `fetchSiteRouteMetadata`를 추가합니다.
|
|
8
|
+
기존 단건 조회와 오류·기본값·정책 계약을 유지하고 메타데이터 공통 캐시 태그를 사용합니다.
|
|
9
|
+
외부 Next.js 예제에 렌더 공유 로더와 기본값 대체를 연결했습니다.
|
|
10
|
+
API를 먼저 배포한 뒤 SDK 발행과 사이트 업그레이드를 진행해야 합니다.
|
|
11
|
+
|
|
12
|
+
### Patch Changes
|
|
13
|
+
|
|
14
|
+
- @roottale/cms-core@0.74.0
|
|
15
|
+
|
|
3
16
|
## 0.73.0
|
|
4
17
|
|
|
5
18
|
### Minor Changes
|
package/dist/server.d.ts
CHANGED
|
@@ -1442,6 +1442,13 @@ interface FetchRouteMetadataOptions {
|
|
|
1442
1442
|
* 공개 읽기는 구독 등급을 검사하지 않아 요금제 하향 후에도 기존 설정을 유지한다.
|
|
1443
1443
|
*/
|
|
1444
1444
|
declare function fetchRouteMetadata(options: FetchRouteMetadataOptions): Promise<PublicRouteMetadata | null>;
|
|
1445
|
+
type FetchSiteRouteMetadataOptions = Omit<FetchRouteMetadataOptions, "routeKey">;
|
|
1446
|
+
interface SiteRouteMetadata {
|
|
1447
|
+
site_id: string;
|
|
1448
|
+
routes: PublicRouteMetadata[];
|
|
1449
|
+
}
|
|
1450
|
+
/** Registered public routes in contract order. Failures throw, never become an empty snapshot. */
|
|
1451
|
+
declare function fetchSiteRouteMetadata(options: FetchSiteRouteMetadataOptions): Promise<SiteRouteMetadata>;
|
|
1445
1452
|
|
|
1446
1453
|
/**
|
|
1447
1454
|
* 배포 도구가 정규화해 등록한 manifest의 SHA-256(64자리 hex).
|
|
@@ -1768,4 +1775,4 @@ declare function formatKoreanPhoneNumber(input: string): string;
|
|
|
1768
1775
|
*/
|
|
1769
1776
|
declare function submitInquiry(options: SubmitInquiryOptions): Promise<SubmitInquiryResult>;
|
|
1770
1777
|
|
|
1771
|
-
export { type ActionDockAction, type ActionDockKind, type ActionDockPosition, type ActionDockSettings, type AnalyticsTagConfig, type AnalyticsTagProvider, type AnnouncementItem, type AnnouncementSettings, type AnnouncementTone, type AnnouncementVariant, type ArticleSchemaInput, BLOG_SETTINGS_CACHE_TAG, BUSINESS_CACHE_TAG, type BusinessDayCode, type BusinessOpeningHours, type BusinessType, CMS_CLIENT_VERSION, COLLECTIONS_CACHE_TAG, CONTENT_POLICY_CACHE_TAG, CmsApiError, type CmsArchiveRelatedGroup, type CmsArchiveRelatedPost, type CmsCategoryCount, type CmsCategoryCounts, type CmsContentEditorState, type CmsContentModel, type CmsExposureCampaign, type CmsExposureDecision, type CmsFieldMetaEntry, type CmsPostContent, type CmsPostContentPage, type CmsPostPreviewContent, type CmsPostPreviewInfo, type CmsPostPreviewVisualTarget, type CmsPostTranslationRef, type CmsPostType, type CmsRouteCollection, type CmsSearchHit, type CmsSitePattern, type CmsSitePatternPresentation, type CmsTaxonomyKind, type CmsTermRef, type ContentEditorStateParseResult, DEFAULT_BLOG_SETTINGS, DEFAULT_SITE_PATTERN_PRESENTATION, EXPOSURE_CACHE_TAG, type FetchAllPostsOptions, type FetchAnalyticsOptions, type FetchAuthorsOptions, type FetchBlogSettingsOptions, type FetchBusinessProfileOptions, type FetchCategoryCountsOptions, type FetchCollectionsOptions, type FetchContentModelsOptions, type FetchExposureDecisionOptions, type FetchExposureOptions, type FetchInquiryFormOptions, type FetchMenuOptions, type FetchMenusOptions, type FetchPageBySlugOptions, type FetchPostOptions, type FetchPostPreviewOptions, type FetchPostsOptions, type FetchRedirectsOptions, type FetchRouteMetadataOptions, type FetchSiteInquiriesOptions, type FetchSiteInquiryOptions, type FetchSitePatternsOptions, type FetchThemeOptions, type FormInquiryReceipt, INQUIRY_ERROR_MESSAGES, InquiryAttribution, type InquiryBoardSettings, type InquiryVertical, LOCAL_BUSINESS_MAX_SERVICES, LOCAL_BUSINESS_SERVICE_MAX_LENGTH, type LocalBusinessProfileInput, MENUS_CACHE_TAG, METADATA_CACHE_TAG, POST_FOOTER_PATTERN_SLOT, type PublishedInquiryForm, type ResolvedPostDisplay, type RootTaleAuthor, type RootTaleBlogPostCta, type RootTaleBlogSettings, type RootTaleBusinessProfile, type RootTaleMenu, type RootTaleMenuItem, type RootTaleRedirect, type RootTaleSiteProfile, type RootTaleSitemapSettings, type RootTaleTheme, type RssFeedInput, type RssItemInput, SETTINGS_CACHE_TAGS, SITE_METADATA_DEFAULTS_CACHE_TAG, SITE_PATTERNS_CACHE_TAG, type SearchPostsOptions, type SiteAnalyticsTags, type SiteInquiryDetail, type SiteInquiryListItem, type SiteInquiryListPage, type SiteInquiryStatus, type SiteNavColumn, type SiteNavCta, type SiteNavGroup, type SiteNavLink, type SiteNavSettings, type SiteTrackingSettings, type SiteVerificationMetadata, type SiteVerificationSettings, type SubmitFormInquiryFields, type SubmitFormInquiryOptions, type SubmitFormInquiryResult, type SubmitInquiryFields, type SubmitInquiryOptions, type SubmitInquiryResult, type SubmitSiteInquiryFields, type SubmitSiteInquiryOptions, type SubmitSiteInquiryResult, THEME_CACHE_TAG, articleSchema, breadcrumbSchema, businessProfileFromWire, collectionPageSchema, contentIdMeta, faqSchema, fetchAllPosts, fetchAnalyticsConfig, fetchAuthors, fetchBlogSettings, fetchBusinessProfile, fetchCategoryCounts, fetchCollections, fetchCollectionsSafeDefault, fetchContentModels, fetchExposure, fetchExposureDecision, fetchInquiryForm, fetchMenu, fetchMenus, fetchPageBySlug, fetchPost, fetchPostPreview, fetchPosts, fetchRedirects, fetchRouteMetadata, fetchSiteInquiries, fetchSiteInquiry, fetchSitePatterns, fetchTheme, formatKoreanPhoneNumber, generateRssXml, googleTagManagerSnippet, inquiryErrorMessage, isPreviewExpiredError, isPreviewSupersededError, jsonLdJson, jsonLdScript, localBusinessSchema, metadataContractChecksum, organizationSchema, parseContentEditorState, parseInquiryRedirect, profilePageSchema, resolvePostDisplay, resolveSearchHitPath, routeMetadataCacheTag, rssItemsFromPosts, searchPosts, selectRelatedPosts, selectSitePatternForSlot, sitePatternPresentationAttributes, siteVerificationMetadata, submitFormInquiry, submitInquiry, submitSiteInquiry, websiteSchema };
|
|
1778
|
+
export { type ActionDockAction, type ActionDockKind, type ActionDockPosition, type ActionDockSettings, type AnalyticsTagConfig, type AnalyticsTagProvider, type AnnouncementItem, type AnnouncementSettings, type AnnouncementTone, type AnnouncementVariant, type ArticleSchemaInput, BLOG_SETTINGS_CACHE_TAG, BUSINESS_CACHE_TAG, type BusinessDayCode, type BusinessOpeningHours, type BusinessType, CMS_CLIENT_VERSION, COLLECTIONS_CACHE_TAG, CONTENT_POLICY_CACHE_TAG, CmsApiError, type CmsArchiveRelatedGroup, type CmsArchiveRelatedPost, type CmsCategoryCount, type CmsCategoryCounts, type CmsContentEditorState, type CmsContentModel, type CmsExposureCampaign, type CmsExposureDecision, type CmsFieldMetaEntry, type CmsPostContent, type CmsPostContentPage, type CmsPostPreviewContent, type CmsPostPreviewInfo, type CmsPostPreviewVisualTarget, type CmsPostTranslationRef, type CmsPostType, type CmsRouteCollection, type CmsSearchHit, type CmsSitePattern, type CmsSitePatternPresentation, type CmsTaxonomyKind, type CmsTermRef, type ContentEditorStateParseResult, DEFAULT_BLOG_SETTINGS, DEFAULT_SITE_PATTERN_PRESENTATION, EXPOSURE_CACHE_TAG, type FetchAllPostsOptions, type FetchAnalyticsOptions, type FetchAuthorsOptions, type FetchBlogSettingsOptions, type FetchBusinessProfileOptions, type FetchCategoryCountsOptions, type FetchCollectionsOptions, type FetchContentModelsOptions, type FetchExposureDecisionOptions, type FetchExposureOptions, type FetchInquiryFormOptions, type FetchMenuOptions, type FetchMenusOptions, type FetchPageBySlugOptions, type FetchPostOptions, type FetchPostPreviewOptions, type FetchPostsOptions, type FetchRedirectsOptions, type FetchRouteMetadataOptions, type FetchSiteInquiriesOptions, type FetchSiteInquiryOptions, type FetchSitePatternsOptions, type FetchSiteRouteMetadataOptions, type FetchThemeOptions, type FormInquiryReceipt, INQUIRY_ERROR_MESSAGES, InquiryAttribution, type InquiryBoardSettings, type InquiryVertical, LOCAL_BUSINESS_MAX_SERVICES, LOCAL_BUSINESS_SERVICE_MAX_LENGTH, type LocalBusinessProfileInput, MENUS_CACHE_TAG, METADATA_CACHE_TAG, POST_FOOTER_PATTERN_SLOT, type PublishedInquiryForm, type ResolvedPostDisplay, type RootTaleAuthor, type RootTaleBlogPostCta, type RootTaleBlogSettings, type RootTaleBusinessProfile, type RootTaleMenu, type RootTaleMenuItem, type RootTaleRedirect, type RootTaleSiteProfile, type RootTaleSitemapSettings, type RootTaleTheme, type RssFeedInput, type RssItemInput, SETTINGS_CACHE_TAGS, SITE_METADATA_DEFAULTS_CACHE_TAG, SITE_PATTERNS_CACHE_TAG, type SearchPostsOptions, type SiteAnalyticsTags, type SiteInquiryDetail, type SiteInquiryListItem, type SiteInquiryListPage, type SiteInquiryStatus, type SiteNavColumn, type SiteNavCta, type SiteNavGroup, type SiteNavLink, type SiteNavSettings, type SiteRouteMetadata, type SiteTrackingSettings, type SiteVerificationMetadata, type SiteVerificationSettings, type SubmitFormInquiryFields, type SubmitFormInquiryOptions, type SubmitFormInquiryResult, type SubmitInquiryFields, type SubmitInquiryOptions, type SubmitInquiryResult, type SubmitSiteInquiryFields, type SubmitSiteInquiryOptions, type SubmitSiteInquiryResult, THEME_CACHE_TAG, articleSchema, breadcrumbSchema, businessProfileFromWire, collectionPageSchema, contentIdMeta, faqSchema, fetchAllPosts, fetchAnalyticsConfig, fetchAuthors, fetchBlogSettings, fetchBusinessProfile, fetchCategoryCounts, fetchCollections, fetchCollectionsSafeDefault, fetchContentModels, fetchExposure, fetchExposureDecision, fetchInquiryForm, fetchMenu, fetchMenus, fetchPageBySlug, fetchPost, fetchPostPreview, fetchPosts, fetchRedirects, fetchRouteMetadata, fetchSiteInquiries, fetchSiteInquiry, fetchSitePatterns, fetchSiteRouteMetadata, fetchTheme, formatKoreanPhoneNumber, generateRssXml, googleTagManagerSnippet, inquiryErrorMessage, isPreviewExpiredError, isPreviewSupersededError, jsonLdJson, jsonLdScript, localBusinessSchema, metadataContractChecksum, organizationSchema, parseContentEditorState, parseInquiryRedirect, profilePageSchema, resolvePostDisplay, resolveSearchHitPath, routeMetadataCacheTag, rssItemsFromPosts, searchPosts, selectRelatedPosts, selectSitePatternForSlot, sitePatternPresentationAttributes, siteVerificationMetadata, submitFormInquiry, submitInquiry, submitSiteInquiry, websiteSchema };
|
package/dist/server.js
CHANGED
|
@@ -8,7 +8,7 @@ var DEFAULT_SERVER_FETCH_TIMEOUT_MS = 1e4;
|
|
|
8
8
|
function requestSignal(signal) {
|
|
9
9
|
return signal ?? AbortSignal.timeout(DEFAULT_SERVER_FETCH_TIMEOUT_MS);
|
|
10
10
|
}
|
|
11
|
-
var CLIENT_VERSION = true ? "0.
|
|
11
|
+
var CLIENT_VERSION = true ? "0.74.0" : "dev";
|
|
12
12
|
var CMS_CLIENT_VERSION = CLIENT_VERSION;
|
|
13
13
|
function authHeaders(apiKey) {
|
|
14
14
|
return {
|
|
@@ -1308,6 +1308,23 @@ async function fetchRouteMetadata(options) {
|
|
|
1308
1308
|
if (!isRouteMetadata(json.metadata) || json.metadata.routeKey !== options.routeKey) throw unexpectedResponse(response.status);
|
|
1309
1309
|
return json.metadata;
|
|
1310
1310
|
}
|
|
1311
|
+
async function fetchSiteRouteMetadata(options) {
|
|
1312
|
+
assertServer();
|
|
1313
|
+
const params = new URLSearchParams();
|
|
1314
|
+
if (options.locale) params.set("locale", options.locale);
|
|
1315
|
+
if (options.siteId) params.set("site_id", options.siteId);
|
|
1316
|
+
const baseUrl = (options.baseUrl ?? DEFAULT_BASE_URL).replace(/\/+$/, "");
|
|
1317
|
+
const query = params.size ? `?${params}` : "";
|
|
1318
|
+
const response = await fetch(`${baseUrl}/v1/cms/public/metadata/routes${query}`, buildGetInit(options.apiKey, {
|
|
1319
|
+
signal: options.signal,
|
|
1320
|
+
revalidate: options.revalidate ?? 300,
|
|
1321
|
+
tags: [METADATA_CACHE_TAG, SITE_METADATA_DEFAULTS_CACHE_TAG]
|
|
1322
|
+
}));
|
|
1323
|
+
if (!response.ok) throw await toApiError(response);
|
|
1324
|
+
const json = await response.json();
|
|
1325
|
+
if (!json || typeof json !== "object" || !("site_id" in json) || typeof json.site_id !== "string" || !json.site_id || options.siteId !== void 0 && json.site_id !== options.siteId || !("routes" in json) || !Array.isArray(json.routes) || !json.routes.every(isRouteMetadata) || new Set(json.routes.map((route) => route.routeKey)).size !== json.routes.length) throw unexpectedResponse(response.status);
|
|
1326
|
+
return { site_id: json.site_id, routes: json.routes };
|
|
1327
|
+
}
|
|
1311
1328
|
function isValues(value) {
|
|
1312
1329
|
return MetadataValuesSchema.safeParse(value).success;
|
|
1313
1330
|
}
|
|
@@ -1836,6 +1853,7 @@ export {
|
|
|
1836
1853
|
fetchSiteInquiries,
|
|
1837
1854
|
fetchSiteInquiry,
|
|
1838
1855
|
fetchSitePatterns,
|
|
1856
|
+
fetchSiteRouteMetadata,
|
|
1839
1857
|
fetchTheme,
|
|
1840
1858
|
formatKoreanPhoneNumber,
|
|
1841
1859
|
formatMetadataDefaults,
|