folderblog 0.0.1 → 0.0.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.
Files changed (42) hide show
  1. package/README.md +109 -48
  2. package/dist/chunk-24MKFHML.cjs +143 -0
  3. package/dist/chunk-3RG5ZIWI.js +8 -0
  4. package/dist/chunk-4ZJGUMHS.cjs +78 -0
  5. package/dist/chunk-HMQIQUPB.cjs +387 -0
  6. package/dist/chunk-IXP35S24.js +1715 -0
  7. package/dist/chunk-OBGZSXTJ.cjs +10 -0
  8. package/dist/chunk-PARGDJNY.js +76 -0
  9. package/dist/chunk-QA4KPPTA.cjs +1787 -0
  10. package/dist/chunk-XP5J4LFJ.js +127 -0
  11. package/dist/chunk-ZRUBI3GH.js +370 -0
  12. package/dist/cli/bin.cjs +25 -0
  13. package/dist/cli/bin.d.cts +1 -0
  14. package/dist/cli/bin.d.ts +1 -0
  15. package/dist/cli/bin.js +23 -0
  16. package/dist/cli/index.cjs +22 -0
  17. package/dist/cli/index.d.cts +39 -0
  18. package/dist/cli/index.d.ts +39 -0
  19. package/dist/cli/index.js +15 -0
  20. package/dist/config-DFr-htlO.d.cts +887 -0
  21. package/dist/config-DFr-htlO.d.ts +887 -0
  22. package/dist/index.cjs +488 -1
  23. package/dist/index.d.cts +76 -8
  24. package/dist/index.d.ts +76 -8
  25. package/dist/index.js +153 -1
  26. package/dist/processor/index.cjs +337 -0
  27. package/dist/processor/index.d.cts +491 -0
  28. package/dist/processor/index.d.ts +491 -0
  29. package/dist/processor/index.js +4 -0
  30. package/dist/processor/plugins.cjs +51 -0
  31. package/dist/processor/plugins.d.cts +174 -0
  32. package/dist/processor/plugins.d.ts +174 -0
  33. package/dist/processor/plugins.js +2 -0
  34. package/dist/processor/types.cjs +67 -0
  35. package/dist/processor/types.d.cts +47 -0
  36. package/dist/processor/types.d.ts +47 -0
  37. package/dist/processor/types.js +2 -0
  38. package/dist/server/index.cjs +36 -0
  39. package/dist/server/index.d.cts +56 -0
  40. package/dist/server/index.d.ts +56 -0
  41. package/dist/server/index.js +34 -0
  42. package/package.json +63 -11
