next-blogpanel 1.0.0

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 (127) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +211 -0
  3. package/dist/admin/index.cjs +3062 -0
  4. package/dist/admin/index.cjs.map +1 -0
  5. package/dist/admin/index.d.cts +51 -0
  6. package/dist/admin/index.d.ts +51 -0
  7. package/dist/admin/index.js +3029 -0
  8. package/dist/admin/index.js.map +1 -0
  9. package/dist/api/categories.cjs +82 -0
  10. package/dist/api/categories.cjs.map +1 -0
  11. package/dist/api/categories.d.cts +27 -0
  12. package/dist/api/categories.d.ts +27 -0
  13. package/dist/api/categories.js +77 -0
  14. package/dist/api/categories.js.map +1 -0
  15. package/dist/api/media-file.cjs +46 -0
  16. package/dist/api/media-file.cjs.map +1 -0
  17. package/dist/api/media-file.d.cts +7 -0
  18. package/dist/api/media-file.d.ts +7 -0
  19. package/dist/api/media-file.js +44 -0
  20. package/dist/api/media-file.js.map +1 -0
  21. package/dist/api/media.cjs +180 -0
  22. package/dist/api/media.cjs.map +1 -0
  23. package/dist/api/media.d.cts +22 -0
  24. package/dist/api/media.d.ts +22 -0
  25. package/dist/api/media.js +176 -0
  26. package/dist/api/media.js.map +1 -0
  27. package/dist/api/posts.cjs +103 -0
  28. package/dist/api/posts.cjs.map +1 -0
  29. package/dist/api/posts.d.cts +27 -0
  30. package/dist/api/posts.d.ts +27 -0
  31. package/dist/api/posts.js +98 -0
  32. package/dist/api/posts.js.map +1 -0
  33. package/dist/api/rss.cjs +25 -0
  34. package/dist/api/rss.cjs.map +1 -0
  35. package/dist/api/rss.d.cts +5 -0
  36. package/dist/api/rss.d.ts +5 -0
  37. package/dist/api/rss.js +23 -0
  38. package/dist/api/rss.js.map +1 -0
  39. package/dist/api/settings.cjs +40 -0
  40. package/dist/api/settings.cjs.map +1 -0
  41. package/dist/api/settings.d.cts +17 -0
  42. package/dist/api/settings.d.ts +17 -0
  43. package/dist/api/settings.js +37 -0
  44. package/dist/api/settings.js.map +1 -0
  45. package/dist/api/sitemap.cjs +25 -0
  46. package/dist/api/sitemap.cjs.map +1 -0
  47. package/dist/api/sitemap.d.cts +5 -0
  48. package/dist/api/sitemap.d.ts +5 -0
  49. package/dist/api/sitemap.js +23 -0
  50. package/dist/api/sitemap.js.map +1 -0
  51. package/dist/api/tokens.cjs +56 -0
  52. package/dist/api/tokens.cjs.map +1 -0
  53. package/dist/api/tokens.d.cts +22 -0
  54. package/dist/api/tokens.d.ts +22 -0
  55. package/dist/api/tokens.js +52 -0
  56. package/dist/api/tokens.js.map +1 -0
  57. package/dist/chunk-2M46MMWN.cjs +76 -0
  58. package/dist/chunk-2M46MMWN.cjs.map +1 -0
  59. package/dist/chunk-4GK22Q3R.cjs +229 -0
  60. package/dist/chunk-4GK22Q3R.cjs.map +1 -0
  61. package/dist/chunk-6PZ772NQ.js +595 -0
  62. package/dist/chunk-6PZ772NQ.js.map +1 -0
  63. package/dist/chunk-BZXPRGLN.cjs +351 -0
  64. package/dist/chunk-BZXPRGLN.cjs.map +1 -0
  65. package/dist/chunk-DAX5C6SC.cjs +86 -0
  66. package/dist/chunk-DAX5C6SC.cjs.map +1 -0
  67. package/dist/chunk-DWNMHQ4I.cjs +57 -0
  68. package/dist/chunk-DWNMHQ4I.cjs.map +1 -0
  69. package/dist/chunk-FPGVR2BX.cjs +121 -0
  70. package/dist/chunk-FPGVR2BX.cjs.map +1 -0
  71. package/dist/chunk-JBP3G4QJ.js +50 -0
  72. package/dist/chunk-JBP3G4QJ.js.map +1 -0
  73. package/dist/chunk-JDP4DIHI.js +215 -0
  74. package/dist/chunk-JDP4DIHI.js.map +1 -0
  75. package/dist/chunk-LIZOVA4W.js +118 -0
  76. package/dist/chunk-LIZOVA4W.js.map +1 -0
  77. package/dist/chunk-QLBTOCT3.js +118 -0
  78. package/dist/chunk-QLBTOCT3.js.map +1 -0
  79. package/dist/chunk-UI2KDZ5H.js +344 -0
  80. package/dist/chunk-UI2KDZ5H.js.map +1 -0
  81. package/dist/chunk-V7QPRX4A.cjs +125 -0
  82. package/dist/chunk-V7QPRX4A.cjs.map +1 -0
  83. package/dist/chunk-VEJFN65Y.js +82 -0
  84. package/dist/chunk-VEJFN65Y.js.map +1 -0
  85. package/dist/chunk-WYZFAI6O.js +74 -0
  86. package/dist/chunk-WYZFAI6O.js.map +1 -0
  87. package/dist/chunk-XLYTATRQ.cjs +637 -0
  88. package/dist/chunk-XLYTATRQ.cjs.map +1 -0
  89. package/dist/cli/index.cjs +2036 -0
  90. package/dist/components/index.cjs +647 -0
  91. package/dist/components/index.cjs.map +1 -0
  92. package/dist/components/index.d.cts +187 -0
  93. package/dist/components/index.d.ts +187 -0
  94. package/dist/components/index.js +633 -0
  95. package/dist/components/index.js.map +1 -0
  96. package/dist/db-M3KXLBUP.js +3 -0
  97. package/dist/db-M3KXLBUP.js.map +1 -0
  98. package/dist/db-TDCZNY3Q.cjs +112 -0
  99. package/dist/db-TDCZNY3Q.cjs.map +1 -0
  100. package/dist/editor/index.cjs +1126 -0
  101. package/dist/editor/index.cjs.map +1 -0
  102. package/dist/editor/index.d.cts +137 -0
  103. package/dist/editor/index.d.ts +137 -0
  104. package/dist/editor/index.js +1093 -0
  105. package/dist/editor/index.js.map +1 -0
  106. package/dist/index-BcNka7gK.d.cts +475 -0
  107. package/dist/index-DPRgaNEE.d.ts +475 -0
  108. package/dist/index.cjs +433 -0
  109. package/dist/index.cjs.map +1 -0
  110. package/dist/index.d.cts +27 -0
  111. package/dist/index.d.ts +27 -0
  112. package/dist/index.js +209 -0
  113. package/dist/index.js.map +1 -0
  114. package/dist/lib/index.cjs +193 -0
  115. package/dist/lib/index.cjs.map +1 -0
  116. package/dist/lib/index.d.cts +4 -0
  117. package/dist/lib/index.d.ts +4 -0
  118. package/dist/lib/index.js +8 -0
  119. package/dist/lib/index.js.map +1 -0
  120. package/dist/styles/admin.css +667 -0
  121. package/dist/styles/blog.css +851 -0
  122. package/dist/styles/editor.css +452 -0
  123. package/dist/styles/globals.css +270 -0
  124. package/dist/styles/prose.css +299 -0
  125. package/dist/types-CgrBuig-.d.cts +778 -0
  126. package/dist/types-CgrBuig-.d.ts +778 -0
  127. package/package.json +140 -0
