@opinly/next 0.1.16 → 0.1.18
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/components/author-page/index.cjs +51 -25
- package/dist/components/author-page/index.cjs.map +1 -1
- package/dist/components/author-page/index.js +52 -26
- package/dist/components/author-page/index.js.map +1 -1
- package/dist/components/blog-post/_components/content.cjs +5 -8
- package/dist/components/blog-post/_components/content.cjs.map +1 -1
- package/dist/components/blog-post/_components/content.js +5 -8
- package/dist/components/blog-post/_components/content.js.map +1 -1
- package/dist/components/blog-post/_components/faq.cjs +2 -2
- package/dist/components/blog-post/_components/faq.cjs.map +1 -1
- package/dist/components/blog-post/_components/faq.js +2 -2
- package/dist/components/blog-post/_components/faq.js.map +1 -1
- package/dist/components/blog-post/_components/table-of-contents.cjs +36 -9
- package/dist/components/blog-post/_components/table-of-contents.cjs.map +1 -1
- package/dist/components/blog-post/_components/table-of-contents.js +36 -9
- package/dist/components/blog-post/_components/table-of-contents.js.map +1 -1
- package/dist/components/blog-post/_helpers/extract-headings.cjs +2 -1
- package/dist/components/blog-post/_helpers/extract-headings.cjs.map +1 -1
- package/dist/components/blog-post/_helpers/extract-headings.d.cts +1 -0
- package/dist/components/blog-post/_helpers/extract-headings.d.ts +1 -0
- package/dist/components/blog-post/_helpers/extract-headings.js +2 -1
- package/dist/components/blog-post/_helpers/extract-headings.js.map +1 -1
- package/dist/components/blog-post/_helpers/json-ld.cjs +5 -12
- package/dist/components/blog-post/_helpers/json-ld.cjs.map +1 -1
- package/dist/components/blog-post/_helpers/json-ld.d.cts +6 -2
- package/dist/components/blog-post/_helpers/json-ld.d.ts +6 -2
- package/dist/components/blog-post/_helpers/json-ld.js +5 -12
- package/dist/components/blog-post/_helpers/json-ld.js.map +1 -1
- package/dist/components/blog-post/_helpers/reading-time.cjs +1 -1
- package/dist/components/blog-post/_helpers/reading-time.cjs.map +1 -1
- package/dist/components/blog-post/_helpers/reading-time.js +1 -1
- package/dist/components/blog-post/_helpers/reading-time.js.map +1 -1
- package/dist/components/blog-post/index.cjs +20 -17
- package/dist/components/blog-post/index.cjs.map +1 -1
- package/dist/components/blog-post/index.js +20 -17
- package/dist/components/blog-post/index.js.map +1 -1
- package/dist/components/bread-crumbs.cjs +1 -1
- package/dist/components/bread-crumbs.cjs.map +1 -1
- package/dist/components/bread-crumbs.js +1 -1
- package/dist/components/bread-crumbs.js.map +1 -1
- package/dist/components/folder-page/index.cjs +46 -11
- package/dist/components/folder-page/index.cjs.map +1 -1
- package/dist/components/folder-page/index.js +47 -12
- package/dist/components/folder-page/index.js.map +1 -1
- package/dist/components/home-page/folders.cjs +6 -9
- package/dist/components/home-page/folders.cjs.map +1 -1
- package/dist/components/home-page/folders.d.cts +4 -2
- package/dist/components/home-page/folders.d.ts +4 -2
- package/dist/components/home-page/folders.js +6 -9
- package/dist/components/home-page/folders.js.map +1 -1
- package/dist/components/home-page/index.cjs +5 -7
- package/dist/components/home-page/index.cjs.map +1 -1
- package/dist/components/home-page/index.d.cts +4 -5
- package/dist/components/home-page/index.d.ts +4 -5
- package/dist/components/home-page/index.js +5 -7
- package/dist/components/home-page/index.js.map +1 -1
- package/dist/components/home-page/pagination.cjs +23 -17
- package/dist/components/home-page/pagination.cjs.map +1 -1
- package/dist/components/home-page/pagination.d.cts +2 -3
- package/dist/components/home-page/pagination.d.ts +2 -3
- package/dist/components/home-page/pagination.js +23 -17
- package/dist/components/home-page/pagination.js.map +1 -1
- package/dist/components/home-page/top-posts.cjs +2 -19
- package/dist/components/home-page/top-posts.cjs.map +1 -1
- package/dist/components/home-page/top-posts.d.cts +4 -3
- package/dist/components/home-page/top-posts.d.ts +4 -3
- package/dist/components/home-page/top-posts.js +4 -21
- package/dist/components/home-page/top-posts.js.map +1 -1
- package/dist/components/opinly-blog.cjs +6 -6
- package/dist/components/opinly-blog.cjs.map +1 -1
- package/dist/components/opinly-blog.d.cts +4 -7
- package/dist/components/opinly-blog.d.ts +4 -7
- package/dist/components/opinly-blog.js +6 -6
- package/dist/components/opinly-blog.js.map +1 -1
- package/dist/components/post-preview.cjs +7 -6
- package/dist/components/post-preview.cjs.map +1 -1
- package/dist/components/post-preview.js +7 -6
- package/dist/components/post-preview.js.map +1 -1
- package/dist/{utils/with-opinly-config.cjs → config.cjs} +17 -9
- package/dist/config.cjs.map +1 -0
- package/dist/{utils/with-opinly-config.d.cts → config.d.cts} +3 -0
- package/dist/{utils/with-opinly-config.d.ts → config.d.ts} +3 -0
- package/dist/{utils/with-opinly-config.js → config.js} +14 -6
- package/dist/config.js.map +1 -0
- package/dist/index.cjs +1 -3
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +0 -3
- package/dist/index.d.ts +0 -3
- package/dist/index.js +0 -1
- package/dist/index.js.map +1 -1
- package/dist/pages/index.cjs +23 -0
- package/dist/pages/index.cjs.map +1 -0
- package/dist/pages/index.d.cts +3 -0
- package/dist/pages/index.d.ts +3 -0
- package/dist/pages/index.js +2 -0
- package/dist/pages/index.js.map +1 -0
- package/dist/pages/opinly-blog-pages.cjs +128 -0
- package/dist/pages/opinly-blog-pages.cjs.map +1 -0
- package/dist/pages/opinly-blog-pages.d.cts +9 -0
- package/dist/pages/opinly-blog-pages.d.ts +9 -0
- package/dist/pages/opinly-blog-pages.js +104 -0
- package/dist/pages/opinly-blog-pages.js.map +1 -0
- package/dist/utils/generate-metadata.cjs +1 -1
- package/dist/utils/generate-metadata.cjs.map +1 -1
- package/dist/utils/generate-metadata.d.cts +2 -4
- package/dist/utils/generate-metadata.d.ts +2 -4
- package/dist/utils/generate-metadata.js +1 -1
- package/dist/utils/generate-metadata.js.map +1 -1
- package/dist/utils/generate-sitemap-xml.cjs +42 -0
- package/dist/utils/generate-sitemap-xml.cjs.map +1 -0
- package/dist/utils/generate-sitemap-xml.d.cts +5 -0
- package/dist/utils/generate-sitemap-xml.d.ts +5 -0
- package/dist/utils/generate-sitemap-xml.js +18 -0
- package/dist/utils/generate-sitemap-xml.js.map +1 -0
- package/dist/utils/sdk-config.cjs +4 -2
- package/dist/utils/sdk-config.cjs.map +1 -1
- package/dist/utils/sdk-config.d.cts +2 -0
- package/dist/utils/sdk-config.d.ts +2 -0
- package/dist/utils/sdk-config.js +4 -2
- package/dist/utils/sdk-config.js.map +1 -1
- package/package.json +12 -3
- package/dist/components/not-found.cjs +0 -60
- package/dist/components/not-found.cjs.map +0 -1
- package/dist/components/not-found.d.cts +0 -5
- package/dist/components/not-found.d.ts +0 -5
- package/dist/components/not-found.js +0 -26
- package/dist/components/not-found.js.map +0 -1
- package/dist/utils/with-opinly-config.cjs.map +0 -1
- package/dist/utils/with-opinly-config.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utils/generate-metadata.ts"],"sourcesContent":["import { Opinly } from \"@opinly/backend\";\nimport type { Metadata, ResolvingMetadata } from \"next\";\nimport { opinlyConfig } from \"./sdk-config\";\n\nexport const generateOpinlyMetadata = async (\n client: Opinly,\n params:
|
|
1
|
+
{"version":3,"sources":["../../src/utils/generate-metadata.ts"],"sourcesContent":["import { Opinly, OpinlyPagePropsPromisified } from \"@opinly/backend\";\nimport type { Metadata, ResolvingMetadata } from \"next\";\nimport { opinlyConfig } from \"./sdk-config\";\n\nexport const generateOpinlyMetadata = async (\n client: Opinly,\n params: OpinlyPagePropsPromisified,\n parent: ResolvingMetadata\n): Promise<Metadata> => {\n const blog = await client.content.blog(params);\n\n if (blog.type === \"not-found\") {\n return parent as Metadata;\n }\n\n const previousImages = (await parent).openGraph?.images || [];\n\n if (blog.type === \"post\") {\n const openGraphImageKey = blog.data?.titleFile?.fileKey;\n\n const images = openGraphImageKey\n ? [`${opinlyConfig.imagesPrefix}/${openGraphImageKey}`, ...previousImages]\n : previousImages;\n\n return {\n ...(parent as Metadata),\n title: blog.data.title,\n description: blog.data.description,\n openGraph: {\n images: images,\n type: \"article\",\n authors: blog.data.author && [\n `${opinlyConfig.imagesPrefix}/authors/${blog.data.author.slug}`,\n ],\n title: blog.data.title,\n },\n // keywords: [blog.data.keywords],\n\n authors: blog.data.author && [\n {\n name: blog.data.author.name,\n url: `${opinlyConfig.imagesPrefix}/authors/${blog.data.author.slug}`,\n },\n ],\n other: {},\n };\n }\n\n return parent as Metadata;\n};\n"],"mappings":"AAEA,SAAS,oBAAoB;AAEtB,MAAM,yBAAyB,OACpC,QACA,QACA,WACsB;AACtB,QAAM,OAAO,MAAM,OAAO,QAAQ,KAAK,MAAM;AAE7C,MAAI,KAAK,SAAS,aAAa;AAC7B,WAAO;AAAA,EACT;AAEA,QAAM,kBAAkB,MAAM,QAAQ,WAAW,UAAU,CAAC;AAE5D,MAAI,KAAK,SAAS,QAAQ;AACxB,UAAM,oBAAoB,KAAK,MAAM,WAAW;AAEhD,UAAM,SAAS,oBACX,CAAC,GAAG,aAAa,YAAY,IAAI,iBAAiB,IAAI,GAAG,cAAc,IACvE;AAEJ,WAAO;AAAA,MACL,GAAI;AAAA,MACJ,OAAO,KAAK,KAAK;AAAA,MACjB,aAAa,KAAK,KAAK;AAAA,MACvB,WAAW;AAAA,QACT;AAAA,QACA,MAAM;AAAA,QACN,SAAS,KAAK,KAAK,UAAU;AAAA,UAC3B,GAAG,aAAa,YAAY,YAAY,KAAK,KAAK,OAAO,IAAI;AAAA,QAC/D;AAAA,QACA,OAAO,KAAK,KAAK;AAAA,MACnB;AAAA;AAAA,MAGA,SAAS,KAAK,KAAK,UAAU;AAAA,QAC3B;AAAA,UACE,MAAM,KAAK,KAAK,OAAO;AAAA,UACvB,KAAK,GAAG,aAAa,YAAY,YAAY,KAAK,KAAK,OAAO,IAAI;AAAA,QACpE;AAAA,MACF;AAAA,MACA,OAAO,CAAC;AAAA,IACV;AAAA,EACF;AAEA,SAAO;AACT;","names":[]}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var generate_sitemap_xml_exports = {};
|
|
20
|
+
__export(generate_sitemap_xml_exports, {
|
|
21
|
+
generateSiteMapXML: () => generateSiteMapXML
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(generate_sitemap_xml_exports);
|
|
24
|
+
function generateSiteMapXML(paths) {
|
|
25
|
+
return `<?xml version="1.0" encoding="UTF-8"?>
|
|
26
|
+
<urlset xmlns="https://www.sitemaps.org/schemas/sitemap/0.9">
|
|
27
|
+
${paths.map(({ url, lastModified }) => {
|
|
28
|
+
return `
|
|
29
|
+
<url>
|
|
30
|
+
<loc>${url}</loc>
|
|
31
|
+
<lastmod>${lastModified}</lastmod>
|
|
32
|
+
</url>
|
|
33
|
+
`;
|
|
34
|
+
}).join("")}
|
|
35
|
+
</urlset>
|
|
36
|
+
`;
|
|
37
|
+
}
|
|
38
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
39
|
+
0 && (module.exports = {
|
|
40
|
+
generateSiteMapXML
|
|
41
|
+
});
|
|
42
|
+
//# sourceMappingURL=generate-sitemap-xml.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/utils/generate-sitemap-xml.ts"],"sourcesContent":["import { Opinly } from \"@opinly/backend\";\n\nexport function generateSiteMapXML(\n paths: Awaited<ReturnType<Opinly[\"content\"][\"sitemapRecords\"]>>\n) {\n return `<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n <urlset xmlns=\"https://www.sitemaps.org/schemas/sitemap/0.9\">\n ${paths\n .map(({ url, lastModified }) => {\n return `\n <url>\n <loc>${url}</loc>\n <lastmod>${lastModified}</lastmod>\n </url>\n `;\n })\n .join(\"\")}\n </urlset>\n `;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEO,SAAS,mBACd,OACA;AACA,SAAO;AAAA;AAAA,OAEF,MACC,IAAI,CAAC,EAAE,KAAK,aAAa,MAAM;AAC9B,WAAO;AAAA;AAAA,qBAEK,GAAG;AAAA,yBACC,YAAY;AAAA;AAAA;AAAA,EAG9B,CAAC,EACA,KAAK,EAAE,CAAC;AAAA;AAAA;AAGhB;","names":[]}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
function generateSiteMapXML(paths) {
|
|
2
|
+
return `<?xml version="1.0" encoding="UTF-8"?>
|
|
3
|
+
<urlset xmlns="https://www.sitemaps.org/schemas/sitemap/0.9">
|
|
4
|
+
${paths.map(({ url, lastModified }) => {
|
|
5
|
+
return `
|
|
6
|
+
<url>
|
|
7
|
+
<loc>${url}</loc>
|
|
8
|
+
<lastmod>${lastModified}</lastmod>
|
|
9
|
+
</url>
|
|
10
|
+
`;
|
|
11
|
+
}).join("")}
|
|
12
|
+
</urlset>
|
|
13
|
+
`;
|
|
14
|
+
}
|
|
15
|
+
export {
|
|
16
|
+
generateSiteMapXML
|
|
17
|
+
};
|
|
18
|
+
//# sourceMappingURL=generate-sitemap-xml.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/utils/generate-sitemap-xml.ts"],"sourcesContent":["import { Opinly } from \"@opinly/backend\";\n\nexport function generateSiteMapXML(\n paths: Awaited<ReturnType<Opinly[\"content\"][\"sitemapRecords\"]>>\n) {\n return `<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n <urlset xmlns=\"https://www.sitemaps.org/schemas/sitemap/0.9\">\n ${paths\n .map(({ url, lastModified }) => {\n return `\n <url>\n <loc>${url}</loc>\n <lastmod>${lastModified}</lastmod>\n </url>\n `;\n })\n .join(\"\")}\n </urlset>\n `;\n}\n"],"mappings":"AAEO,SAAS,mBACd,OACA;AACA,SAAO;AAAA;AAAA,OAEF,MACC,IAAI,CAAC,EAAE,KAAK,aAAa,MAAM;AAC9B,WAAO;AAAA;AAAA,qBAEK,GAAG;AAAA,yBACC,YAAY;AAAA;AAAA;AAAA,EAG9B,CAAC,EACA,KAAK,EAAE,CAAC;AAAA;AAAA;AAGhB;","names":[]}
|
|
@@ -28,7 +28,8 @@ const opinlyEnvVars = {
|
|
|
28
28
|
OPINLY_SITE_URL: process.env.OPINLY_SITE_URL,
|
|
29
29
|
OPINLY_BLOG_PREFIX: process.env.OPINLY_BLOG_PREFIX,
|
|
30
30
|
OPINLY_SITE_NAME: process.env.OPINLY_SITE_NAME,
|
|
31
|
-
OPINLY_UNOPTIMIZED_IMAGES: process.env.OPINLY_UNOPTIMIZED_IMAGES
|
|
31
|
+
OPINLY_UNOPTIMIZED_IMAGES: process.env.OPINLY_UNOPTIMIZED_IMAGES,
|
|
32
|
+
OPINLY_PAGES_ROUTER: process.env.OPINLY_PAGES_ROUTER
|
|
32
33
|
};
|
|
33
34
|
let opinlyConfig = {
|
|
34
35
|
cdnUrl: process.env.OPINLY_CDN_URL || "https://cdn.opinly.ai",
|
|
@@ -38,7 +39,8 @@ let opinlyConfig = {
|
|
|
38
39
|
blogPrefix: process.env.OPINLY_BLOG_PREFIX,
|
|
39
40
|
blogUrl: `${process.env.OPINLY_SITE_URL}${process.env.OPINLY_BLOG_PREFIX}`,
|
|
40
41
|
siteName: process.env.OPINLY_SITE_NAME,
|
|
41
|
-
unoptimizedImages: process.env.OPINLY_UNOPTIMIZED_IMAGES === "true" ? true : void 0
|
|
42
|
+
unoptimizedImages: process.env.OPINLY_UNOPTIMIZED_IMAGES === "true" ? true : void 0,
|
|
43
|
+
pagesRouter: process.env.OPINLY_PAGES_ROUTER === "true" ? true : false
|
|
42
44
|
};
|
|
43
45
|
function setOpinlyConfig(newConfig) {
|
|
44
46
|
opinlyConfig = { ...opinlyConfig, ...newConfig };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utils/sdk-config.ts"],"sourcesContent":["const siteUrl = process.env.OPINLY_SITE_URL;\n\nconst opinlyEnvVars = {\n OPINLY_IMAGES_PREFIX: process.env.OPINLY_IMAGES_PREFIX as string,\n OPINLY_SITE_URL: process.env.OPINLY_SITE_URL as string,\n OPINLY_BLOG_PREFIX: process.env.OPINLY_BLOG_PREFIX as string,\n OPINLY_SITE_NAME: process.env.OPINLY_SITE_NAME as string,\n OPINLY_UNOPTIMIZED_IMAGES: process.env.OPINLY_UNOPTIMIZED_IMAGES as\n | string\n | undefined,\n};\n\nexport type OpinlyEnvVars = typeof opinlyEnvVars;\n\nexport let opinlyConfig: {\n cdnUrl: string;\n imagesPrefix: string;\n imagesUrl: string;\n siteUrl: string;\n blogPrefix: string;\n blogUrl: string;\n siteName: string;\n unoptimizedImages?: boolean;\n} = {\n cdnUrl: process.env.OPINLY_CDN_URL || \"https://cdn.opinly.ai\",\n siteUrl: process.env.OPINLY_SITE_URL as string,\n imagesPrefix: process.env.OPINLY_IMAGES_PREFIX as string,\n imagesUrl: `${process.env.OPINLY_SITE_URL as string}${process.env.OPINLY_IMAGES_PREFIX as string}`,\n blogPrefix: process.env.OPINLY_BLOG_PREFIX as string,\n blogUrl: `${process.env.OPINLY_SITE_URL as string}${process.env.OPINLY_BLOG_PREFIX as string}`,\n siteName: process.env.OPINLY_SITE_NAME as string,\n unoptimizedImages:\n process.env.OPINLY_UNOPTIMIZED_IMAGES === \"true\" ? true : undefined,\n};\n\nexport function setOpinlyConfig(newConfig: typeof opinlyConfig) {\n opinlyConfig = { ...opinlyConfig, ...newConfig };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAAM,UAAU,QAAQ,IAAI;AAE5B,MAAM,gBAAgB;AAAA,EACpB,sBAAsB,QAAQ,IAAI;AAAA,EAClC,iBAAiB,QAAQ,IAAI;AAAA,EAC7B,oBAAoB,QAAQ,IAAI;AAAA,EAChC,kBAAkB,QAAQ,IAAI;AAAA,EAC9B,2BAA2B,QAAQ,IAAI;
|
|
1
|
+
{"version":3,"sources":["../../src/utils/sdk-config.ts"],"sourcesContent":["const siteUrl = process.env.OPINLY_SITE_URL;\n\nconst opinlyEnvVars = {\n OPINLY_IMAGES_PREFIX: process.env.OPINLY_IMAGES_PREFIX as string,\n OPINLY_SITE_URL: process.env.OPINLY_SITE_URL as string,\n OPINLY_BLOG_PREFIX: process.env.OPINLY_BLOG_PREFIX as string,\n OPINLY_SITE_NAME: process.env.OPINLY_SITE_NAME as string,\n OPINLY_UNOPTIMIZED_IMAGES: process.env.OPINLY_UNOPTIMIZED_IMAGES as\n | string\n | undefined,\n OPINLY_PAGES_ROUTER: process.env.OPINLY_PAGES_ROUTER,\n};\n\nexport type OpinlyEnvVars = typeof opinlyEnvVars;\n\nexport let opinlyConfig: {\n cdnUrl: string;\n imagesPrefix: string;\n imagesUrl: string;\n siteUrl: string;\n blogPrefix: string;\n blogUrl: string;\n siteName: string;\n unoptimizedImages?: boolean;\n pagesRouter: boolean;\n} = {\n cdnUrl: process.env.OPINLY_CDN_URL || \"https://cdn.opinly.ai\",\n siteUrl: process.env.OPINLY_SITE_URL as string,\n imagesPrefix: process.env.OPINLY_IMAGES_PREFIX as string,\n imagesUrl: `${process.env.OPINLY_SITE_URL as string}${\n process.env.OPINLY_IMAGES_PREFIX as string\n }`,\n blogPrefix: process.env.OPINLY_BLOG_PREFIX as string,\n blogUrl: `${process.env.OPINLY_SITE_URL as string}${\n process.env.OPINLY_BLOG_PREFIX as string\n }`,\n siteName: process.env.OPINLY_SITE_NAME as string,\n unoptimizedImages:\n process.env.OPINLY_UNOPTIMIZED_IMAGES === \"true\" ? true : undefined,\n pagesRouter: process.env.OPINLY_PAGES_ROUTER === \"true\" ? true : false,\n};\n\nexport function setOpinlyConfig(newConfig: typeof opinlyConfig) {\n opinlyConfig = { ...opinlyConfig, ...newConfig };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAAM,UAAU,QAAQ,IAAI;AAE5B,MAAM,gBAAgB;AAAA,EACpB,sBAAsB,QAAQ,IAAI;AAAA,EAClC,iBAAiB,QAAQ,IAAI;AAAA,EAC7B,oBAAoB,QAAQ,IAAI;AAAA,EAChC,kBAAkB,QAAQ,IAAI;AAAA,EAC9B,2BAA2B,QAAQ,IAAI;AAAA,EAGvC,qBAAqB,QAAQ,IAAI;AACnC;AAIO,IAAI,eAUP;AAAA,EACF,QAAQ,QAAQ,IAAI,kBAAkB;AAAA,EACtC,SAAS,QAAQ,IAAI;AAAA,EACrB,cAAc,QAAQ,IAAI;AAAA,EAC1B,WAAW,GAAG,QAAQ,IAAI,eAAyB,GACjD,QAAQ,IAAI,oBACd;AAAA,EACA,YAAY,QAAQ,IAAI;AAAA,EACxB,SAAS,GAAG,QAAQ,IAAI,eAAyB,GAC/C,QAAQ,IAAI,kBACd;AAAA,EACA,UAAU,QAAQ,IAAI;AAAA,EACtB,mBACE,QAAQ,IAAI,8BAA8B,SAAS,OAAO;AAAA,EAC5D,aAAa,QAAQ,IAAI,wBAAwB,SAAS,OAAO;AACnE;AAEO,SAAS,gBAAgB,WAAgC;AAC9D,iBAAe,EAAE,GAAG,cAAc,GAAG,UAAU;AACjD;","names":[]}
|
|
@@ -4,6 +4,7 @@ declare const opinlyEnvVars: {
|
|
|
4
4
|
OPINLY_BLOG_PREFIX: string;
|
|
5
5
|
OPINLY_SITE_NAME: string;
|
|
6
6
|
OPINLY_UNOPTIMIZED_IMAGES: string | undefined;
|
|
7
|
+
OPINLY_PAGES_ROUTER: string | undefined;
|
|
7
8
|
};
|
|
8
9
|
type OpinlyEnvVars = typeof opinlyEnvVars;
|
|
9
10
|
declare let opinlyConfig: {
|
|
@@ -15,6 +16,7 @@ declare let opinlyConfig: {
|
|
|
15
16
|
blogUrl: string;
|
|
16
17
|
siteName: string;
|
|
17
18
|
unoptimizedImages?: boolean;
|
|
19
|
+
pagesRouter: boolean;
|
|
18
20
|
};
|
|
19
21
|
declare function setOpinlyConfig(newConfig: typeof opinlyConfig): void;
|
|
20
22
|
|
|
@@ -4,6 +4,7 @@ declare const opinlyEnvVars: {
|
|
|
4
4
|
OPINLY_BLOG_PREFIX: string;
|
|
5
5
|
OPINLY_SITE_NAME: string;
|
|
6
6
|
OPINLY_UNOPTIMIZED_IMAGES: string | undefined;
|
|
7
|
+
OPINLY_PAGES_ROUTER: string | undefined;
|
|
7
8
|
};
|
|
8
9
|
type OpinlyEnvVars = typeof opinlyEnvVars;
|
|
9
10
|
declare let opinlyConfig: {
|
|
@@ -15,6 +16,7 @@ declare let opinlyConfig: {
|
|
|
15
16
|
blogUrl: string;
|
|
16
17
|
siteName: string;
|
|
17
18
|
unoptimizedImages?: boolean;
|
|
19
|
+
pagesRouter: boolean;
|
|
18
20
|
};
|
|
19
21
|
declare function setOpinlyConfig(newConfig: typeof opinlyConfig): void;
|
|
20
22
|
|
package/dist/utils/sdk-config.js
CHANGED
|
@@ -4,7 +4,8 @@ const opinlyEnvVars = {
|
|
|
4
4
|
OPINLY_SITE_URL: process.env.OPINLY_SITE_URL,
|
|
5
5
|
OPINLY_BLOG_PREFIX: process.env.OPINLY_BLOG_PREFIX,
|
|
6
6
|
OPINLY_SITE_NAME: process.env.OPINLY_SITE_NAME,
|
|
7
|
-
OPINLY_UNOPTIMIZED_IMAGES: process.env.OPINLY_UNOPTIMIZED_IMAGES
|
|
7
|
+
OPINLY_UNOPTIMIZED_IMAGES: process.env.OPINLY_UNOPTIMIZED_IMAGES,
|
|
8
|
+
OPINLY_PAGES_ROUTER: process.env.OPINLY_PAGES_ROUTER
|
|
8
9
|
};
|
|
9
10
|
let opinlyConfig = {
|
|
10
11
|
cdnUrl: process.env.OPINLY_CDN_URL || "https://cdn.opinly.ai",
|
|
@@ -14,7 +15,8 @@ let opinlyConfig = {
|
|
|
14
15
|
blogPrefix: process.env.OPINLY_BLOG_PREFIX,
|
|
15
16
|
blogUrl: `${process.env.OPINLY_SITE_URL}${process.env.OPINLY_BLOG_PREFIX}`,
|
|
16
17
|
siteName: process.env.OPINLY_SITE_NAME,
|
|
17
|
-
unoptimizedImages: process.env.OPINLY_UNOPTIMIZED_IMAGES === "true" ? true : void 0
|
|
18
|
+
unoptimizedImages: process.env.OPINLY_UNOPTIMIZED_IMAGES === "true" ? true : void 0,
|
|
19
|
+
pagesRouter: process.env.OPINLY_PAGES_ROUTER === "true" ? true : false
|
|
18
20
|
};
|
|
19
21
|
function setOpinlyConfig(newConfig) {
|
|
20
22
|
opinlyConfig = { ...opinlyConfig, ...newConfig };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utils/sdk-config.ts"],"sourcesContent":["const siteUrl = process.env.OPINLY_SITE_URL;\n\nconst opinlyEnvVars = {\n OPINLY_IMAGES_PREFIX: process.env.OPINLY_IMAGES_PREFIX as string,\n OPINLY_SITE_URL: process.env.OPINLY_SITE_URL as string,\n OPINLY_BLOG_PREFIX: process.env.OPINLY_BLOG_PREFIX as string,\n OPINLY_SITE_NAME: process.env.OPINLY_SITE_NAME as string,\n OPINLY_UNOPTIMIZED_IMAGES: process.env.OPINLY_UNOPTIMIZED_IMAGES as\n | string\n | undefined,\n};\n\nexport type OpinlyEnvVars = typeof opinlyEnvVars;\n\nexport let opinlyConfig: {\n cdnUrl: string;\n imagesPrefix: string;\n imagesUrl: string;\n siteUrl: string;\n blogPrefix: string;\n blogUrl: string;\n siteName: string;\n unoptimizedImages?: boolean;\n} = {\n cdnUrl: process.env.OPINLY_CDN_URL || \"https://cdn.opinly.ai\",\n siteUrl: process.env.OPINLY_SITE_URL as string,\n imagesPrefix: process.env.OPINLY_IMAGES_PREFIX as string,\n imagesUrl: `${process.env.OPINLY_SITE_URL as string}${process.env.OPINLY_IMAGES_PREFIX as string}`,\n blogPrefix: process.env.OPINLY_BLOG_PREFIX as string,\n blogUrl: `${process.env.OPINLY_SITE_URL as string}${process.env.OPINLY_BLOG_PREFIX as string}`,\n siteName: process.env.OPINLY_SITE_NAME as string,\n unoptimizedImages:\n process.env.OPINLY_UNOPTIMIZED_IMAGES === \"true\" ? true : undefined,\n};\n\nexport function setOpinlyConfig(newConfig: typeof opinlyConfig) {\n opinlyConfig = { ...opinlyConfig, ...newConfig };\n}\n"],"mappings":"AAAA,MAAM,UAAU,QAAQ,IAAI;AAE5B,MAAM,gBAAgB;AAAA,EACpB,sBAAsB,QAAQ,IAAI;AAAA,EAClC,iBAAiB,QAAQ,IAAI;AAAA,EAC7B,oBAAoB,QAAQ,IAAI;AAAA,EAChC,kBAAkB,QAAQ,IAAI;AAAA,EAC9B,2BAA2B,QAAQ,IAAI;
|
|
1
|
+
{"version":3,"sources":["../../src/utils/sdk-config.ts"],"sourcesContent":["const siteUrl = process.env.OPINLY_SITE_URL;\n\nconst opinlyEnvVars = {\n OPINLY_IMAGES_PREFIX: process.env.OPINLY_IMAGES_PREFIX as string,\n OPINLY_SITE_URL: process.env.OPINLY_SITE_URL as string,\n OPINLY_BLOG_PREFIX: process.env.OPINLY_BLOG_PREFIX as string,\n OPINLY_SITE_NAME: process.env.OPINLY_SITE_NAME as string,\n OPINLY_UNOPTIMIZED_IMAGES: process.env.OPINLY_UNOPTIMIZED_IMAGES as\n | string\n | undefined,\n OPINLY_PAGES_ROUTER: process.env.OPINLY_PAGES_ROUTER,\n};\n\nexport type OpinlyEnvVars = typeof opinlyEnvVars;\n\nexport let opinlyConfig: {\n cdnUrl: string;\n imagesPrefix: string;\n imagesUrl: string;\n siteUrl: string;\n blogPrefix: string;\n blogUrl: string;\n siteName: string;\n unoptimizedImages?: boolean;\n pagesRouter: boolean;\n} = {\n cdnUrl: process.env.OPINLY_CDN_URL || \"https://cdn.opinly.ai\",\n siteUrl: process.env.OPINLY_SITE_URL as string,\n imagesPrefix: process.env.OPINLY_IMAGES_PREFIX as string,\n imagesUrl: `${process.env.OPINLY_SITE_URL as string}${\n process.env.OPINLY_IMAGES_PREFIX as string\n }`,\n blogPrefix: process.env.OPINLY_BLOG_PREFIX as string,\n blogUrl: `${process.env.OPINLY_SITE_URL as string}${\n process.env.OPINLY_BLOG_PREFIX as string\n }`,\n siteName: process.env.OPINLY_SITE_NAME as string,\n unoptimizedImages:\n process.env.OPINLY_UNOPTIMIZED_IMAGES === \"true\" ? true : undefined,\n pagesRouter: process.env.OPINLY_PAGES_ROUTER === \"true\" ? true : false,\n};\n\nexport function setOpinlyConfig(newConfig: typeof opinlyConfig) {\n opinlyConfig = { ...opinlyConfig, ...newConfig };\n}\n"],"mappings":"AAAA,MAAM,UAAU,QAAQ,IAAI;AAE5B,MAAM,gBAAgB;AAAA,EACpB,sBAAsB,QAAQ,IAAI;AAAA,EAClC,iBAAiB,QAAQ,IAAI;AAAA,EAC7B,oBAAoB,QAAQ,IAAI;AAAA,EAChC,kBAAkB,QAAQ,IAAI;AAAA,EAC9B,2BAA2B,QAAQ,IAAI;AAAA,EAGvC,qBAAqB,QAAQ,IAAI;AACnC;AAIO,IAAI,eAUP;AAAA,EACF,QAAQ,QAAQ,IAAI,kBAAkB;AAAA,EACtC,SAAS,QAAQ,IAAI;AAAA,EACrB,cAAc,QAAQ,IAAI;AAAA,EAC1B,WAAW,GAAG,QAAQ,IAAI,eAAyB,GACjD,QAAQ,IAAI,oBACd;AAAA,EACA,YAAY,QAAQ,IAAI;AAAA,EACxB,SAAS,GAAG,QAAQ,IAAI,eAAyB,GAC/C,QAAQ,IAAI,kBACd;AAAA,EACA,UAAU,QAAQ,IAAI;AAAA,EACtB,mBACE,QAAQ,IAAI,8BAA8B,SAAS,OAAO;AAAA,EAC5D,aAAa,QAAQ,IAAI,wBAAwB,SAAS,OAAO;AACnE;AAEO,SAAS,gBAAgB,WAAgC;AAC9D,iBAAe,EAAE,GAAG,cAAc,GAAG,UAAU;AACjD;","names":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@opinly/next",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.18",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"private": false,
|
|
6
6
|
"main": "dist/index.cjs",
|
|
@@ -20,17 +20,18 @@
|
|
|
20
20
|
"postcss": "^8.0.0",
|
|
21
21
|
"react": "^19.0.0 || ^18.0.0",
|
|
22
22
|
"react-dom": "^19.0.0 || ^18.0.0",
|
|
23
|
-
"tailwindcss": "^
|
|
23
|
+
"tailwindcss": "^4.0.0"
|
|
24
24
|
},
|
|
25
25
|
"dependencies": {
|
|
26
26
|
"@tiptap/core": "^2.12.0",
|
|
27
27
|
"clsx": "^2.1.1",
|
|
28
28
|
"lucide-react": "^0.286.0",
|
|
29
|
+
"next-seo": "^6.8.0",
|
|
29
30
|
"react-syntax-highlighter": "^15.6.1",
|
|
30
31
|
"schema-dts": "^1.1.5",
|
|
31
32
|
"tailwind-merge": "^1.14.0",
|
|
32
33
|
"zod": "^3.25.67",
|
|
33
|
-
"@opinly/backend": "0.1.
|
|
34
|
+
"@opinly/backend": "0.1.18"
|
|
34
35
|
},
|
|
35
36
|
"engines": {
|
|
36
37
|
"node": ">=16"
|
|
@@ -47,6 +48,14 @@
|
|
|
47
48
|
"import": "./dist/index.js",
|
|
48
49
|
"require": "./dist/index.cjs"
|
|
49
50
|
},
|
|
51
|
+
"./pages": {
|
|
52
|
+
"import": "./dist/pages/index.js",
|
|
53
|
+
"require": "./dist/pages/index.cjs"
|
|
54
|
+
},
|
|
55
|
+
"./config": {
|
|
56
|
+
"import": "./dist/config.js",
|
|
57
|
+
"require": "./dist/config.cjs"
|
|
58
|
+
},
|
|
50
59
|
"./components/*": {
|
|
51
60
|
"import": "./dist/components/*.js",
|
|
52
61
|
"require": "./dist/components/*.cjs"
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __create = Object.create;
|
|
3
|
-
var __defProp = Object.defineProperty;
|
|
4
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
-
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
-
var __export = (target, all) => {
|
|
9
|
-
for (var name in all)
|
|
10
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
-
};
|
|
12
|
-
var __copyProps = (to, from, except, desc) => {
|
|
13
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
-
for (let key of __getOwnPropNames(from))
|
|
15
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
-
}
|
|
18
|
-
return to;
|
|
19
|
-
};
|
|
20
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
-
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
-
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
-
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
-
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
-
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
-
mod
|
|
27
|
-
));
|
|
28
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
-
var not_found_exports = {};
|
|
30
|
-
__export(not_found_exports, {
|
|
31
|
-
OpinlyNotFound: () => OpinlyNotFound
|
|
32
|
-
});
|
|
33
|
-
module.exports = __toCommonJS(not_found_exports);
|
|
34
|
-
var import_jsx_runtime = require("react/jsx-runtime");
|
|
35
|
-
var import_link = __toESM(require("next/link"), 1);
|
|
36
|
-
const OpinlyNotFound = () => {
|
|
37
|
-
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
|
|
38
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "bg-orange-600 py-10", children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "max-w-7xl mx-auto px-4", children: [
|
|
39
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("h1", { className: "text-4xl font-bold mb-2 leading-tight text-white", children: "Post Not Found" }),
|
|
40
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "text-sm mb-4 text-orange-100", children: "The post you're looking for doesn't exist or has been removed." })
|
|
41
|
-
] }) }),
|
|
42
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "flex max-w-7xl mx-auto mt-10 gap-12", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("article", { className: "w-2/3", children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "prose max-w-none", children: [
|
|
43
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { className: "text-gray-600", children: "You can try:" }),
|
|
44
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("ul", { className: "list-disc pl-6 my-4", children: [
|
|
45
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("li", { children: "Checking the URL for typos" }),
|
|
46
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("li", { children: [
|
|
47
|
-
"Returning to the",
|
|
48
|
-
" ",
|
|
49
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_link.default, { href: "/blog", className: "text-blue-600 underline", children: "blog homepage" })
|
|
50
|
-
] }),
|
|
51
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("li", { children: "Using the search function to find what you're looking for" })
|
|
52
|
-
] })
|
|
53
|
-
] }) }) })
|
|
54
|
-
] });
|
|
55
|
-
};
|
|
56
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
57
|
-
0 && (module.exports = {
|
|
58
|
-
OpinlyNotFound
|
|
59
|
-
});
|
|
60
|
-
//# sourceMappingURL=not-found.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/components/not-found.tsx"],"sourcesContent":["import Link from \"next/link\";\n\nexport const OpinlyNotFound = () => {\n return (\n <>\n <div className=\"bg-orange-600 py-10\">\n <div className=\"max-w-7xl mx-auto px-4\">\n <h1 className=\"text-4xl font-bold mb-2 leading-tight text-white\">\n Post Not Found\n </h1>\n <div className=\"text-sm mb-4 text-orange-100\">\n The post you're looking for doesn't exist or has been removed.\n </div>\n </div>\n </div>\n\n <div className=\"flex max-w-7xl mx-auto mt-10 gap-12\">\n <article className=\"w-2/3\">\n <div className=\"prose max-w-none\">\n <p className=\"text-gray-600\">You can try:</p>\n <ul className=\"list-disc pl-6 my-4\">\n <li>Checking the URL for typos</li>\n <li>\n Returning to the{\" \"}\n <Link href=\"/blog\" className=\"text-blue-600 underline\">\n blog homepage\n </Link>\n </li>\n <li>Using the search function to find what you're looking for</li>\n </ul>\n </div>\n </article>\n </div>\n </>\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAII;AAJJ,kBAAiB;AAEV,MAAM,iBAAiB,MAAM;AAClC,SACE,4EACE;AAAA,gDAAC,SAAI,WAAU,uBACb,uDAAC,SAAI,WAAU,0BACb;AAAA,kDAAC,QAAG,WAAU,oDAAmD,4BAEjE;AAAA,MACA,4CAAC,SAAI,WAAU,gCAA+B,4EAE9C;AAAA,OACF,GACF;AAAA,IAEA,4CAAC,SAAI,WAAU,uCACb,sDAAC,aAAQ,WAAU,SACjB,uDAAC,SAAI,WAAU,oBACb;AAAA,kDAAC,OAAE,WAAU,iBAAgB,0BAAY;AAAA,MACzC,6CAAC,QAAG,WAAU,uBACZ;AAAA,oDAAC,QAAG,wCAA0B;AAAA,QAC9B,6CAAC,QAAG;AAAA;AAAA,UACe;AAAA,UACjB,4CAAC,YAAAA,SAAA,EAAK,MAAK,SAAQ,WAAU,2BAA0B,2BAEvD;AAAA,WACF;AAAA,QACA,4CAAC,QAAG,uEAAyD;AAAA,SAC/D;AAAA,OACF,GACF,GACF;AAAA,KACF;AAEJ;","names":["Link"]}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
-
import Link from "next/link";
|
|
3
|
-
const OpinlyNotFound = () => {
|
|
4
|
-
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
5
|
-
/* @__PURE__ */ jsx("div", { className: "bg-orange-600 py-10", children: /* @__PURE__ */ jsxs("div", { className: "max-w-7xl mx-auto px-4", children: [
|
|
6
|
-
/* @__PURE__ */ jsx("h1", { className: "text-4xl font-bold mb-2 leading-tight text-white", children: "Post Not Found" }),
|
|
7
|
-
/* @__PURE__ */ jsx("div", { className: "text-sm mb-4 text-orange-100", children: "The post you're looking for doesn't exist or has been removed." })
|
|
8
|
-
] }) }),
|
|
9
|
-
/* @__PURE__ */ jsx("div", { className: "flex max-w-7xl mx-auto mt-10 gap-12", children: /* @__PURE__ */ jsx("article", { className: "w-2/3", children: /* @__PURE__ */ jsxs("div", { className: "prose max-w-none", children: [
|
|
10
|
-
/* @__PURE__ */ jsx("p", { className: "text-gray-600", children: "You can try:" }),
|
|
11
|
-
/* @__PURE__ */ jsxs("ul", { className: "list-disc pl-6 my-4", children: [
|
|
12
|
-
/* @__PURE__ */ jsx("li", { children: "Checking the URL for typos" }),
|
|
13
|
-
/* @__PURE__ */ jsxs("li", { children: [
|
|
14
|
-
"Returning to the",
|
|
15
|
-
" ",
|
|
16
|
-
/* @__PURE__ */ jsx(Link, { href: "/blog", className: "text-blue-600 underline", children: "blog homepage" })
|
|
17
|
-
] }),
|
|
18
|
-
/* @__PURE__ */ jsx("li", { children: "Using the search function to find what you're looking for" })
|
|
19
|
-
] })
|
|
20
|
-
] }) }) })
|
|
21
|
-
] });
|
|
22
|
-
};
|
|
23
|
-
export {
|
|
24
|
-
OpinlyNotFound
|
|
25
|
-
};
|
|
26
|
-
//# sourceMappingURL=not-found.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/components/not-found.tsx"],"sourcesContent":["import Link from \"next/link\";\n\nexport const OpinlyNotFound = () => {\n return (\n <>\n <div className=\"bg-orange-600 py-10\">\n <div className=\"max-w-7xl mx-auto px-4\">\n <h1 className=\"text-4xl font-bold mb-2 leading-tight text-white\">\n Post Not Found\n </h1>\n <div className=\"text-sm mb-4 text-orange-100\">\n The post you're looking for doesn't exist or has been removed.\n </div>\n </div>\n </div>\n\n <div className=\"flex max-w-7xl mx-auto mt-10 gap-12\">\n <article className=\"w-2/3\">\n <div className=\"prose max-w-none\">\n <p className=\"text-gray-600\">You can try:</p>\n <ul className=\"list-disc pl-6 my-4\">\n <li>Checking the URL for typos</li>\n <li>\n Returning to the{\" \"}\n <Link href=\"/blog\" className=\"text-blue-600 underline\">\n blog homepage\n </Link>\n </li>\n <li>Using the search function to find what you're looking for</li>\n </ul>\n </div>\n </article>\n </div>\n </>\n );\n};\n"],"mappings":"AAII,mBAGM,KADF,YAFJ;AAJJ,OAAO,UAAU;AAEV,MAAM,iBAAiB,MAAM;AAClC,SACE,iCACE;AAAA,wBAAC,SAAI,WAAU,uBACb,+BAAC,SAAI,WAAU,0BACb;AAAA,0BAAC,QAAG,WAAU,oDAAmD,4BAEjE;AAAA,MACA,oBAAC,SAAI,WAAU,gCAA+B,4EAE9C;AAAA,OACF,GACF;AAAA,IAEA,oBAAC,SAAI,WAAU,uCACb,8BAAC,aAAQ,WAAU,SACjB,+BAAC,SAAI,WAAU,oBACb;AAAA,0BAAC,OAAE,WAAU,iBAAgB,0BAAY;AAAA,MACzC,qBAAC,QAAG,WAAU,uBACZ;AAAA,4BAAC,QAAG,wCAA0B;AAAA,QAC9B,qBAAC,QAAG;AAAA;AAAA,UACe;AAAA,UACjB,oBAAC,QAAK,MAAK,SAAQ,WAAU,2BAA0B,2BAEvD;AAAA,WACF;AAAA,QACA,oBAAC,QAAG,uEAAyD;AAAA,SAC/D;AAAA,OACF,GACF,GACF;AAAA,KACF;AAEJ;","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utils/with-opinly-config.ts"],"sourcesContent":["import { NextConfig } from \"next\";\nimport { Rewrite } from \"next/dist/lib/load-custom-routes\";\nimport type { OpinlyEnvVars } from \"./sdk-config\";\nimport { z } from \"zod\";\n\ninterface WithOpinlyOptions {\n imagesPath: `/${string}`;\n blogPath: `/${string}`;\n companyName: string;\n cdnNamespace: string;\n siteUrl: string;\n unoptimizedImages?: boolean;\n}\n\ntype ResolvedRewrites = ReturnType<\n NonNullable<Awaited<NextConfig[\"rewrites\"]>>\n>;\n\nconst opinlyOptionsSchema = z.object({\n imagesPath: z\n .string({})\n .refine(\n (val) => val.startsWith(\"/\") || z.string().url().safeParse(val).success,\n {\n message: \"imagesPath must start with a leading slash (e.g. '/images')\",\n }\n ),\n blogPath: z.string({}).startsWith(\"/\", {\n message: \"blogPath must start with a leading slash i.e. `/blog`\",\n }),\n companyName: z.string({\n required_error: \"companyName is required\",\n invalid_type_error: \"companyName must be a string\",\n }),\n cdnNamespace: z\n .string()\n .min(21, \"CDN namespace must be 21 characters long\")\n .max(21, \"CDN namespace must be 21 characters long\"),\n siteUrl: z.string().url({\n message: \"siteUrl must be a valid URL\",\n }),\n unoptimizedImages: z.boolean().optional(),\n cdnDomain: z\n .string({\n description:\n \"INTERNAL USE ONLY: The domain of the CDN. If not provided, the default domain will be used.\",\n })\n .url({\n message: \"cdnDomain must be a valid URL\",\n })\n .optional(),\n});\n\ntype OpinlyOptions = z.infer<typeof opinlyOptionsSchema>;\n\nconst validateOpinlyOptions = (opinlyOptions: OpinlyOptions) => {\n if (!opinlyOptions) {\n throw new Error(\n \"[@opinly/next] `opts` is required. Please provide the options object.\"\n );\n }\n\n const parsedOpinlyOptions = opinlyOptionsSchema.safeParse(opinlyOptions);\n\n if (!parsedOpinlyOptions.success) {\n throw new Error(\n `[@opinly/next] Invalid options provided in next.config.js: ${parsedOpinlyOptions.error.message}`\n );\n }\n};\n\nconst processRewrites = (\n userNextConfig: NextConfig,\n opinlyOptions: OpinlyOptions\n): void => {\n const imagesPath = opinlyOptions.imagesPath;\n\n if (!imagesPath.startsWith(\"/\")) {\n console.warn(\n `[@opinly/next] You have provided a url for imagesPath. This is only valid for internal testing and rewrites will be skipped.`\n );\n\n return;\n }\n\n const originalRewrites = userNextConfig.rewrites;\n\n userNextConfig.rewrites = async () => {\n const opinlyRewrite = {\n source: `${opinlyOptions.imagesPath}/:path*`,\n destination: `${opinlyOptions.cdnDomain || \"https://cdn.opinly.ai\"}/${opinlyOptions.cdnNamespace}/:path*`,\n };\n\n console.log(\"opinlyRewrite\", opinlyRewrite);\n\n if (typeof originalRewrites !== \"function\") {\n return [opinlyRewrite];\n }\n\n const resolvedRewrites = await originalRewrites();\n\n if (Array.isArray(resolvedRewrites)) {\n return [...resolvedRewrites, opinlyRewrite];\n } else {\n return {\n ...resolvedRewrites,\n beforeFiles: [...(resolvedRewrites.beforeFiles || []), opinlyRewrite],\n };\n }\n };\n};\n\nfunction addEnvVars(userNextConfig: NextConfig, opinlyOptions: OpinlyOptions) {\n const opinlyEnvVars: OpinlyEnvVars = {\n OPINLY_IMAGES_PREFIX: opinlyOptions.imagesPath,\n OPINLY_BLOG_PREFIX: opinlyOptions.blogPath,\n OPINLY_SITE_NAME: opinlyOptions.companyName,\n OPINLY_SITE_URL: opinlyOptions.siteUrl,\n OPINLY_UNOPTIMIZED_IMAGES: opinlyOptions.unoptimizedImages\n ? \"true\"\n : undefined,\n };\n\n userNextConfig.env = {\n ...(userNextConfig.env || {}),\n ...opinlyEnvVars,\n };\n}\n\n/**\n * Modifies the passed in Next.js configuration with image rewrites and environment variables.\n *\n * @param nextConfig A Next.js configuration object, as usually exported in `next.config.js` or `next.config.mjs`.\n * @param opinlyOptions Additional options to configure Opinly.\n * @returns The modified config to be exported\n */\nexport const withOpinlyConfig =\n (opinlyOptions: OpinlyOptions) =>\n (nextConfig: NextConfig): NextConfig => {\n validateOpinlyOptions(opinlyOptions);\n\n addEnvVars(nextConfig, opinlyOptions);\n\n processRewrites(nextConfig, opinlyOptions);\n\n return nextConfig;\n };\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,iBAAkB;AAelB,MAAM,sBAAsB,aAAE,OAAO;AAAA,EACnC,YAAY,aACT,OAAO,CAAC,CAAC,EACT;AAAA,IACC,CAAC,QAAQ,IAAI,WAAW,GAAG,KAAK,aAAE,OAAO,EAAE,IAAI,EAAE,UAAU,GAAG,EAAE;AAAA,IAChE;AAAA,MACE,SAAS;AAAA,IACX;AAAA,EACF;AAAA,EACF,UAAU,aAAE,OAAO,CAAC,CAAC,EAAE,WAAW,KAAK;AAAA,IACrC,SAAS;AAAA,EACX,CAAC;AAAA,EACD,aAAa,aAAE,OAAO;AAAA,IACpB,gBAAgB;AAAA,IAChB,oBAAoB;AAAA,EACtB,CAAC;AAAA,EACD,cAAc,aACX,OAAO,EACP,IAAI,IAAI,0CAA0C,EAClD,IAAI,IAAI,0CAA0C;AAAA,EACrD,SAAS,aAAE,OAAO,EAAE,IAAI;AAAA,IACtB,SAAS;AAAA,EACX,CAAC;AAAA,EACD,mBAAmB,aAAE,QAAQ,EAAE,SAAS;AAAA,EACxC,WAAW,aACR,OAAO;AAAA,IACN,aACE;AAAA,EACJ,CAAC,EACA,IAAI;AAAA,IACH,SAAS;AAAA,EACX,CAAC,EACA,SAAS;AACd,CAAC;AAID,MAAM,wBAAwB,CAAC,kBAAiC;AAC9D,MAAI,CAAC,eAAe;AAClB,UAAM,IAAI;AAAA,MACR;AAAA,IACF;AAAA,EACF;AAEA,QAAM,sBAAsB,oBAAoB,UAAU,aAAa;AAEvE,MAAI,CAAC,oBAAoB,SAAS;AAChC,UAAM,IAAI;AAAA,MACR,8DAA8D,oBAAoB,MAAM,OAAO;AAAA,IACjG;AAAA,EACF;AACF;AAEA,MAAM,kBAAkB,CACtB,gBACA,kBACS;AACT,QAAM,aAAa,cAAc;AAEjC,MAAI,CAAC,WAAW,WAAW,GAAG,GAAG;AAC/B,YAAQ;AAAA,MACN;AAAA,IACF;AAEA;AAAA,EACF;AAEA,QAAM,mBAAmB,eAAe;AAExC,iBAAe,WAAW,YAAY;AACpC,UAAM,gBAAgB;AAAA,MACpB,QAAQ,GAAG,cAAc,UAAU;AAAA,MACnC,aAAa,GAAG,cAAc,aAAa,uBAAuB,IAAI,cAAc,YAAY;AAAA,IAClG;AAEA,YAAQ,IAAI,iBAAiB,aAAa;AAE1C,QAAI,OAAO,qBAAqB,YAAY;AAC1C,aAAO,CAAC,aAAa;AAAA,IACvB;AAEA,UAAM,mBAAmB,MAAM,iBAAiB;AAEhD,QAAI,MAAM,QAAQ,gBAAgB,GAAG;AACnC,aAAO,CAAC,GAAG,kBAAkB,aAAa;AAAA,IAC5C,OAAO;AACL,aAAO;AAAA,QACL,GAAG;AAAA,QACH,aAAa,CAAC,GAAI,iBAAiB,eAAe,CAAC,GAAI,aAAa;AAAA,MACtE;AAAA,IACF;AAAA,EACF;AACF;AAEA,SAAS,WAAW,gBAA4B,eAA8B;AAC5E,QAAM,gBAA+B;AAAA,IACnC,sBAAsB,cAAc;AAAA,IACpC,oBAAoB,cAAc;AAAA,IAClC,kBAAkB,cAAc;AAAA,IAChC,iBAAiB,cAAc;AAAA,IAC/B,2BAA2B,cAAc,oBACrC,SACA;AAAA,EACN;AAEA,iBAAe,MAAM;AAAA,IACnB,GAAI,eAAe,OAAO,CAAC;AAAA,IAC3B,GAAG;AAAA,EACL;AACF;AASO,MAAM,mBACX,CAAC,kBACD,CAAC,eAAuC;AACtC,wBAAsB,aAAa;AAEnC,aAAW,YAAY,aAAa;AAEpC,kBAAgB,YAAY,aAAa;AAEzC,SAAO;AACT;","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utils/with-opinly-config.ts"],"sourcesContent":["import { NextConfig } from \"next\";\nimport { Rewrite } from \"next/dist/lib/load-custom-routes\";\nimport type { OpinlyEnvVars } from \"./sdk-config\";\nimport { z } from \"zod\";\n\ninterface WithOpinlyOptions {\n imagesPath: `/${string}`;\n blogPath: `/${string}`;\n companyName: string;\n cdnNamespace: string;\n siteUrl: string;\n unoptimizedImages?: boolean;\n}\n\ntype ResolvedRewrites = ReturnType<\n NonNullable<Awaited<NextConfig[\"rewrites\"]>>\n>;\n\nconst opinlyOptionsSchema = z.object({\n imagesPath: z\n .string({})\n .refine(\n (val) => val.startsWith(\"/\") || z.string().url().safeParse(val).success,\n {\n message: \"imagesPath must start with a leading slash (e.g. '/images')\",\n }\n ),\n blogPath: z.string({}).startsWith(\"/\", {\n message: \"blogPath must start with a leading slash i.e. `/blog`\",\n }),\n companyName: z.string({\n required_error: \"companyName is required\",\n invalid_type_error: \"companyName must be a string\",\n }),\n cdnNamespace: z\n .string()\n .min(21, \"CDN namespace must be 21 characters long\")\n .max(21, \"CDN namespace must be 21 characters long\"),\n siteUrl: z.string().url({\n message: \"siteUrl must be a valid URL\",\n }),\n unoptimizedImages: z.boolean().optional(),\n cdnDomain: z\n .string({\n description:\n \"INTERNAL USE ONLY: The domain of the CDN. If not provided, the default domain will be used.\",\n })\n .url({\n message: \"cdnDomain must be a valid URL\",\n })\n .optional(),\n});\n\ntype OpinlyOptions = z.infer<typeof opinlyOptionsSchema>;\n\nconst validateOpinlyOptions = (opinlyOptions: OpinlyOptions) => {\n if (!opinlyOptions) {\n throw new Error(\n \"[@opinly/next] `opts` is required. Please provide the options object.\"\n );\n }\n\n const parsedOpinlyOptions = opinlyOptionsSchema.safeParse(opinlyOptions);\n\n if (!parsedOpinlyOptions.success) {\n throw new Error(\n `[@opinly/next] Invalid options provided in next.config.js: ${parsedOpinlyOptions.error.message}`\n );\n }\n};\n\nconst processRewrites = (\n userNextConfig: NextConfig,\n opinlyOptions: OpinlyOptions\n): void => {\n const imagesPath = opinlyOptions.imagesPath;\n\n if (!imagesPath.startsWith(\"/\")) {\n console.warn(\n `[@opinly/next] You have provided a url for imagesPath. This is only valid for internal testing and rewrites will be skipped.`\n );\n\n return;\n }\n\n const originalRewrites = userNextConfig.rewrites;\n\n userNextConfig.rewrites = async () => {\n const opinlyRewrite = {\n source: `${opinlyOptions.imagesPath}/:path*`,\n destination: `${opinlyOptions.cdnDomain || \"https://cdn.opinly.ai\"}/${opinlyOptions.cdnNamespace}/:path*`,\n };\n\n console.log(\"opinlyRewrite\", opinlyRewrite);\n\n if (typeof originalRewrites !== \"function\") {\n return [opinlyRewrite];\n }\n\n const resolvedRewrites = await originalRewrites();\n\n if (Array.isArray(resolvedRewrites)) {\n return [...resolvedRewrites, opinlyRewrite];\n } else {\n return {\n ...resolvedRewrites,\n beforeFiles: [...(resolvedRewrites.beforeFiles || []), opinlyRewrite],\n };\n }\n };\n};\n\nfunction addEnvVars(userNextConfig: NextConfig, opinlyOptions: OpinlyOptions) {\n const opinlyEnvVars: OpinlyEnvVars = {\n OPINLY_IMAGES_PREFIX: opinlyOptions.imagesPath,\n OPINLY_BLOG_PREFIX: opinlyOptions.blogPath,\n OPINLY_SITE_NAME: opinlyOptions.companyName,\n OPINLY_SITE_URL: opinlyOptions.siteUrl,\n OPINLY_UNOPTIMIZED_IMAGES: opinlyOptions.unoptimizedImages\n ? \"true\"\n : undefined,\n };\n\n userNextConfig.env = {\n ...(userNextConfig.env || {}),\n ...opinlyEnvVars,\n };\n}\n\n/**\n * Modifies the passed in Next.js configuration with image rewrites and environment variables.\n *\n * @param nextConfig A Next.js configuration object, as usually exported in `next.config.js` or `next.config.mjs`.\n * @param opinlyOptions Additional options to configure Opinly.\n * @returns The modified config to be exported\n */\nexport const withOpinlyConfig =\n (opinlyOptions: OpinlyOptions) =>\n (nextConfig: NextConfig): NextConfig => {\n validateOpinlyOptions(opinlyOptions);\n\n addEnvVars(nextConfig, opinlyOptions);\n\n processRewrites(nextConfig, opinlyOptions);\n\n return nextConfig;\n };\n"],"mappings":"AAGA,SAAS,SAAS;AAelB,MAAM,sBAAsB,EAAE,OAAO;AAAA,EACnC,YAAY,EACT,OAAO,CAAC,CAAC,EACT;AAAA,IACC,CAAC,QAAQ,IAAI,WAAW,GAAG,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,GAAG,EAAE;AAAA,IAChE;AAAA,MACE,SAAS;AAAA,IACX;AAAA,EACF;AAAA,EACF,UAAU,EAAE,OAAO,CAAC,CAAC,EAAE,WAAW,KAAK;AAAA,IACrC,SAAS;AAAA,EACX,CAAC;AAAA,EACD,aAAa,EAAE,OAAO;AAAA,IACpB,gBAAgB;AAAA,IAChB,oBAAoB;AAAA,EACtB,CAAC;AAAA,EACD,cAAc,EACX,OAAO,EACP,IAAI,IAAI,0CAA0C,EAClD,IAAI,IAAI,0CAA0C;AAAA,EACrD,SAAS,EAAE,OAAO,EAAE,IAAI;AAAA,IACtB,SAAS;AAAA,EACX,CAAC;AAAA,EACD,mBAAmB,EAAE,QAAQ,EAAE,SAAS;AAAA,EACxC,WAAW,EACR,OAAO;AAAA,IACN,aACE;AAAA,EACJ,CAAC,EACA,IAAI;AAAA,IACH,SAAS;AAAA,EACX,CAAC,EACA,SAAS;AACd,CAAC;AAID,MAAM,wBAAwB,CAAC,kBAAiC;AAC9D,MAAI,CAAC,eAAe;AAClB,UAAM,IAAI;AAAA,MACR;AAAA,IACF;AAAA,EACF;AAEA,QAAM,sBAAsB,oBAAoB,UAAU,aAAa;AAEvE,MAAI,CAAC,oBAAoB,SAAS;AAChC,UAAM,IAAI;AAAA,MACR,8DAA8D,oBAAoB,MAAM,OAAO;AAAA,IACjG;AAAA,EACF;AACF;AAEA,MAAM,kBAAkB,CACtB,gBACA,kBACS;AACT,QAAM,aAAa,cAAc;AAEjC,MAAI,CAAC,WAAW,WAAW,GAAG,GAAG;AAC/B,YAAQ;AAAA,MACN;AAAA,IACF;AAEA;AAAA,EACF;AAEA,QAAM,mBAAmB,eAAe;AAExC,iBAAe,WAAW,YAAY;AACpC,UAAM,gBAAgB;AAAA,MACpB,QAAQ,GAAG,cAAc,UAAU;AAAA,MACnC,aAAa,GAAG,cAAc,aAAa,uBAAuB,IAAI,cAAc,YAAY;AAAA,IAClG;AAEA,YAAQ,IAAI,iBAAiB,aAAa;AAE1C,QAAI,OAAO,qBAAqB,YAAY;AAC1C,aAAO,CAAC,aAAa;AAAA,IACvB;AAEA,UAAM,mBAAmB,MAAM,iBAAiB;AAEhD,QAAI,MAAM,QAAQ,gBAAgB,GAAG;AACnC,aAAO,CAAC,GAAG,kBAAkB,aAAa;AAAA,IAC5C,OAAO;AACL,aAAO;AAAA,QACL,GAAG;AAAA,QACH,aAAa,CAAC,GAAI,iBAAiB,eAAe,CAAC,GAAI,aAAa;AAAA,MACtE;AAAA,IACF;AAAA,EACF;AACF;AAEA,SAAS,WAAW,gBAA4B,eAA8B;AAC5E,QAAM,gBAA+B;AAAA,IACnC,sBAAsB,cAAc;AAAA,IACpC,oBAAoB,cAAc;AAAA,IAClC,kBAAkB,cAAc;AAAA,IAChC,iBAAiB,cAAc;AAAA,IAC/B,2BAA2B,cAAc,oBACrC,SACA;AAAA,EACN;AAEA,iBAAe,MAAM;AAAA,IACnB,GAAI,eAAe,OAAO,CAAC;AAAA,IAC3B,GAAG;AAAA,EACL;AACF;AASO,MAAM,mBACX,CAAC,kBACD,CAAC,eAAuC;AACtC,wBAAsB,aAAa;AAEnC,aAAW,YAAY,aAAa;AAEpC,kBAAgB,YAAY,aAAa;AAEzC,SAAO;AACT;","names":[]}
|