@makerinc/ssr-component 1.0.0 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +4 -1
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +4 -1
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -67,7 +67,9 @@ function renderInlineStyles(inlineStyles) {
|
|
|
67
67
|
}
|
|
68
68
|
function renderScripts(scripts) {
|
|
69
69
|
if (scripts && scripts.length > 0) {
|
|
70
|
-
return scripts.
|
|
70
|
+
return scripts.filter(
|
|
71
|
+
(script) => script.inline || script.src && !script.src.includes("posthog")
|
|
72
|
+
).reduce((acc, script) => {
|
|
71
73
|
const found = acc.find(
|
|
72
74
|
(s) => s.src === script.src && s.inline === script.inline
|
|
73
75
|
);
|
|
@@ -104,6 +106,7 @@ async function MakerComponent({
|
|
|
104
106
|
});
|
|
105
107
|
}
|
|
106
108
|
const pageData = await fetchSSRContent(apiKey, projectId, options);
|
|
109
|
+
console.log("[maker-component] Current version: 1.0.1");
|
|
107
110
|
return /* @__PURE__ */ React__default.default.createElement(
|
|
108
111
|
"main",
|
|
109
112
|
{
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/maker-component.tsx"],"names":["React"],"mappings":"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","file":"index.js","sourcesContent":["import React from \"react\";\nimport type { MakerComponentOptions, PageData, Script } from \"./types\";\n\nconst VERSION = \"v1\";\n\nasync function fetchSSRContent(\n apiKey: string,\n projectId: string,\n options?: MakerComponentOptions\n): Promise<PageData> {\n const response = await fetch(\n `https://ssr.maker.new/api/ssr/${VERSION}/content`,\n {\n method: \"POST\",\n headers: {\n Authorization: `Bearer ${apiKey}`,\n },\n body: JSON.stringify({\n idn: projectId,\n device: options?.device,\n cacheBust: options?.cacheBust,\n }),\n }\n );\n if (options?.debug) {\n console.log(\n \"[debug-maker-component] Debug info: \",\n response.headers.get(\"x-debug-info\")\n );\n }\n if (!response.ok) {\n throw new Error(\"Failed to fetch SSR content\");\n }\n return response.json();\n}\n\nfunction renderMetaTags(meta: PageData[\"meta\"]) {\n return meta?.map((m, i) =>\n m.charset ? (\n <meta key={`m-cs-${i}`} charSet={m.charset} />\n ) : m.name ? (\n <meta key={`m-n-${i}`} name={m.name} content={m.content || \"\"} />\n ) : m.property ? (\n <meta key={`m-p-${i}`} property={m.property} content={m.content || \"\"} />\n ) : null\n );\n}\n\nfunction renderFonts(fonts: string[]) {\n return fonts.map((href, i) =>\n /\\.(woff2?|otf|ttf)(\\?|#|$)/i.test(href) ? (\n <link\n key={`font-${i}`}\n rel=\"preload\"\n as=\"font\"\n href={href}\n crossOrigin=\"anonymous\"\n />\n ) : (\n <link key={`mkr-font-css-${i}`} rel=\"stylesheet\" href={href} />\n )\n );\n}\n\nfunction renderStylesheets(stylesheets: string[]) {\n return stylesheets.map((href, i) => (\n <link key={`mkr-css-${i}`} rel=\"stylesheet\" href={href} />\n ));\n}\n\nfunction renderInlineStyles(inlineStyles: string[]) {\n return inlineStyles?.map((css, i) => (\n <style\n key={`mkr-inline-css-${i}`}\n dangerouslySetInnerHTML={{ __html: css }}\n />\n ));\n}\n\nfunction renderScripts(scripts: Script[]) {\n if (scripts && scripts.length > 0) {\n return scripts\n .reduce<Script[]>((acc, script) => {\n const found = acc.find(\n (s) => s.src === script.src && s.inline === script.inline\n );\n if (!found) {\n acc.push(script);\n }\n return acc;\n }, [])\n .map((script) => (\n <script\n key={script.src || script.inline}\n type={script.type || \"text/javascript\"}\n src={script.src}\n dangerouslySetInnerHTML={\n script.inline ? { __html: script.inline } : undefined\n }\n />\n ));\n }\n}\n\nexport async function MakerComponent({\n apiKey,\n projectId,\n options,\n}: {\n apiKey: string;\n projectId: string;\n options?: MakerComponentOptions;\n}) {\n if (!apiKey) {\n throw new Error(\"MAKER_SSR_API_KEY is not set in environment variables\");\n }\n if (!projectId) {\n throw new Error(\"Project ID is required\");\n }\n if (options?.debug) {\n console.log(\"[debug-maker-component] Props: \", {\n projectId,\n options,\n });\n }\n const pageData = await fetchSSRContent(apiKey, projectId, options);\n return (\n <main\n className={`mkr-component-${projectId}`}\n suppressHydrationWarning={true}\n >\n <section aria-hidden className=\"hidden\">\n {renderMetaTags(pageData.meta)}\n {renderFonts(pageData.fonts)}\n {renderStylesheets(pageData.stylesheets)}\n {renderInlineStyles(pageData.inlineStyles)}\n </section>\n <div\n dangerouslySetInnerHTML={{ __html: pageData.body }}\n suppressHydrationWarning={true}\n />\n {renderScripts(pageData.scripts)}\n </main>\n );\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/maker-component.tsx"],"names":["React"],"mappings":"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","file":"index.js","sourcesContent":["import React from \"react\";\nimport type { MakerComponentOptions, PageData, Script } from \"./types\";\n\nconst VERSION = \"v1\";\n\nasync function fetchSSRContent(\n apiKey: string,\n projectId: string,\n options?: MakerComponentOptions\n): Promise<PageData> {\n const response = await fetch(\n `https://ssr.maker.new/api/ssr/${VERSION}/content`,\n {\n method: \"POST\",\n headers: {\n Authorization: `Bearer ${apiKey}`,\n },\n body: JSON.stringify({\n idn: projectId,\n device: options?.device,\n cacheBust: options?.cacheBust,\n }),\n }\n );\n if (options?.debug) {\n console.log(\n \"[debug-maker-component] Debug info: \",\n response.headers.get(\"x-debug-info\")\n );\n }\n if (!response.ok) {\n throw new Error(\"Failed to fetch SSR content\");\n }\n return response.json();\n}\n\nfunction renderMetaTags(meta: PageData[\"meta\"]) {\n return meta?.map((m, i) =>\n m.charset ? (\n <meta key={`m-cs-${i}`} charSet={m.charset} />\n ) : m.name ? (\n <meta key={`m-n-${i}`} name={m.name} content={m.content || \"\"} />\n ) : m.property ? (\n <meta key={`m-p-${i}`} property={m.property} content={m.content || \"\"} />\n ) : null\n );\n}\n\nfunction renderFonts(fonts: string[]) {\n return fonts.map((href, i) =>\n /\\.(woff2?|otf|ttf)(\\?|#|$)/i.test(href) ? (\n <link\n key={`font-${i}`}\n rel=\"preload\"\n as=\"font\"\n href={href}\n crossOrigin=\"anonymous\"\n />\n ) : (\n <link key={`mkr-font-css-${i}`} rel=\"stylesheet\" href={href} />\n )\n );\n}\n\nfunction renderStylesheets(stylesheets: string[]) {\n return stylesheets.map((href, i) => (\n <link key={`mkr-css-${i}`} rel=\"stylesheet\" href={href} />\n ));\n}\n\nfunction renderInlineStyles(inlineStyles: string[]) {\n return inlineStyles?.map((css, i) => (\n <style\n key={`mkr-inline-css-${i}`}\n dangerouslySetInnerHTML={{ __html: css }}\n />\n ));\n}\n\nfunction renderScripts(scripts: Script[]) {\n if (scripts && scripts.length > 0) {\n return scripts\n .filter(\n (script) =>\n script.inline || (script.src && !script.src.includes(\"posthog\"))\n )\n .reduce<Script[]>((acc, script) => {\n const found = acc.find(\n (s) => s.src === script.src && s.inline === script.inline\n );\n if (!found) {\n acc.push(script);\n }\n return acc;\n }, [])\n .map((script) => (\n <script\n key={script.src || script.inline}\n type={script.type || \"text/javascript\"}\n src={script.src}\n dangerouslySetInnerHTML={\n script.inline ? { __html: script.inline } : undefined\n }\n />\n ));\n }\n}\n\nexport async function MakerComponent({\n apiKey,\n projectId,\n options,\n}: {\n apiKey: string;\n projectId: string;\n options?: MakerComponentOptions;\n}) {\n if (!apiKey) {\n throw new Error(\"MAKER_SSR_API_KEY is not set in environment variables\");\n }\n if (!projectId) {\n throw new Error(\"Project ID is required\");\n }\n if (options?.debug) {\n console.log(\"[debug-maker-component] Props: \", {\n projectId,\n options,\n });\n }\n const pageData = await fetchSSRContent(apiKey, projectId, options);\n console.log(\"[maker-component] Current version: 1.0.1\");\n return (\n <main\n className={`mkr-component-${projectId}`}\n suppressHydrationWarning={true}\n >\n <section aria-hidden className=\"hidden\">\n {renderMetaTags(pageData.meta)}\n {renderFonts(pageData.fonts)}\n {renderStylesheets(pageData.stylesheets)}\n {renderInlineStyles(pageData.inlineStyles)}\n </section>\n <div\n dangerouslySetInnerHTML={{ __html: pageData.body }}\n suppressHydrationWarning={true}\n />\n {renderScripts(pageData.scripts)}\n </main>\n );\n}\n"]}
|
package/dist/index.mjs
CHANGED
|
@@ -61,7 +61,9 @@ function renderInlineStyles(inlineStyles) {
|
|
|
61
61
|
}
|
|
62
62
|
function renderScripts(scripts) {
|
|
63
63
|
if (scripts && scripts.length > 0) {
|
|
64
|
-
return scripts.
|
|
64
|
+
return scripts.filter(
|
|
65
|
+
(script) => script.inline || script.src && !script.src.includes("posthog")
|
|
66
|
+
).reduce((acc, script) => {
|
|
65
67
|
const found = acc.find(
|
|
66
68
|
(s) => s.src === script.src && s.inline === script.inline
|
|
67
69
|
);
|
|
@@ -98,6 +100,7 @@ async function MakerComponent({
|
|
|
98
100
|
});
|
|
99
101
|
}
|
|
100
102
|
const pageData = await fetchSSRContent(apiKey, projectId, options);
|
|
103
|
+
console.log("[maker-component] Current version: 1.0.1");
|
|
101
104
|
return /* @__PURE__ */ React.createElement(
|
|
102
105
|
"main",
|
|
103
106
|
{
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/maker-component.tsx"],"names":[],"mappings":"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","file":"index.mjs","sourcesContent":["import React from \"react\";\nimport type { MakerComponentOptions, PageData, Script } from \"./types\";\n\nconst VERSION = \"v1\";\n\nasync function fetchSSRContent(\n apiKey: string,\n projectId: string,\n options?: MakerComponentOptions\n): Promise<PageData> {\n const response = await fetch(\n `https://ssr.maker.new/api/ssr/${VERSION}/content`,\n {\n method: \"POST\",\n headers: {\n Authorization: `Bearer ${apiKey}`,\n },\n body: JSON.stringify({\n idn: projectId,\n device: options?.device,\n cacheBust: options?.cacheBust,\n }),\n }\n );\n if (options?.debug) {\n console.log(\n \"[debug-maker-component] Debug info: \",\n response.headers.get(\"x-debug-info\")\n );\n }\n if (!response.ok) {\n throw new Error(\"Failed to fetch SSR content\");\n }\n return response.json();\n}\n\nfunction renderMetaTags(meta: PageData[\"meta\"]) {\n return meta?.map((m, i) =>\n m.charset ? (\n <meta key={`m-cs-${i}`} charSet={m.charset} />\n ) : m.name ? (\n <meta key={`m-n-${i}`} name={m.name} content={m.content || \"\"} />\n ) : m.property ? (\n <meta key={`m-p-${i}`} property={m.property} content={m.content || \"\"} />\n ) : null\n );\n}\n\nfunction renderFonts(fonts: string[]) {\n return fonts.map((href, i) =>\n /\\.(woff2?|otf|ttf)(\\?|#|$)/i.test(href) ? (\n <link\n key={`font-${i}`}\n rel=\"preload\"\n as=\"font\"\n href={href}\n crossOrigin=\"anonymous\"\n />\n ) : (\n <link key={`mkr-font-css-${i}`} rel=\"stylesheet\" href={href} />\n )\n );\n}\n\nfunction renderStylesheets(stylesheets: string[]) {\n return stylesheets.map((href, i) => (\n <link key={`mkr-css-${i}`} rel=\"stylesheet\" href={href} />\n ));\n}\n\nfunction renderInlineStyles(inlineStyles: string[]) {\n return inlineStyles?.map((css, i) => (\n <style\n key={`mkr-inline-css-${i}`}\n dangerouslySetInnerHTML={{ __html: css }}\n />\n ));\n}\n\nfunction renderScripts(scripts: Script[]) {\n if (scripts && scripts.length > 0) {\n return scripts\n .reduce<Script[]>((acc, script) => {\n const found = acc.find(\n (s) => s.src === script.src && s.inline === script.inline\n );\n if (!found) {\n acc.push(script);\n }\n return acc;\n }, [])\n .map((script) => (\n <script\n key={script.src || script.inline}\n type={script.type || \"text/javascript\"}\n src={script.src}\n dangerouslySetInnerHTML={\n script.inline ? { __html: script.inline } : undefined\n }\n />\n ));\n }\n}\n\nexport async function MakerComponent({\n apiKey,\n projectId,\n options,\n}: {\n apiKey: string;\n projectId: string;\n options?: MakerComponentOptions;\n}) {\n if (!apiKey) {\n throw new Error(\"MAKER_SSR_API_KEY is not set in environment variables\");\n }\n if (!projectId) {\n throw new Error(\"Project ID is required\");\n }\n if (options?.debug) {\n console.log(\"[debug-maker-component] Props: \", {\n projectId,\n options,\n });\n }\n const pageData = await fetchSSRContent(apiKey, projectId, options);\n return (\n <main\n className={`mkr-component-${projectId}`}\n suppressHydrationWarning={true}\n >\n <section aria-hidden className=\"hidden\">\n {renderMetaTags(pageData.meta)}\n {renderFonts(pageData.fonts)}\n {renderStylesheets(pageData.stylesheets)}\n {renderInlineStyles(pageData.inlineStyles)}\n </section>\n <div\n dangerouslySetInnerHTML={{ __html: pageData.body }}\n suppressHydrationWarning={true}\n />\n {renderScripts(pageData.scripts)}\n </main>\n );\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/maker-component.tsx"],"names":[],"mappings":"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","file":"index.mjs","sourcesContent":["import React from \"react\";\nimport type { MakerComponentOptions, PageData, Script } from \"./types\";\n\nconst VERSION = \"v1\";\n\nasync function fetchSSRContent(\n apiKey: string,\n projectId: string,\n options?: MakerComponentOptions\n): Promise<PageData> {\n const response = await fetch(\n `https://ssr.maker.new/api/ssr/${VERSION}/content`,\n {\n method: \"POST\",\n headers: {\n Authorization: `Bearer ${apiKey}`,\n },\n body: JSON.stringify({\n idn: projectId,\n device: options?.device,\n cacheBust: options?.cacheBust,\n }),\n }\n );\n if (options?.debug) {\n console.log(\n \"[debug-maker-component] Debug info: \",\n response.headers.get(\"x-debug-info\")\n );\n }\n if (!response.ok) {\n throw new Error(\"Failed to fetch SSR content\");\n }\n return response.json();\n}\n\nfunction renderMetaTags(meta: PageData[\"meta\"]) {\n return meta?.map((m, i) =>\n m.charset ? (\n <meta key={`m-cs-${i}`} charSet={m.charset} />\n ) : m.name ? (\n <meta key={`m-n-${i}`} name={m.name} content={m.content || \"\"} />\n ) : m.property ? (\n <meta key={`m-p-${i}`} property={m.property} content={m.content || \"\"} />\n ) : null\n );\n}\n\nfunction renderFonts(fonts: string[]) {\n return fonts.map((href, i) =>\n /\\.(woff2?|otf|ttf)(\\?|#|$)/i.test(href) ? (\n <link\n key={`font-${i}`}\n rel=\"preload\"\n as=\"font\"\n href={href}\n crossOrigin=\"anonymous\"\n />\n ) : (\n <link key={`mkr-font-css-${i}`} rel=\"stylesheet\" href={href} />\n )\n );\n}\n\nfunction renderStylesheets(stylesheets: string[]) {\n return stylesheets.map((href, i) => (\n <link key={`mkr-css-${i}`} rel=\"stylesheet\" href={href} />\n ));\n}\n\nfunction renderInlineStyles(inlineStyles: string[]) {\n return inlineStyles?.map((css, i) => (\n <style\n key={`mkr-inline-css-${i}`}\n dangerouslySetInnerHTML={{ __html: css }}\n />\n ));\n}\n\nfunction renderScripts(scripts: Script[]) {\n if (scripts && scripts.length > 0) {\n return scripts\n .filter(\n (script) =>\n script.inline || (script.src && !script.src.includes(\"posthog\"))\n )\n .reduce<Script[]>((acc, script) => {\n const found = acc.find(\n (s) => s.src === script.src && s.inline === script.inline\n );\n if (!found) {\n acc.push(script);\n }\n return acc;\n }, [])\n .map((script) => (\n <script\n key={script.src || script.inline}\n type={script.type || \"text/javascript\"}\n src={script.src}\n dangerouslySetInnerHTML={\n script.inline ? { __html: script.inline } : undefined\n }\n />\n ));\n }\n}\n\nexport async function MakerComponent({\n apiKey,\n projectId,\n options,\n}: {\n apiKey: string;\n projectId: string;\n options?: MakerComponentOptions;\n}) {\n if (!apiKey) {\n throw new Error(\"MAKER_SSR_API_KEY is not set in environment variables\");\n }\n if (!projectId) {\n throw new Error(\"Project ID is required\");\n }\n if (options?.debug) {\n console.log(\"[debug-maker-component] Props: \", {\n projectId,\n options,\n });\n }\n const pageData = await fetchSSRContent(apiKey, projectId, options);\n console.log(\"[maker-component] Current version: 1.0.1\");\n return (\n <main\n className={`mkr-component-${projectId}`}\n suppressHydrationWarning={true}\n >\n <section aria-hidden className=\"hidden\">\n {renderMetaTags(pageData.meta)}\n {renderFonts(pageData.fonts)}\n {renderStylesheets(pageData.stylesheets)}\n {renderInlineStyles(pageData.inlineStyles)}\n </section>\n <div\n dangerouslySetInnerHTML={{ __html: pageData.body }}\n suppressHydrationWarning={true}\n />\n {renderScripts(pageData.scripts)}\n </main>\n );\n}\n"]}
|