package/dist/index.d.ts CHANGED
@@ -1,3 +1,12 @@
1
+ export { B as BrokenLinkIssue, C as CacheContext, a as CacheStats, b as CachedMediaMetadata, c as CachedMediaSizeVariant, d as ContentConfig, D as DEFAULT_IMAGE_SIZES, e as DatabaseBuildInput, f as DatabasePlugin, g as DatabaseResult, h as DebugConfig, i as DirectoryConfig, E as EmbeddingErrorIssue, j as EmbeddingMap, G as GraphData, k as GraphEdge, l as GraphNode, I as ImageEmbeddingPlugin, m as ImageMetadata, n as ImageProcessOptions, o as ImageProcessResult, p as ImageProcessorPlugin, q as ImageSizeConfig, r as IssueCategory, s as IssueCollector, t as IssueCollectorState, u as IssueFilterOptions, v as IssueModule, w as IssueReport, x as IssueSeverity, y as IssueSummary, L as LogLevel, M as MediaConfig, z as MediaMetadata, A as MediaPathMap, F as MediaProcessingIssue, H as MediaSizeVariant, J as MermaidConfig, K as MermaidErrorIssue, N as MermaidRenderOptions, O as MermaidRendererPlugin, P as MermaidResult, Q as MermaidStrategy, R as MissingMediaIssue, S as OUTPUT_FILES, T as OutputFiles, U as PathHashMap, V as PipelineConfig, W as Plugin, X as PluginByName, Y as PluginConfig, Z as PluginContext, _ as PluginErrorIssue, $ as PluginName, a0 as PostCover, a1 as PostCoverError, a2 as PostCoverSize, a3 as PostMetadata, a4 as ProcessConfig, a5 as ProcessConfigWithDefaults, a6 as ProcessResult, a7 as ProcessedMedia, a8 as ProcessedPost, a9 as ProcessingIssue, aa as RelationshipType, ab as SimilarityPlugin, ac as SimilarityResult, ad as SlugConflictIssue, ae as SlugHashMap, af as TextEmbeddingPlugin, ag as TocItem, ah as buildEmbeddingCacheFromManifest, ai as buildMediaCacheFromManifest, aj as calculateSummary, ak as createEmptyCacheStats, al as filterIssues, am as generateIssueReport, an as getMediaOutputDir, ao as getOutputDir, ap as isBrokenLinkIssue, aq as isEmbeddingErrorIssue, ar as isMediaProcessingIssue, as as isMermaidErrorIssue, at as isMissingMediaIssue, au as isPluginErrorIssue, av as isSlugConflictIssue, aw as withDefaults } from './config-DFr-htlO.js';
2
+ export { BlockOnly, FileMap, HeaderOnly, LinkResolverOptions, ObsidianLink, PageAndBlock, PageAndHeader, PageOnly } from './processor/types.js';
3
+ export { CopyOnlyImageProcessor, NoOpDatabase, NoOpImageEmbedder, NoOpSimilarity, NoOpTextEmbedder, PassthroughMermaidRenderer, PluginManager, PluginManagerConfig, createAllNoOpPlugins, createDefaultPlugins, createPluginManager, topologicalSort } from './processor/plugins.js';
4
+ export { BaseSlugOptions, CustomToLinkOptions, DEFAULT_PIPELINE_OPTIONS, FileItem, FrontmatterResult, MarkdownResult, PipelineOptions, Processor, ProcessorOptions, RehypePlugin, RemarkPlugin, SlugAssignment, SlugConfig, SlugManager, buildFileMaps, buildToc, combineHashes, copyFile, countWords, createBasePipeline, createCustomToLink, createPathVariations, createProcessor, ensureDir, estimateReadingTime, extractFirstParagraph, extractHeadings, fileExists, findByFileNameCaseInsensitive, findFiles, findMarkdownFiles, generateBaseSlug, getContentStats, getExtension, getFileName, getStats, hashBuffer, hashContent, hastToHtml, mdastToHast, mdastToText, normalizePath, parseFrontmatter, parseToMdast, processFolder, processMarkdown, processVault, readJson, readText, relativePath, remarkMarkdownLinkResolver, resolveFile, resolveFromCandidates, resolveMarkdownLink, resolveMarkdownLinkPath, resolveSlugConflict, resolveWikilink, shortHash, toSlug, wikiToObsidian, wikilinkToMarkdownLink, writeJson, writeText } from './processor/index.js';
5
+ import 'mdast';
6
+ import 'hast';
7
+ import 'remark-obsidian-link';
8
+ import 'unified';
9
+
1
10
  /**
2
11
  * Base post fields shared between list and detail responses
3
12
  */
@@ -9,13 +18,13 @@ interface PostBase {
9
18
  excerpt: string;
10
19
  }
11
20
  /**
12
- * Post summary in list responses
21
+ * Post summary returned by `blog.posts.list()`
13
22
  */
14
23
  interface PostSummary extends PostBase {
15
24
  url: string;
16
25
  }
17
26
  /**
18
- * Full post from detail endpoint
27
+ * Full post returned by `blog.posts.get(slug)`
19
28
  */
