@opinly/next 0.1.8 → 0.1.10

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 (104) hide show
  1. package/dist/components/author-page/index.cjs +2 -3
  2. package/dist/components/author-page/index.cjs.map +1 -1
  3. package/dist/components/author-page/index.js +2 -3
  4. package/dist/components/author-page/index.js.map +1 -1
  5. package/dist/components/authors-page/index.cjs +2 -3
  6. package/dist/components/authors-page/index.cjs.map +1 -1
  7. package/dist/components/authors-page/index.js +2 -3
  8. package/dist/components/authors-page/index.js.map +1 -1
  9. package/dist/components/blog-post/_components/content.cjs +18 -1
  10. package/dist/components/blog-post/_components/content.cjs.map +1 -1
  11. package/dist/components/blog-post/_components/content.js +18 -1
  12. package/dist/components/blog-post/_components/content.js.map +1 -1
  13. package/dist/components/blog-post/_components/share.cjs +1 -1
  14. package/dist/components/blog-post/_components/share.cjs.map +1 -1
  15. package/dist/components/blog-post/_components/share.js +1 -1
  16. package/dist/components/blog-post/_components/share.js.map +1 -1
  17. package/dist/components/blog-post/_components/table-of-contents.cjs +3 -3
  18. package/dist/components/blog-post/_components/table-of-contents.cjs.map +1 -1
  19. package/dist/components/blog-post/_components/table-of-contents.js +3 -3
  20. package/dist/components/blog-post/_components/table-of-contents.js.map +1 -1
  21. package/dist/components/blog-post/_helpers/json-ld.cjs +2 -3
  22. package/dist/components/blog-post/_helpers/json-ld.cjs.map +1 -1
  23. package/dist/components/blog-post/_helpers/json-ld.js +2 -3
  24. package/dist/components/blog-post/_helpers/json-ld.js.map +1 -1
  25. package/dist/components/blog-post/index.cjs +1 -1
  26. package/dist/components/blog-post/index.cjs.map +1 -1
  27. package/dist/components/blog-post/index.js +1 -1
  28. package/dist/components/blog-post/index.js.map +1 -1
  29. package/dist/components/bread-crumbs.cjs +1 -1
  30. package/dist/components/bread-crumbs.cjs.map +1 -1
  31. package/dist/components/bread-crumbs.js +1 -1
  32. package/dist/components/bread-crumbs.js.map +1 -1
  33. package/dist/components/home-page/folders.cjs +98 -0
  34. package/dist/components/home-page/folders.cjs.map +1 -0
  35. package/dist/components/home-page/folders.d.cts +9 -0
  36. package/dist/components/home-page/folders.d.ts +9 -0
  37. package/dist/components/home-page/folders.js +63 -0
  38. package/dist/components/home-page/folders.js.map +1 -0
  39. package/dist/components/home-page/index.cjs +44 -0
  40. package/dist/components/home-page/index.cjs.map +1 -0
  41. package/dist/components/home-page/index.d.cts +11 -0
  42. package/dist/components/home-page/index.d.ts +11 -0
  43. package/dist/components/home-page/index.js +20 -0
  44. package/dist/components/home-page/index.js.map +1 -0
  45. package/dist/components/{home-page.cjs → home-page/pagination.cjs} +48 -28
  46. package/dist/components/home-page/pagination.cjs.map +1 -0
  47. package/dist/components/home-page/pagination.d.cts +10 -0
  48. package/dist/components/home-page/pagination.d.ts +10 -0
  49. package/dist/components/home-page/pagination.js +57 -0
  50. package/dist/components/home-page/pagination.js.map +1 -0
  51. package/dist/components/home-page/top-posts.cjs +52 -0
  52. package/dist/components/home-page/top-posts.cjs.map +1 -0
  53. package/dist/components/home-page/top-posts.d.cts +9 -0
  54. package/dist/components/home-page/top-posts.d.ts +9 -0
  55. package/dist/components/home-page/top-posts.js +28 -0
  56. package/dist/components/home-page/top-posts.js.map +1 -0
  57. package/dist/components/opinly-blog.cjs +3 -2
  58. package/dist/components/opinly-blog.cjs.map +1 -1
  59. package/dist/components/opinly-blog.d.cts +5 -2
  60. package/dist/components/opinly-blog.d.ts +5 -2
  61. package/dist/components/opinly-blog.js +3 -2
  62. package/dist/components/opinly-blog.js.map +1 -1
  63. package/dist/components/post-preview.cjs +26 -8
  64. package/dist/components/post-preview.cjs.map +1 -1
  65. package/dist/components/post-preview.d.cts +3 -4
  66. package/dist/components/post-preview.d.ts +3 -4
  67. package/dist/components/post-preview.js +24 -7
  68. package/dist/components/post-preview.js.map +1 -1
  69. package/dist/index.cjs +1 -3
  70. package/dist/index.cjs.map +1 -1
  71. package/dist/index.d.cts +0 -1
  72. package/dist/index.d.ts +0 -1
  73. package/dist/index.js +0 -1
  74. package/dist/index.js.map +1 -1
  75. package/dist/utils/dates.cjs +33 -0
  76. package/dist/utils/dates.cjs.map +1 -0
  77. package/dist/utils/dates.d.cts +3 -0
  78. package/dist/utils/dates.d.ts +3 -0
  79. package/dist/utils/dates.js +9 -0
  80. package/dist/utils/dates.js.map +1 -0
  81. package/dist/utils/generate-metadata.cjs +60 -0
  82. package/dist/utils/generate-metadata.cjs.map +1 -0
  83. package/dist/utils/generate-metadata.d.cts +6 -0
  84. package/dist/utils/generate-metadata.d.ts +6 -0
  85. package/dist/utils/generate-metadata.js +36 -0
  86. package/dist/utils/generate-metadata.js.map +1 -0
  87. package/dist/utils/merge.cjs +33 -0
  88. package/dist/utils/merge.cjs.map +1 -0
  89. package/dist/utils/merge.d.cts +5 -0
  90. package/dist/utils/merge.d.ts +5 -0
  91. package/dist/utils/merge.js +9 -0
  92. package/dist/utils/merge.js.map +1 -0
  93. package/dist/utils/sdk-config.cjs +55 -0
  94. package/dist/utils/sdk-config.cjs.map +1 -0
  95. package/dist/utils/sdk-config.d.cts +12 -0
  96. package/dist/utils/sdk-config.d.ts +12 -0
  97. package/dist/utils/sdk-config.js +30 -0
  98. package/dist/utils/sdk-config.js.map +1 -0
  99. package/package.json +3 -2
  100. package/dist/components/home-page.cjs.map +0 -1
  101. package/dist/components/home-page.d.cts +0 -12
  102. package/dist/components/home-page.d.ts +0 -12
  103. package/dist/components/home-page.js +0 -37
  104. package/dist/components/home-page.js.map +0 -1
