nextblogkit 0.6.2 → 0.7.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +84 -21
- package/dist/admin/index.cjs +656 -115
- package/dist/admin/index.cjs.map +1 -1
- package/dist/admin/index.d.cts +7 -3
- package/dist/admin/index.d.ts +7 -3
- package/dist/admin/index.js +575 -37
- package/dist/admin/index.js.map +1 -1
- package/dist/api/categories.cjs +32 -32
- package/dist/api/categories.cjs.map +1 -1
- package/dist/api/categories.d.cts +1 -1
- package/dist/api/categories.d.ts +1 -1
- package/dist/api/categories.js +6 -6
- package/dist/api/categories.js.map +1 -1
- package/dist/api/media.cjs +37 -30
- package/dist/api/media.cjs.map +1 -1
- package/dist/api/media.d.cts +1 -1
- package/dist/api/media.d.ts +1 -1
- package/dist/api/media.js +13 -6
- package/dist/api/media.js.map +1 -1
- package/dist/api/posts.cjs +39 -39
- package/dist/api/posts.cjs.map +1 -1
- package/dist/api/posts.d.cts +1 -1
- package/dist/api/posts.d.ts +1 -1
- package/dist/api/posts.js +6 -6
- package/dist/api/posts.js.map +1 -1
- package/dist/api/rss.cjs +3 -3
- package/dist/api/rss.js +2 -2
- package/dist/api/settings.cjs +13 -13
- package/dist/api/settings.cjs.map +1 -1
- package/dist/api/settings.d.cts +1 -1
- package/dist/api/settings.d.ts +1 -1
- package/dist/api/settings.js +5 -5
- package/dist/api/settings.js.map +1 -1
- package/dist/api/sitemap.cjs +3 -3
- package/dist/api/sitemap.js +2 -2
- package/dist/api/tokens.cjs +56 -0
- package/dist/api/tokens.cjs.map +1 -0
- package/dist/api/tokens.d.cts +22 -0
- package/dist/api/tokens.d.ts +22 -0
- package/dist/api/tokens.js +52 -0
- package/dist/api/tokens.js.map +1 -0
- package/dist/{chunk-6HKMZOI4.cjs → chunk-3BKPNOES.cjs} +8 -7
- package/dist/chunk-3BKPNOES.cjs.map +1 -0
- package/dist/{chunk-N5MKAD7J.cjs → chunk-DR7QNI32.cjs} +6 -2
- package/dist/chunk-DR7QNI32.cjs.map +1 -0
- package/dist/{chunk-QE4VLQYN.cjs → chunk-F47RPOTU.cjs} +13 -10
- package/dist/chunk-F47RPOTU.cjs.map +1 -0
- package/dist/{chunk-64HUVJOZ.js → chunk-JI2RK6KX.js} +80 -13
- package/dist/chunk-JI2RK6KX.js.map +1 -0
- package/dist/{chunk-R6MO3QIP.js → chunk-NSR7NYSB.js} +6 -5
- package/dist/chunk-NSR7NYSB.js.map +1 -0
- package/dist/{chunk-4PY224XM.js → chunk-O3XES5O2.js} +6 -3
- package/dist/chunk-O3XES5O2.js.map +1 -0
- package/dist/{chunk-4NKOJYWJ.js → chunk-OOUJYUGP.js} +8 -7
- package/dist/chunk-OOUJYUGP.js.map +1 -0
- package/dist/{chunk-A2S32RZN.js → chunk-OWWWTTUT.js} +8 -3
- package/dist/chunk-OWWWTTUT.js.map +1 -0
- package/dist/{chunk-E2QLTHKN.cjs → chunk-QBZLGBHQ.cjs} +11 -10
- package/dist/chunk-QBZLGBHQ.cjs.map +1 -0
- package/dist/{chunk-ZP5XRVVH.cjs → chunk-SUJT6LWH.cjs} +12 -7
- package/dist/chunk-SUJT6LWH.cjs.map +1 -0
- package/dist/{chunk-JM7QRXXK.js → chunk-TVHY4BR2.js} +10 -7
- package/dist/chunk-TVHY4BR2.js.map +1 -0
- package/dist/{chunk-JLPJKNRZ.js → chunk-UMIBGO4S.js} +18 -5
- package/dist/chunk-UMIBGO4S.js.map +1 -0
- package/dist/{chunk-U2ROR6AY.cjs → chunk-VWKVU3SE.cjs} +86 -12
- package/dist/chunk-VWKVU3SE.cjs.map +1 -0
- package/dist/{chunk-KDZER3PU.cjs → chunk-YTJQ426D.cjs} +19 -5
- package/dist/chunk-YTJQ426D.cjs.map +1 -0
- package/dist/cli/index.cjs +90 -19
- package/dist/components/index.cjs +12 -6
- package/dist/components/index.cjs.map +1 -1
- package/dist/components/index.d.cts +2 -1
- package/dist/components/index.d.ts +2 -1
- package/dist/components/index.js +12 -6
- package/dist/components/index.js.map +1 -1
- package/dist/db-OUSQPM53.js +3 -0
- package/dist/db-OUSQPM53.js.map +1 -0
- package/dist/db-RFY6O5UE.cjs +108 -0
- package/dist/db-RFY6O5UE.cjs.map +1 -0
- package/dist/editor/index.cjs +49 -12
- package/dist/editor/index.cjs.map +1 -1
- package/dist/editor/index.d.cts +5 -1
- package/dist/editor/index.d.ts +5 -1
- package/dist/editor/index.js +37 -1
- package/dist/editor/index.js.map +1 -1
- package/dist/{index-vjlZDWNr.d.cts → index-Bk8gOqBq.d.cts} +25 -21
- package/dist/{index-Cgzphklp.d.ts → index-DsnG2kdW.d.ts} +25 -21
- package/dist/index.cjs +47 -47
- package/dist/index.d.cts +3 -3
- package/dist/index.d.ts +3 -3
- package/dist/index.js +5 -5
- package/dist/lib/index.cjs +39 -35
- package/dist/lib/index.d.cts +2 -2
- package/dist/lib/index.d.ts +2 -2
- package/dist/lib/index.js +5 -5
- package/dist/{types-CBEEBR4A.d.ts → types-Cu515Egx.d.cts} +16 -1
- package/dist/{types-CBEEBR4A.d.cts → types-Cu515Egx.d.ts} +16 -1
- package/package.json +1 -1
- package/dist/chunk-4NKOJYWJ.js.map +0 -1
- package/dist/chunk-4PY224XM.js.map +0 -1
- package/dist/chunk-64HUVJOZ.js.map +0 -1
- package/dist/chunk-6HKMZOI4.cjs.map +0 -1
- package/dist/chunk-A2S32RZN.js.map +0 -1
- package/dist/chunk-E2QLTHKN.cjs.map +0 -1
- package/dist/chunk-JLPJKNRZ.js.map +0 -1
- package/dist/chunk-JM7QRXXK.js.map +0 -1
- package/dist/chunk-KDZER3PU.cjs.map +0 -1
- package/dist/chunk-N5MKAD7J.cjs.map +0 -1
- package/dist/chunk-QE4VLQYN.cjs.map +0 -1
- package/dist/chunk-R6MO3QIP.js.map +0 -1
- package/dist/chunk-U2ROR6AY.cjs.map +0 -1
- package/dist/chunk-ZP5XRVVH.cjs.map +0 -1
package/dist/index.cjs
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
var
|
|
5
|
-
var
|
|
6
|
-
var
|
|
7
|
-
var
|
|
3
|
+
var chunkF47RPOTU_cjs = require('./chunk-F47RPOTU.cjs');
|
|
4
|
+
var chunk3BKPNOES_cjs = require('./chunk-3BKPNOES.cjs');
|
|
5
|
+
var chunkSUJT6LWH_cjs = require('./chunk-SUJT6LWH.cjs');
|
|
6
|
+
var chunkQBZLGBHQ_cjs = require('./chunk-QBZLGBHQ.cjs');
|
|
7
|
+
var chunkVWKVU3SE_cjs = require('./chunk-VWKVU3SE.cjs');
|
|
8
8
|
|
|
9
9
|
// src/editor/renderer.ts
|
|
10
10
|
function renderBlocksToHTML(doc) {
|
|
@@ -207,159 +207,159 @@ function extractFAQItems(doc) {
|
|
|
207
207
|
|
|
208
208
|
Object.defineProperty(exports, "calculateSEOScore", {
|
|
209
209
|
enumerable: true,
|
|
210
|
-
get: function () { return
|
|
210
|
+
get: function () { return chunkF47RPOTU_cjs.calculateSEOScore; }
|
|
211
211
|
});
|
|
212
212
|
Object.defineProperty(exports, "generateBreadcrumbs", {
|
|
213
213
|
enumerable: true,
|
|
214
|
-
get: function () { return
|
|
214
|
+
get: function () { return chunkF47RPOTU_cjs.generateBreadcrumbs; }
|
|
215
215
|
});
|
|
216
216
|
Object.defineProperty(exports, "generateFAQStructuredData", {
|
|
217
217
|
enumerable: true,
|
|
218
|
-
get: function () { return
|
|
218
|
+
get: function () { return chunkF47RPOTU_cjs.generateFAQStructuredData; }
|
|
219
219
|
});
|
|
220
220
|
Object.defineProperty(exports, "generateMetaTags", {
|
|
221
221
|
enumerable: true,
|
|
222
|
-
get: function () { return
|
|
222
|
+
get: function () { return chunkF47RPOTU_cjs.generateMetaTags; }
|
|
223
223
|
});
|
|
224
224
|
Object.defineProperty(exports, "generateStructuredData", {
|
|
225
225
|
enumerable: true,
|
|
226
|
-
get: function () { return
|
|
226
|
+
get: function () { return chunkF47RPOTU_cjs.generateStructuredData; }
|
|
227
227
|
});
|
|
228
228
|
Object.defineProperty(exports, "searchPosts", {
|
|
229
229
|
enumerable: true,
|
|
230
|
-
get: function () { return
|
|
230
|
+
get: function () { return chunkF47RPOTU_cjs.searchPosts; }
|
|
231
|
+
});
|
|
232
|
+
Object.defineProperty(exports, "generateRSSFeed", {
|
|
233
|
+
enumerable: true,
|
|
234
|
+
get: function () { return chunk3BKPNOES_cjs.generateRSSFeed; }
|
|
231
235
|
});
|
|
232
236
|
Object.defineProperty(exports, "R2StorageProvider", {
|
|
233
237
|
enumerable: true,
|
|
234
|
-
get: function () { return
|
|
238
|
+
get: function () { return chunkSUJT6LWH_cjs.R2StorageProvider; }
|
|
235
239
|
});
|
|
236
240
|
Object.defineProperty(exports, "processImage", {
|
|
237
241
|
enumerable: true,
|
|
238
|
-
get: function () { return
|
|
242
|
+
get: function () { return chunkSUJT6LWH_cjs.processImage; }
|
|
239
243
|
});
|
|
240
244
|
Object.defineProperty(exports, "generateSitemap", {
|
|
241
245
|
enumerable: true,
|
|
242
|
-
get: function () { return
|
|
243
|
-
});
|
|
244
|
-
Object.defineProperty(exports, "generateRSSFeed", {
|
|
245
|
-
enumerable: true,
|
|
246
|
-
get: function () { return chunk6HKMZOI4_cjs.generateRSSFeed; }
|
|
246
|
+
get: function () { return chunkQBZLGBHQ_cjs.generateSitemap; }
|
|
247
247
|
});
|
|
248
248
|
Object.defineProperty(exports, "calculateReadingTime", {
|
|
249
249
|
enumerable: true,
|
|
250
|
-
get: function () { return
|
|
250
|
+
get: function () { return chunkVWKVU3SE_cjs.calculateReadingTime; }
|
|
251
251
|
});
|
|
252
252
|
Object.defineProperty(exports, "countWords", {
|
|
253
253
|
enumerable: true,
|
|
254
|
-
get: function () { return
|
|
254
|
+
get: function () { return chunkVWKVU3SE_cjs.countWords; }
|
|
255
255
|
});
|
|
256
256
|
Object.defineProperty(exports, "createCategory", {
|
|
257
257
|
enumerable: true,
|
|
258
|
-
get: function () { return
|
|
258
|
+
get: function () { return chunkVWKVU3SE_cjs.createCategory; }
|
|
259
259
|
});
|
|
260
260
|
Object.defineProperty(exports, "createMedia", {
|
|
261
261
|
enumerable: true,
|
|
262
|
-
get: function () { return
|
|
262
|
+
get: function () { return chunkVWKVU3SE_cjs.createMedia; }
|
|
263
263
|
});
|
|
264
264
|
Object.defineProperty(exports, "createPost", {
|
|
265
265
|
enumerable: true,
|
|
266
|
-
get: function () { return
|
|
266
|
+
get: function () { return chunkVWKVU3SE_cjs.createPost; }
|
|
267
267
|
});
|
|
268
268
|
Object.defineProperty(exports, "defineConfig", {
|
|
269
269
|
enumerable: true,
|
|
270
|
-
get: function () { return
|
|
270
|
+
get: function () { return chunkVWKVU3SE_cjs.defineConfig; }
|
|
271
271
|
});
|
|
272
272
|
Object.defineProperty(exports, "deleteCategory", {
|
|
273
273
|
enumerable: true,
|
|
274
|
-
get: function () { return
|
|
274
|
+
get: function () { return chunkVWKVU3SE_cjs.deleteCategory; }
|
|
275
275
|
});
|
|
276
276
|
Object.defineProperty(exports, "deleteMedia", {
|
|
277
277
|
enumerable: true,
|
|
278
|
-
get: function () { return
|
|
278
|
+
get: function () { return chunkVWKVU3SE_cjs.deleteMedia; }
|
|
279
279
|
});
|
|
280
280
|
Object.defineProperty(exports, "deletePost", {
|
|
281
281
|
enumerable: true,
|
|
282
|
-
get: function () { return
|
|
282
|
+
get: function () { return chunkVWKVU3SE_cjs.deletePost; }
|
|
283
283
|
});
|
|
284
284
|
Object.defineProperty(exports, "ensureIndexes", {
|
|
285
285
|
enumerable: true,
|
|
286
|
-
get: function () { return
|
|
286
|
+
get: function () { return chunkVWKVU3SE_cjs.ensureIndexes; }
|
|
287
287
|
});
|
|
288
288
|
Object.defineProperty(exports, "ensureUniqueSlug", {
|
|
289
289
|
enumerable: true,
|
|
290
|
-
get: function () { return
|
|
290
|
+
get: function () { return chunkVWKVU3SE_cjs.ensureUniqueSlug; }
|
|
291
291
|
});
|
|
292
292
|
Object.defineProperty(exports, "extractTextFromBlocks", {
|
|
293
293
|
enumerable: true,
|
|
294
|
-
get: function () { return
|
|
294
|
+
get: function () { return chunkVWKVU3SE_cjs.extractTextFromBlocks; }
|
|
295
295
|
});
|
|
296
296
|
Object.defineProperty(exports, "extractTextFromHTML", {
|
|
297
297
|
enumerable: true,
|
|
298
|
-
get: function () { return
|
|
298
|
+
get: function () { return chunkVWKVU3SE_cjs.extractTextFromHTML; }
|
|
299
299
|
});
|
|
300
300
|
Object.defineProperty(exports, "generateSlug", {
|
|
301
301
|
enumerable: true,
|
|
302
|
-
get: function () { return
|
|
302
|
+
get: function () { return chunkVWKVU3SE_cjs.generateSlug; }
|
|
303
303
|
});
|
|
304
304
|
Object.defineProperty(exports, "getBlogConfig", {
|
|
305
305
|
enumerable: true,
|
|
306
|
-
get: function () { return
|
|
306
|
+
get: function () { return chunkVWKVU3SE_cjs.getBlogConfig; }
|
|
307
307
|
});
|
|
308
308
|
Object.defineProperty(exports, "getCategoryBySlug", {
|
|
309
309
|
enumerable: true,
|
|
310
|
-
get: function () { return
|
|
310
|
+
get: function () { return chunkVWKVU3SE_cjs.getCategoryBySlug; }
|
|
311
311
|
});
|
|
312
312
|
Object.defineProperty(exports, "getCollection", {
|
|
313
313
|
enumerable: true,
|
|
314
|
-
get: function () { return
|
|
314
|
+
get: function () { return chunkVWKVU3SE_cjs.getCollection; }
|
|
315
315
|
});
|
|
316
316
|
Object.defineProperty(exports, "getConfig", {
|
|
317
317
|
enumerable: true,
|
|
318
|
-
get: function () { return
|
|
318
|
+
get: function () { return chunkVWKVU3SE_cjs.getConfig; }
|
|
319
319
|
});
|
|
320
320
|
Object.defineProperty(exports, "getDb", {
|
|
321
321
|
enumerable: true,
|
|
322
|
-
get: function () { return
|
|
322
|
+
get: function () { return chunkVWKVU3SE_cjs.getDb; }
|
|
323
323
|
});
|
|
324
324
|
Object.defineProperty(exports, "getEnvConfig", {
|
|
325
325
|
enumerable: true,
|
|
326
|
-
get: function () { return
|
|
326
|
+
get: function () { return chunkVWKVU3SE_cjs.getEnvConfig; }
|
|
327
327
|
});
|
|
328
328
|
Object.defineProperty(exports, "getPostById", {
|
|
329
329
|
enumerable: true,
|
|
330
|
-
get: function () { return
|
|
330
|
+
get: function () { return chunkVWKVU3SE_cjs.getPostById; }
|
|
331
331
|
});
|
|
332
332
|
Object.defineProperty(exports, "getPostBySlug", {
|
|
333
333
|
enumerable: true,
|
|
334
|
-
get: function () { return
|
|
334
|
+
get: function () { return chunkVWKVU3SE_cjs.getPostBySlug; }
|
|
335
335
|
});
|
|
336
336
|
Object.defineProperty(exports, "getSettings", {
|
|
337
337
|
enumerable: true,
|
|
338
|
-
get: function () { return
|
|
338
|
+
get: function () { return chunkVWKVU3SE_cjs.getSettings; }
|
|
339
339
|
});
|
|
340
340
|
Object.defineProperty(exports, "listCategories", {
|
|
341
341
|
enumerable: true,
|
|
342
|
-
get: function () { return
|
|
342
|
+
get: function () { return chunkVWKVU3SE_cjs.listCategories; }
|
|
343
343
|
});
|
|
344
344
|
Object.defineProperty(exports, "listMedia", {
|
|
345
345
|
enumerable: true,
|
|
346
|
-
get: function () { return
|
|
346
|
+
get: function () { return chunkVWKVU3SE_cjs.listMedia; }
|
|
347
347
|
});
|
|
348
348
|
Object.defineProperty(exports, "listPosts", {
|
|
349
349
|
enumerable: true,
|
|
350
|
-
get: function () { return
|
|
350
|
+
get: function () { return chunkVWKVU3SE_cjs.listPosts; }
|
|
351
351
|
});
|
|
352
352
|
Object.defineProperty(exports, "updateCategory", {
|
|
353
353
|
enumerable: true,
|
|
354
|
-
get: function () { return
|
|
354
|
+
get: function () { return chunkVWKVU3SE_cjs.updateCategory; }
|
|
355
355
|
});
|
|
356
356
|
Object.defineProperty(exports, "updatePost", {
|
|
357
357
|
enumerable: true,
|
|
358
|
-
get: function () { return
|
|
358
|
+
get: function () { return chunkVWKVU3SE_cjs.updatePost; }
|
|
359
359
|
});
|
|
360
360
|
Object.defineProperty(exports, "updateSettings", {
|
|
361
361
|
enumerable: true,
|
|
362
|
-
get: function () { return
|
|
362
|
+
get: function () { return chunkVWKVU3SE_cjs.updateSettings; }
|
|
363
363
|
});
|
|
364
364
|
exports.extractFAQItems = extractFAQItems;
|
|
365
365
|
exports.extractHeadings = extractHeadings;
|
package/dist/index.d.cts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export { R as R2StorageProvider, c as calculateReadingTime, a as calculateSEOScore, b as countWords, d as createCategory, e as createMedia, f as createPost, g as defineConfig, h as deleteCategory, i as deleteMedia, j as deletePost, k as ensureIndexes, l as ensureUniqueSlug, m as extractTextFromBlocks, n as extractTextFromHTML, o as generateBreadcrumbs, p as generateFAQStructuredData, q as generateMetaTags, r as generateRSSFeed, s as generateSitemap, t as generateSlug, u as generateStructuredData, v as getBlogConfig, w as getCategoryBySlug, x as getCollection, y as getConfig, z as getDb, A as getEnvConfig, B as getPostById, C as getPostBySlug, D as getSettings, E as listCategories, F as listMedia, G as listPosts, H as processImage, I as searchPosts, J as updateCategory, K as updatePost, L as updateSettings } from './index-
|
|
2
|
-
import { B as BlockContent } from './types-
|
|
3
|
-
export { A as ApiErrorResponse, a as ApiResponse, b as ApiSuccessResponse, c as Author, d as BlockType, e as BlogPost, f as BlogSettings, C as Category, g as CreateCategoryInput, h as CreatePostInput, M as Media, i as MediaListQuery, j as MediaReference, N as NextBlogKitConfig, P as PostListQuery, k as PostSEO, l as PostStatus, R as Revision, S as SEOCheck, m as SEOCheckStatus, n as SEOOverallScore, o as SEOScore, U as UpdateCategoryInput, p as UpdatePostInput } from './types-
|
|
1
|
+
export { R as R2StorageProvider, c as calculateReadingTime, a as calculateSEOScore, b as countWords, d as createCategory, e as createMedia, f as createPost, g as defineConfig, h as deleteCategory, i as deleteMedia, j as deletePost, k as ensureIndexes, l as ensureUniqueSlug, m as extractTextFromBlocks, n as extractTextFromHTML, o as generateBreadcrumbs, p as generateFAQStructuredData, q as generateMetaTags, r as generateRSSFeed, s as generateSitemap, t as generateSlug, u as generateStructuredData, v as getBlogConfig, w as getCategoryBySlug, x as getCollection, y as getConfig, z as getDb, A as getEnvConfig, B as getPostById, C as getPostBySlug, D as getSettings, E as listCategories, F as listMedia, G as listPosts, H as processImage, I as searchPosts, J as updateCategory, K as updatePost, L as updateSettings } from './index-Bk8gOqBq.cjs';
|
|
2
|
+
import { B as BlockContent } from './types-Cu515Egx.cjs';
|
|
3
|
+
export { A as ApiErrorResponse, a as ApiResponse, b as ApiSuccessResponse, c as Author, d as BlockType, e as BlogPost, f as BlogSettings, C as Category, g as CreateCategoryInput, h as CreatePostInput, M as Media, i as MediaListQuery, j as MediaReference, N as NextBlogKitConfig, P as PostListQuery, k as PostSEO, l as PostStatus, R as Revision, S as SEOCheck, m as SEOCheckStatus, n as SEOOverallScore, o as SEOScore, U as UpdateCategoryInput, p as UpdatePostInput } from './types-Cu515Egx.cjs';
|
|
4
4
|
import 'zod';
|
|
5
5
|
import 'mongodb';
|
|
6
6
|
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export { R as R2StorageProvider, c as calculateReadingTime, a as calculateSEOScore, b as countWords, d as createCategory, e as createMedia, f as createPost, g as defineConfig, h as deleteCategory, i as deleteMedia, j as deletePost, k as ensureIndexes, l as ensureUniqueSlug, m as extractTextFromBlocks, n as extractTextFromHTML, o as generateBreadcrumbs, p as generateFAQStructuredData, q as generateMetaTags, r as generateRSSFeed, s as generateSitemap, t as generateSlug, u as generateStructuredData, v as getBlogConfig, w as getCategoryBySlug, x as getCollection, y as getConfig, z as getDb, A as getEnvConfig, B as getPostById, C as getPostBySlug, D as getSettings, E as listCategories, F as listMedia, G as listPosts, H as processImage, I as searchPosts, J as updateCategory, K as updatePost, L as updateSettings } from './index-
|
|
2
|
-
import { B as BlockContent } from './types-
|
|
3
|
-
export { A as ApiErrorResponse, a as ApiResponse, b as ApiSuccessResponse, c as Author, d as BlockType, e as BlogPost, f as BlogSettings, C as Category, g as CreateCategoryInput, h as CreatePostInput, M as Media, i as MediaListQuery, j as MediaReference, N as NextBlogKitConfig, P as PostListQuery, k as PostSEO, l as PostStatus, R as Revision, S as SEOCheck, m as SEOCheckStatus, n as SEOOverallScore, o as SEOScore, U as UpdateCategoryInput, p as UpdatePostInput } from './types-
|
|
1
|
+
export { R as R2StorageProvider, c as calculateReadingTime, a as calculateSEOScore, b as countWords, d as createCategory, e as createMedia, f as createPost, g as defineConfig, h as deleteCategory, i as deleteMedia, j as deletePost, k as ensureIndexes, l as ensureUniqueSlug, m as extractTextFromBlocks, n as extractTextFromHTML, o as generateBreadcrumbs, p as generateFAQStructuredData, q as generateMetaTags, r as generateRSSFeed, s as generateSitemap, t as generateSlug, u as generateStructuredData, v as getBlogConfig, w as getCategoryBySlug, x as getCollection, y as getConfig, z as getDb, A as getEnvConfig, B as getPostById, C as getPostBySlug, D as getSettings, E as listCategories, F as listMedia, G as listPosts, H as processImage, I as searchPosts, J as updateCategory, K as updatePost, L as updateSettings } from './index-DsnG2kdW.js';
|
|
2
|
+
import { B as BlockContent } from './types-Cu515Egx.js';
|
|
3
|
+
export { A as ApiErrorResponse, a as ApiResponse, b as ApiSuccessResponse, c as Author, d as BlockType, e as BlogPost, f as BlogSettings, C as Category, g as CreateCategoryInput, h as CreatePostInput, M as Media, i as MediaListQuery, j as MediaReference, N as NextBlogKitConfig, P as PostListQuery, k as PostSEO, l as PostStatus, R as Revision, S as SEOCheck, m as SEOCheckStatus, n as SEOOverallScore, o as SEOScore, U as UpdateCategoryInput, p as UpdatePostInput } from './types-Cu515Egx.js';
|
|
4
4
|
import 'zod';
|
|
5
5
|
import 'mongodb';
|
|
6
6
|
|
package/dist/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
export { calculateSEOScore, generateBreadcrumbs, generateFAQStructuredData, generateMetaTags, generateStructuredData, searchPosts } from './chunk-
|
|
2
|
-
export {
|
|
3
|
-
export {
|
|
4
|
-
export {
|
|
5
|
-
export { calculateReadingTime, countWords, createCategory, createMedia, createPost, defineConfig, deleteCategory, deleteMedia, deletePost, ensureIndexes, ensureUniqueSlug, extractTextFromBlocks, extractTextFromHTML, generateSlug, getBlogConfig, getCategoryBySlug, getCollection, getConfig, getDb, getEnvConfig, getPostById, getPostBySlug, getSettings, listCategories, listMedia, listPosts, updateCategory, updatePost, updateSettings } from './chunk-
|
|
1
|
+
export { calculateSEOScore, generateBreadcrumbs, generateFAQStructuredData, generateMetaTags, generateStructuredData, searchPosts } from './chunk-TVHY4BR2.js';
|
|
2
|
+
export { generateRSSFeed } from './chunk-NSR7NYSB.js';
|
|
3
|
+
export { R2StorageProvider, processImage } from './chunk-OWWWTTUT.js';
|
|
4
|
+
export { generateSitemap } from './chunk-OOUJYUGP.js';
|
|
5
|
+
export { calculateReadingTime, countWords, createCategory, createMedia, createPost, defineConfig, deleteCategory, deleteMedia, deletePost, ensureIndexes, ensureUniqueSlug, extractTextFromBlocks, extractTextFromHTML, generateSlug, getBlogConfig, getCategoryBySlug, getCollection, getConfig, getDb, getEnvConfig, getPostById, getPostBySlug, getSettings, listCategories, listMedia, listPosts, updateCategory, updatePost, updateSettings } from './chunk-JI2RK6KX.js';
|
|
6
6
|
|
|
7
7
|
// src/editor/renderer.ts
|
|
8
8
|
function renderBlocksToHTML(doc) {
|
package/dist/lib/index.cjs
CHANGED
|
@@ -1,120 +1,124 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
var
|
|
5
|
-
var
|
|
6
|
-
var
|
|
7
|
-
var
|
|
3
|
+
var chunkF47RPOTU_cjs = require('../chunk-F47RPOTU.cjs');
|
|
4
|
+
var chunk3BKPNOES_cjs = require('../chunk-3BKPNOES.cjs');
|
|
5
|
+
var chunkSUJT6LWH_cjs = require('../chunk-SUJT6LWH.cjs');
|
|
6
|
+
var chunkQBZLGBHQ_cjs = require('../chunk-QBZLGBHQ.cjs');
|
|
7
|
+
var chunkVWKVU3SE_cjs = require('../chunk-VWKVU3SE.cjs');
|
|
8
8
|
|
|
9
9
|
|
|
10
10
|
|
|
11
11
|
Object.defineProperty(exports, "calculateSEOScore", {
|
|
12
12
|
enumerable: true,
|
|
13
|
-
get: function () { return
|
|
13
|
+
get: function () { return chunkF47RPOTU_cjs.calculateSEOScore; }
|
|
14
14
|
});
|
|
15
15
|
Object.defineProperty(exports, "generateBreadcrumbs", {
|
|
16
16
|
enumerable: true,
|
|
17
|
-
get: function () { return
|
|
17
|
+
get: function () { return chunkF47RPOTU_cjs.generateBreadcrumbs; }
|
|
18
18
|
});
|
|
19
19
|
Object.defineProperty(exports, "generateMetaTags", {
|
|
20
20
|
enumerable: true,
|
|
21
|
-
get: function () { return
|
|
21
|
+
get: function () { return chunkF47RPOTU_cjs.generateMetaTags; }
|
|
22
22
|
});
|
|
23
23
|
Object.defineProperty(exports, "generateStructuredData", {
|
|
24
24
|
enumerable: true,
|
|
25
|
-
get: function () { return
|
|
25
|
+
get: function () { return chunkF47RPOTU_cjs.generateStructuredData; }
|
|
26
26
|
});
|
|
27
27
|
Object.defineProperty(exports, "searchPosts", {
|
|
28
28
|
enumerable: true,
|
|
29
|
-
get: function () { return
|
|
29
|
+
get: function () { return chunkF47RPOTU_cjs.searchPosts; }
|
|
30
|
+
});
|
|
31
|
+
Object.defineProperty(exports, "generateRSSFeed", {
|
|
32
|
+
enumerable: true,
|
|
33
|
+
get: function () { return chunk3BKPNOES_cjs.generateRSSFeed; }
|
|
30
34
|
});
|
|
31
35
|
Object.defineProperty(exports, "R2StorageProvider", {
|
|
32
36
|
enumerable: true,
|
|
33
|
-
get: function () { return
|
|
37
|
+
get: function () { return chunkSUJT6LWH_cjs.R2StorageProvider; }
|
|
34
38
|
});
|
|
35
39
|
Object.defineProperty(exports, "processImage", {
|
|
36
40
|
enumerable: true,
|
|
37
|
-
get: function () { return
|
|
41
|
+
get: function () { return chunkSUJT6LWH_cjs.processImage; }
|
|
38
42
|
});
|
|
39
43
|
Object.defineProperty(exports, "generateSitemap", {
|
|
40
44
|
enumerable: true,
|
|
41
|
-
get: function () { return
|
|
42
|
-
});
|
|
43
|
-
Object.defineProperty(exports, "generateRSSFeed", {
|
|
44
|
-
enumerable: true,
|
|
45
|
-
get: function () { return chunk6HKMZOI4_cjs.generateRSSFeed; }
|
|
45
|
+
get: function () { return chunkQBZLGBHQ_cjs.generateSitemap; }
|
|
46
46
|
});
|
|
47
47
|
Object.defineProperty(exports, "calculateReadingTime", {
|
|
48
48
|
enumerable: true,
|
|
49
|
-
get: function () { return
|
|
49
|
+
get: function () { return chunkVWKVU3SE_cjs.calculateReadingTime; }
|
|
50
50
|
});
|
|
51
51
|
Object.defineProperty(exports, "countWords", {
|
|
52
52
|
enumerable: true,
|
|
53
|
-
get: function () { return
|
|
53
|
+
get: function () { return chunkVWKVU3SE_cjs.countWords; }
|
|
54
54
|
});
|
|
55
55
|
Object.defineProperty(exports, "defineConfig", {
|
|
56
56
|
enumerable: true,
|
|
57
|
-
get: function () { return
|
|
57
|
+
get: function () { return chunkVWKVU3SE_cjs.defineConfig; }
|
|
58
58
|
});
|
|
59
59
|
Object.defineProperty(exports, "ensureIndexes", {
|
|
60
60
|
enumerable: true,
|
|
61
|
-
get: function () { return
|
|
61
|
+
get: function () { return chunkVWKVU3SE_cjs.ensureIndexes; }
|
|
62
62
|
});
|
|
63
63
|
Object.defineProperty(exports, "ensureUniqueSlug", {
|
|
64
64
|
enumerable: true,
|
|
65
|
-
get: function () { return
|
|
65
|
+
get: function () { return chunkVWKVU3SE_cjs.ensureUniqueSlug; }
|
|
66
66
|
});
|
|
67
67
|
Object.defineProperty(exports, "extractTextFromBlocks", {
|
|
68
68
|
enumerable: true,
|
|
69
|
-
get: function () { return
|
|
69
|
+
get: function () { return chunkVWKVU3SE_cjs.extractTextFromBlocks; }
|
|
70
70
|
});
|
|
71
71
|
Object.defineProperty(exports, "extractTextFromHTML", {
|
|
72
72
|
enumerable: true,
|
|
73
|
-
get: function () { return
|
|
73
|
+
get: function () { return chunkVWKVU3SE_cjs.extractTextFromHTML; }
|
|
74
74
|
});
|
|
75
75
|
Object.defineProperty(exports, "generateSlug", {
|
|
76
76
|
enumerable: true,
|
|
77
|
-
get: function () { return
|
|
77
|
+
get: function () { return chunkVWKVU3SE_cjs.generateSlug; }
|
|
78
78
|
});
|
|
79
79
|
Object.defineProperty(exports, "getBlogConfig", {
|
|
80
80
|
enumerable: true,
|
|
81
|
-
get: function () { return
|
|
81
|
+
get: function () { return chunkVWKVU3SE_cjs.getBlogConfig; }
|
|
82
82
|
});
|
|
83
83
|
Object.defineProperty(exports, "getCategoryBySlug", {
|
|
84
84
|
enumerable: true,
|
|
85
|
-
get: function () { return
|
|
85
|
+
get: function () { return chunkVWKVU3SE_cjs.getCategoryBySlug; }
|
|
86
86
|
});
|
|
87
87
|
Object.defineProperty(exports, "getCollection", {
|
|
88
88
|
enumerable: true,
|
|
89
|
-
get: function () { return
|
|
89
|
+
get: function () { return chunkVWKVU3SE_cjs.getCollection; }
|
|
90
90
|
});
|
|
91
91
|
Object.defineProperty(exports, "getConfig", {
|
|
92
92
|
enumerable: true,
|
|
93
|
-
get: function () { return
|
|
93
|
+
get: function () { return chunkVWKVU3SE_cjs.getConfig; }
|
|
94
94
|
});
|
|
95
95
|
Object.defineProperty(exports, "getDb", {
|
|
96
96
|
enumerable: true,
|
|
97
|
-
get: function () { return
|
|
97
|
+
get: function () { return chunkVWKVU3SE_cjs.getDb; }
|
|
98
98
|
});
|
|
99
99
|
Object.defineProperty(exports, "getEnvConfig", {
|
|
100
100
|
enumerable: true,
|
|
101
|
-
get: function () { return
|
|
101
|
+
get: function () { return chunkVWKVU3SE_cjs.getEnvConfig; }
|
|
102
102
|
});
|
|
103
103
|
Object.defineProperty(exports, "getPostById", {
|
|
104
104
|
enumerable: true,
|
|
105
|
-
get: function () { return
|
|
105
|
+
get: function () { return chunkVWKVU3SE_cjs.getPostById; }
|
|
106
106
|
});
|
|
107
107
|
Object.defineProperty(exports, "getPostBySlug", {
|
|
108
108
|
enumerable: true,
|
|
109
|
-
get: function () { return
|
|
109
|
+
get: function () { return chunkVWKVU3SE_cjs.getPostBySlug; }
|
|
110
|
+
});
|
|
111
|
+
Object.defineProperty(exports, "isR2Configured", {
|
|
112
|
+
enumerable: true,
|
|
113
|
+
get: function () { return chunkVWKVU3SE_cjs.isR2Configured; }
|
|
110
114
|
});
|
|
111
115
|
Object.defineProperty(exports, "listCategories", {
|
|
112
116
|
enumerable: true,
|
|
113
|
-
get: function () { return
|
|
117
|
+
get: function () { return chunkVWKVU3SE_cjs.listCategories; }
|
|
114
118
|
});
|
|
115
119
|
Object.defineProperty(exports, "listPosts", {
|
|
116
120
|
enumerable: true,
|
|
117
|
-
get: function () { return
|
|
121
|
+
get: function () { return chunkVWKVU3SE_cjs.listPosts; }
|
|
118
122
|
});
|
|
119
123
|
//# sourceMappingURL=index.cjs.map
|
|
120
124
|
//# sourceMappingURL=index.cjs.map
|
package/dist/lib/index.d.cts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { R as R2StorageProvider, c as calculateReadingTime, a as calculateSEOScore, b as countWords, g as defineConfig, k as ensureIndexes, l as ensureUniqueSlug, m as extractTextFromBlocks, n as extractTextFromHTML, o as generateBreadcrumbs, q as generateMetaTags, r as generateRSSFeed, s as generateSitemap, t as generateSlug, u as generateStructuredData, v as getBlogConfig, w as getCategoryBySlug, x as getCollection, y as getConfig, z as getDb, A as getEnvConfig, B as getPostById, C as getPostBySlug, E as listCategories, G as listPosts, H as processImage, I as searchPosts } from '../index-
|
|
2
|
-
export { A as ApiErrorResponse, a as ApiResponse, b as ApiSuccessResponse, c as Author,
|
|
1
|
+
export { R as R2StorageProvider, c as calculateReadingTime, a as calculateSEOScore, b as countWords, g as defineConfig, k as ensureIndexes, l as ensureUniqueSlug, m as extractTextFromBlocks, n as extractTextFromHTML, o as generateBreadcrumbs, q as generateMetaTags, r as generateRSSFeed, s as generateSitemap, t as generateSlug, u as generateStructuredData, v as getBlogConfig, w as getCategoryBySlug, x as getCollection, y as getConfig, z as getDb, A as getEnvConfig, B as getPostById, C as getPostBySlug, M as isR2Configured, E as listCategories, G as listPosts, H as processImage, I as searchPosts } from '../index-Bk8gOqBq.cjs';
|
|
2
|
+
export { A as ApiErrorResponse, a as ApiResponse, b as ApiSuccessResponse, q as ApiToken, c as Author, r as AuthorSchema, B as BlockContent, d as BlockType, s as BlockTypeSchema, e as BlogPost, f as BlogSettings, t as BlogSettingsSchema, C as Category, u as CreateApiTokenSchema, g as CreateCategoryInput, v as CreateCategorySchema, h as CreatePostInput, w as CreatePostSchema, M as Media, i as MediaListQuery, j as MediaReference, x as MediaSchema, N as NextBlogKitConfig, P as PostListQuery, k as PostSEO, y as PostSEOSchema, l as PostStatus, z as PostStatusSchema, R as Revision, S as SEOCheck, m as SEOCheckStatus, n as SEOOverallScore, o as SEOScore, U as UpdateCategoryInput, D as UpdateCategorySchema, p as UpdatePostInput, E as UpdatePostSchema } from '../types-Cu515Egx.cjs';
|
|
3
3
|
import 'zod';
|
|
4
4
|
import 'mongodb';
|
package/dist/lib/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { R as R2StorageProvider, c as calculateReadingTime, a as calculateSEOScore, b as countWords, g as defineConfig, k as ensureIndexes, l as ensureUniqueSlug, m as extractTextFromBlocks, n as extractTextFromHTML, o as generateBreadcrumbs, q as generateMetaTags, r as generateRSSFeed, s as generateSitemap, t as generateSlug, u as generateStructuredData, v as getBlogConfig, w as getCategoryBySlug, x as getCollection, y as getConfig, z as getDb, A as getEnvConfig, B as getPostById, C as getPostBySlug, E as listCategories, G as listPosts, H as processImage, I as searchPosts } from '../index-
|
|
2
|
-
export { A as ApiErrorResponse, a as ApiResponse, b as ApiSuccessResponse, c as Author,
|
|
1
|
+
export { R as R2StorageProvider, c as calculateReadingTime, a as calculateSEOScore, b as countWords, g as defineConfig, k as ensureIndexes, l as ensureUniqueSlug, m as extractTextFromBlocks, n as extractTextFromHTML, o as generateBreadcrumbs, q as generateMetaTags, r as generateRSSFeed, s as generateSitemap, t as generateSlug, u as generateStructuredData, v as getBlogConfig, w as getCategoryBySlug, x as getCollection, y as getConfig, z as getDb, A as getEnvConfig, B as getPostById, C as getPostBySlug, M as isR2Configured, E as listCategories, G as listPosts, H as processImage, I as searchPosts } from '../index-DsnG2kdW.js';
|
|
2
|
+
export { A as ApiErrorResponse, a as ApiResponse, b as ApiSuccessResponse, q as ApiToken, c as Author, r as AuthorSchema, B as BlockContent, d as BlockType, s as BlockTypeSchema, e as BlogPost, f as BlogSettings, t as BlogSettingsSchema, C as Category, u as CreateApiTokenSchema, g as CreateCategoryInput, v as CreateCategorySchema, h as CreatePostInput, w as CreatePostSchema, M as Media, i as MediaListQuery, j as MediaReference, x as MediaSchema, N as NextBlogKitConfig, P as PostListQuery, k as PostSEO, y as PostSEOSchema, l as PostStatus, z as PostStatusSchema, R as Revision, S as SEOCheck, m as SEOCheckStatus, n as SEOOverallScore, o as SEOScore, U as UpdateCategoryInput, D as UpdateCategorySchema, p as UpdatePostInput, E as UpdatePostSchema } from '../types-Cu515Egx.js';
|
|
3
3
|
import 'zod';
|
|
4
4
|
import 'mongodb';
|
package/dist/lib/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
export { calculateSEOScore, generateBreadcrumbs, generateMetaTags, generateStructuredData, searchPosts } from '../chunk-
|
|
2
|
-
export {
|
|
3
|
-
export {
|
|
4
|
-
export {
|
|
5
|
-
export { calculateReadingTime, countWords, defineConfig, ensureIndexes, ensureUniqueSlug, extractTextFromBlocks, extractTextFromHTML, generateSlug, getBlogConfig, getCategoryBySlug, getCollection, getConfig, getDb, getEnvConfig, getPostById, getPostBySlug, listCategories, listPosts } from '../chunk-
|
|
1
|
+
export { calculateSEOScore, generateBreadcrumbs, generateMetaTags, generateStructuredData, searchPosts } from '../chunk-TVHY4BR2.js';
|
|
2
|
+
export { generateRSSFeed } from '../chunk-NSR7NYSB.js';
|
|
3
|
+
export { R2StorageProvider, processImage } from '../chunk-OWWWTTUT.js';
|
|
4
|
+
export { generateSitemap } from '../chunk-OOUJYUGP.js';
|
|
5
|
+
export { calculateReadingTime, countWords, defineConfig, ensureIndexes, ensureUniqueSlug, extractTextFromBlocks, extractTextFromHTML, generateSlug, getBlogConfig, getCategoryBySlug, getCollection, getConfig, getDb, getEnvConfig, getPostById, getPostBySlug, isR2Configured, listCategories, listPosts } from '../chunk-JI2RK6KX.js';
|
|
6
6
|
//# sourceMappingURL=index.js.map
|
|
7
7
|
//# sourceMappingURL=index.js.map
|
|
@@ -635,6 +635,21 @@ interface BlogSettings {
|
|
|
635
635
|
plausibleDomain?: string;
|
|
636
636
|
};
|
|
637
637
|
}
|
|
638
|
+
declare const CreateApiTokenSchema: z.ZodObject<{
|
|
639
|
+
name: z.ZodString;
|
|
640
|
+
}, "strip", z.ZodTypeAny, {
|
|
641
|
+
name: string;
|
|
642
|
+
}, {
|
|
643
|
+
name: string;
|
|
644
|
+
}>;
|
|
645
|
+
interface ApiToken {
|
|
646
|
+
_id: ObjectId;
|
|
647
|
+
name: string;
|
|
648
|
+
tokenHash: string;
|
|
649
|
+
prefix: string;
|
|
650
|
+
lastUsedAt?: Date;
|
|
651
|
+
createdAt: Date;
|
|
652
|
+
}
|
|
638
653
|
interface ApiSuccessResponse<T = unknown> {
|
|
639
654
|
success: true;
|
|
640
655
|
data: T;
|
|
@@ -729,4 +744,4 @@ interface MediaListQuery {
|
|
|
729
744
|
mimeType?: string;
|
|
730
745
|
}
|
|
731
746
|
|
|
732
|
-
export { type ApiErrorResponse as A, type BlockContent as B, type Category as C, type Media as M, type NextBlogKitConfig as N, type PostListQuery as P, type Revision as R, type SEOCheck as S, type UpdateCategoryInput as U, type ApiResponse as a, type ApiSuccessResponse as b, type Author as c, type BlockType as d, type BlogPost as e, type BlogSettings as f, type CreateCategoryInput as g, type CreatePostInput as h, type MediaListQuery as i, type MediaReference as j, type PostSEO as k, type PostStatus as l, type SEOCheckStatus as m, type SEOOverallScore as n, type SEOScore as o, type UpdatePostInput as p,
|
|
747
|
+
export { type ApiErrorResponse as A, type BlockContent as B, type Category as C, UpdateCategorySchema as D, UpdatePostSchema as E, type Media as M, type NextBlogKitConfig as N, type PostListQuery as P, type Revision as R, type SEOCheck as S, type UpdateCategoryInput as U, type ApiResponse as a, type ApiSuccessResponse as b, type Author as c, type BlockType as d, type BlogPost as e, type BlogSettings as f, type CreateCategoryInput as g, type CreatePostInput as h, type MediaListQuery as i, type MediaReference as j, type PostSEO as k, type PostStatus as l, type SEOCheckStatus as m, type SEOOverallScore as n, type SEOScore as o, type UpdatePostInput as p, type ApiToken as q, AuthorSchema as r, BlockTypeSchema as s, BlogSettingsSchema as t, CreateApiTokenSchema as u, CreateCategorySchema as v, CreatePostSchema as w, MediaSchema as x, PostSEOSchema as y, PostStatusSchema as z };
|
|
@@ -635,6 +635,21 @@ interface BlogSettings {
|
|
|
635
635
|
plausibleDomain?: string;
|
|
636
636
|
};
|
|
637
637
|
}
|
|
638
|
+
declare const CreateApiTokenSchema: z.ZodObject<{
|
|
639
|
+
name: z.ZodString;
|
|
640
|
+
}, "strip", z.ZodTypeAny, {
|
|
641
|
+
name: string;
|
|
642
|
+
}, {
|
|
643
|
+
name: string;
|
|
644
|
+
}>;
|
|
645
|
+
interface ApiToken {
|
|
646
|
+
_id: ObjectId;
|
|
647
|
+
name: string;
|
|
648
|
+
tokenHash: string;
|
|
649
|
+
prefix: string;
|
|
650
|
+
lastUsedAt?: Date;
|
|
651
|
+
createdAt: Date;
|
|
652
|
+
}
|
|
638
653
|
interface ApiSuccessResponse<T = unknown> {
|
|
639
654
|
success: true;
|
|
640
655
|
data: T;
|
|
@@ -729,4 +744,4 @@ interface MediaListQuery {
|
|
|
729
744
|
mimeType?: string;
|
|
730
745
|
}
|
|
731
746
|
|
|
732
|
-
export { type ApiErrorResponse as A, type BlockContent as B, type Category as C, type Media as M, type NextBlogKitConfig as N, type PostListQuery as P, type Revision as R, type SEOCheck as S, type UpdateCategoryInput as U, type ApiResponse as a, type ApiSuccessResponse as b, type Author as c, type BlockType as d, type BlogPost as e, type BlogSettings as f, type CreateCategoryInput as g, type CreatePostInput as h, type MediaListQuery as i, type MediaReference as j, type PostSEO as k, type PostStatus as l, type SEOCheckStatus as m, type SEOOverallScore as n, type SEOScore as o, type UpdatePostInput as p,
|
|
747
|
+
export { type ApiErrorResponse as A, type BlockContent as B, type Category as C, UpdateCategorySchema as D, UpdatePostSchema as E, type Media as M, type NextBlogKitConfig as N, type PostListQuery as P, type Revision as R, type SEOCheck as S, type UpdateCategoryInput as U, type ApiResponse as a, type ApiSuccessResponse as b, type Author as c, type BlockType as d, type BlogPost as e, type BlogSettings as f, type CreateCategoryInput as g, type CreatePostInput as h, type MediaListQuery as i, type MediaReference as j, type PostSEO as k, type PostStatus as l, type SEOCheckStatus as m, type SEOOverallScore as n, type SEOScore as o, type UpdatePostInput as p, type ApiToken as q, AuthorSchema as r, BlockTypeSchema as s, BlogSettingsSchema as t, CreateApiTokenSchema as u, CreateCategorySchema as v, CreatePostSchema as w, MediaSchema as x, PostSEOSchema as y, PostStatusSchema as z };
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/lib/sitemap.ts"],"names":[],"mappings":"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","file":"chunk-4NKOJYWJ.js","sourcesContent":["import { getCollection } from './db';\nimport { getEnvConfig } from './config';\n\ninterface SitemapEntry {\n loc: string;\n lastmod?: string;\n changefreq?: string;\n priority?: string;\n}\n\nexport async function generateSitemap(): Promise<string> {\n const env = getEnvConfig();\n const posts = await getCollection('nbk_posts');\n const categories = await getCollection('nbk_categories');\n\n const entries: SitemapEntry[] = [];\n\n // Blog listing page\n entries.push({\n loc: `${env.NEXTBLOGKIT_SITE_URL}/blog`,\n changefreq: 'daily',\n priority: '0.9',\n });\n\n // Published posts\n const publishedPosts = await posts\n .find({ status: 'published' })\n .sort({ publishedAt: -1 })\n .project({ slug: 1, updatedAt: 1, publishedAt: 1 })\n .toArray();\n\n for (const post of publishedPosts) {\n const lastmod = post.updatedAt || post.publishedAt;\n const daysSincePublish = lastmod\n ? Math.floor((Date.now() - new Date(lastmod).getTime()) / (1000 * 60 * 60 * 24))\n : 0;\n\n let changefreq = 'monthly';\n if (daysSincePublish < 7) changefreq = 'daily';\n else if (daysSincePublish < 30) changefreq = 'weekly';\n\n entries.push({\n loc: `${env.NEXTBLOGKIT_SITE_URL}/blog/${post.slug}`,\n lastmod: lastmod ? new Date(lastmod).toISOString().split('T')[0] : undefined,\n changefreq,\n priority: '0.8',\n });\n }\n\n // Category pages\n const allCategories = await categories\n .find({})\n .sort({ order: 1 })\n .project({ slug: 1 })\n .toArray();\n\n for (const cat of allCategories) {\n entries.push({\n loc: `${env.NEXTBLOGKIT_SITE_URL}/blog/category/${cat.slug}`,\n changefreq: 'weekly',\n priority: '0.6',\n });\n }\n\n // Paginated listing pages\n const totalPosts = publishedPosts.length;\n const postsPerPage = 10;\n const totalPages = Math.ceil(totalPosts / postsPerPage);\n for (let page = 2; page <= totalPages; page++) {\n entries.push({\n loc: `${env.NEXTBLOGKIT_SITE_URL}/blog?page=${page}`,\n changefreq: 'weekly',\n priority: '0.5',\n });\n }\n\n return buildXML(entries);\n}\n\nfunction buildXML(entries: SitemapEntry[]): string {\n const urls = entries\n .map(\n (entry) => ` <url>\n <loc>${escapeXml(entry.loc)}</loc>${entry.lastmod ? `\\n <lastmod>${entry.lastmod}</lastmod>` : ''}${entry.changefreq ? `\\n <changefreq>${entry.changefreq}</changefreq>` : ''}${entry.priority ? `\\n <priority>${entry.priority}</priority>` : ''}\n </url>`\n )\n .join('\\n');\n\n return `<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<urlset xmlns=\"http://www.sitemaps.org/schemas/sitemap/0.9\">\n${urls}\n</urlset>`;\n}\n\nfunction escapeXml(str: string): string {\n return str\n .replace(/&/g, '&')\n .replace(/</g, '<')\n .replace(/>/g, '>')\n .replace(/\"/g, '"')\n .replace(/'/g, ''');\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/lib/types.ts"],"names":[],"mappings":";;;AAO+B,EAAE,IAAA,CAAK;AAAA,EACpC,WAAA;AAAA,EACA,SAAA;AAAA,EACA,OAAA;AAAA,EACA,WAAA;AAAA,EACA,YAAA;AAAA,EACA,YAAA;AAAA,EACA,aAAA;AAAA,EACA,UAAA;AAAA,EACA,OAAA;AAAA,EACA,OAAA;AAAA,EACA,gBAAA;AAAA,EACA,SAAA;AAAA,EACA,iBAAA;AAAA,EACA,KAAA;AAAA,EACA;AACF,CAAC;AAyB0B,EAAE,MAAA,CAAO;AAAA,EAClC,QAAA,EAAU,EAAE,MAAA,EAAO;AAAA,EACnB,YAAA,EAAc,EAAE,MAAA,EAAO;AAAA,EACvB,QAAA,EAAU,EAAE,MAAA,EAAO;AAAA,EACnB,IAAA,EAAM,EAAE,MAAA,EAAO;AAAA,EACf,KAAA,EAAO,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC3B,MAAA,EAAQ,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC5B,KAAA,EAAO,EAAE,MAAA,EAAO;AAAA,EAChB,GAAA,EAAK,CAAA,CAAE,MAAA,EAAO,CAAE,GAAA,EAAI;AAAA,EACpB,GAAA,EAAK,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACzB,OAAA,EAAS,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC7B,SAAA,EAAW,EAAE,IAAA;AACf,CAAC;AAqBM,IAAM,YAAA,GAAe,EAAE,MAAA,CAAO;AAAA,EACnC,IAAA,EAAM,CAAA,CAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA;AAAA,EACtB,QAAQ,CAAA,CAAE,MAAA,EAAO,CAAE,GAAA,GAAM,QAAA,EAAS;AAAA,EAClC,GAAA,EAAK,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACzB,KAAK,CAAA,CAAE,MAAA,EAAO,CAAE,GAAA,GAAM,QAAA;AACxB,CAAC,CAAA;AAaM,IAAM,aAAA,GAAgB,EAAE,MAAA,CAAO;AAAA,EACpC,SAAA,EAAW,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC/B,eAAA,EAAiB,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACrC,cAAc,CAAA,CAAE,MAAA,EAAO,CAAE,GAAA,GAAM,QAAA,EAAS;AAAA,EACxC,SAAS,CAAA,CAAE,MAAA,EAAO,CAAE,GAAA,GAAM,QAAA,EAAS;AAAA,EACnC,MAAA,EAAQ,CAAA,CAAE,MAAA,EAAO,CAAE,QAAQ,SAAS,CAAA;AAAA,EACpC,OAAA,EAAS,CAAA,CAAE,OAAA,EAAQ,CAAE,QAAQ,KAAK,CAAA;AAAA,EAClC,gBAAgB,CAAA,CAAE,MAAA,CAAO,EAAE,OAAA,EAAS,EAAE,QAAA,EAAS;AAAA,EAC/C,YAAA,EAAc,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AAC3B,CAAC,CAAA;AA6BM,IAAM,gBAAA,GAAmB,EAAE,IAAA,CAAK,CAAC,SAAS,WAAA,EAAa,WAAA,EAAa,UAAU,CAAC,CAAA;AAG/E,IAAM,gBAAA,GAAmB,EAAE,MAAA,CAAO;AAAA,EACvC,OAAO,CAAA,CAAE,MAAA,EAAO,CAAE,GAAA,CAAI,GAAG,mBAAmB,CAAA;AAAA,EAC5C,IAAA,EAAM,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC1B,OAAA,EAAS,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC7B,OAAA,EAAS,EAAE,GAAA,EAAI;AAAA;AAAA,EACf,WAAA,EAAa,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACjC,WAAA,EAAa,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACjC,UAAA,EAAY,EACT,MAAA,CAAO;AAAA,IACN,GAAA,EAAK,EAAE,MAAA,EAAO;AAAA,IACd,GAAA,EAAK,CAAA,CAAE,MAAA,EAAO,CAAE,GAAA,EAAI;AAAA,IACpB,GAAA,EAAK,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,IACzB,OAAA,EAAS,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,IAC7B,KAAA,EAAO,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,IAC3B,MAAA,EAAQ,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AAAS,GAC7B,EACA,QAAA,EAAS;AAAA,EACZ,UAAA,EAAY,EAAE,KAAA,CAAM,CAAA,CAAE,QAAQ,CAAA,CAAE,OAAA,CAAQ,EAAE,CAAA;AAAA,EAC1C,IAAA,EAAM,EAAE,KAAA,CAAM,CAAA,CAAE,QAAQ,CAAA,CAAE,OAAA,CAAQ,EAAE,CAAA;AAAA,EACpC,MAAA,EAAQ,aAAa,QAAA,EAAS;AAAA,EAC9B,GAAA,EAAK,cAAc,QAAA,EAAS;AAAA,EAC5B,MAAA,EAAQ,gBAAA,CAAiB,OAAA,CAAQ,OAAO,CAAA;AAAA,EACxC,WAAA,EAAa,CAAA,CAAE,MAAA,CAAO,IAAA,GAAO,QAAA,EAAS;AAAA,EACtC,WAAA,EAAa,CAAA,CAAE,MAAA,CAAO,IAAA,GAAO,QAAA;AAC/B,CAAC;AAEM,IAAM,gBAAA,GAAmB,iBAAiB,OAAA;AAiC1C,IAAM,oBAAA,GAAuB,EAAE,MAAA,CAAO;AAAA,EAC3C,MAAM,CAAA,CAAE,MAAA,EAAO,CAAE,GAAA,CAAI,GAAG,2BAA2B,CAAA;AAAA,EACnD,IAAA,EAAM,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC1B,WAAA,EAAa,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACjC,GAAA,EAAK,EACF,MAAA,CAAO;AAAA,IACN,SAAA,EAAW,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,IAC/B,eAAA,EAAiB,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AAAS,GACtC,EACA,QAAA,EAAS;AAAA,EACZ,KAAA,EAAO,CAAA,CAAE,MAAA,EAAO,CAAE,QAAQ,CAAC,CAAA;AAAA,EAC3B,QAAA,EAAU,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AACvB,CAAC;AAEM,IAAM,oBAAA,GAAuB,qBAAqB,OAAA;AAuBlD,IAAM,kBAAA,GAAqB,EAAE,MAAA,CAAO;AAAA,EACzC,YAAA,EAAc,CAAA,CAAE,MAAA,EAAO,CAAE,GAAA,CAAI,CAAC,CAAA,CAAE,GAAA,CAAI,GAAG,CAAA,CAAE,OAAA,CAAQ,EAAE,CAAA;AAAA,EACnD,aAAA,EAAe,aAAa,QAAA,EAAS;AAAA,EACrC,gBAAgB,CAAA,CAAE,MAAA,EAAO,CAAE,GAAA,GAAM,QAAA,EAAS;AAAA,EAC1C,aAAA,EAAe,CAAA,CAAE,IAAA,CAAK,CAAC,MAAA,EAAQ,UAAU,QAAQ,CAAC,CAAA,CAAE,OAAA,CAAQ,MAAM,CAAA;AAAA,EAClE,eAAe,CAAA,CAAE,MAAA,CAAO,EAAE,OAAA,EAAS,EAAE,QAAA,EAAS;AAAA,EAC9C,SAAA,EAAW,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC/B,SAAA,EAAW,EACR,MAAA,CAAO;AAAA,IACN,IAAA,EAAM,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,IAC1B,eAAA,EAAiB,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AAAS,GACtC,EACA,QAAA;AACL,CAAC","file":"chunk-4PY224XM.js","sourcesContent":["import { z } from 'zod';\nimport type { ObjectId } from 'mongodb';\n\n// ============================================================\n// Block Editor Types\n// ============================================================\n\nexport const BlockTypeSchema = z.enum([\n 'paragraph',\n 'heading',\n 'image',\n 'codeBlock',\n 'blockquote',\n 'bulletList',\n 'orderedList',\n 'taskList',\n 'table',\n 'embed',\n 'horizontalRule',\n 'callout',\n 'tableOfContents',\n 'faq',\n 'html',\n]);\n\nexport type BlockType = z.infer<typeof BlockTypeSchema>;\n\nexport interface BlockContent {\n type: string;\n attrs?: Record<string, unknown>;\n content?: BlockContent[];\n text?: string;\n marks?: { type: string; attrs?: Record<string, unknown> }[];\n}\n\n// ============================================================\n// Media\n// ============================================================\n\nexport interface MediaReference {\n _id: string;\n url: string;\n alt?: string;\n caption?: string;\n width?: number;\n height?: number;\n}\n\nexport const MediaSchema = z.object({\n filename: z.string(),\n originalName: z.string(),\n mimeType: z.string(),\n size: z.number(),\n width: z.number().optional(),\n height: z.number().optional(),\n r2Key: z.string(),\n url: z.string().url(),\n alt: z.string().optional(),\n caption: z.string().optional(),\n createdAt: z.date(),\n});\n\nexport interface Media {\n _id: ObjectId;\n filename: string;\n originalName: string;\n mimeType: string;\n size: number;\n width?: number;\n height?: number;\n r2Key: string;\n url: string;\n alt?: string;\n caption?: string;\n createdAt: Date;\n}\n\n// ============================================================\n// Author\n// ============================================================\n\nexport const AuthorSchema = z.object({\n name: z.string().min(1),\n avatar: z.string().url().optional(),\n bio: z.string().optional(),\n url: z.string().url().optional(),\n});\n\nexport interface Author {\n name: string;\n avatar?: string;\n bio?: string;\n url?: string;\n}\n\n// ============================================================\n// SEO\n// ============================================================\n\nexport const PostSEOSchema = z.object({\n metaTitle: z.string().optional(),\n metaDescription: z.string().optional(),\n canonicalUrl: z.string().url().optional(),\n ogImage: z.string().url().optional(),\n ogType: z.string().default('article'),\n noIndex: z.boolean().default(false),\n structuredData: z.record(z.unknown()).optional(),\n focusKeyword: z.string().optional(),\n});\n\nexport interface PostSEO {\n metaTitle?: string;\n metaDescription?: string;\n canonicalUrl?: string;\n ogImage?: string;\n ogType: string;\n noIndex: boolean;\n structuredData?: Record<string, unknown>;\n focusKeyword?: string;\n}\n\n// ============================================================\n// Revision\n// ============================================================\n\nexport interface Revision {\n version: number;\n title: string;\n content: BlockContent[];\n contentHTML: string;\n savedAt: Date;\n}\n\n// ============================================================\n// Post\n// ============================================================\n\nexport const PostStatusSchema = z.enum(['draft', 'published', 'scheduled', 'archived']);\nexport type PostStatus = z.infer<typeof PostStatusSchema>;\n\nexport const CreatePostSchema = z.object({\n title: z.string().min(1, 'Title is required'),\n slug: z.string().optional(),\n excerpt: z.string().optional(),\n content: z.any(), // BlockContent[] — validated structurally\n contentHTML: z.string().optional(),\n contentText: z.string().optional(),\n coverImage: z\n .object({\n _id: z.string(),\n url: z.string().url(),\n alt: z.string().optional(),\n caption: z.string().optional(),\n width: z.number().optional(),\n height: z.number().optional(),\n })\n .optional(),\n categories: z.array(z.string()).default([]),\n tags: z.array(z.string()).default([]),\n author: AuthorSchema.optional(),\n seo: PostSEOSchema.optional(),\n status: PostStatusSchema.default('draft'),\n publishedAt: z.coerce.date().optional(),\n scheduledAt: z.coerce.date().optional(),\n});\n\nexport const UpdatePostSchema = CreatePostSchema.partial();\n\nexport type CreatePostInput = z.infer<typeof CreatePostSchema>;\nexport type UpdatePostInput = z.infer<typeof UpdatePostSchema>;\n\nexport interface BlogPost {\n _id: ObjectId;\n title: string;\n slug: string;\n excerpt: string;\n content: BlockContent[];\n contentHTML: string;\n contentText: string;\n coverImage?: MediaReference;\n categories: string[];\n tags: string[];\n author: Author;\n seo: PostSEO;\n status: PostStatus;\n publishedAt?: Date;\n scheduledAt?: Date;\n readingTime: number;\n wordCount: number;\n version: number;\n revisions: Revision[];\n createdAt: Date;\n updatedAt: Date;\n}\n\n// ============================================================\n// Category\n// ============================================================\n\nexport const CreateCategorySchema = z.object({\n name: z.string().min(1, 'Category name is required'),\n slug: z.string().optional(),\n description: z.string().optional(),\n seo: z\n .object({\n metaTitle: z.string().optional(),\n metaDescription: z.string().optional(),\n })\n .optional(),\n order: z.number().default(0),\n parentId: z.string().optional(),\n});\n\nexport const UpdateCategorySchema = CreateCategorySchema.partial();\n\nexport type CreateCategoryInput = z.infer<typeof CreateCategorySchema>;\nexport type UpdateCategoryInput = z.infer<typeof UpdateCategorySchema>;\n\nexport interface Category {\n _id: ObjectId;\n name: string;\n slug: string;\n description?: string;\n seo?: {\n metaTitle?: string;\n metaDescription?: string;\n };\n order: number;\n parentId?: ObjectId;\n postCount: number;\n}\n\n// ============================================================\n// Settings\n// ============================================================\n\nexport const BlogSettingsSchema = z.object({\n postsPerPage: z.number().min(1).max(100).default(10),\n defaultAuthor: AuthorSchema.optional(),\n defaultOgImage: z.string().url().optional(),\n commentSystem: z.enum(['none', 'giscus', 'disqus']).default('none'),\n commentConfig: z.record(z.unknown()).optional(),\n customCSS: z.string().optional(),\n analytics: z\n .object({\n gaId: z.string().optional(),\n plausibleDomain: z.string().optional(),\n })\n .optional(),\n});\n\nexport interface BlogSettings {\n _id: string;\n postsPerPage: number;\n defaultAuthor?: Author;\n defaultOgImage?: string;\n commentSystem: 'none' | 'giscus' | 'disqus';\n commentConfig?: Record<string, unknown>;\n customCSS?: string;\n analytics?: {\n gaId?: string;\n plausibleDomain?: string;\n };\n}\n\n// ============================================================\n// API Response Types\n// ============================================================\n\nexport interface ApiSuccessResponse<T = unknown> {\n success: true;\n data: T;\n meta?: {\n page: number;\n limit: number;\n total: number;\n totalPages: number;\n };\n}\n\nexport interface ApiErrorResponse {\n success: false;\n error: {\n code: string;\n message: string;\n };\n}\n\nexport type ApiResponse<T = unknown> = ApiSuccessResponse<T> | ApiErrorResponse;\n\n// ============================================================\n// SEO Score Types\n// ============================================================\n\nexport type SEOCheckStatus = 'pass' | 'warn' | 'fail';\nexport type SEOOverallScore = 'good' | 'ok' | 'poor';\n\nexport interface SEOCheck {\n id: string;\n status: SEOCheckStatus;\n message: string;\n}\n\nexport interface SEOScore {\n overall: SEOOverallScore;\n checks: SEOCheck[];\n}\n\n// ============================================================\n// Config Types\n// ============================================================\n\nexport interface NextBlogKitConfig {\n basePath: string;\n adminPath: string;\n apiPath: string;\n postsPerPage: number;\n excerptLength: number;\n codeHighlighter: 'shiki' | 'prism';\n editor: {\n blocks: BlockType[];\n maxImageSize: number;\n imageFormats: string[];\n autosaveInterval: number;\n };\n seo: {\n titleTemplate: string;\n defaultOgImage?: string;\n generateRSS: boolean;\n generateSitemap: boolean;\n structuredData: boolean;\n minContentLength: number;\n };\n auth: {\n strategy: 'api-key' | 'custom' | 'credentials';\n verify?: (request: Request) => Promise<boolean>;\n admins?: string[];\n };\n features: {\n search: boolean;\n relatedPosts: boolean;\n readingProgress: boolean;\n tableOfContents: boolean;\n shareButtons: boolean;\n darkMode: boolean;\n scheduling: boolean;\n revisionHistory: boolean;\n imageOptimization: boolean;\n };\n theme: {\n variables?: Record<string, string>;\n darkMode?: boolean;\n components?: Record<string, React.ComponentType<unknown>>;\n };\n hooks: {\n beforePublish?: (post: BlogPost) => Promise<void>;\n afterPublish?: (post: BlogPost) => Promise<void>;\n beforeDelete?: (post: BlogPost) => Promise<void>;\n onMediaUpload?: (media: Media) => Promise<void>;\n };\n}\n\n// ============================================================\n// Query Types\n// ============================================================\n\nexport interface PostListQuery {\n page?: number;\n limit?: number;\n category?: string;\n tag?: string;\n status?: PostStatus;\n search?: string;\n sortBy?: 'publishedAt' | 'createdAt' | 'title';\n sortOrder?: 'asc' | 'desc';\n}\n\nexport interface MediaListQuery {\n page?: number;\n limit?: number;\n mimeType?: string;\n}\n"]}
|