@mints-cloud/cxf-codegen 1.0.3 → 1.0.5
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 +52 -1
- package/dist/components/ApiCall.d.ts.map +1 -1
- package/dist/components/ApiCall.js +14 -1
- package/dist/components/JsonLdSchemas.d.ts +104 -0
- package/dist/components/JsonLdSchemas.d.ts.map +1 -0
- package/dist/components/JsonLdSchemas.js +380 -0
- package/dist/components/MetadataOverrides.d.ts +84 -0
- package/dist/components/MetadataOverrides.d.ts.map +1 -0
- package/dist/components/MetadataOverrides.js +270 -0
- package/dist/index.d.ts +4 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +17 -1
- package/dist/lib/api-route-helpers.d.ts +2 -0
- package/dist/lib/api-route-helpers.d.ts.map +1 -1
- package/dist/lib/api-route-helpers.js +9 -3
- package/dist/lib/assets-query-params.d.ts +11 -0
- package/dist/lib/assets-query-params.d.ts.map +1 -0
- package/dist/lib/assets-query-params.js +130 -0
- package/dist/lib/cxf-auth.d.ts +3 -0
- package/dist/lib/cxf-auth.d.ts.map +1 -1
- package/dist/lib/cxf-auth.js +11 -1
- package/dist/lib/seo-utils.d.ts +22 -0
- package/dist/lib/seo-utils.d.ts.map +1 -0
- package/dist/lib/seo-utils.js +228 -0
- package/dist/pages/api/assets.d.ts.map +1 -1
- package/dist/pages/api/assets.js +27 -1
- package/dist/pages/app.d.ts +3 -1
- package/dist/pages/app.d.ts.map +1 -1
- package/dist/pages/app.js +3 -1
- package/dist/pages/plasmic-host.d.ts +16 -1
- package/dist/pages/plasmic-host.d.ts.map +1 -1
- package/dist/pages/plasmic-host.js +46 -0
- package/dist/register.d.ts.map +1 -1
- package/dist/register.js +169 -3
- package/package.json +13 -1
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
type MaybeString = string | null | undefined;
|
|
2
|
+
type MaybeStringList = string[] | string | null | undefined;
|
|
3
|
+
interface MediaAsset {
|
|
4
|
+
public_path?: MaybeString;
|
|
5
|
+
alt_text?: MaybeString;
|
|
6
|
+
mime_type?: MaybeString;
|
|
7
|
+
}
|
|
8
|
+
export interface SiteSettings {
|
|
9
|
+
identity_and_branding?: {
|
|
10
|
+
site_name?: MaybeString;
|
|
11
|
+
primary_color?: MaybeString;
|
|
12
|
+
secondary_color?: MaybeString;
|
|
13
|
+
logo?: MediaAsset;
|
|
14
|
+
favicon?: MediaAsset;
|
|
15
|
+
apple_touch_icon?: MediaAsset;
|
|
16
|
+
manifest_icon_192?: MediaAsset;
|
|
17
|
+
manifest_icon_512?: MediaAsset;
|
|
18
|
+
};
|
|
19
|
+
domains_and_locales?: {
|
|
20
|
+
primary_domain?: MaybeString;
|
|
21
|
+
additional_domains?: MaybeString[] | string | null;
|
|
22
|
+
default_locale?: MaybeString;
|
|
23
|
+
};
|
|
24
|
+
seo_defaults?: {
|
|
25
|
+
seo_title_template?: MaybeString;
|
|
26
|
+
canonical_base?: MaybeString;
|
|
27
|
+
og_image_default?: MediaAsset;
|
|
28
|
+
robots_indexing?: MaybeString;
|
|
29
|
+
robots_follow?: MaybeString;
|
|
30
|
+
default_seo_title?: MaybeString;
|
|
31
|
+
default_meta_description?: MaybeString;
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
export interface PageMeta {
|
|
35
|
+
default?: {
|
|
36
|
+
page_title?: MaybeString;
|
|
37
|
+
permalink?: MaybeString;
|
|
38
|
+
};
|
|
39
|
+
seo_per_page?: {
|
|
40
|
+
page_meta_title?: MaybeString;
|
|
41
|
+
page_meta_description?: MaybeString;
|
|
42
|
+
page_robots_follow?: MaybeString;
|
|
43
|
+
page_robots_indexing?: MaybeString;
|
|
44
|
+
page_canonical_url?: MaybeString;
|
|
45
|
+
keywords?: MaybeStringList;
|
|
46
|
+
};
|
|
47
|
+
social_and_sharing?: {
|
|
48
|
+
page_open_graph_title?: MaybeString;
|
|
49
|
+
page_open_graph_description?: MaybeString;
|
|
50
|
+
page_open_graph_image?: MediaAsset;
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
export interface MetadataOverridesProps {
|
|
54
|
+
siteSettings?: SiteSettings | string | null;
|
|
55
|
+
pageMeta?: PageMeta | string | null;
|
|
56
|
+
}
|
|
57
|
+
export interface AppMetadataOverrides {
|
|
58
|
+
title?: MaybeString;
|
|
59
|
+
description?: MaybeString;
|
|
60
|
+
keywords?: MaybeStringList;
|
|
61
|
+
robots?: MaybeString;
|
|
62
|
+
canonicalUrl?: MaybeString;
|
|
63
|
+
themeColor?: MaybeString;
|
|
64
|
+
siteName?: MaybeString;
|
|
65
|
+
openGraphUrl?: MaybeString;
|
|
66
|
+
openGraphTitle?: MaybeString;
|
|
67
|
+
openGraphDescription?: MaybeString;
|
|
68
|
+
openGraphImage?: MaybeString;
|
|
69
|
+
openGraphImageAlt?: MaybeString;
|
|
70
|
+
openGraphType?: MaybeString;
|
|
71
|
+
twitterCard?: MaybeString;
|
|
72
|
+
twitterTitle?: MaybeString;
|
|
73
|
+
twitterDescription?: MaybeString;
|
|
74
|
+
twitterImage?: MaybeString;
|
|
75
|
+
faviconHref?: MaybeString;
|
|
76
|
+
faviconMimeType?: MaybeString;
|
|
77
|
+
appleTouchIconHref?: MaybeString;
|
|
78
|
+
}
|
|
79
|
+
export declare function AppMetadataOverridesHead(props: {
|
|
80
|
+
overrides?: AppMetadataOverrides | null;
|
|
81
|
+
}): import("react/jsx-runtime").JSX.Element | null;
|
|
82
|
+
export declare function MetadataOverrides(props: MetadataOverridesProps): import("react/jsx-runtime").JSX.Element | null;
|
|
83
|
+
export default MetadataOverrides;
|
|
84
|
+
//# sourceMappingURL=MetadataOverrides.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MetadataOverrides.d.ts","sourceRoot":"","sources":["../../src/components/MetadataOverrides.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,270 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.AppMetadataOverridesHead = AppMetadataOverridesHead;
|
|
40
|
+
exports.MetadataOverrides = MetadataOverrides;
|
|
41
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
42
|
+
const React = __importStar(require("react"));
|
|
43
|
+
const head_1 = __importDefault(require("next/head"));
|
|
44
|
+
const seo_utils_1 = require("../lib/seo-utils");
|
|
45
|
+
const pickFirst = (...values) => (0, seo_utils_1.pickFirstString)(...values);
|
|
46
|
+
function normalizeSameAsUrl(value, baseUrl) {
|
|
47
|
+
const cleaned = (0, seo_utils_1.cleanString)(value);
|
|
48
|
+
if (!cleaned) {
|
|
49
|
+
return undefined;
|
|
50
|
+
}
|
|
51
|
+
if (cleaned.startsWith("//")) {
|
|
52
|
+
return `https:${cleaned}`;
|
|
53
|
+
}
|
|
54
|
+
if (/^https?:\/\//i.test(cleaned)) {
|
|
55
|
+
return cleaned;
|
|
56
|
+
}
|
|
57
|
+
if (cleaned.startsWith("/")) {
|
|
58
|
+
return (0, seo_utils_1.toAbsoluteUrl)(cleaned, baseUrl);
|
|
59
|
+
}
|
|
60
|
+
if (/^[\w.-]+\.[a-z]{2,}(\/.*)?$/i.test(cleaned)) {
|
|
61
|
+
return `https://${cleaned}`;
|
|
62
|
+
}
|
|
63
|
+
return cleaned;
|
|
64
|
+
}
|
|
65
|
+
function resolveTitle(pageMetaTitle, pageTitle, defaultSeoTitle, siteName, template) {
|
|
66
|
+
const explicitTitle = (0, seo_utils_1.cleanString)(pageMetaTitle);
|
|
67
|
+
if (explicitTitle) {
|
|
68
|
+
return explicitTitle;
|
|
69
|
+
}
|
|
70
|
+
const fallbackPageTitle = pickFirst(pageTitle, defaultSeoTitle, siteName);
|
|
71
|
+
const cleanTemplate = (0, seo_utils_1.cleanString)(template);
|
|
72
|
+
const cleanSiteName = (0, seo_utils_1.cleanString)(siteName);
|
|
73
|
+
if (!fallbackPageTitle) {
|
|
74
|
+
return undefined;
|
|
75
|
+
}
|
|
76
|
+
if (!cleanTemplate) {
|
|
77
|
+
if (fallbackPageTitle && cleanSiteName && fallbackPageTitle !== cleanSiteName) {
|
|
78
|
+
return `${fallbackPageTitle} | ${cleanSiteName}`;
|
|
79
|
+
}
|
|
80
|
+
return fallbackPageTitle;
|
|
81
|
+
}
|
|
82
|
+
const rendered = cleanTemplate
|
|
83
|
+
.replace(/%pageTitle%/g, fallbackPageTitle)
|
|
84
|
+
.replace(/%siteName%/g, cleanSiteName ?? "")
|
|
85
|
+
.replace(/\s{2,}/g, " ")
|
|
86
|
+
.trim()
|
|
87
|
+
.replace(/^\|\s*/g, "")
|
|
88
|
+
.replace(/\s*\|$/g, "");
|
|
89
|
+
return (0, seo_utils_1.cleanString)(rendered);
|
|
90
|
+
}
|
|
91
|
+
function buildRobots(indexing, follow) {
|
|
92
|
+
const parts = [(0, seo_utils_1.cleanString)(indexing), (0, seo_utils_1.cleanString)(follow)].filter((part) => Boolean(part));
|
|
93
|
+
return parts.length > 0 ? parts.join(", ") : undefined;
|
|
94
|
+
}
|
|
95
|
+
function hasAnyHeadMetadata(metadata) {
|
|
96
|
+
return Object.values(metadata).some(Boolean);
|
|
97
|
+
}
|
|
98
|
+
function renderHeadTags(metadata) {
|
|
99
|
+
return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [metadata.title ? (0, jsx_runtime_1.jsx)("title", { children: metadata.title }, "metadata-title") : null, metadata.description ? ((0, jsx_runtime_1.jsx)("meta", { name: "description", content: metadata.description }, "metadata-description")) : null, metadata.keywords ? ((0, jsx_runtime_1.jsx)("meta", { name: "keywords", content: metadata.keywords }, "metadata-keywords")) : null, metadata.robots ? (0, jsx_runtime_1.jsx)("meta", { name: "robots", content: metadata.robots }, "metadata-robots") : null, metadata.canonicalUrl ? ((0, jsx_runtime_1.jsx)("link", { rel: "canonical", href: metadata.canonicalUrl }, "metadata-canonical")) : null, metadata.themeColor ? ((0, jsx_runtime_1.jsx)("meta", { name: "theme-color", content: metadata.themeColor }, "metadata-theme-color")) : null, metadata.siteName ? ((0, jsx_runtime_1.jsx)("meta", { property: "og:site_name", content: metadata.siteName }, "metadata-og-site-name")) : null, metadata.openGraphUrl ? ((0, jsx_runtime_1.jsx)("meta", { property: "og:url", content: metadata.openGraphUrl }, "metadata-og-url")) : null, metadata.openGraphTitle ? ((0, jsx_runtime_1.jsx)("meta", { property: "og:title", content: metadata.openGraphTitle }, "metadata-og-title")) : null, metadata.openGraphDescription ? ((0, jsx_runtime_1.jsx)("meta", { property: "og:description", content: metadata.openGraphDescription }, "metadata-og-description")) : null, metadata.openGraphImage ? ((0, jsx_runtime_1.jsx)("meta", { property: "og:image", content: metadata.openGraphImage }, "metadata-og-image")) : null, metadata.openGraphImageAlt ? ((0, jsx_runtime_1.jsx)("meta", { property: "og:image:alt", content: metadata.openGraphImageAlt }, "metadata-og-image-alt")) : null, metadata.openGraphType ? ((0, jsx_runtime_1.jsx)("meta", { property: "og:type", content: metadata.openGraphType }, "metadata-og-type")) : null, metadata.twitterCard ? ((0, jsx_runtime_1.jsx)("meta", { name: "twitter:card", content: metadata.twitterCard }, "metadata-twitter-card")) : null, metadata.twitterTitle ? ((0, jsx_runtime_1.jsx)("meta", { name: "twitter:title", content: metadata.twitterTitle }, "metadata-twitter-title")) : null, metadata.twitterDescription ? ((0, jsx_runtime_1.jsx)("meta", { name: "twitter:description", content: metadata.twitterDescription }, "metadata-twitter-description")) : null, metadata.twitterImage ? ((0, jsx_runtime_1.jsx)("meta", { name: "twitter:image", content: metadata.twitterImage }, "metadata-twitter-image")) : null, metadata.faviconHref ? ((0, jsx_runtime_1.jsx)("link", { rel: "icon", href: metadata.faviconHref, type: metadata.faviconMimeType }, "metadata-favicon")) : null, metadata.appleTouchIconHref ? ((0, jsx_runtime_1.jsx)("link", { rel: "apple-touch-icon", href: metadata.appleTouchIconHref }, "metadata-apple-touch-icon")) : null, metadata.organizationJsonLd ? ((0, jsx_runtime_1.jsx)("script", { id: "metadata-jsonld-organization", type: "application/ld+json", "data-jsonld-key": "metadata-jsonld-organization", dangerouslySetInnerHTML: {
|
|
100
|
+
__html: (0, seo_utils_1.safeJsonForInlineScript)(metadata.organizationJsonLd)
|
|
101
|
+
} }, "metadata-jsonld-organization")) : null] }));
|
|
102
|
+
}
|
|
103
|
+
function AppMetadataOverridesHead(props) {
|
|
104
|
+
const { overrides } = props;
|
|
105
|
+
if (!overrides) {
|
|
106
|
+
return null;
|
|
107
|
+
}
|
|
108
|
+
const title = (0, seo_utils_1.cleanString)(overrides.title);
|
|
109
|
+
const description = (0, seo_utils_1.cleanString)(overrides.description);
|
|
110
|
+
const keywordsList = (0, seo_utils_1.parseStringList)(overrides.keywords);
|
|
111
|
+
const keywords = keywordsList.length > 0 ? keywordsList.join(", ") : undefined;
|
|
112
|
+
const robots = (0, seo_utils_1.cleanString)(overrides.robots);
|
|
113
|
+
const canonicalUrl = (0, seo_utils_1.cleanString)(overrides.canonicalUrl);
|
|
114
|
+
const themeColor = (0, seo_utils_1.cleanString)(overrides.themeColor);
|
|
115
|
+
const siteName = (0, seo_utils_1.cleanString)(overrides.siteName);
|
|
116
|
+
const openGraphUrl = (0, seo_utils_1.cleanString)(overrides.openGraphUrl);
|
|
117
|
+
const openGraphTitle = pickFirst(overrides.openGraphTitle, title);
|
|
118
|
+
const openGraphDescription = pickFirst(overrides.openGraphDescription, description);
|
|
119
|
+
const openGraphImage = (0, seo_utils_1.cleanString)(overrides.openGraphImage);
|
|
120
|
+
const openGraphImageAlt = (0, seo_utils_1.cleanString)(overrides.openGraphImageAlt);
|
|
121
|
+
const openGraphType = (0, seo_utils_1.cleanString)(overrides.openGraphType);
|
|
122
|
+
const twitterTitle = pickFirst(overrides.twitterTitle, openGraphTitle);
|
|
123
|
+
const twitterDescription = pickFirst(overrides.twitterDescription, openGraphDescription);
|
|
124
|
+
const twitterImage = pickFirst(overrides.twitterImage, openGraphImage);
|
|
125
|
+
const twitterCard = pickFirst(overrides.twitterCard, twitterImage ? "summary_large_image" : "summary");
|
|
126
|
+
const faviconHref = (0, seo_utils_1.cleanString)(overrides.faviconHref);
|
|
127
|
+
const faviconMimeType = (0, seo_utils_1.cleanString)(overrides.faviconMimeType);
|
|
128
|
+
const appleTouchIconHref = (0, seo_utils_1.cleanString)(overrides.appleTouchIconHref);
|
|
129
|
+
const metadata = {
|
|
130
|
+
title,
|
|
131
|
+
description,
|
|
132
|
+
keywords,
|
|
133
|
+
robots,
|
|
134
|
+
canonicalUrl,
|
|
135
|
+
themeColor,
|
|
136
|
+
siteName,
|
|
137
|
+
openGraphUrl,
|
|
138
|
+
openGraphTitle,
|
|
139
|
+
openGraphDescription,
|
|
140
|
+
openGraphImage,
|
|
141
|
+
openGraphImageAlt,
|
|
142
|
+
openGraphType,
|
|
143
|
+
twitterCard,
|
|
144
|
+
twitterTitle,
|
|
145
|
+
twitterDescription,
|
|
146
|
+
twitterImage,
|
|
147
|
+
faviconHref,
|
|
148
|
+
faviconMimeType,
|
|
149
|
+
appleTouchIconHref
|
|
150
|
+
};
|
|
151
|
+
if (!hasAnyHeadMetadata(metadata)) {
|
|
152
|
+
return null;
|
|
153
|
+
}
|
|
154
|
+
return (0, jsx_runtime_1.jsx)(head_1.default, { children: renderHeadTags(metadata) });
|
|
155
|
+
}
|
|
156
|
+
function MetadataOverrides(props) {
|
|
157
|
+
const { siteSettings, pageMeta } = props;
|
|
158
|
+
const site = React.useMemo(() => (0, seo_utils_1.parseObject)(siteSettings), [siteSettings]);
|
|
159
|
+
const page = React.useMemo(() => (0, seo_utils_1.parseObject)(pageMeta), [pageMeta]);
|
|
160
|
+
const siteName = pickFirst(site?.identity_and_branding?.site_name);
|
|
161
|
+
const canonicalBase = pickFirst(site?.seo_defaults?.canonical_base, site?.domains_and_locales?.primary_domain);
|
|
162
|
+
const siteBaseUrl = pickFirst(site?.domains_and_locales?.primary_domain, site?.seo_defaults?.canonical_base);
|
|
163
|
+
const title = resolveTitle(page?.seo_per_page?.page_meta_title, page?.default?.page_title, site?.seo_defaults?.default_seo_title, siteName, site?.seo_defaults?.seo_title_template);
|
|
164
|
+
const description = pickFirst(page?.seo_per_page?.page_meta_description, site?.seo_defaults?.default_meta_description);
|
|
165
|
+
const keywordsList = (0, seo_utils_1.parseStringList)(page?.seo_per_page?.keywords);
|
|
166
|
+
const keywords = keywordsList.length > 0 ? keywordsList.join(", ") : undefined;
|
|
167
|
+
const canonicalUrl = pickFirst(page?.seo_per_page?.page_canonical_url, (0, seo_utils_1.toAbsoluteUrl)(page?.default?.permalink, canonicalBase), canonicalBase);
|
|
168
|
+
const canonicalAssetBaseUrl = pickFirst((0, seo_utils_1.resolveUrlBase)(canonicalBase, canonicalUrl), canonicalBase, canonicalUrl);
|
|
169
|
+
const currentOrigin = (0, seo_utils_1.getCurrentOrigin)();
|
|
170
|
+
const assetBaseUrl = pickFirst((0, seo_utils_1.resolveUrlBase)(currentOrigin, siteBaseUrl, canonicalAssetBaseUrl), currentOrigin, siteBaseUrl, canonicalAssetBaseUrl);
|
|
171
|
+
const robots = buildRobots(pickFirst(page?.seo_per_page?.page_robots_indexing, site?.seo_defaults?.robots_indexing), pickFirst(page?.seo_per_page?.page_robots_follow, site?.seo_defaults?.robots_follow));
|
|
172
|
+
const openGraphTitle = pickFirst(page?.social_and_sharing?.page_open_graph_title, title);
|
|
173
|
+
const openGraphDescription = pickFirst(page?.social_and_sharing?.page_open_graph_description, description);
|
|
174
|
+
const openGraphImage = (0, seo_utils_1.toAbsoluteUrl)(pickFirst(page?.social_and_sharing?.page_open_graph_image?.public_path, site?.seo_defaults?.og_image_default?.public_path), assetBaseUrl);
|
|
175
|
+
const openGraphImageAlt = pickFirst(page?.social_and_sharing?.page_open_graph_image?.alt_text, site?.seo_defaults?.og_image_default?.alt_text, siteName);
|
|
176
|
+
const faviconHref = (0, seo_utils_1.toAbsoluteUrl)(site?.identity_and_branding?.favicon?.public_path, assetBaseUrl);
|
|
177
|
+
const faviconMimeType = pickFirst(site?.identity_and_branding?.favicon?.mime_type);
|
|
178
|
+
const appleTouchIconHref = (0, seo_utils_1.toAbsoluteUrl)(site?.identity_and_branding?.apple_touch_icon?.public_path, assetBaseUrl);
|
|
179
|
+
const logoUrl = (0, seo_utils_1.toAbsoluteUrl)(site?.identity_and_branding?.logo?.public_path, assetBaseUrl);
|
|
180
|
+
const additionalDomains = (0, seo_utils_1.parseStringList)(site?.domains_and_locales?.additional_domains);
|
|
181
|
+
const sameAs = Array.from(new Set(additionalDomains
|
|
182
|
+
.map((domain) => normalizeSameAsUrl(domain, assetBaseUrl))
|
|
183
|
+
.filter((url) => Boolean(url))));
|
|
184
|
+
const organizationName = pickFirst(site?.seo_defaults?.default_seo_title, siteName, title);
|
|
185
|
+
const organizationUrl = canonicalAssetBaseUrl;
|
|
186
|
+
const organizationId = (0, seo_utils_1.buildOrganizationId)(organizationUrl);
|
|
187
|
+
const organizationDescription = pickFirst(site?.seo_defaults?.default_meta_description, description);
|
|
188
|
+
const organizationJsonLd = organizationName ||
|
|
189
|
+
organizationUrl ||
|
|
190
|
+
organizationId ||
|
|
191
|
+
logoUrl ||
|
|
192
|
+
organizationDescription ||
|
|
193
|
+
sameAs.length > 0
|
|
194
|
+
? {
|
|
195
|
+
"@context": "https://schema.org",
|
|
196
|
+
"@type": "Organization",
|
|
197
|
+
...(organizationId ? { "@id": organizationId } : {}),
|
|
198
|
+
...(organizationName ? { name: organizationName } : {}),
|
|
199
|
+
...(organizationUrl ? { url: organizationUrl } : {}),
|
|
200
|
+
...(logoUrl ? { logo: logoUrl } : {}),
|
|
201
|
+
...(organizationDescription ? { description: organizationDescription } : {}),
|
|
202
|
+
...(sameAs.length > 0 ? { sameAs } : {})
|
|
203
|
+
}
|
|
204
|
+
: undefined;
|
|
205
|
+
const themeColor = pickFirst(site?.identity_and_branding?.primary_color);
|
|
206
|
+
const twitterCard = openGraphImage ? "summary_large_image" : "summary";
|
|
207
|
+
const metadata = {
|
|
208
|
+
title,
|
|
209
|
+
description,
|
|
210
|
+
keywords,
|
|
211
|
+
robots,
|
|
212
|
+
canonicalUrl,
|
|
213
|
+
themeColor,
|
|
214
|
+
siteName,
|
|
215
|
+
openGraphUrl: canonicalUrl,
|
|
216
|
+
openGraphTitle,
|
|
217
|
+
openGraphDescription,
|
|
218
|
+
openGraphImage,
|
|
219
|
+
openGraphImageAlt,
|
|
220
|
+
openGraphType: "website",
|
|
221
|
+
twitterCard,
|
|
222
|
+
twitterTitle: openGraphTitle,
|
|
223
|
+
twitterDescription: openGraphDescription,
|
|
224
|
+
twitterImage: openGraphImage,
|
|
225
|
+
faviconHref,
|
|
226
|
+
faviconMimeType,
|
|
227
|
+
appleTouchIconHref,
|
|
228
|
+
organizationJsonLd
|
|
229
|
+
};
|
|
230
|
+
const organizationJson = organizationJsonLd
|
|
231
|
+
? (0, seo_utils_1.safeJsonForInlineScript)(organizationJsonLd)
|
|
232
|
+
: undefined;
|
|
233
|
+
React.useEffect(() => {
|
|
234
|
+
if (!organizationJson) {
|
|
235
|
+
return;
|
|
236
|
+
}
|
|
237
|
+
const cleanup = () => {
|
|
238
|
+
(0, seo_utils_1.removeDuplicateJsonLdScripts)("metadata-jsonld-organization", "metadata-jsonld-organization", organizationJson);
|
|
239
|
+
};
|
|
240
|
+
cleanup();
|
|
241
|
+
if (typeof document === "undefined" || typeof MutationObserver === "undefined") {
|
|
242
|
+
return undefined;
|
|
243
|
+
}
|
|
244
|
+
let rafId = null;
|
|
245
|
+
const observer = new MutationObserver(() => {
|
|
246
|
+
if (rafId != null) {
|
|
247
|
+
return;
|
|
248
|
+
}
|
|
249
|
+
rafId = window.requestAnimationFrame(() => {
|
|
250
|
+
rafId = null;
|
|
251
|
+
cleanup();
|
|
252
|
+
});
|
|
253
|
+
});
|
|
254
|
+
observer.observe(document.documentElement, {
|
|
255
|
+
childList: true,
|
|
256
|
+
subtree: true
|
|
257
|
+
});
|
|
258
|
+
return () => {
|
|
259
|
+
observer.disconnect();
|
|
260
|
+
if (rafId != null) {
|
|
261
|
+
window.cancelAnimationFrame(rafId);
|
|
262
|
+
}
|
|
263
|
+
};
|
|
264
|
+
}, [organizationJson]);
|
|
265
|
+
if (!hasAnyHeadMetadata(metadata)) {
|
|
266
|
+
return null;
|
|
267
|
+
}
|
|
268
|
+
return (0, jsx_runtime_1.jsx)(head_1.default, { children: renderHeadTags(metadata) });
|
|
269
|
+
}
|
|
270
|
+
exports.default = MetadataOverrides;
|
package/dist/index.d.ts
CHANGED
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
export { ApiCall, type ApiCallProps, type ApiType } from "./components/ApiCall";
|
|
2
|
+
export { MetadataOverrides, AppMetadataOverridesHead, type MetadataOverridesProps, type AppMetadataOverrides, type PageMeta, type SiteSettings } from "./components/MetadataOverrides";
|
|
3
|
+
export { FaqJsonLd, BlogPostingJsonLd, CustomJsonLd, type FaqJsonLdProps, type BlogPostingJsonLdProps, type CustomJsonLdProps } from "./components/JsonLdSchemas";
|
|
2
4
|
export { registerCodeComponents } from "./register";
|
|
3
5
|
export { CXF_COOKIE_NAMES, CXF_HEADER_NAMES, type CxfTokens, getTokensFromCookies, buildAuthHeaders, makeAuthenticatedRequest, extractSetCookieHeaders, extractTokensFromSetCookie, buildCookieHeader, getCxfBaseUrl, getCxfApiKey, buildCookieString, setTokensAsCookies, clearAuthCookies, } from "./lib/cxf-auth";
|
|
4
6
|
export { buildQueryString as buildApiQueryString, normalizePath, setAuthCookies, handleError, sendResponse, } from "./lib/api-route-helpers";
|
|
5
7
|
export { useIsrPrefetch, useApiFetch, type PreloadedDataResult, type UseApiFetchOptions, } from "./lib/api-call-hooks";
|
|
8
|
+
export { ASSET_QUERY_PARAMS_COOKIE_NAME, normalizeAssetQueryParams, serializeAssetQueryParamsCookie, extractAssetQueryParamsFromCookie, useSyncAssetQueryParams, type AssetQueryParamValue, type AssetQueryParams, type NormalizedAssetQueryParams, } from "./lib/assets-query-params";
|
|
6
9
|
export { EndpointDataContext, PrefetchCollectorContext, PrefetchCollectorProvider, ServerPageWrapper, createServerProps, normalizeEndpointPath, buildQueryString, buildEndpointKey, type EndpointConfig, type ServerPageProps, type ServerPageWrapperProps, type PrefetchRequest, } from "./lib/server-props";
|
|
7
10
|
export { CxfApp } from "./pages/app";
|
|
8
|
-
export { PlasmicHost } from "./pages/plasmic-host";
|
|
11
|
+
export { PlasmicHost, PLASMIC_HOST_ENABLED_ENV_VAR, isPlasmicHostEnabled, getPlasmicHostServerSideProps, } from "./pages/plasmic-host";
|
|
9
12
|
export { cxfApiHandler } from "./pages/api/cxf";
|
|
10
13
|
export { assetsApiHandler } from "./pages/api/assets";
|
|
11
14
|
export { cxfNextConfig } from "./next.config";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAChF,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAGpD,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,KAAK,SAAS,EACd,oBAAoB,EACpB,gBAAgB,EAChB,wBAAwB,EACxB,uBAAuB,EACvB,0BAA0B,EAC1B,iBAAiB,EACjB,aAAa,EACb,YAAY,EACZ,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,gBAAgB,IAAI,mBAAmB,EACvC,aAAa,EACb,cAAc,EACd,WAAW,EACX,YAAY,GACb,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,cAAc,EACd,WAAW,EACX,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,GACxB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,mBAAmB,EACnB,wBAAwB,EACxB,yBAAyB,EACzB,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACrB,gBAAgB,EAChB,gBAAgB,EAChB,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,sBAAsB,EAC3B,KAAK,eAAe,GACrB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAChF,OAAO,EACL,iBAAiB,EACjB,wBAAwB,EACxB,KAAK,sBAAsB,EAC3B,KAAK,oBAAoB,EACzB,KAAK,QAAQ,EACb,KAAK,YAAY,EAClB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,SAAS,EACT,iBAAiB,EACjB,YAAY,EACZ,KAAK,cAAc,EACnB,KAAK,sBAAsB,EAC3B,KAAK,iBAAiB,EACvB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAGpD,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,KAAK,SAAS,EACd,oBAAoB,EACpB,gBAAgB,EAChB,wBAAwB,EACxB,uBAAuB,EACvB,0BAA0B,EAC1B,iBAAiB,EACjB,aAAa,EACb,YAAY,EACZ,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,gBAAgB,IAAI,mBAAmB,EACvC,aAAa,EACb,cAAc,EACd,WAAW,EACX,YAAY,GACb,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,cAAc,EACd,WAAW,EACX,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,GACxB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,8BAA8B,EAC9B,yBAAyB,EACzB,+BAA+B,EAC/B,iCAAiC,EACjC,uBAAuB,EACvB,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EACrB,KAAK,0BAA0B,GAChC,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EACL,mBAAmB,EACnB,wBAAwB,EACxB,yBAAyB,EACzB,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACrB,gBAAgB,EAChB,gBAAgB,EAChB,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,sBAAsB,EAC3B,KAAK,eAAe,GACrB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EACL,WAAW,EACX,4BAA4B,EAC5B,oBAAoB,EACpB,6BAA6B,GAC9B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAGtD,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,9 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.cxfNextConfig = exports.assetsApiHandler = exports.cxfApiHandler = exports.PlasmicHost = exports.CxfApp = exports.buildEndpointKey = exports.buildQueryString = exports.normalizeEndpointPath = exports.createServerProps = exports.ServerPageWrapper = exports.PrefetchCollectorProvider = exports.PrefetchCollectorContext = exports.EndpointDataContext = exports.useApiFetch = exports.useIsrPrefetch = exports.sendResponse = exports.handleError = exports.setAuthCookies = exports.normalizePath = exports.buildApiQueryString = exports.clearAuthCookies = exports.setTokensAsCookies = exports.buildCookieString = exports.getCxfApiKey = exports.getCxfBaseUrl = exports.buildCookieHeader = exports.extractTokensFromSetCookie = exports.extractSetCookieHeaders = exports.makeAuthenticatedRequest = exports.buildAuthHeaders = exports.getTokensFromCookies = exports.CXF_HEADER_NAMES = exports.CXF_COOKIE_NAMES = exports.registerCodeComponents = exports.ApiCall = void 0;
|
|
3
|
+
exports.cxfNextConfig = exports.assetsApiHandler = exports.cxfApiHandler = exports.getPlasmicHostServerSideProps = exports.isPlasmicHostEnabled = exports.PLASMIC_HOST_ENABLED_ENV_VAR = exports.PlasmicHost = exports.CxfApp = exports.buildEndpointKey = exports.buildQueryString = exports.normalizeEndpointPath = exports.createServerProps = exports.ServerPageWrapper = exports.PrefetchCollectorProvider = exports.PrefetchCollectorContext = exports.EndpointDataContext = exports.useSyncAssetQueryParams = exports.extractAssetQueryParamsFromCookie = exports.serializeAssetQueryParamsCookie = exports.normalizeAssetQueryParams = exports.ASSET_QUERY_PARAMS_COOKIE_NAME = exports.useApiFetch = exports.useIsrPrefetch = exports.sendResponse = exports.handleError = exports.setAuthCookies = exports.normalizePath = exports.buildApiQueryString = exports.clearAuthCookies = exports.setTokensAsCookies = exports.buildCookieString = exports.getCxfApiKey = exports.getCxfBaseUrl = exports.buildCookieHeader = exports.extractTokensFromSetCookie = exports.extractSetCookieHeaders = exports.makeAuthenticatedRequest = exports.buildAuthHeaders = exports.getTokensFromCookies = exports.CXF_HEADER_NAMES = exports.CXF_COOKIE_NAMES = exports.registerCodeComponents = exports.CustomJsonLd = exports.BlogPostingJsonLd = exports.FaqJsonLd = exports.AppMetadataOverridesHead = exports.MetadataOverrides = exports.ApiCall = void 0;
|
|
4
4
|
// Main exports
|
|
5
5
|
var ApiCall_1 = require("./components/ApiCall");
|
|
6
6
|
Object.defineProperty(exports, "ApiCall", { enumerable: true, get: function () { return ApiCall_1.ApiCall; } });
|
|
7
|
+
var MetadataOverrides_1 = require("./components/MetadataOverrides");
|
|
8
|
+
Object.defineProperty(exports, "MetadataOverrides", { enumerable: true, get: function () { return MetadataOverrides_1.MetadataOverrides; } });
|
|
9
|
+
Object.defineProperty(exports, "AppMetadataOverridesHead", { enumerable: true, get: function () { return MetadataOverrides_1.AppMetadataOverridesHead; } });
|
|
10
|
+
var JsonLdSchemas_1 = require("./components/JsonLdSchemas");
|
|
11
|
+
Object.defineProperty(exports, "FaqJsonLd", { enumerable: true, get: function () { return JsonLdSchemas_1.FaqJsonLd; } });
|
|
12
|
+
Object.defineProperty(exports, "BlogPostingJsonLd", { enumerable: true, get: function () { return JsonLdSchemas_1.BlogPostingJsonLd; } });
|
|
13
|
+
Object.defineProperty(exports, "CustomJsonLd", { enumerable: true, get: function () { return JsonLdSchemas_1.CustomJsonLd; } });
|
|
7
14
|
var register_1 = require("./register");
|
|
8
15
|
Object.defineProperty(exports, "registerCodeComponents", { enumerable: true, get: function () { return register_1.registerCodeComponents; } });
|
|
9
16
|
// Library exports
|
|
@@ -30,6 +37,12 @@ Object.defineProperty(exports, "sendResponse", { enumerable: true, get: function
|
|
|
30
37
|
var api_call_hooks_1 = require("./lib/api-call-hooks");
|
|
31
38
|
Object.defineProperty(exports, "useIsrPrefetch", { enumerable: true, get: function () { return api_call_hooks_1.useIsrPrefetch; } });
|
|
32
39
|
Object.defineProperty(exports, "useApiFetch", { enumerable: true, get: function () { return api_call_hooks_1.useApiFetch; } });
|
|
40
|
+
var assets_query_params_1 = require("./lib/assets-query-params");
|
|
41
|
+
Object.defineProperty(exports, "ASSET_QUERY_PARAMS_COOKIE_NAME", { enumerable: true, get: function () { return assets_query_params_1.ASSET_QUERY_PARAMS_COOKIE_NAME; } });
|
|
42
|
+
Object.defineProperty(exports, "normalizeAssetQueryParams", { enumerable: true, get: function () { return assets_query_params_1.normalizeAssetQueryParams; } });
|
|
43
|
+
Object.defineProperty(exports, "serializeAssetQueryParamsCookie", { enumerable: true, get: function () { return assets_query_params_1.serializeAssetQueryParamsCookie; } });
|
|
44
|
+
Object.defineProperty(exports, "extractAssetQueryParamsFromCookie", { enumerable: true, get: function () { return assets_query_params_1.extractAssetQueryParamsFromCookie; } });
|
|
45
|
+
Object.defineProperty(exports, "useSyncAssetQueryParams", { enumerable: true, get: function () { return assets_query_params_1.useSyncAssetQueryParams; } });
|
|
33
46
|
var server_props_1 = require("./lib/server-props");
|
|
34
47
|
Object.defineProperty(exports, "EndpointDataContext", { enumerable: true, get: function () { return server_props_1.EndpointDataContext; } });
|
|
35
48
|
Object.defineProperty(exports, "PrefetchCollectorContext", { enumerable: true, get: function () { return server_props_1.PrefetchCollectorContext; } });
|
|
@@ -44,6 +57,9 @@ var app_1 = require("./pages/app");
|
|
|
44
57
|
Object.defineProperty(exports, "CxfApp", { enumerable: true, get: function () { return app_1.CxfApp; } });
|
|
45
58
|
var plasmic_host_1 = require("./pages/plasmic-host");
|
|
46
59
|
Object.defineProperty(exports, "PlasmicHost", { enumerable: true, get: function () { return plasmic_host_1.PlasmicHost; } });
|
|
60
|
+
Object.defineProperty(exports, "PLASMIC_HOST_ENABLED_ENV_VAR", { enumerable: true, get: function () { return plasmic_host_1.PLASMIC_HOST_ENABLED_ENV_VAR; } });
|
|
61
|
+
Object.defineProperty(exports, "isPlasmicHostEnabled", { enumerable: true, get: function () { return plasmic_host_1.isPlasmicHostEnabled; } });
|
|
62
|
+
Object.defineProperty(exports, "getPlasmicHostServerSideProps", { enumerable: true, get: function () { return plasmic_host_1.getPlasmicHostServerSideProps; } });
|
|
47
63
|
var cxf_1 = require("./pages/api/cxf");
|
|
48
64
|
Object.defineProperty(exports, "cxfApiHandler", { enumerable: true, get: function () { return cxf_1.cxfApiHandler; } });
|
|
49
65
|
var assets_1 = require("./pages/api/assets");
|
|
@@ -4,6 +4,8 @@ export declare function normalizePath(pathSegments: string[] | string | undefine
|
|
|
4
4
|
export declare function setAuthCookies(res: NextApiResponse, tokens: {
|
|
5
5
|
accessToken: string | null;
|
|
6
6
|
refreshToken: string | null;
|
|
7
|
+
accessTokenMaxAge?: number | null;
|
|
8
|
+
refreshTokenMaxAge?: number | null;
|
|
7
9
|
}): void;
|
|
8
10
|
export declare function forwardExtraCookies(res: NextApiResponse, setCookieHeaders: string[]): void;
|
|
9
11
|
export declare function handleError(res: NextApiResponse, err: any): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-route-helpers.d.ts","sourceRoot":"","sources":["../../src/lib/api-route-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,MAAM,CAAC;AAG5D,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,cAAc,CAAC,OAAO,CAAC,GAAG,MAAM,CAavE;AAED,wBAAgB,aAAa,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,CAOjF;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,eAAe,EAAE,MAAM,EAAE;IAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,
|
|
1
|
+
{"version":3,"file":"api-route-helpers.d.ts","sourceRoot":"","sources":["../../src/lib/api-route-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,MAAM,CAAC;AAG5D,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,cAAc,CAAC,OAAO,CAAC,GAAG,MAAM,CAavE;AAED,wBAAgB,aAAa,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,CAOjF;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,eAAe,EAAE,MAAM,EAAE;IAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,QAmB9L;AAED,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,EAAE,QAYnF;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,GAAG,QAMzD;AAED,wBAAsB,YAAY,CAAC,GAAG,EAAE,eAAe,EAAE,QAAQ,EAAE,QAAQ,iBAwB1E"}
|
|
@@ -31,13 +31,19 @@ function normalizePath(pathSegments) {
|
|
|
31
31
|
.replace(/^\/+/, "");
|
|
32
32
|
}
|
|
33
33
|
function setAuthCookies(res, tokens) {
|
|
34
|
-
const
|
|
34
|
+
const baseOptions = { secure: true, sameSite: "Lax", httpOnly: true, path: "/" };
|
|
35
35
|
const cookies = [];
|
|
36
36
|
if (tokens.accessToken) {
|
|
37
|
-
cookies.push((0, cxf_auth_1.buildCookieString)(cxf_auth_1.CXF_COOKIE_NAMES.ACCESS_TOKEN, tokens.accessToken,
|
|
37
|
+
cookies.push((0, cxf_auth_1.buildCookieString)(cxf_auth_1.CXF_COOKIE_NAMES.ACCESS_TOKEN, tokens.accessToken, {
|
|
38
|
+
...baseOptions,
|
|
39
|
+
...(tokens.accessTokenMaxAge != null && { maxAge: tokens.accessTokenMaxAge }),
|
|
40
|
+
}));
|
|
38
41
|
}
|
|
39
42
|
if (tokens.refreshToken) {
|
|
40
|
-
cookies.push((0, cxf_auth_1.buildCookieString)(cxf_auth_1.CXF_COOKIE_NAMES.REFRESH_TOKEN, tokens.refreshToken,
|
|
43
|
+
cookies.push((0, cxf_auth_1.buildCookieString)(cxf_auth_1.CXF_COOKIE_NAMES.REFRESH_TOKEN, tokens.refreshToken, {
|
|
44
|
+
...baseOptions,
|
|
45
|
+
...(tokens.refreshTokenMaxAge != null && { maxAge: tokens.refreshTokenMaxAge }),
|
|
46
|
+
}));
|
|
41
47
|
}
|
|
42
48
|
if (cookies.length > 0) {
|
|
43
49
|
res.setHeader("Set-Cookie", cookies);
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export declare const ASSET_QUERY_PARAMS_COOKIE_NAME = "cxf_asset_query_params";
|
|
2
|
+
type PrimitiveParam = string | number | boolean;
|
|
3
|
+
export type AssetQueryParamValue = PrimitiveParam | PrimitiveParam[] | null | undefined;
|
|
4
|
+
export type AssetQueryParams = Record<string, AssetQueryParamValue>;
|
|
5
|
+
export type NormalizedAssetQueryParams = Record<string, string | string[]>;
|
|
6
|
+
export declare function normalizeAssetQueryParams(params: AssetQueryParams | null | undefined): NormalizedAssetQueryParams;
|
|
7
|
+
export declare function serializeAssetQueryParamsCookie(params: AssetQueryParams | null | undefined): string;
|
|
8
|
+
export declare function extractAssetQueryParamsFromCookie(cookieHeader: string | null | undefined): NormalizedAssetQueryParams;
|
|
9
|
+
export declare function useSyncAssetQueryParams(params: AssetQueryParams | null | undefined): void;
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=assets-query-params.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assets-query-params.d.ts","sourceRoot":"","sources":["../../src/lib/assets-query-params.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,8BAA8B,2BAA2B,CAAC;AAEvE,KAAK,cAAc,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAChD,MAAM,MAAM,oBAAoB,GAC5B,cAAc,GACd,cAAc,EAAE,GAChB,IAAI,GACJ,SAAS,CAAC;AACd,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;AACpE,MAAM,MAAM,0BAA0B,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC;AAgB3E,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,gBAAgB,GAAG,IAAI,GAAG,SAAS,GAC1C,0BAA0B,CA8B5B;AAED,wBAAgB,+BAA+B,CAC7C,MAAM,EAAE,gBAAgB,GAAG,IAAI,GAAG,SAAS,GAC1C,MAAM,CAMR;AAED,wBAAgB,iCAAiC,CAC/C,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GACtC,0BAA0B,CAqB5B;AAED,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI,GAAG,SAAS,QAsBlF"}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.ASSET_QUERY_PARAMS_COOKIE_NAME = void 0;
|
|
37
|
+
exports.normalizeAssetQueryParams = normalizeAssetQueryParams;
|
|
38
|
+
exports.serializeAssetQueryParamsCookie = serializeAssetQueryParamsCookie;
|
|
39
|
+
exports.extractAssetQueryParamsFromCookie = extractAssetQueryParamsFromCookie;
|
|
40
|
+
exports.useSyncAssetQueryParams = useSyncAssetQueryParams;
|
|
41
|
+
const React = __importStar(require("react"));
|
|
42
|
+
exports.ASSET_QUERY_PARAMS_COOKIE_NAME = "cxf_asset_query_params";
|
|
43
|
+
function isPrimitiveParamValue(value) {
|
|
44
|
+
const valueType = typeof value;
|
|
45
|
+
return valueType === "string" || valueType === "number" || valueType === "boolean";
|
|
46
|
+
}
|
|
47
|
+
function sortObjectKeys(value) {
|
|
48
|
+
return Object.keys(value)
|
|
49
|
+
.sort()
|
|
50
|
+
.reduce((acc, key) => {
|
|
51
|
+
acc[key] = value[key];
|
|
52
|
+
return acc;
|
|
53
|
+
}, {});
|
|
54
|
+
}
|
|
55
|
+
function normalizeAssetQueryParams(params) {
|
|
56
|
+
if (!params || typeof params !== "object" || Array.isArray(params)) {
|
|
57
|
+
return {};
|
|
58
|
+
}
|
|
59
|
+
const normalized = {};
|
|
60
|
+
for (const key of Object.keys(params)) {
|
|
61
|
+
if (!key || key === "path")
|
|
62
|
+
continue;
|
|
63
|
+
const rawValue = params[key];
|
|
64
|
+
if (rawValue == null)
|
|
65
|
+
continue;
|
|
66
|
+
if (Array.isArray(rawValue)) {
|
|
67
|
+
const values = rawValue
|
|
68
|
+
.filter((entry) => isPrimitiveParamValue(entry))
|
|
69
|
+
.map((entry) => String(entry));
|
|
70
|
+
if (values.length === 1) {
|
|
71
|
+
normalized[key] = values[0];
|
|
72
|
+
}
|
|
73
|
+
else if (values.length > 1) {
|
|
74
|
+
normalized[key] = values;
|
|
75
|
+
}
|
|
76
|
+
continue;
|
|
77
|
+
}
|
|
78
|
+
if (isPrimitiveParamValue(rawValue)) {
|
|
79
|
+
normalized[key] = String(rawValue);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
return sortObjectKeys(normalized);
|
|
83
|
+
}
|
|
84
|
+
function serializeAssetQueryParamsCookie(params) {
|
|
85
|
+
const normalized = normalizeAssetQueryParams(params);
|
|
86
|
+
if (Object.keys(normalized).length === 0) {
|
|
87
|
+
return "";
|
|
88
|
+
}
|
|
89
|
+
return encodeURIComponent(JSON.stringify(normalized));
|
|
90
|
+
}
|
|
91
|
+
function extractAssetQueryParamsFromCookie(cookieHeader) {
|
|
92
|
+
if (!cookieHeader)
|
|
93
|
+
return {};
|
|
94
|
+
const targetPrefix = `${exports.ASSET_QUERY_PARAMS_COOKIE_NAME}=`;
|
|
95
|
+
const cookieEntry = cookieHeader
|
|
96
|
+
.split(";")
|
|
97
|
+
.map((part) => part.trim())
|
|
98
|
+
.find((part) => part.startsWith(targetPrefix));
|
|
99
|
+
if (!cookieEntry)
|
|
100
|
+
return {};
|
|
101
|
+
const rawValue = cookieEntry.slice(targetPrefix.length);
|
|
102
|
+
if (!rawValue)
|
|
103
|
+
return {};
|
|
104
|
+
try {
|
|
105
|
+
const decoded = decodeURIComponent(rawValue);
|
|
106
|
+
const parsed = JSON.parse(decoded);
|
|
107
|
+
return normalizeAssetQueryParams(parsed);
|
|
108
|
+
}
|
|
109
|
+
catch {
|
|
110
|
+
return {};
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
function useSyncAssetQueryParams(params) {
|
|
114
|
+
const cookieValue = serializeAssetQueryParamsCookie(params);
|
|
115
|
+
React.useEffect(() => {
|
|
116
|
+
if (typeof document === "undefined") {
|
|
117
|
+
return;
|
|
118
|
+
}
|
|
119
|
+
const secureAttr = typeof window !== "undefined" && window.location.protocol === "https:"
|
|
120
|
+
? "; Secure"
|
|
121
|
+
: "";
|
|
122
|
+
if (!cookieValue) {
|
|
123
|
+
document.cookie = `${exports.ASSET_QUERY_PARAMS_COOKIE_NAME}=; Path=/; Max-Age=0; SameSite=Lax${secureAttr}`;
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
126
|
+
// Persist for 30 days; refreshed whenever params change.
|
|
127
|
+
const maxAgeSeconds = 30 * 24 * 60 * 60;
|
|
128
|
+
document.cookie = `${exports.ASSET_QUERY_PARAMS_COOKIE_NAME}=${cookieValue}; Path=/; Max-Age=${maxAgeSeconds}; SameSite=Lax${secureAttr}`;
|
|
129
|
+
}, [cookieValue]);
|
|
130
|
+
}
|
package/dist/lib/cxf-auth.d.ts
CHANGED
|
@@ -11,6 +11,8 @@ export declare const CXF_HEADER_NAMES: {
|
|
|
11
11
|
export interface CxfTokens {
|
|
12
12
|
accessToken: string | null;
|
|
13
13
|
refreshToken: string | null;
|
|
14
|
+
accessTokenMaxAge?: number | null;
|
|
15
|
+
refreshTokenMaxAge?: number | null;
|
|
14
16
|
}
|
|
15
17
|
export declare function getTokensFromCookies(cookieHeader?: string | null): CxfTokens;
|
|
16
18
|
export declare function buildAuthHeaders(tokens: CxfTokens, apiKey?: string | null, userToken?: string | null): Record<string, string>;
|
|
@@ -19,6 +21,7 @@ export interface AuthenticatedRequestOptions {
|
|
|
19
21
|
body?: string | Record<string, unknown>;
|
|
20
22
|
rawBody?: Buffer | Uint8Array;
|
|
21
23
|
contentType?: string;
|
|
24
|
+
extraHeaders?: Record<string, string | undefined>;
|
|
22
25
|
tokens?: CxfTokens;
|
|
23
26
|
apiKey?: string | null;
|
|
24
27
|
userToken?: string | null;
|