@@ -0,0 +1,9 @@
1
+ const formatDate = (iso) => new Date(iso).toLocaleDateString("en-US", {
2
+ month: "short",
3
+ day: "2-digit",
4
+ year: "numeric"
5
+ });
6
+ export {
7
+ formatDate
8
+ };
9
+ //# sourceMappingURL=dates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utils/dates.ts"],"sourcesContent":["export const formatDate = (iso: string) =>\n new Date(iso).toLocaleDateString(\"en-US\", {\n month: \"short\",\n day: \"2-digit\",\n year: \"numeric\",\n });\n"],"mappings":"AAAO,MAAM,aAAa,CAAC,QACzB,IAAI,KAAK,GAAG,EAAE,mBAAmB,SAAS;AAAA,EACxC,OAAO;AAAA,EACP,KAAK;AAAA,EACL,MAAM;AACR,CAAC;","names":[]}
@@ -0,0 +1,60 @@
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_metadata_exports = {};
20
+ __export(generate_metadata_exports, {
21
+ generateMetadata: () => generateMetadata
22
+ });
23
+ module.exports = __toCommonJS(generate_metadata_exports);
24
+ var import_sdk_config = require("./sdk-config");
25
+ const generateMetadata = async (client, params, parent) => {
26
+ const blog = await client.content.blog(params);
27
+ if (blog.type === "not-found") {
28
+ return parent;
29
+ }
30
+ const previousImages = (await parent).openGraph?.images || [];
31
+ if (blog.type === "post") {
32
+ const openGraphImageKey = blog.data?.titleFile?.fileKey;
33
+ const images = openGraphImageKey ? [`${import_sdk_config.opinlyConfig.imagesUrl}/${openGraphImageKey}`, ...previousImages] : previousImages;
34
+ return {
35
+ ...parent,
36
+ title: blog.data.title,
37
+ openGraph: {
38
+ images,
39
+ type: "article",
40
+ authors: blog.data.author && [
41
+ `${import_sdk_config.opinlyConfig.blogUrl}/authors/${blog.data.author.slug}`
42
+ ]
43
+ },
44
+ // keywords: [blog.data.keywords],
45
+ authors: blog.data.author && [
46
+ {
47
+ name: blog.data.author.name,
48
+ url: `${import_sdk_config.opinlyConfig.blogUrl}/authors/${blog.data.author.slug}`
49
+ }
50
+ ],
51
+ other: {}
52
+ };
53
+ }
54
+ return parent;
55
+ };
56
+ // Annotate the CommonJS export names for ESM import in node:
57
+ 0 && (module.exports = {
58
+ generateMetadata
59
+ });
60
+ //# sourceMappingURL=generate-metadata.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utils/generate-metadata.ts"],"sourcesContent":["import { Opinly, OpinlyPageProps } from \"@opinly/backend\";\nimport type { Metadata, ResolvingMetadata } from \"next\";\nimport { opinlyConfig } from \"./sdk-config\";\n\nexport const generateMetadata = async (\n client: Opinly,\n params: OpinlyPageProps,\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.imagesUrl}/${openGraphImageKey}`, ...previousImages]\n : previousImages;\n\n return {\n ...(parent as Metadata),\n title: blog.data.title,\n\n openGraph: {\n images: images,\n type: \"article\",\n authors: blog.data.author && [\n `${opinlyConfig.blogUrl}/authors/${blog.data.author.slug}`,\n ],\n },\n\n // keywords: [blog.data.keywords],\n authors: blog.data.author && [\n {\n name: blog.data.author.name,\n url: `${opinlyConfig.blogUrl}/authors/${blog.data.author.slug}`,\n },\n ],\n other: {},\n };\n }\n\n return parent as Metadata;\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,wBAA6B;AAEtB,MAAM,mBAAmB,OAC9B,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,+BAAa,SAAS,IAAI,iBAAiB,IAAI,GAAG,cAAc,IACpE;AAEJ,WAAO;AAAA,MACL,GAAI;AAAA,MACJ,OAAO,KAAK,KAAK;AAAA,MAEjB,WAAW;AAAA,QACT;AAAA,QACA,MAAM;AAAA,QACN,SAAS,KAAK,KAAK,UAAU;AAAA,UAC3B,GAAG,+BAAa,OAAO,YAAY,KAAK,KAAK,OAAO,IAAI;AAAA,QAC1D;AAAA,MACF;AAAA;AAAA,MAGA,SAAS,KAAK,KAAK,UAAU;AAAA,QAC3B;AAAA,UACE,MAAM,KAAK,KAAK,OAAO;AAAA,UACvB,KAAK,GAAG,+BAAa,OAAO,YAAY,KAAK,KAAK,OAAO,IAAI;AAAA,QAC/D;AAAA,MACF;AAAA,MACA,OAAO,CAAC;AAAA,IACV;AAAA,EACF;AAEA,SAAO;AACT;","names":[]}
@@ -0,0 +1,6 @@
1
+ import { Opinly, OpinlyPageProps } from '@opinly/backend';
2
+ import { ResolvingMetadata, Metadata } from 'next';
3
+
4
+ declare const generateMetadata: (client: Opinly, params: OpinlyPageProps, parent: ResolvingMetadata) => Promise<Metadata>;
5
+
6
+ export { generateMetadata };
@@ -0,0 +1,6 @@
1
+ import { Opinly, OpinlyPageProps } from '@opinly/backend';
2
+ import { ResolvingMetadata, Metadata } from 'next';
3
+
4
+ declare const generateMetadata: (client: Opinly, params: OpinlyPageProps, parent: ResolvingMetadata) => Promise<Metadata>;
5
+
6
+ export { generateMetadata };
@@ -0,0 +1,36 @@
1
+ import { opinlyConfig } from "./sdk-config";
2
+ const generateMetadata = async (client, params, parent) => {
3
+ const blog = await client.content.blog(params);
4
+ if (blog.type === "not-found") {
5
+ return parent;
6
+ }
7
+ const previousImages = (await parent).openGraph?.images || [];
8
+ if (blog.type === "post") {
9
+ const openGraphImageKey = blog.data?.titleFile?.fileKey;
10
+ const images = openGraphImageKey ? [`${opinlyConfig.imagesUrl}/${openGraphImageKey}`, ...previousImages] : previousImages;
11
+ return {
12
+ ...parent,
13
+ title: blog.data.title,
14
+ openGraph: {
15
+ images,
16
+ type: "article",
17
+ authors: blog.data.author && [
18
+ `${opinlyConfig.blogUrl}/authors/${blog.data.author.slug}`
19
+ ]
20
+ },
21
+ // keywords: [blog.data.keywords],
22
+ authors: blog.data.author && [
23
+ {
24
+ name: blog.data.author.name,
25
+ url: `${opinlyConfig.blogUrl}/authors/${blog.data.author.slug}`
26
+ }
27
+ ],
28
+ other: {}
29
+ };
30
+ }
31
+ return parent;
32
+ };
33
+ export {
34
+ generateMetadata
35
+ };
36
+ //# sourceMappingURL=generate-metadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utils/generate-metadata.ts"],"sourcesContent":["import { Opinly, OpinlyPageProps } from \"@opinly/backend\";\nimport type { Metadata, ResolvingMetadata } from \"next\";\nimport { opinlyConfig } from \"./sdk-config\";\n\nexport const generateMetadata = async (\n client: Opinly,\n params: OpinlyPageProps,\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.imagesUrl}/${openGraphImageKey}`, ...previousImages]\n : previousImages;\n\n return {\n ...(parent as Metadata),\n title: blog.data.title,\n\n openGraph: {\n images: images,\n type: \"article\",\n authors: blog.data.author && [\n `${opinlyConfig.blogUrl}/authors/${blog.data.author.slug}`,\n ],\n },\n\n // keywords: [blog.data.keywords],\n authors: blog.data.author && [\n {\n name: blog.data.author.name,\n url: `${opinlyConfig.blogUrl}/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,mBAAmB,OAC9B,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,SAAS,IAAI,iBAAiB,IAAI,GAAG,cAAc,IACpE;AAEJ,WAAO;AAAA,MACL,GAAI;AAAA,MACJ,OAAO,KAAK,KAAK;AAAA,MAEjB,WAAW;AAAA,QACT;AAAA,QACA,MAAM;AAAA,QACN,SAAS,KAAK,KAAK,UAAU;AAAA,UAC3B,GAAG,aAAa,OAAO,YAAY,KAAK,KAAK,OAAO,IAAI;AAAA,QAC1D;AAAA,MACF;AAAA;AAAA,MAGA,SAAS,KAAK,KAAK,UAAU;AAAA,QAC3B;AAAA,UACE,MAAM,KAAK,KAAK,OAAO;AAAA,UACvB,KAAK,GAAG,aAAa,OAAO,YAAY,KAAK,KAAK,OAAO,IAAI;AAAA,QAC/D;AAAA,MACF;AAAA,MACA,OAAO,CAAC;AAAA,IACV;AAAA,EACF;AAEA,SAAO;AACT;","names":[]}
@@ -0,0 +1,33 @@
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 merge_exports = {};
20
+ __export(merge_exports, {
21
+ cn: () => cn
22
+ });
23
+ module.exports = __toCommonJS(merge_exports);
24
+ var import_clsx = require("clsx");
25
+ var import_tailwind_merge = require("tailwind-merge");
26
+ const cn = (...inputs) => {
27
+ return (0, import_tailwind_merge.twMerge)((0, import_clsx.clsx)(inputs));
28
+ };
29
+ // Annotate the CommonJS export names for ESM import in node:
30
+ 0 && (module.exports = {
31
+ cn
32
+ });
33
+ //# sourceMappingURL=merge.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utils/merge.ts"],"sourcesContent":["import { ClassValue, clsx } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport const cn = (...inputs: ClassValue[]) => {\n return twMerge(clsx(inputs));\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAAiC;AACjC,4BAAwB;AAEjB,MAAM,KAAK,IAAI,WAAyB;AAC7C,aAAO,mCAAQ,kBAAK,MAAM,CAAC;AAC7B;","names":[]}
@@ -0,0 +1,5 @@
1
+ import { ClassValue } from 'clsx';
2
+
3
+ declare const cn: (...inputs: ClassValue[]) => string;
4
+
5
+ export { cn };
@@ -0,0 +1,5 @@
1
+ import { ClassValue } from 'clsx';
2
+
3
+ declare const cn: (...inputs: ClassValue[]) => string;
4
+
5
+ export { cn };
@@ -0,0 +1,9 @@
1
+ import { clsx } from "clsx";
2
+ import { twMerge } from "tailwind-merge";
3
+ const cn = (...inputs) => {
4
+ return twMerge(clsx(inputs));
5
+ };
6
+ export {
7
+ cn
8
+ };
9
+ //# sourceMappingURL=merge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utils/merge.ts"],"sourcesContent":["import { ClassValue, clsx } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport const cn = (...inputs: ClassValue[]) => {\n return twMerge(clsx(inputs));\n};\n"],"mappings":"AAAA,SAAqB,YAAY;AACjC,SAAS,eAAe;AAEjB,MAAM,KAAK,IAAI,WAAyB;AAC7C,SAAO,QAAQ,KAAK,MAAM,CAAC;AAC7B;","names":[]}
@@ -0,0 +1,55 @@
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 sdk_config_exports = {};
20
+ __export(sdk_config_exports, {
21
+ opinlyConfig: () => opinlyConfig,
22
+ setOpinlyConfig: () => setOpinlyConfig
23
+ });
24
+ module.exports = __toCommonJS(sdk_config_exports);
25
+ const siteUrl = process.env.OPINLY_SITE_URL;
26
+ const opinlyEnvVars = {
27
+ OPINLY_IMAGES_PREFIX: process.env.OPINLY_IMAGES_PREFIX,
28
+ OPINLY_SITE_URL: process.env.OPINLY_SITE_URL,
29
+ OPINLY_BLOG_PREFIX: process.env.OPINLY_BLOG_PREFIX,
30
+ OPINLY_CDN_URL: process.env.OPINLY_CDN_URL,
31
+ OPINLY_SITE_NAME: process.env.OPINLY_SITE_NAME
32
+ };
33
+ Object.entries(opinlyEnvVars).forEach(([key, value]) => {
34
+ if (!value) {
35
+ throw new Error(`OPINLY ERROR: env var ${key} is not set`);
36
+ }
37
+ });
38
+ let opinlyConfig = {
39
+ cdnUrl: process.env.OPINLY_CDN_URL || "https://cdn.opinly.ai",
40
+ siteUrl: process.env.OPINLY_SITE_URL,
41
+ imagesPrefix: process.env.OPINLY_IMAGES_PREFIX,
42
+ imagesUrl: `${process.env.OPINLY_SITE_URL}${process.env.OPINLY_IMAGES_PREFIX}`,
43
+ blogPrefix: process.env.OPINLY_BLOG_PREFIX,
44
+ blogUrl: `${process.env.OPINLY_SITE_URL}${process.env.OPINLY_BLOG_PREFIX}`,
45
+ siteName: process.env.OPINLY_SITE_NAME
46
+ };
47
+ function setOpinlyConfig(newConfig) {
48
+ opinlyConfig = { ...opinlyConfig, ...newConfig };
49
+ }
50
+ // Annotate the CommonJS export names for ESM import in node:
51
+ 0 && (module.exports = {
52
+ opinlyConfig,
53
+ setOpinlyConfig
54
+ });
55
+ //# sourceMappingURL=sdk-config.cjs.map
@@ -0,0 +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_CDN_URL: process.env.OPINLY_CDN_URL as string,\n OPINLY_SITE_NAME: process.env.OPINLY_SITE_NAME as string,\n};\n\nObject.entries(opinlyEnvVars).forEach(([key, value]) => {\n if (!value) {\n throw new Error(`OPINLY ERROR: env var ${key} is not set`);\n }\n});\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} = {\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};\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,gBAAgB,QAAQ,IAAI;AAAA,EAC5B,kBAAkB,QAAQ,IAAI;AAChC;AAEA,OAAO,QAAQ,aAAa,EAAE,QAAQ,CAAC,CAAC,KAAK,KAAK,MAAM;AACtD,MAAI,CAAC,OAAO;AACV,UAAM,IAAI,MAAM,yBAAyB,GAAG,aAAa;AAAA,EAC3D;AACF,CAAC;AAEM,IAAI,eAQP;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;AACxB;AAEO,SAAS,gBAAgB,WAAgC;AAC9D,iBAAe,EAAE,GAAG,cAAc,GAAG,UAAU;AACjD;","names":[]}
@@ -0,0 +1,12 @@
1
+ declare let opinlyConfig: {
2
+ cdnUrl: string;
3
+ imagesPrefix: string;
4
+ imagesUrl: string;
5
+ siteUrl: string;
6
+ blogPrefix: string;
7
+ blogUrl: string;
8
+ siteName: string;
9
+ };
10
+ declare function setOpinlyConfig(newConfig: typeof opinlyConfig): void;
11
+
12
+ export { opinlyConfig, setOpinlyConfig };
@@ -0,0 +1,12 @@
1
+ declare let opinlyConfig: {
2
+ cdnUrl: string;
3
+ imagesPrefix: string;
4
+ imagesUrl: string;
5
+ siteUrl: string;
6
+ blogPrefix: string;
7
+ blogUrl: string;
8
+ siteName: string;
9
+ };
10
+ declare function setOpinlyConfig(newConfig: typeof opinlyConfig): void;
11
+
12
+ export { opinlyConfig, setOpinlyConfig };
@@ -0,0 +1,30 @@
1
+ const siteUrl = process.env.OPINLY_SITE_URL;
2
+ const opinlyEnvVars = {
3
+ OPINLY_IMAGES_PREFIX: process.env.OPINLY_IMAGES_PREFIX,
4
+ OPINLY_SITE_URL: process.env.OPINLY_SITE_URL,
5
+ OPINLY_BLOG_PREFIX: process.env.OPINLY_BLOG_PREFIX,
6
+ OPINLY_CDN_URL: process.env.OPINLY_CDN_URL,
7
+ OPINLY_SITE_NAME: process.env.OPINLY_SITE_NAME
8
+ };
9
+ Object.entries(opinlyEnvVars).forEach(([key, value]) => {
10
+ if (!value) {
11
+ throw new Error(`OPINLY ERROR: env var ${key} is not set`);
12
+ }
13
+ });
14
+ let opinlyConfig = {
15
+ cdnUrl: process.env.OPINLY_CDN_URL || "https://cdn.opinly.ai",
16
+ siteUrl: process.env.OPINLY_SITE_URL,
17
+ imagesPrefix: process.env.OPINLY_IMAGES_PREFIX,
18
+ imagesUrl: `${process.env.OPINLY_SITE_URL}${process.env.OPINLY_IMAGES_PREFIX}`,
19
+ blogPrefix: process.env.OPINLY_BLOG_PREFIX,
20
+ blogUrl: `${process.env.OPINLY_SITE_URL}${process.env.OPINLY_BLOG_PREFIX}`,
21
+ siteName: process.env.OPINLY_SITE_NAME
22
+ };
23
+ function setOpinlyConfig(newConfig) {
24
+ opinlyConfig = { ...opinlyConfig, ...newConfig };
25
+ }
26
+ export {
27
+ opinlyConfig,
28
+ setOpinlyConfig
29
+ };
30
+ //# sourceMappingURL=sdk-config.js.map
@@ -0,0 +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_CDN_URL: process.env.OPINLY_CDN_URL as string,\n OPINLY_SITE_NAME: process.env.OPINLY_SITE_NAME as string,\n};\n\nObject.entries(opinlyEnvVars).forEach(([key, value]) => {\n if (!value) {\n throw new Error(`OPINLY ERROR: env var ${key} is not set`);\n }\n});\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} = {\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};\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,gBAAgB,QAAQ,IAAI;AAAA,EAC5B,kBAAkB,QAAQ,IAAI;AAChC;AAEA,OAAO,QAAQ,aAAa,EAAE,QAAQ,CAAC,CAAC,KAAK,KAAK,MAAM;AACtD,MAAI,CAAC,OAAO;AACV,UAAM,IAAI,MAAM,yBAAyB,GAAG,aAAa;AAAA,EAC3D;AACF,CAAC;AAEM,IAAI,eAQP;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;AACxB;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.8",
3
+ "version": "0.1.10",
4
4
  "type": "module",
