@opinly/next 0.1.17 → 0.1.19

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.
Files changed (129) hide show
  1. package/dist/components/author-page/index.cjs +51 -25
  2. package/dist/components/author-page/index.cjs.map +1 -1
  3. package/dist/components/author-page/index.js +52 -26
  4. package/dist/components/author-page/index.js.map +1 -1
  5. package/dist/components/blog-post/_components/content.cjs +5 -8
  6. package/dist/components/blog-post/_components/content.cjs.map +1 -1
  7. package/dist/components/blog-post/_components/content.js +5 -8
  8. package/dist/components/blog-post/_components/content.js.map +1 -1
  9. package/dist/components/blog-post/_components/faq.cjs +2 -2
  10. package/dist/components/blog-post/_components/faq.cjs.map +1 -1
  11. package/dist/components/blog-post/_components/faq.js +2 -2
  12. package/dist/components/blog-post/_components/faq.js.map +1 -1
  13. package/dist/components/blog-post/_components/table-of-contents.cjs +36 -9
  14. package/dist/components/blog-post/_components/table-of-contents.cjs.map +1 -1
  15. package/dist/components/blog-post/_components/table-of-contents.js +36 -9
  16. package/dist/components/blog-post/_components/table-of-contents.js.map +1 -1
  17. package/dist/components/blog-post/_helpers/extract-headings.cjs +2 -1
  18. package/dist/components/blog-post/_helpers/extract-headings.cjs.map +1 -1
  19. package/dist/components/blog-post/_helpers/extract-headings.d.cts +1 -0
  20. package/dist/components/blog-post/_helpers/extract-headings.d.ts +1 -0
  21. package/dist/components/blog-post/_helpers/extract-headings.js +2 -1
  22. package/dist/components/blog-post/_helpers/extract-headings.js.map +1 -1
  23. package/dist/components/blog-post/_helpers/json-ld.cjs +5 -12
  24. package/dist/components/blog-post/_helpers/json-ld.cjs.map +1 -1
  25. package/dist/components/blog-post/_helpers/json-ld.d.cts +6 -2
  26. package/dist/components/blog-post/_helpers/json-ld.d.ts +6 -2
  27. package/dist/components/blog-post/_helpers/json-ld.js +5 -12
  28. package/dist/components/blog-post/_helpers/json-ld.js.map +1 -1
  29. package/dist/components/blog-post/_helpers/reading-time.cjs +1 -1
  30. package/dist/components/blog-post/_helpers/reading-time.cjs.map +1 -1
  31. package/dist/components/blog-post/_helpers/reading-time.js +1 -1
  32. package/dist/components/blog-post/_helpers/reading-time.js.map +1 -1
  33. package/dist/components/blog-post/index.cjs +26 -22
  34. package/dist/components/blog-post/index.cjs.map +1 -1
  35. package/dist/components/blog-post/index.js +26 -22
  36. package/dist/components/blog-post/index.js.map +1 -1
  37. package/dist/components/bread-crumbs.cjs +1 -1
  38. package/dist/components/bread-crumbs.cjs.map +1 -1
  39. package/dist/components/bread-crumbs.js +1 -1
  40. package/dist/components/bread-crumbs.js.map +1 -1
  41. package/dist/components/folder-page/index.cjs +46 -11
  42. package/dist/components/folder-page/index.cjs.map +1 -1
  43. package/dist/components/folder-page/index.js +47 -12
  44. package/dist/components/folder-page/index.js.map +1 -1
  45. package/dist/components/home-page/folders.cjs +20 -10
  46. package/dist/components/home-page/folders.cjs.map +1 -1
  47. package/dist/components/home-page/folders.d.cts +4 -2
  48. package/dist/components/home-page/folders.d.ts +4 -2
  49. package/dist/components/home-page/folders.js +20 -10
  50. package/dist/components/home-page/folders.js.map +1 -1
  51. package/dist/components/home-page/index.cjs +5 -7
  52. package/dist/components/home-page/index.cjs.map +1 -1
  53. package/dist/components/home-page/index.d.cts +4 -5
  54. package/dist/components/home-page/index.d.ts +4 -5
  55. package/dist/components/home-page/index.js +5 -7
  56. package/dist/components/home-page/index.js.map +1 -1
  57. package/dist/components/home-page/pagination.cjs +23 -17
  58. package/dist/components/home-page/pagination.cjs.map +1 -1
  59. package/dist/components/home-page/pagination.d.cts +2 -3
  60. package/dist/components/home-page/pagination.d.ts +2 -3
  61. package/dist/components/home-page/pagination.js +23 -17
  62. package/dist/components/home-page/pagination.js.map +1 -1
  63. package/dist/components/home-page/top-posts.cjs +2 -19
  64. package/dist/components/home-page/top-posts.cjs.map +1 -1
  65. package/dist/components/home-page/top-posts.d.cts +4 -3
  66. package/dist/components/home-page/top-posts.d.ts +4 -3
  67. package/dist/components/home-page/top-posts.js +4 -21
  68. package/dist/components/home-page/top-posts.js.map +1 -1
  69. package/dist/components/opinly-blog.cjs +6 -6
  70. package/dist/components/opinly-blog.cjs.map +1 -1
  71. package/dist/components/opinly-blog.d.cts +4 -7
  72. package/dist/components/opinly-blog.d.ts +4 -7
  73. package/dist/components/opinly-blog.js +6 -6
  74. package/dist/components/opinly-blog.js.map +1 -1
  75. package/dist/components/post-preview.cjs +7 -6
  76. package/dist/components/post-preview.cjs.map +1 -1
  77. package/dist/components/post-preview.js +7 -6
  78. package/dist/components/post-preview.js.map +1 -1
  79. package/dist/{utils/with-opinly-config.cjs → config.cjs} +17 -9
  80. package/dist/config.cjs.map +1 -0
  81. package/dist/{utils/with-opinly-config.d.cts → config.d.cts} +3 -0
  82. package/dist/{utils/with-opinly-config.d.ts → config.d.ts} +3 -0
  83. package/dist/{utils/with-opinly-config.js → config.js} +14 -6
  84. package/dist/config.js.map +1 -0
  85. package/dist/index.cjs +1 -3
  86. package/dist/index.cjs.map +1 -1
  87. package/dist/index.d.cts +0 -3
  88. package/dist/index.d.ts +0 -3
  89. package/dist/index.js +0 -1
  90. package/dist/index.js.map +1 -1
  91. package/dist/pages/index.cjs +23 -0
  92. package/dist/pages/index.cjs.map +1 -0
  93. package/dist/pages/index.d.cts +3 -0
  94. package/dist/pages/index.d.ts +3 -0
  95. package/dist/pages/index.js +2 -0
  96. package/dist/pages/index.js.map +1 -0
  97. package/dist/pages/opinly-blog-pages.cjs +128 -0
  98. package/dist/pages/opinly-blog-pages.cjs.map +1 -0
  99. package/dist/pages/opinly-blog-pages.d.cts +9 -0
  100. package/dist/pages/opinly-blog-pages.d.ts +9 -0
  101. package/dist/pages/opinly-blog-pages.js +104 -0
  102. package/dist/pages/opinly-blog-pages.js.map +1 -0
  103. package/dist/utils/generate-metadata.cjs +1 -1
  104. package/dist/utils/generate-metadata.cjs.map +1 -1
  105. package/dist/utils/generate-metadata.d.cts +2 -4
  106. package/dist/utils/generate-metadata.d.ts +2 -4
  107. package/dist/utils/generate-metadata.js +1 -1
  108. package/dist/utils/generate-metadata.js.map +1 -1
  109. package/dist/utils/generate-sitemap-xml.cjs +42 -0
  110. package/dist/utils/generate-sitemap-xml.cjs.map +1 -0
  111. package/dist/utils/generate-sitemap-xml.d.cts +5 -0
  112. package/dist/utils/generate-sitemap-xml.d.ts +5 -0
  113. package/dist/utils/generate-sitemap-xml.js +18 -0
  114. package/dist/utils/generate-sitemap-xml.js.map +1 -0
  115. package/dist/utils/sdk-config.cjs +4 -2
  116. package/dist/utils/sdk-config.cjs.map +1 -1
  117. package/dist/utils/sdk-config.d.cts +2 -0
  118. package/dist/utils/sdk-config.d.ts +2 -0
  119. package/dist/utils/sdk-config.js +4 -2
  120. package/dist/utils/sdk-config.js.map +1 -1
  121. package/package.json +12 -3
  122. package/dist/components/not-found.cjs +0 -60
  123. package/dist/components/not-found.cjs.map +0 -1
  124. package/dist/components/not-found.d.cts +0 -5
  125. package/dist/components/not-found.d.ts +0 -5
  126. package/dist/components/not-found.js +0 -26
  127. package/dist/components/not-found.js.map +0 -1
  128. package/dist/utils/with-opinly-config.cjs.map +0 -1
  129. package/dist/utils/with-opinly-config.js.map +0 -1