package/dist/index.js ADDED
@@ -0,0 +1,209 @@
1
+ export { calculateSEOScore, generateBreadcrumbs, generateFAQStructuredData, generateMetaTags, generateStructuredData, searchPosts } from './chunk-UI2KDZ5H.js';
2
+ export { generateSitemap } from './chunk-WYZFAI6O.js';
3
+ export { absoluteUrl, generateRSSFeed, isAbsoluteUrl } from './chunk-VEJFN65Y.js';
4
+ export { ImageTooLargeError, processImage } from './chunk-LIZOVA4W.js';
5
+ export { BUILT_IN_PROVIDER_NAMES, GridFSStorageProvider, R2StorageProvider, StorageProviderNotRegisteredError, generateKey, getStorageProvider, getStorageProviderByName, isStorageProviderRegistered, listStorageProviderNames, registerStorageProvider, unregisterStorageProvider } from './chunk-JDP4DIHI.js';
6
+ export { ConfigNotInstalledError, calculateReadingTime, countWords, createCategory, createMedia, createPost, defineConfig, deleteCategory, deleteMedia, deletePost, ensureIndexes, ensureUniqueSlug, extractTextFromBlocks, extractTextFromHTML, generateSlug, getBlogConfig, getCategoryBySlug, getCollection, getConfig, getDb, getEnvConfig, getPostById, getPostBySlug, getSettings, isConfigInstalled, listCategories, listMedia, listPosts, setConfig, updateCategory, updatePost, updateSettings } from './chunk-6PZ772NQ.js';
7
+
8
+ // src/editor/renderer.ts
9
+ function renderBlocksToHTML(doc) {
10
+ if (!doc.content) return "";
11
+ return doc.content.map(renderNode).join("");
12
+ }
13
+ function renderNode(node) {
14
+ switch (node.type) {
15
+ case "paragraph":
16
+ return `<p>${renderInline(node)}</p>`;
17
+ case "heading": {
18
+ const level = node.attrs?.level || 2;
19
+ const text = renderInline(node);
20
+ const id = slugify(stripTags(text));
21
+ return `<h${level} id="${id}">${text}</h${level}>`;
22
+ }
23
+ case "bulletList":
24
+ return `<ul>${renderChildren(node)}</ul>`;
25
+ case "orderedList":
26
+ return `<ol>${renderChildren(node)}</ol>`;
27
+ case "listItem":
28
+ return `<li>${renderChildren(node)}</li>`;
29
+ case "taskList":
30
+ return `<ul class="nbp-task-list">${renderChildren(node)}</ul>`;
31
+ case "taskItem": {
32
+ const checked = node.attrs?.checked ? "checked" : "";
33
+ return `<li class="nbp-task-item" data-checked="${checked}"><input type="checkbox" ${checked} disabled />${renderChildren(node)}</li>`;
34
+ }
35
+ case "blockquote":
36
+ return `<blockquote>${renderChildren(node)}</blockquote>`;
37
+ case "codeBlock": {
38
+ const lang = node.attrs?.language || "plaintext";
39
+ const filename = node.attrs?.filename;
40
+ const code = escapeHtml(getTextContent(node));
41
+ const header = filename ? `<div class="nbp-code-header">${escapeHtml(filename)}</div>` : "";
42
+ return `${header}<pre><code class="language-${lang}">${code}</code></pre>`;
43
+ }
44
+ case "image": {
45
+ const src = node.attrs?.src || "";
46
+ const alt = node.attrs?.alt || "";
47
+ const caption = node.attrs?.caption;
48
+ const width = node.attrs?.width;
49
+ const height = node.attrs?.height;
50
+ let img = `<img src="${escapeAttr(src)}" alt="${escapeAttr(alt)}"`;
51
+ if (width) img += ` width="${width}"`;
52
+ if (height) img += ` height="${height}"`;
53
+ img += ' loading="lazy" />';
54
+ if (caption) {
55
+ return `<figure>${img}<figcaption>${escapeHtml(caption)}</figcaption></figure>`;
56
+ }
57
+ return img;
58
+ }
59
+ case "horizontalRule":
60
+ return "<hr />";
61
+ case "table":
62
+ return `<table>${renderChildren(node)}</table>`;
63
+ case "tableRow":
64
+ return `<tr>${renderChildren(node)}</tr>`;
65
+ case "tableHeader":
66
+ return `<th>${renderInline(node)}</th>`;
67
+ case "tableCell":
68
+ return `<td>${renderInline(node)}</td>`;
69
+ case "callout": {
70
+ const calloutType = node.attrs?.type || "info";
71
+ const icons = {
72
+ info: "\u2139\uFE0F",
73
+ warning: "\u26A0\uFE0F",
74
+ tip: "\u{1F4A1}",
75
+ danger: "\u{1F6A8}"
76
+ };
77
+ return `<div class="nbp-callout nbp-callout-${calloutType}"><span class="nbp-callout-icon">${icons[calloutType] || ""}</span><div class="nbp-callout-content">${renderChildren(node)}</div></div>`;
78
+ }
79
+ case "faq":
80
+ return `<div class="nbp-faq" itemscope itemtype="https://schema.org/FAQPage">${renderChildren(node)}</div>`;
81
+ case "faqItem":
82
+ return `<div class="nbp-faq-item" itemscope itemprop="mainEntity" itemtype="https://schema.org/Question">${renderChildren(node)}</div>`;
83
+ case "faqQuestion":
84
+ return `<h3 itemprop="name">${renderInline(node)}</h3>`;
85
+ case "faqAnswer":
86
+ return `<div itemprop="acceptedAnswer" itemscope itemtype="https://schema.org/Answer"><div itemprop="text">${renderChildren(node)}</div></div>`;
87
+ case "tableOfContents":
88
+ return '<div data-toc="true" class="nbp-toc"></div>';
89
+ case "html":
90
+ return getTextContent(node);
91
+ case "embed": {
92
+ const embedUrl = node.attrs?.src || "";
93
+ return `<div class="nbp-embed"><iframe src="${escapeAttr(embedUrl)}" frameborder="0" allowfullscreen loading="lazy"></iframe></div>`;
94
+ }
95
+ case "text":
96
+ return renderTextNode(node);
97
+ case "hardBreak":
98
+ return "<br />";
99
+ default:
100
+ if (node.content) return renderChildren(node);
101
+ if (node.text) return escapeHtml(node.text);
102
+ return "";
103
+ }
104
+ }
105
+ function renderChildren(node) {
106
+ if (!node.content) return "";
107
+ return node.content.map(renderNode).join("");
108
+ }
109
+ function renderInline(node) {
110
+ if (!node.content) return "";
111
+ return node.content.map(renderNode).join("");
112
+ }
113
+ function renderTextNode(node) {
114
+ let text = escapeHtml(node.text || "");
115
+ if (node.marks) {
116
+ for (const mark of node.marks) {
117
+ switch (mark.type) {
118
+ case "bold":
119
+ text = `<strong>${text}</strong>`;
120
+ break;
121
+ case "italic":
122
+ text = `<em>${text}</em>`;
123
+ break;
124
+ case "strike":
125
+ text = `<s>${text}</s>`;
126
+ break;
127
+ case "code":
128
+ text = `<code>${text}</code>`;
129
+ break;
130
+ case "underline":
131
+ text = `<u>${text}</u>`;
132
+ break;
133
+ case "highlight":
134
+ text = `<mark>${text}</mark>`;
135
+ break;
136
+ case "link": {
137
+ const href = mark.attrs?.href || "";
138
+ const target = href.startsWith("http") ? ' target="_blank" rel="noopener noreferrer"' : "";
139
+ text = `<a href="${escapeAttr(href)}"${target}>${text}</a>`;
140
+ break;
141
+ }
142
+ }
143
+ }
144
+ }
145
+ return text;
146
+ }
147
+ function getTextContent(node) {
148
+ if (node.text) return node.text;
149
+ if (!node.content) return "";
150
+ return node.content.map(getTextContent).join("");
151
+ }
152
+ function escapeHtml(str) {
153
+ return str.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;");
154
+ }
155
+ function escapeAttr(str) {
156
+ return str.replace(/"/g, "&quot;").replace(/&/g, "&amp;");
157
+ }
158
+ function stripTags(html) {
159
+ return html.replace(/<[^>]+>/g, "");
160
+ }
161
+ function slugify(text) {
162
+ return text.toLowerCase().trim().replace(/[^\w\s-]/g, "").replace(/[\s_]+/g, "-").replace(/-+/g, "-");
163
+ }
164
+ function extractHeadings(doc) {
165
+ const headings = [];
166
+ function walk(node) {
167
+ if (node.type === "heading") {
168
+ const text = getTextContent(node);
169
+ headings.push({
170
+ id: slugify(text),
171
+ text,
172
+ level: node.attrs?.level || 2
173
+ });
174
+ }
175
+ if (node.content) {
176
+ node.content.forEach(walk);
177
+ }
178
+ }
179
+ if (doc.content) {
180
+ doc.content.forEach(walk);
181
+ }
182
+ return headings;
183
+ }
184
+ function extractFAQItems(doc) {
185
+ const items = [];
186
+ function walk(node) {
187
+ if (node.type === "faqItem" && node.content) {
188
+ const question = node.content.find((c) => c.type === "faqQuestion");
189
+ const answer = node.content.find((c) => c.type === "faqAnswer");
190
+ if (question && answer) {
191
+ items.push({
192
+ question: getTextContent(question),
193
+ answer: renderChildren(answer)
194
+ });
195
+ }
196
+ }
197
+ if (node.content) {
198
+ node.content.forEach(walk);
199
+ }
200
+ }
201
+ if (doc.content) {
202
+ doc.content.forEach(walk);
203
+ }
204
+ return items;
205
+ }
206
+
207
+ export { extractFAQItems, extractHeadings, renderBlocksToHTML };
208
+ //# sourceMappingURL=index.js.map
209
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/editor/renderer.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["import type { BlockContent } from '../lib/types';\n\nexport function renderBlocksToHTML(doc: { type: string; content?: BlockContent[] }): string {\n if (!doc.content) return '';\n return doc.content.map(renderNode).join('');\n}\n\nfunction renderNode(node: BlockContent): string {\n switch (node.type) {\n case 'paragraph':\n return `<p>${renderInline(node)}</p>`;\n\n case 'heading': {\n const level = (node.attrs?.level as number) || 2;\n const text = renderInline(node);\n const id = slugify(stripTags(text));\n return `<h${level} id=\"${id}\">${text}</h${level}>`;\n }\n\n case 'bulletList':\n return `<ul>${renderChildren(node)}</ul>`;\n\n case 'orderedList':\n return `<ol>${renderChildren(node)}</ol>`;\n\n case 'listItem':\n return `<li>${renderChildren(node)}</li>`;\n\n case 'taskList':\n return `<ul class=\"nbp-task-list\">${renderChildren(node)}</ul>`;\n\n case 'taskItem': {\n const checked = node.attrs?.checked ? 'checked' : '';\n return `<li class=\"nbp-task-item\" data-checked=\"${checked}\"><input type=\"checkbox\" ${checked} disabled />${renderChildren(node)}</li>`;\n }\n\n case 'blockquote':\n return `<blockquote>${renderChildren(node)}</blockquote>`;\n\n case 'codeBlock': {\n const lang = (node.attrs?.language as string) || 'plaintext';\n const filename = node.attrs?.filename as string;\n const code = escapeHtml(getTextContent(node));\n const header = filename ? `<div class=\"nbp-code-header\">${escapeHtml(filename)}</div>` : '';\n return `${header}<pre><code class=\"language-${lang}\">${code}</code></pre>`;\n }\n\n case 'image': {\n const src = node.attrs?.src as string || '';\n const alt = node.attrs?.alt as string || '';\n const caption = node.attrs?.caption as string;\n const width = node.attrs?.width;\n const height = node.attrs?.height;\n let img = `<img src=\"${escapeAttr(src)}\" alt=\"${escapeAttr(alt)}\"`;\n if (width) img += ` width=\"${width}\"`;\n if (height) img += ` height=\"${height}\"`;\n img += ' loading=\"lazy\" />';\n if (caption) {\n return `<figure>${img}<figcaption>${escapeHtml(caption)}</figcaption></figure>`;\n }\n return img;\n }\n\n case 'horizontalRule':\n return '<hr />';\n\n case 'table':\n return `<table>${renderChildren(node)}</table>`;\n\n case 'tableRow':\n return `<tr>${renderChildren(node)}</tr>`;\n\n case 'tableHeader':\n return `<th>${renderInline(node)}</th>`;\n\n case 'tableCell':\n return `<td>${renderInline(node)}</td>`;\n\n case 'callout': {\n const calloutType = (node.attrs?.type as string) || 'info';\n const icons: Record<string, string> = {\n info: 'ℹ️',\n warning: '⚠️',\n tip: '💡',\n danger: '🚨',\n };\n return `<div class=\"nbp-callout nbp-callout-${calloutType}\"><span class=\"nbp-callout-icon\">${icons[calloutType] || ''}</span><div class=\"nbp-callout-content\">${renderChildren(node)}</div></div>`;\n }\n\n case 'faq':\n return `<div class=\"nbp-faq\" itemscope itemtype=\"https://schema.org/FAQPage\">${renderChildren(node)}</div>`;\n\n case 'faqItem':\n return `<div class=\"nbp-faq-item\" itemscope itemprop=\"mainEntity\" itemtype=\"https://schema.org/Question\">${renderChildren(node)}</div>`;\n\n case 'faqQuestion':\n return `<h3 itemprop=\"name\">${renderInline(node)}</h3>`;\n\n case 'faqAnswer':\n return `<div itemprop=\"acceptedAnswer\" itemscope itemtype=\"https://schema.org/Answer\"><div itemprop=\"text\">${renderChildren(node)}</div></div>`;\n\n case 'tableOfContents':\n return '<div data-toc=\"true\" class=\"nbp-toc\"></div>';\n\n case 'html':\n return getTextContent(node);\n\n case 'embed': {\n const embedUrl = node.attrs?.src as string || '';\n return `<div class=\"nbp-embed\"><iframe src=\"${escapeAttr(embedUrl)}\" frameborder=\"0\" allowfullscreen loading=\"lazy\"></iframe></div>`;\n }\n\n case 'text':\n return renderTextNode(node);\n\n case 'hardBreak':\n return '<br />';\n\n default:\n if (node.content) return renderChildren(node);\n if (node.text) return escapeHtml(node.text);\n return '';\n }\n}\n\nfunction renderChildren(node: BlockContent): string {\n if (!node.content) return '';\n return node.content.map(renderNode).join('');\n}\n\nfunction renderInline(node: BlockContent): string {\n if (!node.content) return '';\n return node.content.map(renderNode).join('');\n}\n\nfunction renderTextNode(node: BlockContent): string {\n let text = escapeHtml(node.text || '');\n\n if (node.marks) {\n for (const mark of node.marks) {\n switch (mark.type) {\n case 'bold':\n text = `<strong>${text}</strong>`;\n break;\n case 'italic':\n text = `<em>${text}</em>`;\n break;\n case 'strike':\n text = `<s>${text}</s>`;\n break;\n case 'code':\n text = `<code>${text}</code>`;\n break;\n case 'underline':\n text = `<u>${text}</u>`;\n break;\n case 'highlight':\n text = `<mark>${text}</mark>`;\n break;\n case 'link': {\n const href = mark.attrs?.href as string || '';\n const target = href.startsWith('http') ? ' target=\"_blank\" rel=\"noopener noreferrer\"' : '';\n text = `<a href=\"${escapeAttr(href)}\"${target}>${text}</a>`;\n break;\n }\n }\n }\n }\n\n return text;\n}\n\nfunction getTextContent(node: BlockContent): string {\n if (node.text) return node.text;\n if (!node.content) return '';\n return node.content.map(getTextContent).join('');\n}\n\nfunction escapeHtml(str: string): string {\n return str\n .replace(/&/g, '&amp;')\n .replace(/</g, '&lt;')\n .replace(/>/g, '&gt;')\n .replace(/\"/g, '&quot;');\n}\n\nfunction escapeAttr(str: string): string {\n return str.replace(/\"/g, '&quot;').replace(/&/g, '&amp;');\n}\n\nfunction stripTags(html: string): string {\n return html.replace(/<[^>]+>/g, '');\n}\n\nfunction slugify(text: string): string {\n return text\n .toLowerCase()\n .trim()\n .replace(/[^\\w\\s-]/g, '')\n .replace(/[\\s_]+/g, '-')\n .replace(/-+/g, '-');\n}\n\nexport function extractHeadings(\n doc: { type: string; content?: BlockContent[] }\n): { id: string; text: string; level: number }[] {\n const headings: { id: string; text: string; level: number }[] = [];\n\n function walk(node: BlockContent) {\n if (node.type === 'heading') {\n const text = getTextContent(node);\n headings.push({\n id: slugify(text),\n text,\n level: (node.attrs?.level as number) || 2,\n });\n }\n if (node.content) {\n node.content.forEach(walk);\n }\n }\n\n if (doc.content) {\n doc.content.forEach(walk);\n }\n\n return headings;\n}\n\nexport function extractFAQItems(\n doc: { type: string; content?: BlockContent[] }\n): { question: string; answer: string }[] {\n const items: { question: string; answer: string }[] = [];\n\n function walk(node: BlockContent) {\n if (node.type === 'faqItem' && node.content) {\n const question = node.content.find((c) => c.type === 'faqQuestion');\n const answer = node.content.find((c) => c.type === 'faqAnswer');\n if (question && answer) {\n items.push({\n question: getTextContent(question),\n answer: renderChildren(answer),\n });\n }\n }\n if (node.content) {\n node.content.forEach(walk);\n }\n }\n\n if (doc.content) {\n doc.content.forEach(walk);\n }\n\n return items;\n}\n"]}
@@ -0,0 +1,193 @@
1
+ 'use strict';
2
+
3
+ var chunkBZXPRGLN_cjs = require('../chunk-BZXPRGLN.cjs');
4
+ var chunk2M46MMWN_cjs = require('../chunk-2M46MMWN.cjs');
5
+ var chunkDAX5C6SC_cjs = require('../chunk-DAX5C6SC.cjs');
6
+ var chunkFPGVR2BX_cjs = require('../chunk-FPGVR2BX.cjs');
7
+ var chunk4GK22Q3R_cjs = require('../chunk-4GK22Q3R.cjs');
8
+ var chunkXLYTATRQ_cjs = require('../chunk-XLYTATRQ.cjs');
9
+
10
+
11
+
12
+ Object.defineProperty(exports, "calculateSEOScore", {
13
+ enumerable: true,
14
+ get: function () { return chunkBZXPRGLN_cjs.calculateSEOScore; }
15
+ });
16
+ Object.defineProperty(exports, "generateBreadcrumbs", {
17
+ enumerable: true,
18
+ get: function () { return chunkBZXPRGLN_cjs.generateBreadcrumbs; }
19
+ });
20
+ Object.defineProperty(exports, "generateFAQStructuredData", {
21
+ enumerable: true,
22
+ get: function () { return chunkBZXPRGLN_cjs.generateFAQStructuredData; }
23
+ });
24
+ Object.defineProperty(exports, "generateMetaTags", {
25
+ enumerable: true,
26
+ get: function () { return chunkBZXPRGLN_cjs.generateMetaTags; }
27
+ });
28
+ Object.defineProperty(exports, "generateStructuredData", {
29
+ enumerable: true,
30
+ get: function () { return chunkBZXPRGLN_cjs.generateStructuredData; }
31
+ });
32
+ Object.defineProperty(exports, "searchPosts", {
33
+ enumerable: true,
34
+ get: function () { return chunkBZXPRGLN_cjs.searchPosts; }
35
+ });
36
+ Object.defineProperty(exports, "generateSitemap", {
37
+ enumerable: true,
38
+ get: function () { return chunk2M46MMWN_cjs.generateSitemap; }
39
+ });
40
+ Object.defineProperty(exports, "absoluteUrl", {
41
+ enumerable: true,
42
+ get: function () { return chunkDAX5C6SC_cjs.absoluteUrl; }
43
+ });
44
+ Object.defineProperty(exports, "generateRSSFeed", {
45
+ enumerable: true,
46
+ get: function () { return chunkDAX5C6SC_cjs.generateRSSFeed; }
47
+ });
48
+ Object.defineProperty(exports, "isAbsoluteUrl", {
49
+ enumerable: true,
50
+ get: function () { return chunkDAX5C6SC_cjs.isAbsoluteUrl; }
51
+ });
52
+ Object.defineProperty(exports, "ImageTooLargeError", {
53
+ enumerable: true,
54
+ get: function () { return chunkFPGVR2BX_cjs.ImageTooLargeError; }
55
+ });
56
+ Object.defineProperty(exports, "processImage", {
57
+ enumerable: true,
58
+ get: function () { return chunkFPGVR2BX_cjs.processImage; }
59
+ });
60
+ Object.defineProperty(exports, "BUILT_IN_PROVIDER_NAMES", {
61
+ enumerable: true,
62
+ get: function () { return chunk4GK22Q3R_cjs.BUILT_IN_PROVIDER_NAMES; }
63
+ });
64
+ Object.defineProperty(exports, "GridFSStorageProvider", {
65
+ enumerable: true,
66
+ get: function () { return chunk4GK22Q3R_cjs.GridFSStorageProvider; }
67
+ });
68
+ Object.defineProperty(exports, "R2StorageProvider", {
69
+ enumerable: true,
70
+ get: function () { return chunk4GK22Q3R_cjs.R2StorageProvider; }
71
+ });
72
+ Object.defineProperty(exports, "StorageProviderNotRegisteredError", {
73
+ enumerable: true,
74
+ get: function () { return chunk4GK22Q3R_cjs.StorageProviderNotRegisteredError; }
75
+ });
76
+ Object.defineProperty(exports, "generateKey", {
77
+ enumerable: true,
78
+ get: function () { return chunk4GK22Q3R_cjs.generateKey; }
79
+ });
80
+ Object.defineProperty(exports, "getStorageProvider", {
81
+ enumerable: true,
82
+ get: function () { return chunk4GK22Q3R_cjs.getStorageProvider; }
83
+ });
84
+ Object.defineProperty(exports, "getStorageProviderByName", {
85
+ enumerable: true,
86
+ get: function () { return chunk4GK22Q3R_cjs.getStorageProviderByName; }
87
+ });
88
+ Object.defineProperty(exports, "isStorageProviderRegistered", {
89
+ enumerable: true,
90
+ get: function () { return chunk4GK22Q3R_cjs.isStorageProviderRegistered; }
91
+ });
92
+ Object.defineProperty(exports, "listStorageProviderNames", {
93
+ enumerable: true,
94
+ get: function () { return chunk4GK22Q3R_cjs.listStorageProviderNames; }
95
+ });
96
+ Object.defineProperty(exports, "registerStorageProvider", {
97
+ enumerable: true,
98
+ get: function () { return chunk4GK22Q3R_cjs.registerStorageProvider; }
99
+ });
100
+ Object.defineProperty(exports, "unregisterStorageProvider", {
101
+ enumerable: true,
102
+ get: function () { return chunk4GK22Q3R_cjs.unregisterStorageProvider; }
103
+ });
104
+ Object.defineProperty(exports, "ConfigNotInstalledError", {
105
+ enumerable: true,
106
+ get: function () { return chunkXLYTATRQ_cjs.ConfigNotInstalledError; }
107
+ });
108
+ Object.defineProperty(exports, "calculateReadingTime", {
109
+ enumerable: true,
110
+ get: function () { return chunkXLYTATRQ_cjs.calculateReadingTime; }
111
+ });
112
+ Object.defineProperty(exports, "countWords", {
113
+ enumerable: true,
114
+ get: function () { return chunkXLYTATRQ_cjs.countWords; }
115
+ });
116
+ Object.defineProperty(exports, "defineConfig", {
117
+ enumerable: true,
118
+ get: function () { return chunkXLYTATRQ_cjs.defineConfig; }
119
+ });
120
+ Object.defineProperty(exports, "ensureIndexes", {
121
+ enumerable: true,
122
+ get: function () { return chunkXLYTATRQ_cjs.ensureIndexes; }
123
+ });
124
+ Object.defineProperty(exports, "ensureUniqueSlug", {
125
+ enumerable: true,
126
+ get: function () { return chunkXLYTATRQ_cjs.ensureUniqueSlug; }
127
+ });
128
+ Object.defineProperty(exports, "extractTextFromBlocks", {
129
+ enumerable: true,
130
+ get: function () { return chunkXLYTATRQ_cjs.extractTextFromBlocks; }
131
+ });
132
+ Object.defineProperty(exports, "extractTextFromHTML", {
133
+ enumerable: true,
134
+ get: function () { return chunkXLYTATRQ_cjs.extractTextFromHTML; }
135
+ });
136
+ Object.defineProperty(exports, "generateSlug", {
137
+ enumerable: true,
138
+ get: function () { return chunkXLYTATRQ_cjs.generateSlug; }
139
+ });
140
+ Object.defineProperty(exports, "getBlogConfig", {
141
+ enumerable: true,
142
+ get: function () { return chunkXLYTATRQ_cjs.getBlogConfig; }
143
+ });
144
+ Object.defineProperty(exports, "getCategoryBySlug", {
145
+ enumerable: true,
146
+ get: function () { return chunkXLYTATRQ_cjs.getCategoryBySlug; }
147
+ });
148
+ Object.defineProperty(exports, "getCollection", {
149
+ enumerable: true,
150
+ get: function () { return chunkXLYTATRQ_cjs.getCollection; }
151
+ });
152
+ Object.defineProperty(exports, "getConfig", {
153
+ enumerable: true,
154
+ get: function () { return chunkXLYTATRQ_cjs.getConfig; }
155
+ });
156
+ Object.defineProperty(exports, "getDb", {
157
+ enumerable: true,
158
+ get: function () { return chunkXLYTATRQ_cjs.getDb; }
159
+ });
160
+ Object.defineProperty(exports, "getEnvConfig", {
161
+ enumerable: true,
162
+ get: function () { return chunkXLYTATRQ_cjs.getEnvConfig; }
163
+ });
164
+ Object.defineProperty(exports, "getPostById", {
165
+ enumerable: true,
166
+ get: function () { return chunkXLYTATRQ_cjs.getPostById; }
167
+ });
168
+ Object.defineProperty(exports, "getPostBySlug", {
169
+ enumerable: true,
170
+ get: function () { return chunkXLYTATRQ_cjs.getPostBySlug; }
171
+ });
172
+ Object.defineProperty(exports, "isConfigInstalled", {
173
+ enumerable: true,
174
+ get: function () { return chunkXLYTATRQ_cjs.isConfigInstalled; }
175
+ });
176
+ Object.defineProperty(exports, "isR2Configured", {
177
+ enumerable: true,
178
+ get: function () { return chunkXLYTATRQ_cjs.isR2Configured; }
179
+ });
180
+ Object.defineProperty(exports, "listCategories", {
181
+ enumerable: true,
182
+ get: function () { return chunkXLYTATRQ_cjs.listCategories; }
183
+ });
184
+ Object.defineProperty(exports, "listPosts", {
185
+ enumerable: true,
186
+ get: function () { return chunkXLYTATRQ_cjs.listPosts; }
187
+ });
188
+ Object.defineProperty(exports, "setConfig", {
189
+ enumerable: true,
190
+ get: function () { return chunkXLYTATRQ_cjs.setConfig; }
191
+ });
192
+ //# sourceMappingURL=index.cjs.map
193
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"index.cjs"}
@@ -0,0 +1,4 @@
1
+ export { B as BUILT_IN_PROVIDER_NAMES, C as ConfigNotInstalledError, G as GridFSStorageProvider, I as ImageTooLargeError, M as MediaUploadResult, P as ProcessedImage, R as R2StorageProvider, S as StorageObject, a as StorageProvider, b as StorageProviderNotRegisteredError, c as absoluteUrl, d as calculateReadingTime, e as calculateSEOScore, f as countWords, j as defineConfig, n as ensureIndexes, o as ensureUniqueSlug, p as extractTextFromBlocks, q as extractTextFromHTML, r as generateBreadcrumbs, s as generateFAQStructuredData, t as generateKey, u as generateMetaTags, v as generateRSSFeed, w as generateSitemap, x as generateSlug, y as generateStructuredData, z as getBlogConfig, A as getCategoryBySlug, D as getCollection, E as getConfig, F as getDb, H as getEnvConfig, J as getPostById, K as getPostBySlug, N as getStorageProvider, O as getStorageProviderByName, Q as isAbsoluteUrl, T as isConfigInstalled, a5 as isR2Configured, U as isStorageProviderRegistered, V as listCategories, X as listPosts, Y as listStorageProviderNames, Z as processImage, _ as registerStorageProvider, $ as searchPosts, a0 as setConfig, a1 as unregisterStorageProvider } from '../index-BcNka7gK.cjs';
2
+ export { A as ApiErrorResponse, a as ApiResponse, b as ApiSuccessResponse, s as ApiToken, c as Author, t as AuthorSchema, B as BlockContent, d as BlockType, u as BlockTypeSchema, e as BlogPanelConfig, f as BlogPanelUserConfig, g as BlogPost, h as BlogSettings, v as BlogSettingsSchema, C as Category, w as CreateApiTokenSchema, i as CreateCategoryInput, x as CreateCategorySchema, j as CreatePostInput, y as CreatePostSchema, M as Media, k as MediaListQuery, l as MediaReference, z as MediaSchema, P as PostListQuery, m as PostSEO, D as PostSEOSchema, n as PostStatus, E as PostStatusSchema, R as Revision, S as SEOCheck, o as SEOCheckStatus, p as SEOOverallScore, q as SEOScore, U as UpdateCategoryInput, F as UpdateCategorySchema, r as UpdatePostInput, G as UpdatePostSchema } from '../types-CgrBuig-.cjs';
3
+ import 'zod';
4
+ import 'mongodb';
@@ -0,0 +1,4 @@
1
+ export { B as BUILT_IN_PROVIDER_NAMES, C as ConfigNotInstalledError, G as GridFSStorageProvider, I as ImageTooLargeError, M as MediaUploadResult, P as ProcessedImage, R as R2StorageProvider, S as StorageObject, a as StorageProvider, b as StorageProviderNotRegisteredError, c as absoluteUrl, d as calculateReadingTime, e as calculateSEOScore, f as countWords, j as defineConfig, n as ensureIndexes, o as ensureUniqueSlug, p as extractTextFromBlocks, q as extractTextFromHTML, r as generateBreadcrumbs, s as generateFAQStructuredData, t as generateKey, u as generateMetaTags, v as generateRSSFeed, w as generateSitemap, x as generateSlug, y as generateStructuredData, z as getBlogConfig, A as getCategoryBySlug, D as getCollection, E as getConfig, F as getDb, H as getEnvConfig, J as getPostById, K as getPostBySlug, N as getStorageProvider, O as getStorageProviderByName, Q as isAbsoluteUrl, T as isConfigInstalled, a5 as isR2Configured, U as isStorageProviderRegistered, V as listCategories, X as listPosts, Y as listStorageProviderNames, Z as processImage, _ as registerStorageProvider, $ as searchPosts, a0 as setConfig, a1 as unregisterStorageProvider } from '../index-DPRgaNEE.js';
2
+ export { A as ApiErrorResponse, a as ApiResponse, b as ApiSuccessResponse, s as ApiToken, c as Author, t as AuthorSchema, B as BlockContent, d as BlockType, u as BlockTypeSchema, e as BlogPanelConfig, f as BlogPanelUserConfig, g as BlogPost, h as BlogSettings, v as BlogSettingsSchema, C as Category, w as CreateApiTokenSchema, i as CreateCategoryInput, x as CreateCategorySchema, j as CreatePostInput, y as CreatePostSchema, M as Media, k as MediaListQuery, l as MediaReference, z as MediaSchema, P as PostListQuery, m as PostSEO, D as PostSEOSchema, n as PostStatus, E as PostStatusSchema, R as Revision, S as SEOCheck, o as SEOCheckStatus, p as SEOOverallScore, q as SEOScore, U as UpdateCategoryInput, F as UpdateCategorySchema, r as UpdatePostInput, G as UpdatePostSchema } from '../types-CgrBuig-.js';
3
+ import 'zod';
4
+ import 'mongodb';
@@ -0,0 +1,8 @@
1
+ export { calculateSEOScore, generateBreadcrumbs, generateFAQStructuredData, generateMetaTags, generateStructuredData, searchPosts } from '../chunk-UI2KDZ5H.js';
2
+ export { generateSitemap } from '../chunk-WYZFAI6O.js';
3
+ export { absoluteUrl, generateRSSFeed, isAbsoluteUrl } from '../chunk-VEJFN65Y.js';
4
+ export { ImageTooLargeError, processImage } from '../chunk-LIZOVA4W.js';
5
+ export { BUILT_IN_PROVIDER_NAMES, GridFSStorageProvider, R2StorageProvider, StorageProviderNotRegisteredError, generateKey, getStorageProvider, getStorageProviderByName, isStorageProviderRegistered, listStorageProviderNames, registerStorageProvider, unregisterStorageProvider } from '../chunk-JDP4DIHI.js';
6
+ export { ConfigNotInstalledError, calculateReadingTime, countWords, defineConfig, ensureIndexes, ensureUniqueSlug, extractTextFromBlocks, extractTextFromHTML, generateSlug, getBlogConfig, getCategoryBySlug, getCollection, getConfig, getDb, getEnvConfig, getPostById, getPostBySlug, isConfigInstalled, isR2Configured, listCategories, listPosts, setConfig } from '../chunk-6PZ772NQ.js';
7
+ //# sourceMappingURL=index.js.map
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"index.js"}