@piqit/resolvers 0.0.8 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/edge.d.ts CHANGED
@@ -11,5 +11,5 @@
11
11
  *
12
12
  * @packageDocumentation
13
13
  */
14
- export { staticContent, staticResolver } from "./static";
14
+ export { staticContent, staticResolver } from "./static.js";
15
15
  //# sourceMappingURL=edge.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"edge.d.ts","sourceRoot":"","sources":["../src/edge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA"}
1
+ {"version":3,"file":"edge.d.ts","sourceRoot":"","sources":["../src/edge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA"}
package/dist/edge.js CHANGED
@@ -11,5 +11,5 @@
11
11
  *
12
12
  * @packageDocumentation
13
13
  */
14
- export { staticContent, staticResolver } from "./static";
14
+ export { staticContent, staticResolver } from "./static.js";
15
15
  //# sourceMappingURL=edge.js.map
package/dist/edge.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"edge.js","sourceRoot":"","sources":["../src/edge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA"}
1
+ {"version":3,"file":"edge.js","sourceRoot":"","sources":["../src/edge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA"}
@@ -5,8 +5,9 @@
5
5
  * Optimized for reading only what's needed based on the query.
6
6
  */
7
7
  import type { Resolver, StandardSchema, Infer } from "piqit";
8
- import { type PathParams } from "./path-pattern";
9
- import { type BodyOptions, type BodyResult, type Heading } from "./markdown";
8
+ import { type PathParams } from "./path-pattern.js";
9
+ import { type FrontmatterParseOptions } from "./frontmatter.js";
10
+ import { type BodyOptions, type BodyResult, type Heading } from "./markdown.js";
10
11
  /**
11
12
  * Options for creating a file markdown resolver.
12
13
  */
@@ -26,6 +27,10 @@ export interface FileMarkdownOptions<TPath extends string, TFrontmatter extends
26
27
  * The schema's inferred type defines filter parameters.
27
28
  */
28
29
  frontmatter: TFrontmatter;
30
+ /**
31
+ * Low-level frontmatter parsing options.
32
+ */
33
+ frontmatterParse?: FrontmatterParseOptions;
29
34
  /**
30
35
  * Body parsing options.
31
36
  * @default { raw: false, html: false, headings: false }
@@ -1 +1 @@
1
- {"version":3,"file":"file-markdown.d.ts","sourceRoot":"","sources":["../src/file-markdown.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,OAAO,CAAA;AAC5D,OAAO,EAAsC,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAEpF,OAAO,EAAqB,KAAK,WAAW,EAAE,KAAK,UAAU,EAAE,KAAK,OAAO,EAAE,MAAM,YAAY,CAAA;AAO/F;;GAEG;AACH,MAAM,WAAW,mBAAmB,CAClC,KAAK,SAAS,MAAM,EACpB,YAAY,SAAS,cAAc,EACnC,KAAK,SAAS,WAAW;IAEzB;;;OAGG;IACH,IAAI,EAAE,MAAM,CAAA;IAEZ;;;OAGG;IACH,IAAI,EAAE,KAAK,CAAA;IAEX;;;OAGG;IACH,WAAW,EAAE,YAAY,CAAA;IAEzB;;;OAGG;IACH,IAAI,CAAC,EAAE,KAAK,CAAA;CACb;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB,CACjC,OAAO,EACP,YAAY,EACZ,KAAK,SAAS,UAAU;IAExB,MAAM,EAAE,OAAO,CAAA;IACf,WAAW,EAAE,YAAY,CAAA;IACzB,IAAI,EAAE,KAAK,CAAA;CACZ;AAED;;GAEG;AACH,KAAK,iBAAiB,CAAC,CAAC,SAAS,WAAW,GAAG,SAAS,IAAI,CAAC,SAAS,WAAW,GAC7E;IACE,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,SAAS,IAAI,GAAG,MAAM,GAAG,KAAK,CAAA;IAC3C,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,SAAS,IAAI,GAAG,MAAM,GAAG,KAAK,CAAA;IAC7C,QAAQ,EAAE,CAAC,CAAC,UAAU,CAAC,SAAS,IAAI,GAAG,OAAO,EAAE,GAAG,KAAK,CAAA;CACzD,GACD,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;AAEzB;;GAEG;AACH,KAAK,cAAc,CAAC,CAAC,IAAI;KACtB,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,GAAG,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CACvD,CAAA;AAuHD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,YAAY,CAC1B,KAAK,SAAS,MAAM,EACpB,YAAY,SAAS,cAAc,EACnC,KAAK,SAAS,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EAEjD,OAAO,EAAE,mBAAmB,CAAC,KAAK,EAAE,YAAY,EAAE,KAAK,CAAC,GACvD,QAAQ,CACT,cAAc,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,EAC1C,YAAY,EACZ,cAAc,CACZ,kBAAkB,CAChB,UAAU,CAAC,KAAK,CAAC,EACjB,KAAK,CAAC,YAAY,CAAC,EACnB,cAAc,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CACzC,CACF,CACF,CAwIA"}
1
+ {"version":3,"file":"file-markdown.d.ts","sourceRoot":"","sources":["../src/file-markdown.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,OAAO,CAAA;AAC5D,OAAO,EAAsC,KAAK,UAAU,EAAE,MAAM,mBAAmB,CAAA;AACvF,OAAO,EAML,KAAK,uBAAuB,EAC7B,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAEL,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,OAAO,EACb,MAAM,eAAe,CAAA;AAOtB;;GAEG;AACH,MAAM,WAAW,mBAAmB,CAClC,KAAK,SAAS,MAAM,EACpB,YAAY,SAAS,cAAc,EACnC,KAAK,SAAS,WAAW;IAEzB;;;OAGG;IACH,IAAI,EAAE,MAAM,CAAA;IAEZ;;;OAGG;IACH,IAAI,EAAE,KAAK,CAAA;IAEX;;;OAGG;IACH,WAAW,EAAE,YAAY,CAAA;IAEzB;;OAEG;IACH,gBAAgB,CAAC,EAAE,uBAAuB,CAAA;IAE1C;;;OAGG;IACH,IAAI,CAAC,EAAE,KAAK,CAAA;CACb;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB,CACjC,OAAO,EACP,YAAY,EACZ,KAAK,SAAS,UAAU;IAExB,MAAM,EAAE,OAAO,CAAA;IACf,WAAW,EAAE,YAAY,CAAA;IACzB,IAAI,EAAE,KAAK,CAAA;CACZ;AAED;;GAEG;AACH,KAAK,iBAAiB,CAAC,CAAC,SAAS,WAAW,GAAG,SAAS,IAAI,CAAC,SAAS,WAAW,GAC7E;IACE,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,SAAS,IAAI,GAAG,MAAM,GAAG,KAAK,CAAA;IAC3C,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,SAAS,IAAI,GAAG,MAAM,GAAG,KAAK,CAAA;IAC7C,QAAQ,EAAE,CAAC,CAAC,UAAU,CAAC,SAAS,IAAI,GAAG,OAAO,EAAE,GAAG,KAAK,CAAA;CACzD,GACD,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;AAEzB;;GAEG;AACH,KAAK,cAAc,CAAC,CAAC,IAAI;KACtB,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,GAAG,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CACvD,CAAA;AAkJD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,YAAY,CAC1B,KAAK,SAAS,MAAM,EACpB,YAAY,SAAS,cAAc,EACnC,KAAK,SAAS,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EAEjD,OAAO,EAAE,mBAAmB,CAAC,KAAK,EAAE,YAAY,EAAE,KAAK,CAAC,GACvD,QAAQ,CACT,cAAc,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,EAC1C,YAAY,EACZ,cAAc,CACZ,kBAAkB,CAChB,UAAU,CAAC,KAAK,CAAC,EACjB,KAAK,CAAC,YAAY,CAAC,EACnB,cAAc,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CACzC,CACF,CACF,CAyLA"}
@@ -4,9 +4,9 @@
4
4
  * A resolver for querying markdown files from the filesystem.
5
5
  * Optimized for reading only what's needed based on the query.
6
6
  */
7
- import { compilePattern, createParamsSchema } from "./path-pattern";
8
- import { FrontmatterParseError, parseFrontmatterStrict } from "./frontmatter";
9
- import { parseMarkdownBody } from "./markdown";
7
+ import { compilePattern, createParamsSchema } from "./path-pattern.js";
8
+ import { FrontmatterParseError, parseFrontmatterStrict, parseFrontmatterPickStrict, readFrontmatterStrict, readFrontmatterPickStrict, } from "./frontmatter.js";
9
+ import { parseMarkdownBody, } from "./markdown.js";
10
10
  import path from "node:path";
11
11
  // =============================================================================
12
12
  // Result Schema Factory
@@ -102,6 +102,28 @@ function matchesFilter(frontmatter, filter) {
102
102
  }
103
103
  return true;
104
104
  }
105
+ function getFrontmatterKeys(selectPaths, filter) {
106
+ let wantAll = false;
107
+ const keys = new Set();
108
+ for (const p of selectPaths) {
109
+ if (p === "frontmatter.*") {
110
+ wantAll = true;
111
+ continue;
112
+ }
113
+ if (p.startsWith("frontmatter.")) {
114
+ const key = p.slice("frontmatter.".length).split(".")[0];
115
+ if (key)
116
+ keys.add(key);
117
+ }
118
+ }
119
+ if (filter) {
120
+ for (const key of Object.keys(filter)) {
121
+ if (key)
122
+ keys.add(key);
123
+ }
124
+ }
125
+ return { wantAll, keys: [...keys] };
126
+ }
105
127
  // =============================================================================
106
128
  // Resolver Factory
107
129
  // =============================================================================
@@ -125,10 +147,27 @@ export function fileMarkdown(options) {
125
147
  ? options.base
126
148
  : path.join(process.cwd(), options.base);
127
149
  const bodyOptions = options.body || {};
150
+ const frontmatterParseOptions = options.frontmatterParse;
128
151
  // Create schemas
129
152
  const scanSchema = createParamsSchema(pattern);
130
153
  const resultSchema = createResultSchema(pattern.paramNames, options.frontmatter, bodyOptions);
154
+ // Frontmatter keys are introspectable when the schema is a Zod object
155
+ // (StandardSchema itself has no field enumeration)
156
+ const frontmatterShape = options.frontmatter.shape;
157
+ const filterKeys = frontmatterShape ? Object.keys(frontmatterShape) : undefined;
158
+ const selectPaths = [
159
+ ...pattern.paramNames.map((name) => `params.${name}`),
160
+ ...(filterKeys?.map((key) => `frontmatter.${key}`) ?? ["frontmatter.*"]),
161
+ ...["raw", "html", "headings"]
162
+ .filter((part) => bodyOptions[part])
163
+ .map((part) => `body.${part}`),
164
+ ];
131
165
  return {
166
+ meta: {
167
+ scanKeys: [...pattern.paramNames],
168
+ filterKeys,
169
+ selectPaths,
170
+ },
132
171
  schema: {
133
172
  scanParams: scanSchema,
134
173
  filterParams: options.frontmatter,
@@ -136,26 +175,45 @@ export function fileMarkdown(options) {
136
175
  },
137
176
  async resolve(spec) {
138
177
  const results = [];
139
- // 1. Generate glob pattern from scan constraints
140
- const globPattern = pattern.toGlob(spec.scan);
141
- // 2. Find matching files using Bun.Glob
142
- const glob = new Bun.Glob(globPattern);
143
- const files = [];
144
- for await (const file of glob.scan({ cwd: basePath, absolute: false })) {
145
- files.push(file);
178
+ // 1. Generate glob variants from scan constraints (optional path
179
+ // segments produce multiple globs)
180
+ const scanConstraints = spec.scan;
181
+ const globPatterns = pattern.toGlobs(scanConstraints);
182
+ // 2. Find matching files using Bun.Glob, deduped across variants
183
+ const fileSet = new Set();
184
+ for (const globPattern of globPatterns) {
185
+ const glob = new Bun.Glob(globPattern);
186
+ for await (const file of glob.scan({ cwd: basePath, absolute: false })) {
187
+ fileSet.add(file);
188
+ }
146
189
  }
190
+ const files = [...fileSet];
147
191
  // 3. Determine what we need to read
148
192
  const wantParams = needsParams(spec.select);
149
193
  const wantFrontmatter = needsFrontmatter(spec.select);
150
194
  const wantBody = needsBody(spec.select);
151
195
  const hasFilter = spec.filter && Object.keys(spec.filter).length > 0;
152
196
  const neededBodyParts = wantBody ? getNeededBodyParts(spec.select) : {};
197
+ const { wantAll: wantAllFrontmatter, keys: frontmatterKeys } = getFrontmatterKeys(spec.select, spec.filter ?? undefined);
153
198
  // 4. Process each file
154
199
  for (const relativePath of files) {
155
200
  // Extract params from path
156
201
  const params = pattern.match(relativePath);
157
202
  if (!params)
158
203
  continue;
204
+ // Variant globs can over-match, so re-verify scan constraints
205
+ // against the extracted params
206
+ if (scanConstraints) {
207
+ let mismatch = false;
208
+ for (const [key, value] of Object.entries(scanConstraints)) {
209
+ if (value !== undefined && value !== null && params[key] !== String(value)) {
210
+ mismatch = true;
211
+ break;
212
+ }
213
+ }
214
+ if (mismatch)
215
+ continue;
216
+ }
159
217
  const fullPath = path.join(basePath, relativePath);
160
218
  // Read file content only if needed
161
219
  let content = null;
@@ -163,9 +221,18 @@ export function fileMarkdown(options) {
163
221
  let body = null;
164
222
  // If filtering or selecting frontmatter, we need to read it
165
223
  if (hasFilter || wantFrontmatter) {
166
- content = await Bun.file(fullPath).text();
167
224
  try {
168
- frontmatter = parseFrontmatterStrict(content, fullPath);
225
+ if (wantBody) {
226
+ content = await Bun.file(fullPath).text();
227
+ frontmatter = wantAllFrontmatter || frontmatterKeys.length === 0
228
+ ? parseFrontmatterStrict(content, fullPath, frontmatterParseOptions)
229
+ : parseFrontmatterPickStrict(content, frontmatterKeys, fullPath, frontmatterParseOptions);
230
+ }
231
+ else {
232
+ frontmatter = wantAllFrontmatter || frontmatterKeys.length === 0
233
+ ? await readFrontmatterStrict(fullPath, 8192, frontmatterParseOptions)
234
+ : await readFrontmatterPickStrict(fullPath, frontmatterKeys, 8192, frontmatterParseOptions);
235
+ }
169
236
  }
170
237
  catch (error) {
171
238
  if (error instanceof FrontmatterParseError) {
@@ -1 +1 @@
1
- {"version":3,"file":"file-markdown.js","sourceRoot":"","sources":["../src/file-markdown.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAmB,MAAM,gBAAgB,CAAA;AACpF,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAA;AAC7E,OAAO,EAAE,iBAAiB,EAAmD,MAAM,YAAY,CAAA;AAC/F,OAAO,IAAI,MAAM,WAAW,CAAA;AAsE5B,gFAAgF;AAChF,wBAAwB;AACxB,gFAAgF;AAEhF;;;GAGG;AACH,SAAS,kBAAkB,CACzB,WAAqB,EACrB,iBAA+C,EAC/C,WAAwB;IAExB,OAAO;QACL,WAAW,EAAE;YACX,OAAO,EAAE,CAAC;YACV,MAAM,EAAE,iBAAiB;YACzB,KAAK,CAAC,QAAQ,CAAC,KAAc;gBAC3B,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;oBAChD,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAA;gBACrD,CAAC;gBAED,MAAM,GAAG,GAAG,KAAgC,CAAA;gBAE5C,kBAAkB;gBAClB,IAAI,GAAG,CAAC,MAAM,IAAI,IAAI,IAAI,OAAO,GAAG,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;oBACzD,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAA;gBACtE,CAAC;gBAED,iDAAiD;gBACjD,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;gBAC/E,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;oBACpB,OAAO;wBACL,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;4BACtC,GAAG,KAAK;4BACR,IAAI,EAAE,CAAC,aAAa,EAAE,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;yBAC7C,CAAC,CAAC;qBACJ,CAAA;gBACH,CAAC;gBAED,sBAAsB;gBACtB,IAAI,WAAW,CAAC,GAAG,IAAI,WAAW,CAAC,IAAI,IAAI,WAAW,CAAC,QAAQ,EAAE,CAAC;oBAChE,IAAI,GAAG,CAAC,IAAI,IAAI,IAAI,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;wBACrD,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAA;oBAClE,CAAC;gBACH,CAAC;gBAED,OAAO,EAAE,KAAK,EAAE,GAAiF,EAAE,CAAA;YACrG,CAAC;SACF;KACF,CAAA;AACH,CAAC;AAED,gFAAgF;AAChF,mBAAmB;AACnB,gFAAgF;AAEhF;;GAEG;AACH,SAAS,gBAAgB,CAAC,WAAqB;IAC7C,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,eAAe,CAAC,CAAA;AACvF,CAAC;AAED;;GAEG;AACH,SAAS,SAAS,CAAC,WAAqB;IACtC,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,QAAQ,CAAC,CAAA;AACzE,CAAC;AAED;;GAEG;AACH,SAAS,WAAW,CAAC,WAAqB;IACxC,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,UAAU,CAAC,CAAA;AAC7E,CAAC;AAED;;GAEG;AACH,SAAS,kBAAkB,CAAC,WAAqB;IAC/C,MAAM,MAAM,GAAgB,EAAE,CAAA;IAE9B,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;QAC/B,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;YACtB,sBAAsB;YACtB,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;QAClD,CAAC;QACD,IAAI,IAAI,KAAK,UAAU;YAAE,MAAM,CAAC,GAAG,GAAG,IAAI,CAAA;QAC1C,IAAI,IAAI,KAAK,WAAW;YAAE,MAAM,CAAC,IAAI,GAAG,IAAI,CAAA;QAC5C,IAAI,IAAI,KAAK,eAAe;YAAE,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAA;IACtD,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC;AAED;;;GAGG;AACH,SAAS,aAAa,CACpB,WAAoC,EACpC,MAA+B;IAE/B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAClD,IAAI,WAAW,CAAC,GAAG,CAAC,KAAK,KAAK,EAAE,CAAC;YAC/B,OAAO,KAAK,CAAA;QACd,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED,gFAAgF;AAChF,mBAAmB;AACnB,gFAAgF;AAEhF;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,YAAY,CAK1B,OAAwD;IAYxD,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC;QAC5C,CAAC,CAAC,OAAO,CAAC,IAAI;QACd,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;IAE1C,MAAM,WAAW,GAAgB,OAAO,CAAC,IAAI,IAAI,EAAE,CAAA;IAEnD,iBAAiB;IACjB,MAAM,UAAU,GAAG,kBAAkB,CAAC,OAAO,CAA+C,CAAA;IAC5F,MAAM,YAAY,GAAG,kBAAkB,CACrC,OAAO,CAAC,UAAU,EAClB,OAAO,CAAC,WAAW,EACnB,WAAW,CAOZ,CAAA;IAED,OAAO;QACL,MAAM,EAAE;YACN,UAAU,EAAE,UAAU;YACtB,YAAY,EAAE,OAAO,CAAC,WAAW;YACjC,MAAM,EAAE,YAAY;SACrB;QAED,KAAK,CAAC,OAAO,CAAC,IAAI;YAChB,MAAM,OAAO,GAQT,EAAE,CAAA;YAEN,iDAAiD;YACjD,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAA+B,CAAC,CAAA;YAExE,wCAAwC;YACxC,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;YACtC,MAAM,KAAK,GAAa,EAAE,CAAA;YAE1B,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;gBACvE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YAClB,CAAC;YAED,oCAAoC;YACpC,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;YAC3C,MAAM,eAAe,GAAG,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;YACrD,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;YACvC,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,CAAA;YACpE,MAAM,eAAe,GAAG,QAAQ,CAAC,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;YAEvE,uBAAuB;YACvB,KAAK,MAAM,YAAY,IAAI,KAAK,EAAE,CAAC;gBACjC,2BAA2B;gBAC3B,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;gBAC1C,IAAI,CAAC,MAAM;oBAAE,SAAQ;gBAErB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAA;gBAElD,mCAAmC;gBACnC,IAAI,OAAO,GAAkB,IAAI,CAAA;gBACjC,IAAI,WAAW,GAAmC,IAAI,CAAA;gBACtD,IAAI,IAAI,GAAsB,IAAI,CAAA;gBAElC,4DAA4D;gBAC5D,IAAI,SAAS,IAAI,eAAe,EAAE,CAAC;oBACjC,OAAO,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAA;oBACzC,IAAI,CAAC;wBACH,WAAW,GAAG,sBAAsB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;oBACzD,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,IAAI,KAAK,YAAY,qBAAqB,EAAE,CAAC;4BAC3C,MAAM,KAAK,CAAA;wBACb,CAAC;wBACD,MAAM,IAAI,qBAAqB,CAC7B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EACtD,QAAQ,CACT,CAAA;oBACH,CAAC;oBAED,IAAI,CAAC,WAAW,EAAE,CAAC;wBACjB,MAAM,IAAI,qBAAqB,CAC7B,gCAAgC,EAChC,QAAQ,CACT,CAAA;oBACH,CAAC;oBAED,2BAA2B;oBAC3B,IAAI,SAAS,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,IAAI,CAAC,MAAiC,CAAC,EAAE,CAAC;wBACrF,SAAQ;oBACV,CAAC;gBACH,CAAC;gBAED,8BAA8B;gBAC9B,IAAI,QAAQ,EAAE,CAAC;oBACb,IAAI,CAAC,OAAO,EAAE,CAAC;wBACb,OAAO,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAA;oBAC3C,CAAC;oBAED,4CAA4C;oBAC5C,IAAI,GAAG,iBAAiB,CAAC,OAAO,EAAE,eAAe,CAAC,CAAA;gBACpD,CAAC;gBAED,0CAA0C;gBAC1C,MAAM,MAAM,GAMR,EAAE,CAAA;gBAEN,IAAI,UAAU,EAAE,CAAC;oBACf,MAAM,CAAC,MAAM,GAAG,MAA2B,CAAA;gBAC7C,CAAC;gBAED,IAAI,eAAe,EAAE,CAAC;oBACpB,MAAM,CAAC,WAAW,GAAG,WAAkC,CAAA;gBACzD,CAAC;gBAED,IAAI,QAAQ,IAAI,IAAI,EAAE,CAAC;oBACrB,MAAM,CAAC,IAAI,GAAG,IAAgD,CAAA;gBAChE,CAAC;gBAED,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;YACtB,CAAC;YAED,OAAO,OAAO,CAAA;QAChB,CAAC;KACF,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"file-markdown.js","sourceRoot":"","sources":["../src/file-markdown.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,15 @@ export declare class FrontmatterParseError extends Error {
8
8
  readonly filePath?: string | undefined;
9
9
  constructor(reason: string, filePath?: string | undefined);
10
10
  }
11
+ export type FrontmatterPickKeys = readonly string[];
12
+ export interface FrontmatterParseOptions {
13
+ /**
14
+ * When true, coerces ISO-ish date strings to `toISOString()`.
15
+ *
16
+ * Defaults to false to avoid surprising equality semantics and extra CPU.
17
+ */
18
+ coerceDates?: boolean;
19
+ }
11
20
  /**
12
21
  * Parse YAML frontmatter from content string.
13
22
  *
@@ -21,14 +30,21 @@ export declare class FrontmatterParseError extends Error {
21
30
  * @param content - The file content (or just the frontmatter portion)
22
31
  * @returns The parsed frontmatter object, or null if not found
23
32
  */
24
- export declare function parseFrontmatter(content: string): Record<string, unknown> | null;
33
+ export declare function parseFrontmatter(content: string, options?: FrontmatterParseOptions): Record<string, unknown> | null;
25
34
  /**
26
35
  * Parse YAML frontmatter with strict malformed-data checks.
27
36
  *
28
37
  * - Returns null when no frontmatter is present.
29
38
  * - Throws FrontmatterParseError when frontmatter fences are malformed.
30
39
  */
31
- export declare function parseFrontmatterStrict(content: string, filePath?: string): Record<string, unknown> | null;
40
+ export declare function parseFrontmatterStrict(content: string, filePath?: string, options?: FrontmatterParseOptions): Record<string, unknown> | null;
41
+ /**
42
+ * Parse just a subset of frontmatter keys with strict malformed-data checks.
43
+ *
44
+ * This is intended for query-time optimization when you only need a few keys
45
+ * (filter/select), rather than parsing every key eagerly.
46
+ */
47
+ export declare function parseFrontmatterPickStrict(content: string, keys: FrontmatterPickKeys, filePath?: string, options?: FrontmatterParseOptions): Record<string, unknown> | null;
32
48
  /**
33
49
  * Extract just the frontmatter portion from content.
34
50
  * Returns the raw YAML string without the --- delimiters.
@@ -55,7 +71,22 @@ export declare function getFrontmatterEndOffset(content: string): number;
55
71
  * @param maxBytes - Maximum bytes to read looking for frontmatter (default 8KB)
56
72
  * @returns The parsed frontmatter, or null if not found
57
73
  */
58
- export declare function readFrontmatter(path: string, maxBytes?: number): Promise<Record<string, unknown> | null>;
74
+ export declare function readFrontmatter(path: string, maxBytes?: number, options?: FrontmatterParseOptions): Promise<Record<string, unknown> | null>;
75
+ /**
76
+ * Read and parse frontmatter with strict malformed-data checks.
77
+ *
78
+ * Reads incrementally and stops once frontmatter is complete when it starts
79
+ * at byte 0. Falls back to scanning the whole file only when needed to
80
+ * preserve strict fence-position behavior.
81
+ */
82
+ export declare function readFrontmatterStrict(path: string, chunkSize?: number, options?: FrontmatterParseOptions): Promise<Record<string, unknown> | null>;
83
+ /**
84
+ * Read and parse only a subset of frontmatter keys (strict).
85
+ *
86
+ * This reads incrementally until the frontmatter block is complete and then
87
+ * parses only the keys you ask for. It preserves strict fence-position checks.
88
+ */
89
+ export declare function readFrontmatterPickStrict(path: string, keys: FrontmatterPickKeys, chunkSize?: number, options?: FrontmatterParseOptions): Promise<Record<string, unknown> | null>;
59
90
  /**
60
91
  * Read frontmatter and return the offset where body starts.
61
92
  * Useful when you need both frontmatter and body.
@@ -1 +1 @@
1
- {"version":3,"file":"frontmatter.d.ts","sourceRoot":"","sources":["../src/frontmatter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAaH,qBAAa,qBAAsB,SAAQ,KAAK;aAE5B,MAAM,EAAE,MAAM;aACd,QAAQ,CAAC,EAAE,MAAM;gBADjB,MAAM,EAAE,MAAM,EACd,QAAQ,CAAC,EAAE,MAAM,YAAA;CAMpC;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAMhF;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,MAAM,EACf,QAAQ,CAAC,EAAE,MAAM,GAChB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAkBhC;AAED;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAGvE;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAI/D;AA+JD;;;;;;;;;GASG;AACH,wBAAsB,eAAe,CACnC,IAAI,EAAE,MAAM,EACZ,QAAQ,SAAO,GACd,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,CAazC;AAED;;;;;;GAMG;AACH,wBAAsB,yBAAyB,CAC7C,IAAI,EAAE,MAAM,GACX,OAAO,CAAC;IAAE,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC,CAY9E"}
1
+ {"version":3,"file":"frontmatter.d.ts","sourceRoot":"","sources":["../src/frontmatter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAaH,qBAAa,qBAAsB,SAAQ,KAAK;aAE5B,MAAM,EAAE,MAAM;aACd,QAAQ,CAAC,EAAE,MAAM;gBADjB,MAAM,EAAE,MAAM,EACd,QAAQ,CAAC,EAAE,MAAM,YAAA;CAMpC;AAED,MAAM,MAAM,mBAAmB,GAAG,SAAS,MAAM,EAAE,CAAA;AAEnD,MAAM,WAAW,uBAAuB;IACtC;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB;AAUD;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,uBAAuB,GAChC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAMhC;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,MAAM,EACf,QAAQ,CAAC,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,uBAAuB,GAChC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAyBhC;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,mBAAmB,EACzB,QAAQ,CAAC,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,uBAAuB,GAChC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAyBhC;AAED;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAGvE;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAI/D;AA0RD;;;;;;;;;GASG;AACH,wBAAsB,eAAe,CACnC,IAAI,EAAE,MAAM,EACZ,QAAQ,SAAO,EACf,OAAO,CAAC,EAAE,uBAAuB,GAChC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,CAazC;AAED;;;;;;GAMG;AACH,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,MAAM,EACZ,SAAS,SAAO,EAChB,OAAO,CAAC,EAAE,uBAAuB,GAChC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,CAkEzC;AAED;;;;;GAKG;AACH,wBAAsB,yBAAyB,CAC7C,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,mBAAmB,EACzB,SAAS,SAAO,EAChB,OAAO,CAAC,EAAE,uBAAuB,GAChC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,CAmEzC;AAED;;;;;;GAMG;AACH,wBAAsB,yBAAyB,CAC7C,IAAI,EAAE,MAAM,GACX,OAAO,CAAC;IAAE,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC,CAY9E"}
@@ -23,6 +23,11 @@ export class FrontmatterParseError extends Error {
23
23
  this.name = "FrontmatterParseError";
24
24
  }
25
25
  }
26
+ function normalizeFrontmatterOptions(options) {
27
+ return {
28
+ coerceDates: options?.coerceDates ?? false,
29
+ };
30
+ }
26
31
  /**
27
32
  * Parse YAML frontmatter from content string.
28
33
  *
@@ -36,12 +41,12 @@ export class FrontmatterParseError extends Error {
36
41
  * @param content - The file content (or just the frontmatter portion)
37
42
  * @returns The parsed frontmatter object, or null if not found
38
43
  */
39
- export function parseFrontmatter(content) {
44
+ export function parseFrontmatter(content, options) {
40
45
  const match = FRONTMATTER_REGEX.exec(content);
41
46
  if (!match)
42
47
  return null;
43
48
  const yaml = match[1];
44
- return parseSimpleYaml(yaml);
49
+ return parseSimpleYaml(yaml, options);
45
50
  }
46
51
  /**
47
52
  * Parse YAML frontmatter with strict malformed-data checks.
@@ -49,14 +54,40 @@ export function parseFrontmatter(content) {
49
54
  * - Returns null when no frontmatter is present.
50
55
  * - Throws FrontmatterParseError when frontmatter fences are malformed.
51
56
  */
52
- export function parseFrontmatterStrict(content, filePath) {
57
+ export function parseFrontmatterStrict(content, filePath, options) {
58
+ const hasFrontmatterAtStart = content.startsWith("---\n") || content.startsWith("---\r\n");
59
+ if (hasFrontmatterAtStart) {
60
+ const match = FRONTMATTER_REGEX.exec(content);
61
+ if (!match) {
62
+ throw new FrontmatterParseError("opening frontmatter fence is not closed", filePath);
63
+ }
64
+ return parseSimpleYaml(match[1], options);
65
+ }
66
+ if (content.startsWith("---")) {
67
+ throw new FrontmatterParseError("opening frontmatter fence must be followed by a newline", filePath);
68
+ }
69
+ if (FRONTMATTER_FENCE_ANYWHERE_REGEX.test(content)) {
70
+ throw new FrontmatterParseError("frontmatter fence found after non-frontmatter content (frontmatter must start at byte 0)", filePath);
71
+ }
72
+ return null;
73
+ }
74
+ /**
75
+ * Parse just a subset of frontmatter keys with strict malformed-data checks.
76
+ *
77
+ * This is intended for query-time optimization when you only need a few keys
78
+ * (filter/select), rather than parsing every key eagerly.
79
+ */
80
+ export function parseFrontmatterPickStrict(content, keys, filePath, options) {
53
81
  const hasFrontmatterAtStart = content.startsWith("---\n") || content.startsWith("---\r\n");
54
82
  if (hasFrontmatterAtStart) {
55
83
  const match = FRONTMATTER_REGEX.exec(content);
56
84
  if (!match) {
57
85
  throw new FrontmatterParseError("opening frontmatter fence is not closed", filePath);
58
86
  }
59
- return parseSimpleYaml(match[1]);
87
+ return parseSimpleYamlPick(match[1], keys, options);
88
+ }
89
+ if (content.startsWith("---")) {
90
+ throw new FrontmatterParseError("opening frontmatter fence must be followed by a newline", filePath);
60
91
  }
61
92
  if (FRONTMATTER_FENCE_ANYWHERE_REGEX.test(content)) {
62
93
  throw new FrontmatterParseError("frontmatter fence found after non-frontmatter content (frontmatter must start at byte 0)", filePath);
@@ -94,7 +125,8 @@ export function getFrontmatterEndOffset(content) {
94
125
  * Parse simple YAML into an object.
95
126
  * Handles the common patterns found in markdown frontmatter.
96
127
  */
97
- function parseSimpleYaml(yaml) {
128
+ function parseSimpleYaml(yaml, options) {
129
+ const normalizedOptions = normalizeFrontmatterOptions(options);
98
130
  const result = {};
99
131
  const lines = yaml.split(/\r?\n/);
100
132
  let currentKey = null;
@@ -112,7 +144,7 @@ function parseSimpleYaml(yaml) {
112
144
  inBlockArray = false;
113
145
  }
114
146
  else if (currentValue.length === 1) {
115
- result[currentKey] = parseYamlValue(currentValue[0]);
147
+ result[currentKey] = parseYamlValue(currentValue[0], normalizedOptions);
116
148
  }
117
149
  else if (currentValue.length > 1) {
118
150
  result[currentKey] = currentValue.join("\n");
@@ -129,7 +161,7 @@ function parseSimpleYaml(yaml) {
129
161
  inBlockArray = true;
130
162
  inMultiline = false;
131
163
  const itemValue = arrayItemMatch[2].trim();
132
- blockArrayItems.push(parseYamlValue(itemValue));
164
+ blockArrayItems.push(parseYamlValue(itemValue, normalizedOptions));
133
165
  continue;
134
166
  }
135
167
  // Check for key: value pattern
@@ -203,10 +235,116 @@ function parseSimpleYaml(yaml) {
203
235
  commitValue();
204
236
  return result;
205
237
  }
238
+ /**
239
+ * Parse a subset of simple YAML keys into an object.
240
+ *
241
+ * Uses the same parsing rules as `parseSimpleYaml`, but stops once all requested
242
+ * keys have been found and committed.
243
+ */
244
+ function parseSimpleYamlPick(yaml, keys, options) {
245
+ const normalizedOptions = normalizeFrontmatterOptions(options);
246
+ const want = new Set(keys);
247
+ const remaining = new Set(keys);
248
+ const result = {};
249
+ if (remaining.size === 0)
250
+ return result;
251
+ const lines = yaml.split(/\r?\n/);
252
+ let currentKey = null;
253
+ let currentValue = [];
254
+ let inMultiline = false;
255
+ let inBlockArray = false;
256
+ let blockArrayItems = [];
257
+ let multilineIndent = 0;
258
+ function commitValue() {
259
+ if (!currentKey)
260
+ return;
261
+ if (want.has(currentKey)) {
262
+ if (inBlockArray) {
263
+ result[currentKey] = blockArrayItems;
264
+ }
265
+ else if (currentValue.length === 1) {
266
+ result[currentKey] = parseYamlValue(currentValue[0], normalizedOptions);
267
+ }
268
+ else if (currentValue.length > 1) {
269
+ result[currentKey] = currentValue.join("\n");
270
+ }
271
+ remaining.delete(currentKey);
272
+ }
273
+ currentKey = null;
274
+ currentValue = [];
275
+ inMultiline = false;
276
+ inBlockArray = false;
277
+ blockArrayItems = [];
278
+ multilineIndent = 0;
279
+ }
280
+ for (const line of lines) {
281
+ const arrayItemMatch = line.match(/^(\s+)-\s+(.*)$/);
282
+ if (arrayItemMatch && currentKey && (inBlockArray || (inMultiline && currentValue.length === 0))) {
283
+ inBlockArray = true;
284
+ inMultiline = false;
285
+ const itemValue = arrayItemMatch[2].trim();
286
+ if (want.has(currentKey)) {
287
+ blockArrayItems.push(parseYamlValue(itemValue, normalizedOptions));
288
+ }
289
+ continue;
290
+ }
291
+ const keyMatch = line.match(/^([a-zA-Z_][a-zA-Z0-9_-]*)\s*:\s*(.*)$/);
292
+ if (keyMatch && !inMultiline) {
293
+ commitValue();
294
+ if (remaining.size === 0)
295
+ break;
296
+ currentKey = keyMatch[1];
297
+ const valueStr = keyMatch[2].trim();
298
+ if (valueStr === "" || valueStr === "|" || valueStr === ">") {
299
+ inMultiline = true;
300
+ multilineIndent = 0;
301
+ }
302
+ else {
303
+ currentValue = [valueStr];
304
+ }
305
+ continue;
306
+ }
307
+ if (inMultiline && currentKey && !inBlockArray) {
308
+ if (line.trim() === "") {
309
+ if (want.has(currentKey))
310
+ currentValue.push("");
311
+ continue;
312
+ }
313
+ const indent = line.search(/\S/);
314
+ if (indent > 0) {
315
+ if (multilineIndent === 0) {
316
+ multilineIndent = indent;
317
+ }
318
+ if (want.has(currentKey))
319
+ currentValue.push(line.slice(multilineIndent));
320
+ continue;
321
+ }
322
+ // No indent: multiline ended, re-process as a new key
323
+ commitValue();
324
+ if (remaining.size === 0)
325
+ break;
326
+ const reKeyMatch = line.match(/^([a-zA-Z_][a-zA-Z0-9_-]*)\s*:\s*(.*)$/);
327
+ if (reKeyMatch) {
328
+ currentKey = reKeyMatch[1];
329
+ const valueStr = reKeyMatch[2].trim();
330
+ if (valueStr === "" || valueStr === "|" || valueStr === ">") {
331
+ inMultiline = true;
332
+ multilineIndent = 0;
333
+ }
334
+ else {
335
+ currentValue = [valueStr];
336
+ }
337
+ }
338
+ continue;
339
+ }
340
+ }
341
+ commitValue();
342
+ return result;
343
+ }
206
344
  /**
207
345
  * Parse a single YAML value.
208
346
  */
209
- function parseYamlValue(value) {
347
+ function parseYamlValue(value, options) {
210
348
  // Remove quotes
211
349
  if ((value.startsWith('"') && value.endsWith('"')) || (value.startsWith("'") && value.endsWith("'"))) {
212
350
  return value.slice(1, -1);
@@ -216,7 +354,7 @@ function parseYamlValue(value) {
216
354
  const inner = value.slice(1, -1);
217
355
  if (inner.trim() === "")
218
356
  return [];
219
- return inner.split(",").map((item) => parseYamlValue(item.trim()));
357
+ return inner.split(",").map((item) => parseYamlValue(item.trim(), options));
220
358
  }
221
359
  // Check for booleans
222
360
  if (value === "true")
@@ -230,11 +368,13 @@ function parseYamlValue(value) {
230
368
  const num = Number(value);
231
369
  if (!isNaN(num) && value !== "")
232
370
  return num;
233
- // Check for dates (ISO format)
234
- if (/^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2})?/.test(value)) {
235
- const date = new Date(value);
236
- if (!isNaN(date.getTime()))
237
- return date.toISOString();
371
+ if (options.coerceDates) {
372
+ // Check for dates (ISO-ish format)
373
+ if (/^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2})?/.test(value)) {
374
+ const date = new Date(value);
375
+ if (!isNaN(date.getTime()))
376
+ return date.toISOString();
377
+ }
238
378
  }
239
379
  return value;
240
380
  }
@@ -251,19 +391,128 @@ function parseYamlValue(value) {
251
391
  * @param maxBytes - Maximum bytes to read looking for frontmatter (default 8KB)
252
392
  * @returns The parsed frontmatter, or null if not found
253
393
  */
254
- export async function readFrontmatter(path, maxBytes = 8192) {
394
+ export async function readFrontmatter(path, maxBytes = 8192, options) {
255
395
  try {
256
396
  const file = Bun.file(path);
257
397
  const size = file.size;
258
398
  // Read up to maxBytes or file size
259
399
  const bytesToRead = Math.min(maxBytes, size);
260
400
  const buffer = await file.slice(0, bytesToRead).text();
261
- return parseFrontmatter(buffer);
401
+ return parseFrontmatter(buffer, options);
262
402
  }
263
403
  catch {
264
404
  return null;
265
405
  }
266
406
  }
407
+ /**
408
+ * Read and parse frontmatter with strict malformed-data checks.
409
+ *
410
+ * Reads incrementally and stops once frontmatter is complete when it starts
411
+ * at byte 0. Falls back to scanning the whole file only when needed to
412
+ * preserve strict fence-position behavior.
413
+ */
414
+ export async function readFrontmatterStrict(path, chunkSize = 8192, options) {
415
+ try {
416
+ const file = Bun.file(path);
417
+ const size = file.size;
418
+ if (size === 0)
419
+ return null;
420
+ const firstReadSize = Math.min(chunkSize, size);
421
+ const firstChunk = await file.slice(0, firstReadSize).text();
422
+ const hasFrontmatterAtStart = firstChunk.startsWith("---\n") || firstChunk.startsWith("---\r\n");
423
+ if (hasFrontmatterAtStart) {
424
+ let content = firstChunk;
425
+ let offset = firstReadSize;
426
+ while (!/\r?\n---/.test(content)) {
427
+ if (offset >= size) {
428
+ throw new FrontmatterParseError("opening frontmatter fence is not closed", path);
429
+ }
430
+ const end = Math.min(offset + chunkSize, size);
431
+ const nextChunk = await file.slice(offset, end).text();
432
+ content += nextChunk;
433
+ offset = end;
434
+ }
435
+ return parseFrontmatterStrict(content, path, options);
436
+ }
437
+ if (firstChunk.startsWith("---")) {
438
+ throw new FrontmatterParseError("opening frontmatter fence must be followed by a newline", path);
439
+ }
440
+ let carry = firstChunk.slice(-8);
441
+ if (FRONTMATTER_FENCE_ANYWHERE_REGEX.test(firstChunk)) {
442
+ throw new FrontmatterParseError("frontmatter fence found after non-frontmatter content (frontmatter must start at byte 0)", path);
443
+ }
444
+ for (let offset = firstReadSize; offset < size; offset += chunkSize) {
445
+ const end = Math.min(offset + chunkSize, size);
446
+ const chunk = await file.slice(offset, end).text();
447
+ const sample = carry + chunk;
448
+ if (FRONTMATTER_FENCE_ANYWHERE_REGEX.test(sample)) {
449
+ throw new FrontmatterParseError("frontmatter fence found after non-frontmatter content (frontmatter must start at byte 0)", path);
450
+ }
451
+ carry = sample.slice(-8);
452
+ }
453
+ return null;
454
+ }
455
+ catch (error) {
456
+ if (error instanceof FrontmatterParseError) {
457
+ throw error;
458
+ }
459
+ return null;
460
+ }
461
+ }
462
+ /**
463
+ * Read and parse only a subset of frontmatter keys (strict).
464
+ *
465
+ * This reads incrementally until the frontmatter block is complete and then
466
+ * parses only the keys you ask for. It preserves strict fence-position checks.
467
+ */
468
+ export async function readFrontmatterPickStrict(path, keys, chunkSize = 8192, options) {
469
+ try {
470
+ const file = Bun.file(path);
471
+ const size = file.size;
472
+ if (size === 0)
473
+ return null;
474
+ const firstReadSize = Math.min(chunkSize, size);
475
+ const firstChunk = await file.slice(0, firstReadSize).text();
476
+ const hasFrontmatterAtStart = firstChunk.startsWith("---\n") || firstChunk.startsWith("---\r\n");
477
+ if (hasFrontmatterAtStart) {
478
+ let content = firstChunk;
479
+ let offset = firstReadSize;
480
+ while (!/\r?\n---/.test(content)) {
481
+ if (offset >= size) {
482
+ throw new FrontmatterParseError("opening frontmatter fence is not closed", path);
483
+ }
484
+ const end = Math.min(offset + chunkSize, size);
485
+ const nextChunk = await file.slice(offset, end).text();
486
+ content += nextChunk;
487
+ offset = end;
488
+ }
489
+ return parseFrontmatterPickStrict(content, keys, path, options);
490
+ }
491
+ if (firstChunk.startsWith("---")) {
492
+ throw new FrontmatterParseError("opening frontmatter fence must be followed by a newline", path);
493
+ }
494
+ let carry = firstChunk.slice(-8);
495
+ if (FRONTMATTER_FENCE_ANYWHERE_REGEX.test(firstChunk)) {
496
+ throw new FrontmatterParseError("frontmatter fence found after non-frontmatter content (frontmatter must start at byte 0)", path);
497
+ }
498
+ for (let offset = firstReadSize; offset < size; offset += chunkSize) {
499
+ const end = Math.min(offset + chunkSize, size);
500
+ const chunk = await file.slice(offset, end).text();
501
+ const sample = carry + chunk;
502
+ if (FRONTMATTER_FENCE_ANYWHERE_REGEX.test(sample)) {
503
+ throw new FrontmatterParseError("frontmatter fence found after non-frontmatter content (frontmatter must start at byte 0)", path);
504
+ }
505
+ carry = sample.slice(-8);
506
+ }
507
+ return null;
508
+ }
509
+ catch (error) {
510
+ if (error instanceof FrontmatterParseError) {
511
+ throw error;
512
+ }
513
+ return null;
514
+ }
515
+ }
267
516
  /**
268
517
  * Read frontmatter and return the offset where body starts.
269
518
  * Useful when you need both frontmatter and body.
@@ -1 +1 @@
1
- {"version":3,"file":"frontmatter.js","sourceRoot":"","sources":["../src/frontmatter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,gFAAgF;AAChF,sBAAsB;AACtB,gFAAgF;AAEhF;;;GAGG;AACH,MAAM,iBAAiB,GAAG,6BAA6B,CAAA;AACvD,MAAM,gCAAgC,GAAG,mBAAmB,CAAA;AAE5D,MAAM,OAAO,qBAAsB,SAAQ,KAAK;IAE5B;IACA;IAFlB,YACkB,MAAc,EACd,QAAiB;QAEjC,MAAM,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,OAAO,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;QAClD,KAAK,CAAC,wBAAwB,QAAQ,KAAK,MAAM,EAAE,CAAC,CAAA;QAJpC,WAAM,GAAN,MAAM,CAAQ;QACd,aAAQ,GAAR,QAAQ,CAAS;QAIjC,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAA;IACrC,CAAC;CACF;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAAe;IAC9C,MAAM,KAAK,GAAG,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAC7C,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAA;IAEvB,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;IACrB,OAAO,eAAe,CAAC,IAAI,CAAC,CAAA;AAC9B,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CACpC,OAAe,EACf,QAAiB;IAEjB,MAAM,qBAAqB,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,CAAA;IAC1F,IAAI,qBAAqB,EAAE,CAAC;QAC1B,MAAM,KAAK,GAAG,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAC7C,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,qBAAqB,CAAC,yCAAyC,EAAE,QAAQ,CAAC,CAAA;QACtF,CAAC;QACD,OAAO,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;IAClC,CAAC;IAED,IAAI,gCAAgC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACnD,MAAM,IAAI,qBAAqB,CAC7B,0FAA0F,EAC1F,QAAQ,CACT,CAAA;IACH,CAAC;IAED,OAAO,IAAI,CAAA;AACb,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,wBAAwB,CAAC,OAAe;IACtD,MAAM,KAAK,GAAG,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAC7C,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;AAChC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,uBAAuB,CAAC,OAAe;IACrD,MAAM,KAAK,GAAG,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAC7C,IAAI,CAAC,KAAK;QAAE,OAAO,CAAC,CAAA;IACpB,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAA;AACxB,CAAC;AAED,gFAAgF;AAChF,qBAAqB;AACrB,gFAAgF;AAEhF;;;GAGG;AACH,SAAS,eAAe,CAAC,IAAY;IACnC,MAAM,MAAM,GAA4B,EAAE,CAAA;IAC1C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;IAEjC,IAAI,UAAU,GAAkB,IAAI,CAAA;IACpC,IAAI,YAAY,GAAa,EAAE,CAAA;IAC/B,IAAI,WAAW,GAAG,KAAK,CAAA;IACvB,IAAI,YAAY,GAAG,KAAK,CAAA;IACxB,IAAI,eAAe,GAAc,EAAE,CAAA;IACnC,IAAI,eAAe,GAAG,CAAC,CAAA;IAEvB,SAAS,WAAW;QAClB,IAAI,UAAU,EAAE,CAAC;YACf,IAAI,YAAY,EAAE,CAAC;gBACjB,qBAAqB;gBACrB,MAAM,CAAC,UAAU,CAAC,GAAG,eAAe,CAAA;gBACpC,eAAe,GAAG,EAAE,CAAA;gBACpB,YAAY,GAAG,KAAK,CAAA;YACtB,CAAC;iBAAM,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACrC,MAAM,CAAC,UAAU,CAAC,GAAG,cAAc,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAA;YACtD,CAAC;iBAAM,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACnC,MAAM,CAAC,UAAU,CAAC,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YAC9C,CAAC;QACH,CAAC;QACD,UAAU,GAAG,IAAI,CAAA;QACjB,YAAY,GAAG,EAAE,CAAA;QACjB,WAAW,GAAG,KAAK,CAAA;IACrB,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,uCAAuC;QACvC,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAA;QACpD,IAAI,cAAc,IAAI,UAAU,IAAI,CAAC,YAAY,IAAI,CAAC,WAAW,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YACjG,YAAY,GAAG,IAAI,CAAA;YACnB,WAAW,GAAG,KAAK,CAAA;YACnB,MAAM,SAAS,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;YAC1C,eAAe,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAA;YAC/C,SAAQ;QACV,CAAC;QAED,+BAA+B;QAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAA;QAErE,IAAI,QAAQ,IAAI,CAAC,WAAW,EAAE,CAAC;YAC7B,4BAA4B;YAC5B,WAAW,EAAE,CAAA;YAEb,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;YACxB,MAAM,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;YAEnC,IAAI,QAAQ,KAAK,EAAE,IAAI,QAAQ,KAAK,GAAG,IAAI,QAAQ,KAAK,GAAG,EAAE,CAAC;gBAC5D,qDAAqD;gBACrD,WAAW,GAAG,IAAI,CAAA;gBAClB,eAAe,GAAG,CAAC,CAAA;YACrB,CAAC;iBAAM,CAAC;gBACN,YAAY,GAAG,CAAC,QAAQ,CAAC,CAAA;YAC3B,CAAC;QACH,CAAC;aAAM,IAAI,WAAW,IAAI,UAAU,IAAI,CAAC,YAAY,EAAE,CAAC;YACtD,kCAAkC;YAClC,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;gBACvB,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;YACvB,CAAC;iBAAM,CAAC;gBACN,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;gBAChC,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;oBACf,IAAI,eAAe,KAAK,CAAC,EAAE,CAAC;wBAC1B,eAAe,GAAG,MAAM,CAAA;oBAC1B,CAAC;oBACD,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAA;gBAChD,CAAC;qBAAM,CAAC;oBACN,8CAA8C;oBAC9C,WAAW,EAAE,CAAA;oBACb,uBAAuB;oBACvB,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAA;oBACvE,IAAI,UAAU,EAAE,CAAC;wBACf,UAAU,GAAG,UAAU,CAAC,CAAC,CAAC,CAAA;wBAC1B,MAAM,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;wBACrC,IAAI,QAAQ,KAAK,EAAE,IAAI,QAAQ,KAAK,GAAG,IAAI,QAAQ,KAAK,GAAG,EAAE,CAAC;4BAC5D,WAAW,GAAG,IAAI,CAAA;4BAClB,eAAe,GAAG,CAAC,CAAA;wBACrB,CAAC;6BAAM,CAAC;4BACN,YAAY,GAAG,CAAC,QAAQ,CAAC,CAAA;wBAC3B,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;aAAM,IAAI,UAAU,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YAC5C,sCAAsC;QACxC,CAAC;aAAM,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YAC7C,gBAAgB;YAChB,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAA;YACxE,IAAI,WAAW,EAAE,CAAC;gBAChB,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC,CAAA;gBAC3B,MAAM,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;gBACtC,IAAI,QAAQ,KAAK,EAAE,IAAI,QAAQ,KAAK,GAAG,IAAI,QAAQ,KAAK,GAAG,EAAE,CAAC;oBAC5D,WAAW,GAAG,IAAI,CAAA;oBAClB,eAAe,GAAG,CAAC,CAAA;gBACrB,CAAC;qBAAM,CAAC;oBACN,YAAY,GAAG,CAAC,QAAQ,CAAC,CAAA;gBAC3B,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,qBAAqB;IACrB,WAAW,EAAE,CAAA;IAEb,OAAO,MAAM,CAAA;AACf,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,KAAa;IACnC,gBAAgB;IAChB,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;QACrG,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IAC3B,CAAC;IAED,kBAAkB;IAClB,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACjD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QAChC,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE;YAAE,OAAO,EAAE,CAAA;QAClC,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;IACpE,CAAC;IAED,qBAAqB;IACrB,IAAI,KAAK,KAAK,MAAM;QAAE,OAAO,IAAI,CAAA;IACjC,IAAI,KAAK,KAAK,OAAO;QAAE,OAAO,KAAK,CAAA;IAEnC,iBAAiB;IACjB,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,GAAG;QAAE,OAAO,IAAI,CAAA;IAElD,oBAAoB;IACpB,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;IACzB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,KAAK,KAAK,EAAE;QAAE,OAAO,GAAG,CAAA;IAE3C,+BAA+B;IAC/B,IAAI,yCAAyC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1D,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAA;QAC5B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAAE,OAAO,IAAI,CAAC,WAAW,EAAE,CAAA;IACvD,CAAC;IAED,OAAO,KAAK,CAAA;AACd,CAAC;AAED,gFAAgF;AAChF,yBAAyB;AACzB,gFAAgF;AAEhF;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,IAAY,EACZ,QAAQ,GAAG,IAAI;IAEf,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;QAEtB,mCAAmC;QACnC,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;QAC5C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,IAAI,EAAE,CAAA;QAEtD,OAAO,gBAAgB,CAAC,MAAM,CAAC,CAAA;IACjC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,IAAY;IAEZ,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC3B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAA;QAEjC,MAAM,WAAW,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAA;QAC7C,MAAM,UAAU,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAA;QAEnD,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,CAAA;IACpC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,CAAA;IAC7C,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"frontmatter.js","sourceRoot":"","sources":["../src/frontmatter.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -7,12 +7,12 @@
7
7
  *
8
8
  * @packageDocumentation
9
9
  */
10
- export { fileMarkdown } from "./file-markdown";
11
- export type { FileMarkdownOptions, FileMarkdownResult } from "./file-markdown";
12
- export { staticContent, staticResolver } from "./static";
13
- export { compilePattern, createParamsSchema } from "./path-pattern";
14
- export type { CompiledPattern, ExtractParams, PathParams, } from "./path-pattern";
15
- export { FrontmatterParseError, parseFrontmatter, parseFrontmatterStrict, extractFrontmatterString, getFrontmatterEndOffset, readFrontmatter, readFrontmatterWithOffset, } from "./frontmatter";
16
- export { parseMarkdownBody, extractHeadings, slugify, markdownToHtml, readMarkdownBody, readParsedBody, } from "./markdown";
17
- export type { BodyOptions, BodyResult, BodyShape, Heading, } from "./markdown";
10
+ export { fileMarkdown } from "./file-markdown.js";
11
+ export type { FileMarkdownOptions, FileMarkdownResult } from "./file-markdown.js";
12
+ export { staticContent, staticResolver } from "./static.js";
13
+ export { compilePattern, createParamsSchema } from "./path-pattern.js";
14
+ export type { CompiledPattern, ExtractParams, PathParams, } from "./path-pattern.js";
15
+ export { FrontmatterParseError, parseFrontmatter, parseFrontmatterStrict, parseFrontmatterPickStrict, extractFrontmatterString, getFrontmatterEndOffset, readFrontmatter, readFrontmatterPickStrict, readFrontmatterWithOffset, } from "./frontmatter.js";
16
+ export { parseMarkdownBody, extractHeadings, slugify, markdownToHtml, readMarkdownBody, readParsedBody, } from "./markdown.js";
17
+ export type { BodyOptions, BodyResult, BodyShape, Heading, } from "./markdown.js";
18
18
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAC9C,YAAY,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AAM9E,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAMxD,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AACnE,YAAY,EACV,eAAe,EACf,aAAa,EACb,UAAU,GACX,MAAM,gBAAgB,CAAA;AAMvB,OAAO,EACL,qBAAqB,EACrB,gBAAgB,EAChB,sBAAsB,EACtB,wBAAwB,EACxB,uBAAuB,EACvB,eAAe,EACf,yBAAyB,GAC1B,MAAM,eAAe,CAAA;AAMtB,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,OAAO,EACP,cAAc,EACd,gBAAgB,EAChB,cAAc,GACf,MAAM,YAAY,CAAA;AAEnB,YAAY,EACV,WAAW,EACX,UAAU,EACV,SAAS,EACT,OAAO,GACR,MAAM,YAAY,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,YAAY,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AAMjF,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAM3D,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AACtE,YAAY,EACV,eAAe,EACf,aAAa,EACb,UAAU,GACX,MAAM,mBAAmB,CAAA;AAM1B,OAAO,EACL,qBAAqB,EACrB,gBAAgB,EAChB,sBAAsB,EACtB,0BAA0B,EAC1B,wBAAwB,EACxB,uBAAuB,EACvB,eAAe,EACf,yBAAyB,EACzB,yBAAyB,GAC1B,MAAM,kBAAkB,CAAA;AAMzB,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,OAAO,EACP,cAAc,EACd,gBAAgB,EAChB,cAAc,GACf,MAAM,eAAe,CAAA;AAEtB,YAAY,EACV,WAAW,EACX,UAAU,EACV,SAAS,EACT,OAAO,GACR,MAAM,eAAe,CAAA"}
package/dist/index.js CHANGED
@@ -10,21 +10,21 @@
10
10
  // =============================================================================
11
11
  // Filesystem Resolver (Node.js/Bun only)
12
12
  // =============================================================================
13
- export { fileMarkdown } from "./file-markdown";
13
+ export { fileMarkdown } from "./file-markdown.js";
14
14
  // =============================================================================
15
15
  // Static Content Resolver (Edge/Workers compatible)
16
16
  // =============================================================================
17
- export { staticContent, staticResolver } from "./static";
17
+ export { staticContent, staticResolver } from "./static.js";
18
18
  // =============================================================================
19
19
  // Path Pattern Utilities
20
20
  // =============================================================================
21
- export { compilePattern, createParamsSchema } from "./path-pattern";
21
+ export { compilePattern, createParamsSchema } from "./path-pattern.js";
22
22
  // =============================================================================
23
23
  // Frontmatter Utilities
24
24
  // =============================================================================
25
- export { FrontmatterParseError, parseFrontmatter, parseFrontmatterStrict, extractFrontmatterString, getFrontmatterEndOffset, readFrontmatter, readFrontmatterWithOffset, } from "./frontmatter";
25
+ export { FrontmatterParseError, parseFrontmatter, parseFrontmatterStrict, parseFrontmatterPickStrict, extractFrontmatterString, getFrontmatterEndOffset, readFrontmatter, readFrontmatterPickStrict, readFrontmatterWithOffset, } from "./frontmatter.js";
26
26
  // =============================================================================
27
27
  // Markdown Utilities
28
28
  // =============================================================================
29
- export { parseMarkdownBody, extractHeadings, slugify, markdownToHtml, readMarkdownBody, readParsedBody, } from "./markdown";
29
+ export { parseMarkdownBody, extractHeadings, slugify, markdownToHtml, readMarkdownBody, readParsedBody, } from "./markdown.js";
30
30
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,gFAAgF;AAChF,yCAAyC;AACzC,gFAAgF;AAEhF,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAG9C,gFAAgF;AAChF,oDAAoD;AACpD,gFAAgF;AAEhF,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAExD,gFAAgF;AAChF,yBAAyB;AACzB,gFAAgF;AAEhF,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AAOnE,gFAAgF;AAChF,wBAAwB;AACxB,gFAAgF;AAEhF,OAAO,EACL,qBAAqB,EACrB,gBAAgB,EAChB,sBAAsB,EACtB,wBAAwB,EACxB,uBAAuB,EACvB,eAAe,EACf,yBAAyB,GAC1B,MAAM,eAAe,CAAA;AAEtB,gFAAgF;AAChF,qBAAqB;AACrB,gFAAgF;AAEhF,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,OAAO,EACP,cAAc,EACd,gBAAgB,EAChB,cAAc,GACf,MAAM,YAAY,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,gFAAgF;AAChF,yCAAyC;AACzC,gFAAgF;AAEhF,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAGjD,gFAAgF;AAChF,oDAAoD;AACpD,gFAAgF;AAEhF,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAE3D,gFAAgF;AAChF,yBAAyB;AACzB,gFAAgF;AAEhF,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAOtE,gFAAgF;AAChF,wBAAwB;AACxB,gFAAgF;AAEhF,OAAO,EACL,qBAAqB,EACrB,gBAAgB,EAChB,sBAAsB,EACtB,0BAA0B,EAC1B,wBAAwB,EACxB,uBAAuB,EACvB,eAAe,EACf,yBAAyB,EACzB,yBAAyB,GAC1B,MAAM,kBAAkB,CAAA;AAEzB,gFAAgF;AAChF,qBAAqB;AACrB,gFAAgF;AAEhF,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,OAAO,EACP,cAAc,EACd,gBAAgB,EAChB,cAAc,GACf,MAAM,eAAe,CAAA"}
package/dist/markdown.js CHANGED
@@ -6,7 +6,7 @@
6
6
  * - HTML (basic conversion)
7
7
  * - Headings with slugs
8
8
  */
9
- import { getFrontmatterEndOffset } from "./frontmatter";
9
+ import { getFrontmatterEndOffset } from "./frontmatter.js";
10
10
  // =============================================================================
11
11
  // Markdown Parsing
12
12
  // =============================================================================
@@ -1 +1 @@
1
- {"version":3,"file":"markdown.js","sourceRoot":"","sources":["../src/markdown.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"markdown.js","sourceRoot":"","sources":["../src/markdown.ts"],"names":[],"mappings":"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"}
@@ -10,12 +10,16 @@
10
10
  import { StandardSchema } from "piqit";
11
11
  /**
12
12
  * Extract params from a path pattern string at the type level.
13
+ * Params inside `<...>` optional segments become optional properties.
13
14
  *
14
15
  * @example
15
16
  * type Params = ExtractParams<'{year}/{slug}.md'>
16
17
  * // = { year: string } & { slug: string }
18
+ *
19
+ * type Params = ExtractParams<'{date}< {time}> {slug}.md'>
20
+ * // = { date: string } & { time?: string } & { slug: string }
17
21
  */
18
- export type ExtractParams<P extends string> = P extends `${string}{${infer Param}}${infer Rest}` ? {
22
+ export type ExtractParams<P extends string> = P extends `${infer Head}<${infer Opt}>${infer Rest}` ? ExtractParams<Head> & Partial<ExtractParams<Opt>> & ExtractParams<Rest> : P extends `${string}{${infer Param}}${infer Rest}` ? {
19
23
  [K in ExtractParamName<Param>]: string;
20
24
  } & ExtractParams<Rest> : {};
21
25
  type ExtractParamName<T extends string> = T extends `${infer Name}:${string}` ? Name : T;
@@ -53,8 +57,19 @@ export interface CompiledPattern {
53
57
  * pattern.toGlob({ year: '2024' }) // '2024/*.md'
54
58
  */
55
59
  toGlob(constraints?: Record<string, unknown>): string;
60
+ /**
61
+ * Generate all glob variants for a pattern with optional segments.
62
+ * Each `<...>` segment doubles the variants (present/absent); variants
63
+ * that omit a constrained param are pruned. Patterns without optional
64
+ * segments yield a single glob.
65
+ *
66
+ * @param constraints - Optional param values to use instead of wildcards
67
+ * @returns Deduplicated glob pattern strings
68
+ */
69
+ toGlobs(constraints?: Record<string, unknown>): string[];
56
70
  /**
57
71
  * Match a path against this pattern and extract params.
72
+ * Params in unmatched optional segments are omitted from the result.
58
73
  *
59
74
  * @param path - The file path to match (relative to base)
60
75
  * @returns The extracted params, or null if no match
@@ -78,6 +93,9 @@ export interface CompiledPattern {
78
93
  /**
79
94
  * Compile a path pattern string into a usable pattern object.
80
95
  *
96
+ * Supports `{param}` placeholders, `{param:regex}` inline constraints, and
97
+ * `<...>` optional segments (e.g. `'{date}< {time}> - {slug}.md'`).
98
+ *
81
99
  * @param pattern - The pattern string like '{year}/{slug}.md'
82
100
  * @returns A CompiledPattern instance
83
101
  *
@@ -1 +1 @@
1
- {"version":3,"file":"path-pattern.d.ts","sourceRoot":"","sources":["../src/path-pattern.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAMvC;;;;;;GAMG;AACH,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,SAAS,GAAG,MAAM,IAAI,MAAM,KAAK,IAAI,MAAM,IAAI,EAAE,GAC5F;KAAG,CAAC,IAAI,gBAAgB,CAAC,KAAK,CAAC,GAAG,MAAM;CAAE,GAAG,aAAa,CAAC,IAAI,CAAC,GAChE,EAAE,CAAA;AAEN,KAAK,gBAAgB,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,SAAS,GAAG,MAAM,IAAI,IAAI,MAAM,EAAE,GAAG,IAAI,GAAG,CAAC,CAAA;AAExF;;;GAGG;AACH,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAE,CAAA;AAElD;;GAEG;AACH,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,MAAM,IAAI,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAA;AAMrE;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,OAAO,EAAE,MAAM,CAAA;IAEf;;OAEG;IACH,UAAU,EAAE,MAAM,EAAE,CAAA;IAEpB;;;;;;;;;OASG;IACH,MAAM,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAA;IAErD;;;;;;;;;OASG;IACH,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAA;IAElD;;;;;;;;OAQG;IACH,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAA;CAC9C;AAiBD;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe,CAoF/D;AAMD;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,eAAe,GACvB,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CA4BxC"}
1
+ {"version":3,"file":"path-pattern.d.ts","sourceRoot":"","sources":["../src/path-pattern.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAMvC;;;;;;;;;;GAUG;AACH,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,MAAM,IACxC,CAAC,SAAS,GAAG,MAAM,IAAI,IAAI,MAAM,GAAG,IAAI,MAAM,IAAI,EAAE,GAChD,aAAa,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,GAAG,aAAa,CAAC,IAAI,CAAC,GACvE,CAAC,SAAS,GAAG,MAAM,IAAI,MAAM,KAAK,IAAI,MAAM,IAAI,EAAE,GAChD;KAAG,CAAC,IAAI,gBAAgB,CAAC,KAAK,CAAC,GAAG,MAAM;CAAE,GAAG,aAAa,CAAC,IAAI,CAAC,GAChE,EAAE,CAAA;AAEV,KAAK,gBAAgB,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,SAAS,GAAG,MAAM,IAAI,IAAI,MAAM,EAAE,GAAG,IAAI,GAAG,CAAC,CAAA;AAExF;;;GAGG;AACH,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAE,CAAA;AAElD;;GAEG;AACH,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,MAAM,IAAI,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAA;AAMrE;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,OAAO,EAAE,MAAM,CAAA;IAEf;;OAEG;IACH,UAAU,EAAE,MAAM,EAAE,CAAA;IAEpB;;;;;;;;;OASG;IACH,MAAM,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAA;IAErD;;;;;;;;OAQG;IACH,OAAO,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,EAAE,CAAA;IAExD;;;;;;;;;;OAUG;IACH,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAA;IAElD;;;;;;;;OAQG;IACH,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAA;CAC9C;AAgFD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe,CA8H/D;AAMD;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,eAAe,GACvB,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CA4BxC"}
@@ -19,9 +19,63 @@ const PARAM_REGEX = /\{([a-zA-Z_][a-zA-Z0-9_]*)(?::([^{}]+))?\}/g;
19
19
  * Characters that need escaping in regex.
20
20
  */
21
21
  const REGEX_ESCAPE = /[.*+?^${}()|[\]\\]/g;
22
+ /**
23
+ * Characters with special meaning in glob patterns.
24
+ * Literal text is escaped so paths containing e.g. `[id]` match verbatim.
25
+ */
26
+ const GLOB_ESCAPE = /[*?[\]{}()!\\]/g;
27
+ function parseParts(segment) {
28
+ const parts = [];
29
+ const regex = new RegExp(PARAM_REGEX.source, "g");
30
+ let cursor = 0;
31
+ let match;
32
+ while ((match = regex.exec(segment)) !== null) {
33
+ if (match.index > cursor) {
34
+ parts.push({ kind: "literal", value: segment.slice(cursor, match.index) });
35
+ }
36
+ parts.push({ kind: "param", name: match[1], constraint: match[2] || undefined });
37
+ cursor = match.index + match[0].length;
38
+ }
39
+ if (cursor < segment.length) {
40
+ parts.push({ kind: "literal", value: segment.slice(cursor) });
41
+ }
42
+ return parts;
43
+ }
44
+ /**
45
+ * Split a pattern into chunks at `<...>` optional segment boundaries.
46
+ * Nesting is not supported.
47
+ */
48
+ function parseChunks(pattern) {
49
+ const chunks = [];
50
+ let cursor = 0;
51
+ while (cursor < pattern.length) {
52
+ const open = pattern.indexOf("<", cursor);
53
+ if (open === -1) {
54
+ chunks.push({ optional: false, parts: parseParts(pattern.slice(cursor)) });
55
+ break;
56
+ }
57
+ const close = pattern.indexOf(">", open);
58
+ if (close === -1) {
59
+ throw new Error(`Unclosed optional segment in pattern: ${pattern}`);
60
+ }
61
+ const inner = pattern.slice(open + 1, close);
62
+ if (inner.includes("<")) {
63
+ throw new Error(`Nested optional segments are not supported: ${pattern}`);
64
+ }
65
+ if (open > cursor) {
66
+ chunks.push({ optional: false, parts: parseParts(pattern.slice(cursor, open)) });
67
+ }
68
+ chunks.push({ optional: true, parts: parseParts(inner) });
69
+ cursor = close + 1;
70
+ }
71
+ return chunks;
72
+ }
22
73
  /**
23
74
  * Compile a path pattern string into a usable pattern object.
24
75
  *
76
+ * Supports `{param}` placeholders, `{param:regex}` inline constraints, and
77
+ * `<...>` optional segments (e.g. `'{date}< {time}> - {slug}.md'`).
78
+ *
25
79
  * @param pattern - The pattern string like '{year}/{slug}.md'
26
80
  * @returns A CompiledPattern instance
27
81
  *
@@ -31,58 +85,83 @@ const REGEX_ESCAPE = /[.*+?^${}()|[\]\\]/g;
31
85
  * pattern.match('2024/hello.md') // { year: '2024', slug: 'hello' }
32
86
  */
33
87
  export function compilePattern(pattern) {
34
- // Extract all parameter names in order
88
+ const chunks = parseChunks(pattern);
35
89
  const paramNames = [];
36
- const placeholders = [];
37
- let match;
38
- const regex = new RegExp(PARAM_REGEX.source, "g");
39
- while ((match = regex.exec(pattern)) !== null) {
40
- const name = match[1];
41
- const constraint = match[2] || undefined;
42
- paramNames.push(name);
43
- placeholders.push({
44
- raw: match[0],
45
- name,
46
- constraint,
47
- });
90
+ const paramChunk = new Map();
91
+ for (const chunk of chunks) {
92
+ for (const part of chunk.parts) {
93
+ if (part.kind === "param") {
94
+ paramNames.push(part.name);
95
+ paramChunk.set(part.name, chunk);
96
+ }
97
+ }
48
98
  }
49
- // Build the match regex by escaping literal segments and inserting
50
- // capturing groups for placeholders.
99
+ // Build the match regex. Only param groups capture, so capture order
100
+ // follows param order even with optional (non-capturing) groups.
51
101
  let regexPattern = "";
52
- let cursor = 0;
53
- const placeholderRegex = new RegExp(PARAM_REGEX.source, "g");
54
- let placeholderMatch;
55
- while ((placeholderMatch = placeholderRegex.exec(pattern)) !== null) {
56
- const [raw, _name, constraint] = placeholderMatch;
57
- const literal = pattern.slice(cursor, placeholderMatch.index);
58
- regexPattern += literal.replace(REGEX_ESCAPE, "\\$&");
59
- // Use non-greedy groups so adjacent params separated by literals
60
- // (e.g. "wp-{priority}-{name}.md") split as expected.
61
- // Allow inline constraints via {param:...}, for example {num:\\d+}.
62
- const capture = constraint?.trim() || "[^/]+?";
63
- regexPattern += `(${capture})`;
64
- cursor = placeholderMatch.index + raw.length;
102
+ for (const chunk of chunks) {
103
+ let sub = "";
104
+ for (const part of chunk.parts) {
105
+ if (part.kind === "literal") {
106
+ sub += part.value.replace(REGEX_ESCAPE, "\\$&");
107
+ }
108
+ else {
109
+ // Non-greedy groups so adjacent params separated by literals
110
+ // (e.g. "wp-{priority}-{name}.md") split as expected.
111
+ sub += `(${part.constraint?.trim() || "[^/]+?"})`;
112
+ }
113
+ }
114
+ regexPattern += chunk.optional ? `(?:${sub})?` : sub;
65
115
  }
66
- regexPattern += pattern.slice(cursor).replace(REGEX_ESCAPE, "\\$&");
67
116
  const matchRegex = new RegExp(`^${regexPattern}$`);
117
+ function toGlobs(constraints) {
118
+ const optionals = chunks.filter((c) => c.optional);
119
+ const globs = new Set();
120
+ // Enumerate include/exclude combinations of optional chunks
121
+ for (let mask = 0; mask < 1 << optionals.length; mask++) {
122
+ const included = new Set();
123
+ optionals.forEach((chunk, i) => {
124
+ if (mask & (1 << i))
125
+ included.add(chunk);
126
+ });
127
+ // Prune variants that omit a constrained param
128
+ const omitsConstrained = [...paramChunk.entries()].some(([name, chunk]) => chunk.optional &&
129
+ !included.has(chunk) &&
130
+ constraints?.[name] !== undefined &&
131
+ constraints?.[name] !== null);
132
+ if (omitsConstrained)
133
+ continue;
134
+ let glob = "";
135
+ for (const chunk of chunks) {
136
+ if (chunk.optional && !included.has(chunk))
137
+ continue;
138
+ for (const part of chunk.parts) {
139
+ if (part.kind === "literal") {
140
+ glob += part.value.replace(GLOB_ESCAPE, "\\$&");
141
+ }
142
+ else {
143
+ const value = constraints?.[part.name];
144
+ glob +=
145
+ value !== undefined && value !== null
146
+ ? String(value).replace(GLOB_ESCAPE, "\\$&")
147
+ : "*";
148
+ }
149
+ }
150
+ }
151
+ globs.add(glob);
152
+ }
153
+ return [...globs];
154
+ }
68
155
  return {
69
156
  pattern,
70
157
  paramNames,
158
+ toGlobs,
71
159
  toGlob(constraints) {
72
- let glob = pattern;
73
- // Replace each param with either its constrained value or a wildcard
74
- for (const placeholder of placeholders) {
75
- const value = constraints?.[placeholder.name];
76
- if (value !== undefined && value !== null) {
77
- // Use the constrained value
78
- glob = glob.replace(placeholder.raw, String(value));
79
- }
80
- else {
81
- // Use a wildcard - * matches anything except /
82
- glob = glob.replace(placeholder.raw, "*");
83
- }
160
+ const globs = toGlobs(constraints);
161
+ if (globs.length > 1) {
162
+ throw new Error(`Pattern has optional segments producing ${globs.length} glob variants; use toGlobs(): ${pattern}`);
84
163
  }
85
- return glob;
164
+ return globs[0];
86
165
  },
87
166
  match(path) {
88
167
  const result = matchRegex.exec(path);
@@ -90,18 +169,33 @@ export function compilePattern(pattern) {
90
169
  return null;
91
170
  const params = {};
92
171
  for (let i = 0; i < paramNames.length; i++) {
93
- params[paramNames[i]] = result[i + 1];
172
+ if (result[i + 1] !== undefined) {
173
+ params[paramNames[i]] = result[i + 1];
174
+ }
94
175
  }
95
176
  return params;
96
177
  },
97
178
  build(params) {
98
- let result = pattern;
99
- for (const placeholder of placeholders) {
100
- const value = params[placeholder.name];
101
- if (value === undefined) {
102
- throw new Error(`Missing required param: ${placeholder.name}`);
179
+ let result = "";
180
+ for (const chunk of chunks) {
181
+ if (chunk.optional) {
182
+ const chunkParams = chunk.parts.filter((p) => p.kind === "param");
183
+ if (!chunkParams.every((p) => p.kind === "param" && params[p.name] !== undefined)) {
184
+ continue;
185
+ }
186
+ }
187
+ for (const part of chunk.parts) {
188
+ if (part.kind === "literal") {
189
+ result += part.value;
190
+ }
191
+ else {
192
+ const value = params[part.name];
193
+ if (value === undefined) {
194
+ throw new Error(`Missing required param: ${part.name}`);
195
+ }
196
+ result += value;
197
+ }
103
198
  }
104
- result = result.replace(placeholder.raw, value);
105
199
  }
106
200
  return result;
107
201
  },
@@ -1 +1 @@
1
- {"version":3,"file":"path-pattern.js","sourceRoot":"","sources":["../src/path-pattern.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"path-pattern.js","sourceRoot":"","sources":["../src/path-pattern.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,22 +1,22 @@
1
1
  {
2
2
  "name": "@piqit/resolvers",
3
- "version": "0.0.8",
3
+ "version": "0.1.0",
4
4
  "type": "module",
5
5
  "license": "MIT",
6
6
  "types": "./dist/index.d.ts",
7
7
  "exports": {
8
8
  ".": {
9
- "bun": "./src/index.ts",
9
+ "bun": "./dist/index.js",
10
10
  "types": "./dist/index.d.ts",
11
11
  "default": "./dist/index.js"
12
12
  },
13
13
  "./edge": {
14
- "bun": "./src/edge.ts",
14
+ "bun": "./dist/edge.js",
15
15
  "types": "./dist/edge.d.ts",
16
16
  "default": "./dist/edge.js"
17
17
  },
18
18
  "./static": {
19
- "bun": "./src/static.ts",
19
+ "bun": "./dist/static.js",
20
20
  "types": "./dist/static.d.ts",
21
21
  "default": "./dist/static.js"
22
22
  }
@@ -25,7 +25,7 @@
25
25
  "dist"
26
26
  ],
27
27
  "dependencies": {
28
- "piqit": "0.0.8"
28
+ "piqit": "0.1.0"
29
29
  },
30
30
  "devDependencies": {
31
31
  "@types/bun": "latest",