20
29
  interface Post extends PostBase {
21
30
  content: string;
@@ -23,7 +32,7 @@ interface Post extends PostBase {
23
32
  images: string[];
24
33
  }
25
34
  /**
26
- * Site information
35
+ * Site information returned by `blog.site.get()`
27
36
  */
28
37
  interface Site {
29
38
  site: string;
@@ -32,39 +41,63 @@ interface Site {
32
41
  url: string;
33
42
  }
34
43
  /**
35
- * Client options
44
+ * Options for creating a FolderBlog client
36
45
  */
37
46
  interface FolderBlogOptions {
47
+ /** Custom fetch implementation (defaults to globalThis.fetch) */
38
48
  fetch?: typeof fetch;
39
49
  }
40
50
  /**
41
- * The FolderBlog client
51
+ * The FolderBlog client interface
42
52
  */
43
53
  interface FolderBlogClient {
44
54
  posts: {
55
+ /** List all published posts */
45
56
  list(): Promise<PostSummary[]>;
57
+ /** Get a single post by slug */
46
58
  get(slug: string): Promise<Post>;
47
59
  };
48
60
  site: {
61
+ /** Get site metadata */
49
62
  get(): Promise<Site>;
50
63
  };
64
+ tags: {
65
+ /** List all tags */
66
+ list(): Promise<string[]>;
67
+ };
68
+ categories: {
69
+ /** List all categories */
70
+ list(): Promise<string[]>;
71
+ };
72
+ feed: {
73
+ /** Get RSS feed (XML string) */
74
+ rss(): Promise<string>;
75
+ /** Get JSON feed */
76
+ json(): Promise<Record<string, unknown>>;
77
+ };
51
78
  }
52
79
 
53
80
  /**
54
- * Create a FolderBlog client
81
+ * Create a FolderBlog client for consuming blog APIs.
55
82
  *
56
83
  * @example
57
84
  * ```ts
85
+ * import { folderBlog } from 'folderblog';
86
+ *
58
87
  * const blog = folderBlog('yourname.folder.blog');
88
+ *
59
89
  * const posts = await blog.posts.list();
60
90
  * const post = await blog.posts.get('hello-world');
61
91
  * const site = await blog.site.get();
92
+ * const tags = await blog.tags.list();
93
+ * const categories = await blog.categories.list();
94
+ * const rss = await blog.feed.rss();
62
95
  * ```
63
96
  */
64
97
  declare function folderBlog(domain: string, options?: FolderBlogOptions): FolderBlogClient;
65
98
 
66
99
  /**
67
- * Base error class for folder-blog SDK errors
100
+ * Base error class for folderblog SDK errors
68
101
  */
69
102
  declare class FolderBlogError extends Error {
70
103
  /** HTTP status code if applicable */
@@ -96,4 +129,39 @@ declare class NetworkError extends FolderBlogError {
96
129
  constructor(message: string, cause?: Error);
97
130
  }
98
131
 
99
- export { ApiError, type FolderBlogClient, FolderBlogError, type FolderBlogOptions, NetworkError, NotFoundError, type Post, type PostSummary, type Site, folderBlog };
132
+ /**
133
+ * folderblog - Official SDK for folder.blog
134
+ *
135
+ * Everything you need: API client, server middleware, and markdown processor.
136
+ *
137
+ * @example API client
138
+ * ```ts
139
+ * import { folderBlog } from 'folderblog';
140
+ *
141
+ * const blog = folderBlog('yourname.folder.blog');
142
+ * const posts = await blog.posts.list();
143
+ * ```
144
+ *
145
+ * @example Markdown processing
146
+ * ```ts
147
+ * import { processFolder, Processor } from 'folderblog';
148
+ * ```
149
+ *
150
+ * @example Server middleware
151
+ * ```ts
152
+ * import { createHandler } from 'folderblog/server';
153
+ * ```
154
+ *
155
+ * @example Fine-grained imports (tree-shaking)
156
+ * ```ts
157
+ * import { Processor } from 'folderblog/processor';
158
+ * import { PluginManager } from 'folderblog/processor/plugins';
159
+ * import type { ProcessConfig } from 'folderblog/processor/types';
160
+ * ```
161
+ *
162
+ * @packageDocumentation
163
+ */
164
+
165
+ declare const VERSION = "0.0.1";
166
+
167
+ export { ApiError, type FolderBlogClient, FolderBlogError, type FolderBlogOptions, NetworkError, NotFoundError, type Post, type PostSummary, type Site, VERSION, folderBlog };
package/dist/index.js CHANGED
@@ -1 +1,153 @@
1
- var o=class extends Error{status;url;constructor(t,r){super(t),this.name="FolderBlogError",this.status=r?.status,this.url=r?.url}},a=class extends o{constructor(t,r,u){super(`${t} not found: ${r}`,{status:404,url:u}),this.name="NotFoundError"}},l=class extends o{constructor(t,r,u){super(t,{status:r,url:u}),this.name="ApiError"}},c=class extends o{cause;constructor(t,r){super(t),this.name="NetworkError",this.cause=r}};function m(e){let t=e.trim();return t.endsWith("/")&&(t=t.slice(0,-1)),!t.startsWith("http://")&&!t.startsWith("https://")&&(t=`https://${t}`),t}function h(e,t={}){let r=m(e),u=t.fetch??globalThis.fetch;async function p(n){let s=`${r}${n}`,i;try{i=await u(s,{method:"GET",headers:{Accept:"application/json"}})}catch(d){throw new c(`Failed to fetch ${s}`,d instanceof Error?d:void 0)}if(!i.ok)throw i.status===404?new a("Resource",n,s):new l(`API request failed: ${i.statusText}`,i.status,s);try{return await i.json()}catch{throw new l("Failed to parse JSON response",i.status,s)}}return{posts:{async list(){return(await p("/api/posts")).posts},async get(n){if(!n)throw new o("Post slug is required");try{return await p(`/api/posts/${encodeURIComponent(n)}`)}catch(s){throw s instanceof a?new a("Post",n,s.url):s}}},site:{async get(){return p("/api")}}}}export{l as ApiError,o as FolderBlogError,c as NetworkError,a as NotFoundError,h as folderBlog};
1
+ export { DEFAULT_PIPELINE_OPTIONS, IssueCollector, Processor, SlugManager, buildFileMaps, buildToc, calculateSummary, combineHashes, copyFile, countWords, createBasePipeline, createCustomToLink, createPathVariations, createProcessor, ensureDir, estimateReadingTime, extractFirstParagraph, extractHeadings, fileExists, filterIssues, findByFileNameCaseInsensitive, findFiles, findMarkdownFiles, generateBaseSlug, generateIssueReport, getContentStats, getExtension, getFileName, getStats, hashBuffer, hashContent, hastToHtml, mdastToHast, mdastToText, normalizePath, parseFrontmatter, parseToMdast, processFolder, processMarkdown, processVault, readJson, readText, relativePath, remarkMarkdownLinkResolver, resolveFile, resolveFromCandidates, resolveMarkdownLink, resolveMarkdownLinkPath, resolveSlugConflict, resolveWikilink, shortHash, toSlug, wikiToObsidian, wikilinkToMarkdownLink, writeJson, writeText } from './chunk-IXP35S24.js';
2
+ export { CopyOnlyImageProcessor, NoOpDatabase, NoOpImageEmbedder, NoOpSimilarity, NoOpTextEmbedder, PassthroughMermaidRenderer, PluginManager, createAllNoOpPlugins, createDefaultPlugins, createPluginManager, topologicalSort } from './chunk-ZRUBI3GH.js';
3
+ export { DEFAULT_IMAGE_SIZES, OUTPUT_FILES, buildEmbeddingCacheFromManifest, buildMediaCacheFromManifest, createEmptyCacheStats, getMediaOutputDir, getOutputDir, isBrokenLinkIssue, isEmbeddingErrorIssue, isMediaProcessingIssue, isMermaidErrorIssue, isMissingMediaIssue, isPluginErrorIssue, isSlugConflictIssue, withDefaults } from './chunk-XP5J4LFJ.js';
4
+ import './chunk-3RG5ZIWI.js';
5
+
6
+ // src/errors.ts
7
+ var FolderBlogError = class extends Error {
8
+ /** HTTP status code if applicable */
9
+ status;
10
+ /** The URL that was requested */
11
+ url;
12
+ constructor(message, options) {
13
+ super(message);
14
+ this.name = "FolderBlogError";
15
+ this.status = options?.status;
16
+ this.url = options?.url;
17
+ }
18
+ };
19
+ var NotFoundError = class extends FolderBlogError {
20
+ constructor(resource, identifier, url) {
21
+ super(`${resource} not found: ${identifier}`, { status: 404, url });
22
+ this.name = "NotFoundError";
23
+ }
24
+ };
25
+ var ApiError = class extends FolderBlogError {
26
+ constructor(message, status, url) {
27
+ super(message, { status, url });
28
+ this.name = "ApiError";
29
+ }
30
+ };
31
+ var NetworkError = class extends FolderBlogError {
32
+ cause;
33
+ constructor(message, cause) {
34
+ super(message);
35
+ this.name = "NetworkError";
36
+ this.cause = cause;
37
+ }
38
+ };
39
+
40
+ // src/client.ts
41
+ function normalizeBaseUrl(domain) {
42
+ let url = domain.trim();
43
+ if (url.endsWith("/")) url = url.slice(0, -1);
44
+ if (!url.startsWith("http://") && !url.startsWith("https://")) {
45
+ url = `https://${url}`;
46
+ }
47
+ return url;
48
+ }
49
+ function folderBlog(domain, options = {}) {
50
+ const baseUrl = normalizeBaseUrl(domain);
51
+ const fetchFn = options.fetch ?? globalThis.fetch;
52
+ async function request(path) {
53
+ const url = `${baseUrl}${path}`;
54
+ let response;
55
+ try {
56
+ response = await fetchFn(url, {
57
+ method: "GET",
58
+ headers: { Accept: "application/json" }
59
+ });
60
+ } catch (error) {
61
+ throw new NetworkError(
62
+ `Failed to fetch ${url}`,
63
+ error instanceof Error ? error : void 0
64
+ );
65
+ }
66
+ if (!response.ok) {
67
+ if (response.status === 404) {
68
+ throw new NotFoundError("Resource", path, url);
69
+ }
70
+ throw new ApiError(
71
+ `API request failed: ${response.statusText}`,
72
+ response.status,
73
+ url
74
+ );
75
+ }
76
+ try {
77
+ return await response.json();
78
+ } catch {
79
+ throw new ApiError("Failed to parse JSON response", response.status, url);
80
+ }
81
+ }
82
+ async function requestText(path) {
83
+ const url = `${baseUrl}${path}`;
84
+ let response;
85
+ try {
86
+ response = await fetchFn(url, {
87
+ method: "GET"
88
+ });
89
+ } catch (error) {
90
+ throw new NetworkError(
91
+ `Failed to fetch ${url}`,
92
+ error instanceof Error ? error : void 0
93
+ );
94
+ }
95
+ if (!response.ok) {
96
+ throw new ApiError(
97
+ `API request failed: ${response.statusText}`,
98
+ response.status,
99
+ url
100
+ );
101
+ }
102
+ return response.text();
103
+ }
104
+ return {
105
+ posts: {
106
+ async list() {
107
+ const data = await request("/api/posts");
108
+ return data.posts;
109
+ },
110
+ async get(slug) {
111
+ if (!slug) throw new FolderBlogError("Post slug is required");
112
+ try {
113
+ return await request(`/api/posts/${encodeURIComponent(slug)}`);
114
+ } catch (error) {
115
+ if (error instanceof NotFoundError) {
116
+ throw new NotFoundError("Post", slug, error.url);
117
+ }
118
+ throw error;
119
+ }
120
+ }
121
+ },
122
+ site: {
123
+ async get() {
124
+ return request("/api");
125
+ }
126
+ },
127
+ tags: {
128
+ async list() {
129
+ const data = await request("/api/tags");
130
+ return data.tags;
131
+ }
132
+ },
133
+ categories: {
134
+ async list() {
135
+ const data = await request("/api/categories");
136
+ return data.categories;
137
+ }
138
+ },
139
+ feed: {
140
+ async rss() {
141
+ return requestText("/api/feed.xml");
142
+ },
143
+ async json() {
144
+ return request("/api/feed.json");
145
+ }
146
+ }
147
+ };
148
+ }
149
+
150
+ // src/index.ts
151
+ var VERSION = "0.0.1";
152
+
153
+ export { ApiError, FolderBlogError, NetworkError, NotFoundError, VERSION, folderBlog };
@@ -0,0 +1,337 @@
1
+ 'use strict';
2
+
3
+ var chunkQA4KPPTA_cjs = require('../chunk-QA4KPPTA.cjs');
4
+ var chunkHMQIQUPB_cjs = require('../chunk-HMQIQUPB.cjs');
5
+ var chunk24MKFHML_cjs = require('../chunk-24MKFHML.cjs');
6
+ require('../chunk-OBGZSXTJ.cjs');
7
+
8
+
9
+
10
+ Object.defineProperty(exports, "DEFAULT_PIPELINE_OPTIONS", {
11
+ enumerable: true,
12
+ get: function () { return chunkQA4KPPTA_cjs.DEFAULT_PIPELINE_OPTIONS; }
13
+ });
14
+ Object.defineProperty(exports, "IssueCollector", {
15
+ enumerable: true,
16
+ get: function () { return chunkQA4KPPTA_cjs.IssueCollector; }
17
+ });
18
+ Object.defineProperty(exports, "Processor", {
19
+ enumerable: true,
20
+ get: function () { return chunkQA4KPPTA_cjs.Processor; }
21
+ });
22
+ Object.defineProperty(exports, "SlugManager", {
23
+ enumerable: true,
24
+ get: function () { return chunkQA4KPPTA_cjs.SlugManager; }
25
+ });
26
+ Object.defineProperty(exports, "buildFileMaps", {
27
+ enumerable: true,
28
+ get: function () { return chunkQA4KPPTA_cjs.buildFileMaps; }
29
+ });
30
+ Object.defineProperty(exports, "buildToc", {
31
+ enumerable: true,
32
+ get: function () { return chunkQA4KPPTA_cjs.buildToc; }
33
+ });
34
+ Object.defineProperty(exports, "calculateSummary", {
35
+ enumerable: true,
36
+ get: function () { return chunkQA4KPPTA_cjs.calculateSummary; }
37
+ });
38
+ Object.defineProperty(exports, "combineHashes", {
39
+ enumerable: true,
40
+ get: function () { return chunkQA4KPPTA_cjs.combineHashes; }
41
+ });
42
+ Object.defineProperty(exports, "copyFile", {
43
+ enumerable: true,
44
+ get: function () { return chunkQA4KPPTA_cjs.copyFile; }
45
+ });
46
+ Object.defineProperty(exports, "countWords", {
47
+ enumerable: true,
48
+ get: function () { return chunkQA4KPPTA_cjs.countWords; }
49
+ });
50
+ Object.defineProperty(exports, "createBasePipeline", {
51
+ enumerable: true,
52
+ get: function () { return chunkQA4KPPTA_cjs.createBasePipeline; }
53
+ });
54
+ Object.defineProperty(exports, "createCustomToLink", {
55
+ enumerable: true,
56
+ get: function () { return chunkQA4KPPTA_cjs.createCustomToLink; }
57
+ });
58
+ Object.defineProperty(exports, "createPathVariations", {
59
+ enumerable: true,
60
+ get: function () { return chunkQA4KPPTA_cjs.createPathVariations; }
61
+ });
62
+ Object.defineProperty(exports, "createProcessor", {
63
+ enumerable: true,
64
+ get: function () { return chunkQA4KPPTA_cjs.createProcessor; }
65
+ });
66
+ Object.defineProperty(exports, "ensureDir", {
67
+ enumerable: true,
68
+ get: function () { return chunkQA4KPPTA_cjs.ensureDir; }
69
+ });
70
+ Object.defineProperty(exports, "estimateReadingTime", {
71
+ enumerable: true,
72
+ get: function () { return chunkQA4KPPTA_cjs.estimateReadingTime; }
73
+ });
74
+ Object.defineProperty(exports, "extractFirstParagraph", {
75
+ enumerable: true,
76
+ get: function () { return chunkQA4KPPTA_cjs.extractFirstParagraph; }
77
+ });
78
+ Object.defineProperty(exports, "extractHeadings", {
79
+ enumerable: true,
80
+ get: function () { return chunkQA4KPPTA_cjs.extractHeadings; }
81
+ });
82
+ Object.defineProperty(exports, "fileExists", {
83
+ enumerable: true,
84
+ get: function () { return chunkQA4KPPTA_cjs.fileExists; }
85
+ });
86
+ Object.defineProperty(exports, "filterIssues", {
87
+ enumerable: true,
88
+ get: function () { return chunkQA4KPPTA_cjs.filterIssues; }
89
+ });
90
+ Object.defineProperty(exports, "findByFileNameCaseInsensitive", {
91
+ enumerable: true,
92
+ get: function () { return chunkQA4KPPTA_cjs.findByFileNameCaseInsensitive; }
93
+ });
94
+ Object.defineProperty(exports, "findFiles", {
95
+ enumerable: true,
96
+ get: function () { return chunkQA4KPPTA_cjs.findFiles; }
97
+ });
98
+ Object.defineProperty(exports, "findMarkdownFiles", {
99
+ enumerable: true,
100
+ get: function () { return chunkQA4KPPTA_cjs.findMarkdownFiles; }
101
+ });
102
+ Object.defineProperty(exports, "generateBaseSlug", {
103
+ enumerable: true,
104
+ get: function () { return chunkQA4KPPTA_cjs.generateBaseSlug; }
105
+ });
106
+ Object.defineProperty(exports, "generateIssueReport", {
107
+ enumerable: true,
108
+ get: function () { return chunkQA4KPPTA_cjs.generateIssueReport; }
109
+ });
110
+ Object.defineProperty(exports, "getContentStats", {
111
+ enumerable: true,
112
+ get: function () { return chunkQA4KPPTA_cjs.getContentStats; }
113
+ });
114
+ Object.defineProperty(exports, "getExtension", {
115
+ enumerable: true,
116
+ get: function () { return chunkQA4KPPTA_cjs.getExtension; }
117
+ });
118
+ Object.defineProperty(exports, "getFileName", {
119
+ enumerable: true,
120
+ get: function () { return chunkQA4KPPTA_cjs.getFileName; }
121
+ });
122
+ Object.defineProperty(exports, "getStats", {
123
+ enumerable: true,
124
+ get: function () { return chunkQA4KPPTA_cjs.getStats; }
125
+ });
126
+ Object.defineProperty(exports, "hashBuffer", {
127
+ enumerable: true,
128
+ get: function () { return chunkQA4KPPTA_cjs.hashBuffer; }
129
+ });
130
+ Object.defineProperty(exports, "hashContent", {
131
+ enumerable: true,
132
+ get: function () { return chunkQA4KPPTA_cjs.hashContent; }
133
+ });
134
+ Object.defineProperty(exports, "hastToHtml", {
135
+ enumerable: true,
136
+ get: function () { return chunkQA4KPPTA_cjs.hastToHtml; }
137
+ });
138
+ Object.defineProperty(exports, "mdastToHast", {
139
+ enumerable: true,
140
+ get: function () { return chunkQA4KPPTA_cjs.mdastToHast; }
141
+ });
142
+ Object.defineProperty(exports, "mdastToText", {
143
+ enumerable: true,
144
+ get: function () { return chunkQA4KPPTA_cjs.mdastToText; }
145
+ });
146
+ Object.defineProperty(exports, "normalizePath", {
147
+ enumerable: true,
148
+ get: function () { return chunkQA4KPPTA_cjs.normalizePath; }
149
+ });
150
+ Object.defineProperty(exports, "parseFrontmatter", {
151
+ enumerable: true,
152
+ get: function () { return chunkQA4KPPTA_cjs.parseFrontmatter; }
153
+ });
154
+ Object.defineProperty(exports, "parseToMdast", {
155
+ enumerable: true,
156
+ get: function () { return chunkQA4KPPTA_cjs.parseToMdast; }
157
+ });
158
+ Object.defineProperty(exports, "processFolder", {
159
+ enumerable: true,
160
+ get: function () { return chunkQA4KPPTA_cjs.processFolder; }
161
+ });
162
+ Object.defineProperty(exports, "processMarkdown", {
163
+ enumerable: true,
164
+ get: function () { return chunkQA4KPPTA_cjs.processMarkdown; }
165
+ });
166
+ Object.defineProperty(exports, "processVault", {
167
+ enumerable: true,
168
+ get: function () { return chunkQA4KPPTA_cjs.processVault; }
169
+ });
170
+ Object.defineProperty(exports, "readJson", {
171
+ enumerable: true,
172
+ get: function () { return chunkQA4KPPTA_cjs.readJson; }
173
+ });
174
+ Object.defineProperty(exports, "readText", {
175
+ enumerable: true,
176
+ get: function () { return chunkQA4KPPTA_cjs.readText; }
177
+ });
178
+ Object.defineProperty(exports, "relativePath", {
179
+ enumerable: true,
180
+ get: function () { return chunkQA4KPPTA_cjs.relativePath; }
181
+ });
182
+ Object.defineProperty(exports, "remarkMarkdownLinkResolver", {
183
+ enumerable: true,
184
+ get: function () { return chunkQA4KPPTA_cjs.remarkMarkdownLinkResolver; }
185
+ });
186
+ Object.defineProperty(exports, "resolveFile", {
187
+ enumerable: true,
188
+ get: function () { return chunkQA4KPPTA_cjs.resolveFile; }
189
+ });
190
+ Object.defineProperty(exports, "resolveFromCandidates", {
191
+ enumerable: true,
192
+ get: function () { return chunkQA4KPPTA_cjs.resolveFromCandidates; }
193
+ });
194
+ Object.defineProperty(exports, "resolveMarkdownLink", {
195
+ enumerable: true,
196
+ get: function () { return chunkQA4KPPTA_cjs.resolveMarkdownLink; }
197
+ });
198
+ Object.defineProperty(exports, "resolveMarkdownLinkPath", {
199
+ enumerable: true,
200
+ get: function () { return chunkQA4KPPTA_cjs.resolveMarkdownLinkPath; }
201
+ });
202
+ Object.defineProperty(exports, "resolveSlugConflict", {
203
+ enumerable: true,
204
+ get: function () { return chunkQA4KPPTA_cjs.resolveSlugConflict; }
205
+ });
206
+ Object.defineProperty(exports, "resolveWikilink", {
207
+ enumerable: true,
208
+ get: function () { return chunkQA4KPPTA_cjs.resolveWikilink; }
209
+ });
210
+ Object.defineProperty(exports, "shortHash", {
211
+ enumerable: true,
212
+ get: function () { return chunkQA4KPPTA_cjs.shortHash; }
213
+ });
214
+ Object.defineProperty(exports, "toSlug", {
215
+ enumerable: true,
216
+ get: function () { return chunkQA4KPPTA_cjs.toSlug; }
217
+ });
218
+ Object.defineProperty(exports, "wikiToObsidian", {
219
+ enumerable: true,
220
+ get: function () { return chunkQA4KPPTA_cjs.wikiToObsidian; }
221
+ });
222
+ Object.defineProperty(exports, "wikilinkToMarkdownLink", {
223
+ enumerable: true,
224
+ get: function () { return chunkQA4KPPTA_cjs.wikilinkToMarkdownLink; }
225
+ });
226
+ Object.defineProperty(exports, "writeJson", {
227
+ enumerable: true,
228
+ get: function () { return chunkQA4KPPTA_cjs.writeJson; }
229
+ });
230
+ Object.defineProperty(exports, "writeText", {
231
+ enumerable: true,
232
+ get: function () { return chunkQA4KPPTA_cjs.writeText; }
233
+ });
234
+ Object.defineProperty(exports, "CopyOnlyImageProcessor", {
235
+ enumerable: true,
236
+ get: function () { return chunkHMQIQUPB_cjs.CopyOnlyImageProcessor; }
237
+ });
238
+ Object.defineProperty(exports, "NoOpDatabase", {
239
+ enumerable: true,
240
+ get: function () { return chunkHMQIQUPB_cjs.NoOpDatabase; }
241
+ });
242
+ Object.defineProperty(exports, "NoOpImageEmbedder", {
243
+ enumerable: true,
244
+ get: function () { return chunkHMQIQUPB_cjs.NoOpImageEmbedder; }
245
+ });
246
+ Object.defineProperty(exports, "NoOpSimilarity", {
247
+ enumerable: true,
248
+ get: function () { return chunkHMQIQUPB_cjs.NoOpSimilarity; }
249
+ });
250
+ Object.defineProperty(exports, "NoOpTextEmbedder", {
251
+ enumerable: true,
252
+ get: function () { return chunkHMQIQUPB_cjs.NoOpTextEmbedder; }
253
+ });
254
+ Object.defineProperty(exports, "PassthroughMermaidRenderer", {
255
+ enumerable: true,
256
+ get: function () { return chunkHMQIQUPB_cjs.PassthroughMermaidRenderer; }
257
+ });
258
+ Object.defineProperty(exports, "PluginManager", {
259
+ enumerable: true,
260
+ get: function () { return chunkHMQIQUPB_cjs.PluginManager; }
261
+ });
262
+ Object.defineProperty(exports, "createAllNoOpPlugins", {
263
+ enumerable: true,
264
+ get: function () { return chunkHMQIQUPB_cjs.createAllNoOpPlugins; }
265
+ });
266
+ Object.defineProperty(exports, "createDefaultPlugins", {
267
+ enumerable: true,
268
+ get: function () { return chunkHMQIQUPB_cjs.createDefaultPlugins; }
269
+ });
270
+ Object.defineProperty(exports, "createPluginManager", {
271
+ enumerable: true,
272
+ get: function () { return chunkHMQIQUPB_cjs.createPluginManager; }
273
+ });
274
+ Object.defineProperty(exports, "topologicalSort", {
275
+ enumerable: true,
276
+ get: function () { return chunkHMQIQUPB_cjs.topologicalSort; }
277
+ });
278
+ Object.defineProperty(exports, "DEFAULT_IMAGE_SIZES", {
279
+ enumerable: true,
280
+ get: function () { return chunk24MKFHML_cjs.DEFAULT_IMAGE_SIZES; }
281
+ });
282
+ Object.defineProperty(exports, "OUTPUT_FILES", {
283
+ enumerable: true,
284
+ get: function () { return chunk24MKFHML_cjs.OUTPUT_FILES; }
285
+ });
286
+ Object.defineProperty(exports, "buildEmbeddingCacheFromManifest", {
287
+ enumerable: true,
288
+ get: function () { return chunk24MKFHML_cjs.buildEmbeddingCacheFromManifest; }
289
+ });
290
+ Object.defineProperty(exports, "buildMediaCacheFromManifest", {
291
+ enumerable: true,
292
+ get: function () { return chunk24MKFHML_cjs.buildMediaCacheFromManifest; }
293
+ });
294
+ Object.defineProperty(exports, "createEmptyCacheStats", {
295
+ enumerable: true,
296
+ get: function () { return chunk24MKFHML_cjs.createEmptyCacheStats; }
297
+ });
298
+ Object.defineProperty(exports, "getMediaOutputDir", {
299
+ enumerable: true,
300
+ get: function () { return chunk24MKFHML_cjs.getMediaOutputDir; }
301
+ });
302
+ Object.defineProperty(exports, "getOutputDir", {
303
+ enumerable: true,
304
+ get: function () { return chunk24MKFHML_cjs.getOutputDir; }
305
+ });
306
+ Object.defineProperty(exports, "isBrokenLinkIssue", {
307
+ enumerable: true,
308
+ get: function () { return chunk24MKFHML_cjs.isBrokenLinkIssue; }
309
+ });
310
+ Object.defineProperty(exports, "isEmbeddingErrorIssue", {
311
+ enumerable: true,
312
+ get: function () { return chunk24MKFHML_cjs.isEmbeddingErrorIssue; }
313
+ });
314
+ Object.defineProperty(exports, "isMediaProcessingIssue", {
315
+ enumerable: true,
316
+ get: function () { return chunk24MKFHML_cjs.isMediaProcessingIssue; }
317
+ });
318
+ Object.defineProperty(exports, "isMermaidErrorIssue", {
319
+ enumerable: true,
320
+ get: function () { return chunk24MKFHML_cjs.isMermaidErrorIssue; }
321
+ });
322
+ Object.defineProperty(exports, "isMissingMediaIssue", {
323
+ enumerable: true,
324
+ get: function () { return chunk24MKFHML_cjs.isMissingMediaIssue; }
325
+ });
326
+ Object.defineProperty(exports, "isPluginErrorIssue", {
327
+ enumerable: true,
328
+ get: function () { return chunk24MKFHML_cjs.isPluginErrorIssue; }
329
+ });
330
+ Object.defineProperty(exports, "isSlugConflictIssue", {
331
+ enumerable: true,
332
+ get: function () { return chunk24MKFHML_cjs.isSlugConflictIssue; }
333
+ });
334
+ Object.defineProperty(exports, "withDefaults", {
335
+ enumerable: true,
336
+ get: function () { return chunk24MKFHML_cjs.withDefaults; }
337
+ });