5
5
  "private": false,
6
6
  "main": "dist/index.cjs",
@@ -29,7 +29,7 @@
29
29
  "react-syntax-highlighter": "^15.6.1",
30
30
  "schema-dts": "^1.1.5",
31
31
  "tailwind-merge": "^1.14.0",
32
- "@opinly/backend": "0.1.8"
32
+ "@opinly/backend": "0.1.10"
33
33
  },
34
34
  "engines": {
35
35
  "node": ">=16"
@@ -60,6 +60,7 @@
60
60
  },
61
61
  "scripts": {
62
62
  "build": "tsup",
63
+ "dev": "tsup --config tsup.config.ts --watch",
63
64
  "lint": "eslint src/",
64
65
  "clean": "rm -rf .turbo && rm -rf node_modules && rm -rf dist"
65
66
  }
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/components/home-page.tsx"],"sourcesContent":["import Link from \"next/link\";\n\nimport { Opinly } from \"@opinly/backend\";\nimport { PostPreview } from \"./post-preview\";\n\ntype HomePage = Extract<\n Awaited<ReturnType<Opinly[\"content\"][\"blog\"]>>,\n { type: \"home\" }\n>[\"data\"];\n\nexport const HomePage = ({\n homePage,\n page,\n}: {\n homePage: HomePage;\n page: number | null | undefined;\n}) => {\n const { posts, folders, count } = homePage;\n\n console.log(\"posts\", JSON.stringify(posts, null, 2));\n\n const currentPage = page;\n const totalPages = Math.ceil(count / 10);\n\n return (\n <div className=\"max-w-7xl mx-auto px-4 py-10\">\n {/* Posts Grid */}\n <div className=\"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-10\">\n {posts.map((post) => (\n <PostPreview key={post.slug} post={post} />\n ))}\n </div>\n\n {/* Pagination */}\n <div className=\"flex justify-center items-center mt-10 gap-2\">\n {Array.from({ length: totalPages }, (_, i) => i + 1).map((p) => (\n <Link\n key={p}\n href={`?page=${p}`}\n className={`px-3 py-1 border rounded ${\n p === currentPage\n ? \"bg-black text-white\"\n : \"hover:bg-gray-100 text-gray-700\"\n }`}\n >\n {p}\n </Link>\n ))}\n </div>\n\n {/* Folder tags */}\n <div className=\"flex flex-wrap gap-2 mb-10\">\n {folders.map((folder) => (\n <Link\n key={folder.slug}\n href={`/blog/${folder.slug}`}\n className=\"px-4 py-1 bg-gray-100 text-sm rounded-full hover:bg-gray-200\"\n >\n {folder.title}\n </Link>\n ))}\n </div>\n </div>\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAyBI;AAzBJ,kBAAiB;AAGjB,0BAA4B;AAOrB,MAAM,WAAW,CAAC;AAAA,EACvB;AAAA,EACA;AACF,MAGM;AACJ,QAAM,EAAE,OAAO,SAAS,MAAM,IAAI;AAElC,UAAQ,IAAI,SAAS,KAAK,UAAU,OAAO,MAAM,CAAC,CAAC;AAEnD,QAAM,cAAc;AACpB,QAAM,aAAa,KAAK,KAAK,QAAQ,EAAE;AAEvC,SACE,6CAAC,SAAI,WAAU,gCAEb;AAAA,gDAAC,SAAI,WAAU,yDACZ,gBAAM,IAAI,CAAC,SACV,4CAAC,mCAA4B,QAAX,KAAK,IAAkB,CAC1C,GACH;AAAA,IAGA,4CAAC,SAAI,WAAU,gDACZ,gBAAM,KAAK,EAAE,QAAQ,WAAW,GAAG,CAAC,GAAG,MAAM,IAAI,CAAC,EAAE,IAAI,CAAC,MACxD;AAAA,MAAC,YAAAA;AAAA,MAAA;AAAA,QAEC,MAAM,SAAS,CAAC;AAAA,QAChB,WAAW,4BACT,MAAM,cACF,wBACA,iCACN;AAAA,QAEC;AAAA;AAAA,MARI;AAAA,IASP,CACD,GACH;AAAA,IAGA,4CAAC,SAAI,WAAU,8BACZ,kBAAQ,IAAI,CAAC,WACZ;AAAA,MAAC,YAAAA;AAAA,MAAA;AAAA,QAEC,MAAM,SAAS,OAAO,IAAI;AAAA,QAC1B,WAAU;AAAA,QAET,iBAAO;AAAA;AAAA,MAJH,OAAO;AAAA,IAKd,CACD,GACH;AAAA,KACF;AAEJ;","names":["Link"]}
@@ -1,12 +0,0 @@
1
- import * as react_jsx_runtime from 'react/jsx-runtime';
2
- import { Opinly } from '@opinly/backend';
3
-
4
- type HomePage = Extract<Awaited<ReturnType<Opinly["content"]["blog"]>>, {
5
- type: "home";
6
- }>["data"];
7
- declare const HomePage: ({ homePage, page, }: {
8
- homePage: HomePage;
9
- page: number | null | undefined;
10
- }) => react_jsx_runtime.JSX.Element;
11
-
12
- export { HomePage };
@@ -1,12 +0,0 @@
1
- import * as react_jsx_runtime from 'react/jsx-runtime';
2
- import { Opinly } from '@opinly/backend';
3
-
4
- type HomePage = Extract<Awaited<ReturnType<Opinly["content"]["blog"]>>, {
5
- type: "home";
6
- }>["data"];
7
- declare const HomePage: ({ homePage, page, }: {
8
- homePage: HomePage;
9
- page: number | null | undefined;
10
- }) => react_jsx_runtime.JSX.Element;
11
-
12
- export { HomePage };
@@ -1,37 +0,0 @@
1
- import { jsx, jsxs } from "react/jsx-runtime";
2
- import Link from "next/link";
3
- import { PostPreview } from "./post-preview";
4
- const HomePage = ({
5
- homePage,
6
- page
7
- }) => {
8
- const { posts, folders, count } = homePage;
9
- console.log("posts", JSON.stringify(posts, null, 2));
10
- const currentPage = page;
11
- const totalPages = Math.ceil(count / 10);
12
- return /* @__PURE__ */ jsxs("div", { className: "max-w-7xl mx-auto px-4 py-10", children: [
13
- /* @__PURE__ */ jsx("div", { className: "grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-10", children: posts.map((post) => /* @__PURE__ */ jsx(PostPreview, { post }, post.slug)) }),
14
- /* @__PURE__ */ jsx("div", { className: "flex justify-center items-center mt-10 gap-2", children: Array.from({ length: totalPages }, (_, i) => i + 1).map((p) => /* @__PURE__ */ jsx(
15
- Link,
16
- {
17
- href: `?page=${p}`,
18
- className: `px-3 py-1 border rounded ${p === currentPage ? "bg-black text-white" : "hover:bg-gray-100 text-gray-700"}`,
19
- children: p
20
- },
21
- p
22
- )) }),
23
- /* @__PURE__ */ jsx("div", { className: "flex flex-wrap gap-2 mb-10", children: folders.map((folder) => /* @__PURE__ */ jsx(
24
- Link,
25
- {
26
- href: `/blog/${folder.slug}`,
27
- className: "px-4 py-1 bg-gray-100 text-sm rounded-full hover:bg-gray-200",
28
- children: folder.title
29
- },
30
- folder.slug
31
- )) })
32
- ] });
33
- };
34
- export {
35
- HomePage
36
- };
37
- //# sourceMappingURL=home-page.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/components/home-page.tsx"],"sourcesContent":["import Link from \"next/link\";\n\nimport { Opinly } from \"@opinly/backend\";\nimport { PostPreview } from \"./post-preview\";\n\ntype HomePage = Extract<\n Awaited<ReturnType<Opinly[\"content\"][\"blog\"]>>,\n { type: \"home\" }\n>[\"data\"];\n\nexport const HomePage = ({\n homePage,\n page,\n}: {\n homePage: HomePage;\n page: number | null | undefined;\n}) => {\n const { posts, folders, count } = homePage;\n\n console.log(\"posts\", JSON.stringify(posts, null, 2));\n\n const currentPage = page;\n const totalPages = Math.ceil(count / 10);\n\n return (\n <div className=\"max-w-7xl mx-auto px-4 py-10\">\n {/* Posts Grid */}\n <div className=\"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-10\">\n {posts.map((post) => (\n <PostPreview key={post.slug} post={post} />\n ))}\n </div>\n\n {/* Pagination */}\n <div className=\"flex justify-center items-center mt-10 gap-2\">\n {Array.from({ length: totalPages }, (_, i) => i + 1).map((p) => (\n <Link\n key={p}\n href={`?page=${p}`}\n className={`px-3 py-1 border rounded ${\n p === currentPage\n ? \"bg-black text-white\"\n : \"hover:bg-gray-100 text-gray-700\"\n }`}\n >\n {p}\n </Link>\n ))}\n </div>\n\n {/* Folder tags */}\n <div className=\"flex flex-wrap gap-2 mb-10\">\n {folders.map((folder) => (\n <Link\n key={folder.slug}\n href={`/blog/${folder.slug}`}\n className=\"px-4 py-1 bg-gray-100 text-sm rounded-full hover:bg-gray-200\"\n >\n {folder.title}\n </Link>\n ))}\n </div>\n </div>\n );\n};\n"],"mappings":"AAyBI,SAIM,KAJN;AAzBJ,OAAO,UAAU;AAGjB,SAAS,mBAAmB;AAOrB,MAAM,WAAW,CAAC;AAAA,EACvB;AAAA,EACA;AACF,MAGM;AACJ,QAAM,EAAE,OAAO,SAAS,MAAM,IAAI;AAElC,UAAQ,IAAI,SAAS,KAAK,UAAU,OAAO,MAAM,CAAC,CAAC;AAEnD,QAAM,cAAc;AACpB,QAAM,aAAa,KAAK,KAAK,QAAQ,EAAE;AAEvC,SACE,qBAAC,SAAI,WAAU,gCAEb;AAAA,wBAAC,SAAI,WAAU,yDACZ,gBAAM,IAAI,CAAC,SACV,oBAAC,eAA4B,QAAX,KAAK,IAAkB,CAC1C,GACH;AAAA,IAGA,oBAAC,SAAI,WAAU,gDACZ,gBAAM,KAAK,EAAE,QAAQ,WAAW,GAAG,CAAC,GAAG,MAAM,IAAI,CAAC,EAAE,IAAI,CAAC,MACxD;AAAA,MAAC;AAAA;AAAA,QAEC,MAAM,SAAS,CAAC;AAAA,QAChB,WAAW,4BACT,MAAM,cACF,wBACA,iCACN;AAAA,QAEC;AAAA;AAAA,MARI;AAAA,IASP,CACD,GACH;AAAA,IAGA,oBAAC,SAAI,WAAU,8BACZ,kBAAQ,IAAI,CAAC,WACZ;AAAA,MAAC;AAAA;AAAA,QAEC,MAAM,SAAS,OAAO,IAAI;AAAA,QAC1B,WAAU;AAAA,QAET,iBAAO;AAAA;AAAA,MAJH,OAAO;AAAA,IAKd,CACD,GACH;AAAA,KACF;AAEJ;","names":[]}