@@ -1,8 +1,6 @@
1
- import { Opinly } from '@opinly/backend';
1
+ import { Opinly, OpinlyPagePropsPromisified } from '@opinly/backend';
2
2
  import { ResolvingMetadata, Metadata } from 'next';
3
3
 
4
- declare const generateOpinlyMetadata: (client: Opinly, params: Promise<{
5
- slug: string[];
6
- }>, parent: ResolvingMetadata) => Promise<Metadata>;
4
+ declare const generateOpinlyMetadata: (client: Opinly, params: OpinlyPagePropsPromisified, parent: ResolvingMetadata) => Promise<Metadata>;
7
5
 
8
6
  export { generateOpinlyMetadata };
@@ -1,8 +1,6 @@
1
- import { Opinly } from '@opinly/backend';
1
+ import { Opinly, OpinlyPagePropsPromisified } from '@opinly/backend';
2
2
  import { ResolvingMetadata, Metadata } from 'next';
3
3
 
4
- declare const generateOpinlyMetadata: (client: Opinly, params: Promise<{
5
- slug: string[];
6
- }>, parent: ResolvingMetadata) => Promise<Metadata>;
4
+ declare const generateOpinlyMetadata: (client: Opinly, params: OpinlyPagePropsPromisified, parent: ResolvingMetadata) => Promise<Metadata>;
7
5
 
