@aaronellington/vite-plugin-inkwell 0.1.0 → 0.2.1

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.
@@ -1 +1 @@
1
- {"version":3,"file":"content.d.ts","sourceRoot":"","sources":["../src/content.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAA;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAE/B,OAAO,KAAK,EAAsB,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAavE,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,GAAG,MAAM,EAAE,CAcvE;AAED,wBAAgB,gBAAgB,CAC/B,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,GACd;IAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAQpD;AAED,wBAAgB,WAAW,CAC1B,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpC,QAAQ,EAAE,MAAM,GACd,MAAM,CAQR;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,iBAAiB,EAAE,GAAG,IAAI,CAcpE;AAeD,wBAAgB,cAAc,CAAC,UAAU,EAAE,eAAe,EAAE,GAAG,MAAM,CAOpE;AAED,wBAAgB,gBAAgB,CAC/B,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,GACd,iBAAiB,CAkCnB"}
1
+ {"version":3,"file":"content.d.ts","sourceRoot":"","sources":["../src/content.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAA;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAE/B,OAAO,KAAK,EAAsB,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAavE,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,GAAG,MAAM,EAAE,CAcvE;AAED,wBAAgB,gBAAgB,CAC/B,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,GACd;IAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAQpD;AAED,wBAAgB,WAAW,CAC1B,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpC,QAAQ,EAAE,MAAM,GACd,MAAM,CAQR;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,iBAAiB,EAAE,GAAG,IAAI,CAcpE;AAeD,wBAAgB,cAAc,CAAC,UAAU,EAAE,eAAe,EAAE,GAAG,MAAM,CAOpE;AAED,wBAAgB,gBAAgB,CAC/B,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,GACd,iBAAiB,CA4DnB"}
package/dist/content.js CHANGED
@@ -85,13 +85,30 @@ export function parseContentFile(filePath, baseDir, renderer) {
85
85
  if (typeof html !== "string") {
86
86
  throw new Error(`Async marked extensions are not supported. File: ${filePath}`);
87
87
  }
88
+ const dateInput = typeof data.date === "string"
89
+ ? data.date
90
+ : data.date instanceof Date
91
+ ? data.date.toISOString()
92
+ : "";
93
+ const today = new Date().toISOString().slice(0, 10);
94
+ if (!dateInput) {
95
+ throw new Error(`Missing "date" in frontmatter for ${filePath}\n` +
96
+ ` Expected format: "YYYY-MM-DD" (e.g. "${today}")`);
97
+ }
98
+ // Normalize bare date strings (e.g. "2025-01-15") to UTC by appending T00:00:00Z
99
+ // This prevents the build server's timezone from affecting the output
100
+ const normalizedDate = /^\d{4}-\d{2}-\d{2}$/.test(dateInput)
101
+ ? `${dateInput}T00:00:00Z`
102
+ : dateInput;
103
+ const parsed = new Date(normalizedDate);
104
+ if (Number.isNaN(parsed.getTime())) {
105
+ throw new Error(`Invalid "date" in frontmatter for ${filePath}: "${dateInput}"\n` +
106
+ ` Expected format: "YYYY-MM-DD" (e.g. "${today}")`);
107
+ }
88
108
  const frontmatter = {
89
109
  ...data,
90
- date: typeof data.date === "string"
91
- ? data.date
92
- : data.date instanceof Date
93
- ? data.date.toISOString()
94
- : "",
110
+ date: parsed.toISOString(),
111
+ description: typeof data.description === "string" ? data.description : "",
95
112
  draft: data.draft === true,
96
113
  slug,
97
114
  title: typeof data.title === "string" ? data.title : "",
@@ -1 +1 @@
1
- {"version":3,"file":"content.js","sourceRoot":"","sources":["../src/content.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"content.js","sourceRoot":"","sources":["../src/content.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,3 +1,3 @@
1
1
  export { inkwell } from "./plugin.js";
2
- export type { Content } from "./types.js";
2
+ export type { CollectionConfig, Content, FeedConfig, InkwellOptions, } from "./types.js";
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AACrC,YAAY,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AACrC,YAAY,EACX,gBAAgB,EAChB,OAAO,EACP,UAAU,EACV,cAAc,GACd,MAAM,YAAY,CAAA"}
package/dist/plugin.d.ts CHANGED
@@ -1,3 +1,4 @@
1
1
  import type { Plugin } from "vite";
2
- export declare function inkwell(): Plugin;
2
+ import type { InkwellOptions } from "./types.js";
3
+ export declare function inkwell(options: InkwellOptions): Plugin;
3
4
  //# sourceMappingURL=plugin.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAiC,MAAM,MAAM,CAAA;AAkBjE,wBAAgB,OAAO,IAAI,MAAM,CA4NhC"}
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAiC,MAAM,MAAM,CAAA;AAYjE,OAAO,KAAK,EAAc,cAAc,EAAqB,MAAM,YAAY,CAAA;AAoG/E,wBAAgB,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,MAAM,CAsTvD"}
package/dist/plugin.js CHANGED
@@ -5,15 +5,95 @@ import { checkDuplicateSlugs, createRenderer, parseContentFile, scanDirectory, }
5
5
  const CONTENT_PREFIX = "inkwell:";
6
6
  const RESOLVED_PREFIX = "\0inkwell:";
7
7
  const SLUG_SEPARATOR = "/";
8
- export function inkwell() {
8
+ function escapeXml(str) {
9
+ return str
10
+ .replace(/&/g, "&")
11
+ .replace(/</g, "&lt;")
12
+ .replace(/>/g, "&gt;")
13
+ .replace(/"/g, "&quot;")
14
+ .replace(/'/g, "&apos;");
15
+ }
16
+ function normalizeBasePath(basePath) {
17
+ if (!basePath.startsWith("/"))
18
+ basePath = `/${basePath}`;
19
+ if (!basePath.endsWith("/"))
20
+ basePath = `${basePath}/`;
21
+ return basePath;
22
+ }
23
+ function isValidDate(dateStr) {
24
+ if (!dateStr)
25
+ return false;
26
+ const d = new Date(dateStr);
27
+ return !Number.isNaN(d.getTime());
28
+ }
29
+ function toIso(dateStr) {
30
+ return new Date(dateStr).toISOString().replace(/\.\d{3}Z$/, "Z");
31
+ }
32
+ function generateAtomXml(items, feed, basePath) {
33
+ const siteUrl = feed.siteUrl.replace(/\/+$/, "");
34
+ const normalizedBasePath = normalizeBasePath(basePath);
35
+ const feedUrl = `${siteUrl}/${feed.outputPath.replace(/^\//, "")}`;
36
+ const sortedItems = [...items].sort((a, b) => new Date(b.frontmatter.date).getTime() -
37
+ new Date(a.frontmatter.date).getTime());
38
+ const latestDate = sortedItems.length > 0 && isValidDate(sortedItems[0].frontmatter.date)
39
+ ? toIso(sortedItems[0].frontmatter.date)
40
+ : new Date().toISOString().replace(/\.\d{3}Z$/, "Z");
41
+ const entriesXml = sortedItems
42
+ .map((item) => {
43
+ const link = `${siteUrl}${normalizedBasePath}${item.frontmatter.slug}`;
44
+ const lines = [
45
+ " <entry>",
46
+ ` <title>${escapeXml(item.frontmatter.title)}</title>`,
47
+ ` <link rel="alternate" type="text/html" href="${escapeXml(link)}"/>`,
48
+ ` <id>${escapeXml(link)}</id>`,
49
+ ];
50
+ if (isValidDate(item.frontmatter.date)) {
51
+ const iso = toIso(item.frontmatter.date);
52
+ lines.push(` <published>${iso}</published>`);
53
+ lines.push(` <updated>${iso}</updated>`);
54
+ }
55
+ if (item.frontmatter.description) {
56
+ lines.push(` <summary>${escapeXml(item.frontmatter.description)}</summary>`);
57
+ }
58
+ lines.push(` <content type="html" xml:base="${escapeXml(siteUrl + normalizedBasePath)}" xml:lang="${escapeXml(feed.language)}"><![CDATA[${item.html}]]></content>`);
59
+ lines.push(" </entry>");
60
+ return lines.join("\n");
61
+ })
62
+ .join("\n");
63
+ const feedLines = [
64
+ '<?xml version="1.0" encoding="utf-8"?>',
65
+ '<feed xmlns="http://www.w3.org/2005/Atom">',
66
+ ` <title>${escapeXml(feed.siteTitle)}</title>`,
67
+ ` <subtitle>${escapeXml(feed.siteDescription || feed.siteTitle)}</subtitle>`,
68
+ ` <link rel="alternate" type="text/html" href="${escapeXml(siteUrl)}/"/>`,
69
+ ` <link rel="self" type="application/atom+xml" href="${escapeXml(feedUrl)}"/>`,
70
+ ` <id>${escapeXml(feedUrl)}</id>`,
71
+ ` <updated>${latestDate}</updated>`,
72
+ ];
73
+ if (feed.copyright) {
74
+ feedLines.push(` <rights>${escapeXml(feed.copyright)}</rights>`);
75
+ }
76
+ feedLines.push(entriesXml);
77
+ feedLines.push("</feed>");
78
+ return feedLines.join("\n");
79
+ }
80
+ export function inkwell(options) {
9
81
  let config;
10
82
  let server;
11
83
  let isProduction = false;
12
84
  const renderer = createRenderer([]);
85
+ // Map from collection name to its resolved absolute directory path
86
+ const collectionDirs = new Map();
87
+ // Map from absolute directory path to its collection name
88
+ const dirToName = new Map();
13
89
  // Map from absolute directory path to its parsed content items
14
90
  const collections = new Map();
15
91
  // Track which directories are in use for HMR
16
92
  const watchedDirs = new Set();
93
+ function getBasePath(name) {
94
+ const collectionConfig = options.collections[name];
95
+ return normalizeBasePath(collectionConfig?.basePath ?? "/");
96
+ }
17
97
  function buildCollection(absoluteDir) {
18
98
  if (!fs.existsSync(absoluteDir)) {
19
99
  throw new Error(`Content directory does not exist: ${absoluteDir}`);
@@ -36,25 +116,52 @@ export function inkwell() {
36
116
  }
37
117
  return items;
38
118
  }
39
- function generateCollectionModule(absoluteDir) {
119
+ function checkDuplicatePaths() {
120
+ const seen = new Map();
121
+ for (const [dir, allItems] of collections) {
122
+ const name = dirToName.get(dir);
123
+ if (!name)
124
+ continue;
125
+ const basePath = getBasePath(name);
126
+ const items = getVisibleItems(allItems);
127
+ for (const item of items) {
128
+ const itemPath = `${basePath}${item.frontmatter.slug}`;
129
+ const existing = seen.get(itemPath);
130
+ if (existing) {
131
+ throw new Error(`Duplicate path "${itemPath}" found in:\n` +
132
+ ` - ${existing}\n` +
133
+ ` - ${item.filePath}\n` +
134
+ `Provide an explicit "slug" in frontmatter to resolve.`);
135
+ }
136
+ seen.set(itemPath, item.filePath);
137
+ }
138
+ }
139
+ }
140
+ function generateCollectionModule(absoluteDir, name) {
40
141
  const allItems = collections.get(absoluteDir);
41
142
  if (!allItems) {
42
143
  throw new Error(`No content collection for directory: ${absoluteDir}`);
43
144
  }
145
+ checkDuplicatePaths();
44
146
  const items = getVisibleItems(allItems);
45
147
  const slugPrefix = CONTENT_PREFIX + absoluteDir + SLUG_SEPARATOR;
148
+ const basePath = getBasePath(name);
46
149
  const entries = items.map((item) => {
47
150
  const meta = { ...item.frontmatter };
48
151
  delete meta.title;
49
152
  delete meta.slug;
50
153
  delete meta.date;
51
154
  delete meta.draft;
155
+ delete meta.description;
156
+ const itemPath = `${basePath}${item.frontmatter.slug}`;
52
157
  return [
53
158
  " {",
54
159
  ` title: ${JSON.stringify(item.frontmatter.title)},`,
55
160
  ` slug: ${JSON.stringify(item.frontmatter.slug)},`,
56
- ` date: ${JSON.stringify(item.frontmatter.date)},`,
161
+ ` path: ${JSON.stringify(itemPath)},`,
162
+ ` date: new Date(${JSON.stringify(item.frontmatter.date)}),`,
57
163
  ` draft: ${JSON.stringify(item.frontmatter.draft)},`,
164
+ ` description: ${JSON.stringify(item.frontmatter.description)},`,
58
165
  ` directory: ${JSON.stringify(item.directoryPath)},`,
59
166
  ` meta: ${JSON.stringify(meta)},`,
60
167
  ` getHtml: () => import(${JSON.stringify(slugPrefix + item.frontmatter.slug)}).then(m => m.default),`,
@@ -71,6 +178,12 @@ export function inkwell() {
71
178
  configResolved(resolvedConfig) {
72
179
  config = resolvedConfig;
73
180
  isProduction = resolvedConfig.command === "build";
181
+ // Resolve collection paths from config
182
+ for (const [name, collectionConfig] of Object.entries(options.collections)) {
183
+ const absoluteDir = path.resolve(config.root, collectionConfig.contentPath);
184
+ collectionDirs.set(name, absoluteDir);
185
+ dirToName.set(absoluteDir, name);
186
+ }
74
187
  },
75
188
  configureServer(devServer) {
76
189
  server = devServer;
@@ -128,8 +241,8 @@ export function inkwell() {
128
241
  return null;
129
242
  const rest = id.slice(RESOLVED_PREFIX.length);
130
243
  // Check if this is a slug module (contains a slug after the directory path)
131
- // Slug modules: \0content:/abs/path/to/dir/my-slug
132
- // Collection modules: \0content:/abs/path/to/dir
244
+ // Slug modules: \0inkwell:/abs/path/to/dir/my-slug
245
+ // Collection modules: \0inkwell:/abs/path/to/dir
133
246
  for (const [absoluteDir, items] of collections) {
134
247
  const dirPrefix = absoluteDir + SLUG_SEPARATOR;
135
248
  if (rest.startsWith(dirPrefix) && rest.length > dirPrefix.length) {
@@ -141,14 +254,16 @@ export function inkwell() {
141
254
  return generateSlugModuleCode(item.html, item.assets);
142
255
  }
143
256
  if (rest === absoluteDir) {
144
- return generateCollectionModule(absoluteDir);
257
+ const name = dirToName.get(absoluteDir);
258
+ if (!name) {
259
+ throw new Error(`No collection name found for directory: ${absoluteDir}`);
260
+ }
261
+ return generateCollectionModule(absoluteDir, name);
145
262
  }
146
263
  }
147
264
  // If we get here, the collection hasn't been built yet
148
265
  // This happens on first load — build it now
149
266
  if (rest.includes(SLUG_SEPARATOR)) {
150
- // Try to find the directory portion
151
- // Walk backward from the end to find a valid directory
152
267
  const lastSlash = rest.lastIndexOf(SLUG_SEPARATOR);
153
268
  const possibleDir = rest.slice(0, lastSlash);
154
269
  const slug = rest.slice(lastSlash + 1);
@@ -162,8 +277,31 @@ export function inkwell() {
162
277
  }
163
278
  return null;
164
279
  },
280
+ generateBundle() {
281
+ for (const [name, collectionConfig] of Object.entries(options.collections)) {
282
+ if (!collectionConfig.feed)
283
+ continue;
284
+ const absoluteDir = collectionDirs.get(name);
285
+ if (!absoluteDir)
286
+ continue;
287
+ const allItems = collections.get(absoluteDir);
288
+ if (!allItems) {
289
+ config.logger.warn(`[inkwell] No collection found for "${name}" (resolved to ${absoluteDir})`);
290
+ continue;
291
+ }
292
+ const items = getVisibleItems(allItems);
293
+ const basePath = getBasePath(name);
294
+ const feed = collectionConfig.feed;
295
+ const atomXml = generateAtomXml(items, feed, basePath);
296
+ this.emitFile({
297
+ type: "asset",
298
+ fileName: feed.outputPath.replace(/^\//, ""),
299
+ source: atomXml,
300
+ });
301
+ }
302
+ },
165
303
  name: "inkwell",
166
- resolveId(source, importer) {
304
+ resolveId(source) {
167
305
  if (!source.startsWith(CONTENT_PREFIX))
168
306
  return null;
169
307
  const rawPath = source.slice(CONTENT_PREFIX.length);
@@ -171,11 +309,12 @@ export function inkwell() {
171
309
  if (path.isAbsolute(rawPath)) {
172
310
  return RESOLVED_PREFIX + rawPath;
173
311
  }
174
- // Resolve relative to the importer's directory
175
- const importerDir = importer ? path.dirname(importer) : config.root;
176
- // Strip the \0 prefix from importer if it's a virtual module
177
- const cleanImporterDir = importerDir.replace(/^\0/, "");
178
- const absoluteDir = path.resolve(cleanImporterDir, rawPath);
312
+ // Look up by collection name
313
+ const absoluteDir = collectionDirs.get(rawPath);
314
+ if (!absoluteDir) {
315
+ throw new Error(`Collection "${rawPath}" is not defined in inkwell options. ` +
316
+ `Available collections: ${[...collectionDirs.keys()].join(", ")}`);
317
+ }
179
318
  // Build the collection if we haven't yet
180
319
  if (!collections.has(absoluteDir)) {
181
320
  const items = buildCollection(absoluteDir);
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -3,6 +3,7 @@ export interface ContentFrontmatter {
3
3
  slug: string;
4
4
  date: string;
5
5
  draft: boolean;
6
+ description: string;
6
7
  [key: string]: unknown;
7
8
  }
8
9
  export interface AssetReference {
@@ -23,14 +24,44 @@ export interface ParsedContentItem {
23
24
  /** Asset references discovered in this content */
24
25
  assets: AssetReference[];
25
26
  }
27
+ export interface FeedConfig {
28
+ /** Output filename for the Atom feed (e.g. "feed.xml") */
29
+ outputPath: string;
30
+ /** Site title used in the Atom feed */
31
+ siteTitle: string;
32
+ /** Site URL used for building entry links (e.g. "https://example.com") */
33
+ siteUrl: string;
34
+ /** Language code applied as xml:lang on the feed (e.g. "en", "en-us") */
35
+ language: string;
36
+ /** Subtitle shown below the feed title. Defaults to siteTitle */
37
+ siteDescription?: string;
38
+ /** Copyright / rights string (e.g. "Copyright © 2026, Jane Doe") */
39
+ copyright?: string;
40
+ }
41
+ export interface CollectionConfig {
42
+ /** Path to the content directory, relative to the Vite config file */
43
+ contentPath: string;
44
+ /** Path prefix for content item URLs (e.g. "/blog/"). Defaults to "/" */
45
+ basePath?: string;
46
+ /** Optional RSS feed configuration for this collection */
47
+ feed?: FeedConfig;
48
+ }
49
+ export interface InkwellOptions {
50
+ /** Named content collections keyed by collection name */
51
+ collections: Record<string, CollectionConfig>;
52
+ }
26
53
  export interface Content {
27
54
  title: string;
28
55
  slug: string;
29
- date: string;
56
+ /** Full URL path (basePath + slug), e.g. "/blog/hello-world" */
57
+ path: string;
58
+ /** Date parsed as UTC */
59
+ date: Date;
30
60
  draft: boolean;
61
+ description: string;
31
62
  /** Relative directory path within the content source */
32
63
  directory: string;
33
- /** All frontmatter key-value pairs (excluding title, slug, date, draft) */
64
+ /** All frontmatter key-value pairs not covered by other fields */
34
65
  meta: Record<string, unknown>;
35
66
  /** Lazy-load the rendered HTML for this content item */
36
67
  getHtml: () => Promise<string>;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,kBAAkB;IAClC,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,OAAO,CAAA;IACd,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACtB;AAED,MAAM,WAAW,cAAc;IAC9B,wDAAwD;IACxD,YAAY,EAAE,MAAM,CAAA;IACpB,+BAA+B;IAC/B,YAAY,EAAE,MAAM,CAAA;IACpB,yDAAyD;IACzD,gBAAgB,EAAE,MAAM,CAAA;CACxB;AAED,MAAM,WAAW,iBAAiB;IACjC,WAAW,EAAE,kBAAkB,CAAA;IAC/B,QAAQ,EAAE,MAAM,CAAA;IAChB,kEAAkE;IAClE,aAAa,EAAE,MAAM,CAAA;IACrB,uDAAuD;IACvD,IAAI,EAAE,MAAM,CAAA;IACZ,kDAAkD;IAClD,MAAM,EAAE,cAAc,EAAE,CAAA;CACxB;AAED,MAAM,WAAW,OAAO;IACvB,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,OAAO,CAAA;IACd,wDAAwD;IACxD,SAAS,EAAE,MAAM,CAAA;IACjB,2EAA2E;IAC3E,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC7B,wDAAwD;IACxD,OAAO,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAA;CAC9B"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,kBAAkB;IAClC,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,OAAO,CAAA;IACd,WAAW,EAAE,MAAM,CAAA;IACnB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACtB;AAED,MAAM,WAAW,cAAc;IAC9B,wDAAwD;IACxD,YAAY,EAAE,MAAM,CAAA;IACpB,+BAA+B;IAC/B,YAAY,EAAE,MAAM,CAAA;IACpB,yDAAyD;IACzD,gBAAgB,EAAE,MAAM,CAAA;CACxB;AAED,MAAM,WAAW,iBAAiB;IACjC,WAAW,EAAE,kBAAkB,CAAA;IAC/B,QAAQ,EAAE,MAAM,CAAA;IAChB,kEAAkE;IAClE,aAAa,EAAE,MAAM,CAAA;IACrB,uDAAuD;IACvD,IAAI,EAAE,MAAM,CAAA;IACZ,kDAAkD;IAClD,MAAM,EAAE,cAAc,EAAE,CAAA;CACxB;AAED,MAAM,WAAW,UAAU;IAC1B,0DAA0D;IAC1D,UAAU,EAAE,MAAM,CAAA;IAClB,uCAAuC;IACvC,SAAS,EAAE,MAAM,CAAA;IACjB,0EAA0E;IAC1E,OAAO,EAAE,MAAM,CAAA;IACf,yEAAyE;IACzE,QAAQ,EAAE,MAAM,CAAA;IAChB,iEAAiE;IACjE,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,oEAAoE;IACpE,SAAS,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,gBAAgB;IAChC,sEAAsE;IACtE,WAAW,EAAE,MAAM,CAAA;IACnB,yEAAyE;IACzE,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,0DAA0D;IAC1D,IAAI,CAAC,EAAE,UAAU,CAAA;CACjB;AAED,MAAM,WAAW,cAAc;IAC9B,yDAAyD;IACzD,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAA;CAC7C;AAED,MAAM,WAAW,OAAO;IACvB,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,gEAAgE;IAChE,IAAI,EAAE,MAAM,CAAA;IACZ,yBAAyB;IACzB,IAAI,EAAE,IAAI,CAAA;IACV,KAAK,EAAE,OAAO,CAAA;IACd,WAAW,EAAE,MAAM,CAAA;IACnB,wDAAwD;IACxD,SAAS,EAAE,MAAM,CAAA;IACjB,kEAAkE;IAClE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC7B,wDAAwD;IACxD,OAAO,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAA;CAC9B"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aaronellington/vite-plugin-inkwell",
3
- "version": "0.1.0",
3
+ "version": "0.2.1",
4
4
  "description": "A Vite plugin that transforms directories of markdown files into typed, lazy-loaded content collections with frontmatter parsing, asset hashing, and HMR.",
5
5
  "license": "MIT",
6
6
  "author": "Aaron Ellington",