8
6
  export { generateOpinlyMetadata };
@@ -1,6 +1,6 @@
1
1
  import { opinlyConfig } from "./sdk-config";
2
2
  const generateOpinlyMetadata = async (client, params, parent) => {
3
- const blog = await client.content.blog({ params: await params });
3
+ const blog = await client.content.blog(params);
4
4
  if (blog.type === "not-found") {
5
5
  return parent;
6
6
  }
@@ -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: Promise<{\n slug: string[];\n }>,\n parent: ResolvingMetadata\n): Promise<Metadata> => {\n const blog = await client.content.blog({ params: await 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,QAGA,WACsB;AACtB,QAAM,OAAO,MAAM,OAAO,QAAQ,KAAK,EAAE,QAAQ,MAAM,OAAO,CAAC;AAE/D,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":[]}
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,5 @@
1
+ import { Opinly } from '@opinly/backend';
2
+
3
+ declare function generateSiteMapXML(paths: Awaited<ReturnType<Opinly["content"]["sitemapRecords"]>>): string;
4
+
5
+ export { generateSiteMapXML };
@@ -0,0 +1,5 @@
1
+ import { Opinly } from '@opinly/backend';
2
+
3
+ declare function generateSiteMapXML(paths: Awaited<ReturnType<Opinly["content"]["sitemapRecords"]>>): string;
4
+
5
+ export { generateSiteMapXML };
@@ -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;AAGzC;AAIO,IAAI,eASP;AAAA,EACF,QAAQ,QAAQ,IAAI,kBAAkB;AAAA,EACtC,SAAS,QAAQ,IAAI;AAAA,EACrB,cAAc,QAAQ,IAAI;AAAA,EAC1B,WAAW,GAAG,QAAQ,IAAI,eAAyB,GAAG,QAAQ,IAAI,oBAA8B;AAAA,EAChG,YAAY,QAAQ,IAAI;AAAA,EACxB,SAAS,GAAG,QAAQ,IAAI,eAAyB,GAAG,QAAQ,IAAI,kBAA4B;AAAA,EAC5F,UAAU,QAAQ,IAAI;AAAA,EACtB,mBACE,QAAQ,IAAI,8BAA8B,SAAS,OAAO;AAC9D;AAEO,SAAS,gBAAgB,WAAgC;AAC9D,iBAAe,EAAE,GAAG,cAAc,GAAG,UAAU;AACjD;","names":[]}
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
 
@@ -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;AAGzC;AAIO,IAAI,eASP;AAAA,EACF,QAAQ,QAAQ,IAAI,kBAAkB;AAAA,EACtC,SAAS,QAAQ,IAAI;AAAA,EACrB,cAAc,QAAQ,IAAI;AAAA,EAC1B,WAAW,GAAG,QAAQ,IAAI,eAAyB,GAAG,QAAQ,IAAI,oBAA8B;AAAA,EAChG,YAAY,QAAQ,IAAI;AAAA,EACxB,SAAS,GAAG,QAAQ,IAAI,eAAyB,GAAG,QAAQ,IAAI,kBAA4B;AAAA,EAC5F,UAAU,QAAQ,IAAI;AAAA,EACtB,mBACE,QAAQ,IAAI,8BAA8B,SAAS,OAAO;AAC9D;AAEO,SAAS,gBAAgB,WAAgC;AAC9D,iBAAe,EAAE,GAAG,cAAc,GAAG,UAAU;AACjD;","names":[]}
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.17",
3
+ "version": "0.1.19",
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": "^3.0.0"
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.17"
34
+ "@opinly/backend": "0.1.19"
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,5 +0,0 @@
1
- import * as react_jsx_runtime from 'react/jsx-runtime';
2
-
3
- declare const OpinlyNotFound: () => react_jsx_runtime.JSX.Element;
4
-
5
- export { OpinlyNotFound };
@@ -1,5 +0,0 @@
1
- import * as react_jsx_runtime from 'react/jsx-runtime';
2
-
3
- declare const OpinlyNotFound: () => react_jsx_runtime.JSX.Element;
4
-
5
- export { OpinlyNotFound };
@@ -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":[]}