@oomkapwn/enquire-mcp 3.11.0-rc.2 → 3.11.0-rc.21

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 (91) hide show
  1. package/CHANGELOG.md +309 -0
  2. package/README.ar.md +1 -1
  3. package/README.es.md +1 -1
  4. package/README.fr.md +5 -5
  5. package/README.hi.md +1 -1
  6. package/README.ja.md +4 -4
  7. package/README.md +5 -5
  8. package/README.pt.md +5 -5
  9. package/README.ru.md +6 -6
  10. package/README.zh.md +1 -1
  11. package/SECURITY.md +2 -2
  12. package/dist/bases.d.ts.map +1 -1
  13. package/dist/bases.js +39 -16
  14. package/dist/bases.js.map +1 -1
  15. package/dist/cli.js +1 -1
  16. package/dist/cli.js.map +1 -1
  17. package/dist/dql.d.ts.map +1 -1
  18. package/dist/dql.js +15 -6
  19. package/dist/dql.js.map +1 -1
  20. package/dist/embed-db.d.ts +4 -1
  21. package/dist/embed-db.d.ts.map +1 -1
  22. package/dist/embed-db.js +6 -2
  23. package/dist/embed-db.js.map +1 -1
  24. package/dist/embed-pipeline.d.ts.map +1 -1
  25. package/dist/embed-pipeline.js +6 -1
  26. package/dist/embed-pipeline.js.map +1 -1
  27. package/dist/embeddings.d.ts +6 -0
  28. package/dist/embeddings.d.ts.map +1 -1
  29. package/dist/embeddings.js +5 -2
  30. package/dist/embeddings.js.map +1 -1
  31. package/dist/feedback.d.ts.map +1 -1
  32. package/dist/feedback.js +21 -3
  33. package/dist/feedback.js.map +1 -1
  34. package/dist/frontmatter.d.ts.map +1 -1
  35. package/dist/frontmatter.js +41 -33
  36. package/dist/frontmatter.js.map +1 -1
  37. package/dist/fts5.d.ts +4 -1
  38. package/dist/fts5.d.ts.map +1 -1
  39. package/dist/fts5.js +18 -9
  40. package/dist/fts5.js.map +1 -1
  41. package/dist/hnsw.d.ts.map +1 -1
  42. package/dist/hnsw.js +7 -3
  43. package/dist/hnsw.js.map +1 -1
  44. package/dist/index.d.ts +1 -1
  45. package/dist/index.d.ts.map +1 -1
  46. package/dist/index.js +1 -1
  47. package/dist/index.js.map +1 -1
  48. package/dist/name-fold.d.ts +75 -0
  49. package/dist/name-fold.d.ts.map +1 -1
  50. package/dist/name-fold.js +94 -0
  51. package/dist/name-fold.js.map +1 -1
  52. package/dist/parser.d.ts +44 -1
  53. package/dist/parser.d.ts.map +1 -1
  54. package/dist/parser.js +113 -15
  55. package/dist/parser.js.map +1 -1
  56. package/dist/periodic.d.ts.map +1 -1
  57. package/dist/periodic.js +2 -1
  58. package/dist/periodic.js.map +1 -1
  59. package/dist/tool-registry.d.ts.map +1 -1
  60. package/dist/tool-registry.js +89 -13
  61. package/dist/tool-registry.js.map +1 -1
  62. package/dist/tools/meta.d.ts +4 -0
  63. package/dist/tools/meta.d.ts.map +1 -1
  64. package/dist/tools/meta.js +66 -21
  65. package/dist/tools/meta.js.map +1 -1
  66. package/dist/tools/read.d.ts +14 -0
  67. package/dist/tools/read.d.ts.map +1 -1
  68. package/dist/tools/read.js +56 -14
  69. package/dist/tools/read.js.map +1 -1
  70. package/dist/tools/search.d.ts +30 -0
  71. package/dist/tools/search.d.ts.map +1 -1
  72. package/dist/tools/search.js +86 -12
  73. package/dist/tools/search.js.map +1 -1
  74. package/dist/tools/write.d.ts +1 -1
  75. package/dist/tools/write.d.ts.map +1 -1
  76. package/dist/tools/write.js +102 -38
  77. package/dist/tools/write.js.map +1 -1
  78. package/dist/vault.d.ts.map +1 -1
  79. package/dist/vault.js +37 -4
  80. package/dist/vault.js.map +1 -1
  81. package/dist/watcher.d.ts +13 -0
  82. package/dist/watcher.d.ts.map +1 -1
  83. package/dist/watcher.js +13 -0
  84. package/dist/watcher.js.map +1 -1
  85. package/dist/wildcard-match.d.ts +28 -0
  86. package/dist/wildcard-match.d.ts.map +1 -1
  87. package/dist/wildcard-match.js +66 -0
  88. package/dist/wildcard-match.js.map +1 -1
  89. package/docs/COMPARISON.md +2 -2
  90. package/docs/api.md +1 -1
  91. package/package.json +10 -10
package/dist/name-fold.js CHANGED
@@ -32,4 +32,98 @@
32
32
  export function foldName(name) {
33
33
  return name.normalize("NFC").toLowerCase();
34
34
  }
35
+ /**
36
+ * NFC-fold + case-fold a TAG for comparison or tag-keyed Maps/Sets. Strips any
37
+ * leading `#`(s) first, then applies {@link foldName}. Tags are a user-authored
38
+ * Unicode identity surface (Obsidian permits Unicode letters in tags), so the
39
+ * SAME canonical-key discipline as note names applies: a `#café` tag stored NFD
40
+ * (macOS) must match an NFC `café` query and dedupe against an NFC frontmatter
41
+ * `tags: [café]`. v3.11.0-rc.9 — the NFC class's tag sibling (the rc.46 name
42
+ * sweep + its invariant covered note names, never the parallel tag surface;
43
+ * confirmed by an external re-audit as L-TAG-1, with ~13 unfolded tag sites).
44
+ *
45
+ * @param tag - a raw tag, with or without leading `#`
46
+ * @returns the `#`-stripped, NFC-normalized, lower-cased comparison key
47
+ */
48
+ export function foldTag(tag) {
49
+ return foldName(tag.replace(/^#+/, ""));
50
+ }
51
+ /**
52
+ * NFC + case fold for a user-authored frontmatter / query VALUE before a
53
+ * case-INSENSITIVE compare (DQL `looseEq` / `contains`, `obsidian_search`
54
+ * `filter_frontmatter`). Semantically identical to {@link foldName} but named for
55
+ * the value surface so intent — and the NFC-class invariant — is explicit, so an
56
+ * NFD-on-disk value matches an NFC query literal. v3.11.0-rc.9 centralizes the
57
+ * rc.8 DQL-local `nfcLower` here so every query surface shares ONE implementation.
58
+ *
59
+ * @param value - a user-authored frontmatter or query-literal string
60
+ * @returns the NFC-normalized, lower-cased value
61
+ */
62
+ export function nfcLower(value) {
63
+ return value.normalize("NFC").toLowerCase();
64
+ }
65
+ /**
66
+ * NFC-normalize a value WITHOUT case-folding, for a case-SENSITIVE compare
67
+ * (Obsidian Bases frontmatter `==` / `contains`, which mirror Bases' own
68
+ * case-sensitive semantics). Canonicalizes Unicode form only — `café`(NFC) ===
69
+ * `café`(NFD) — while still distinguishing `Café` from `café`. v3.11.0-rc.9.
70
+ *
71
+ * @param value - a user-authored frontmatter or query-literal string
72
+ * @returns the NFC-normalized value (original case preserved)
73
+ */
74
+ export function nfc(value) {
75
+ return value.normalize("NFC");
76
+ }
77
+ /**
78
+ * Case/NFC-insensitive frontmatter KEY lookup. Obsidian "properties" / Dataview
79
+ * treat field NAMES case-insensitively, but a raw `frontmatter[key]` / `key in
80
+ * frontmatter` is exact-string by JS semantics — so a filter key `Status` (or an
81
+ * NFC key vs an NFD-on-disk key) silently missed `status`. This folds BOTH sides
82
+ * via {@link nfcLower} at LOOKUP time — NEVER at parse time (folding keys in
83
+ * `parseFrontmatter` would collide a distinct-cased key and corrupt write
84
+ * round-trips). v3.11.0-rc.10 (H1, external audit — the KEY sibling of the rc.9
85
+ * VALUE fold).
86
+ *
87
+ * Precedence: an EXACT own-key wins (preserves byte-exact semantics when the key
88
+ * is present verbatim); otherwise the FIRST own key (insertion order) whose fold
89
+ * matches wins (deterministic on a `Status`+`status` collision).
90
+ *
91
+ * @param obj - a frontmatter object (own enumerable string keys)
92
+ * @param key - the user/agent-supplied filter key
93
+ * @returns `{ present, value }` — `present:false`, `value:undefined` if no own key folds to `key`.
94
+ */
95
+ export function lookupFoldedKey(obj, key) {
96
+ if (Object.hasOwn(obj, key))
97
+ return { present: true, value: obj[key] };
98
+ const want = nfcLower(key);
99
+ for (const k of Object.keys(obj)) {
100
+ if (nfcLower(k) === want)
101
+ return { present: true, value: obj[k] };
102
+ }
103
+ return { present: false, value: undefined };
104
+ }
105
+ /**
106
+ * Folded lookup across an ORDERED list of candidate frontmatter keys: returns the first
107
+ * candidate present with a non-nullish value (case/NFC-insensitive via {@link lookupFoldedKey}),
108
+ * else `undefined`. Preserves `a ?? b`-style precedence while folding the key — so a
109
+ * producer reading `fm.tags ?? fm.tag` (or `fm.title`) no longer goes blind to a case/NFC
110
+ * -variant property name (`Tags:`, `Title:`, an NFD-on-disk key).
111
+ *
112
+ * v3.11.0-rc.13 (rc.12-audit AUD-03 + the embed-title sibling) — closes the PRODUCER side
113
+ * of the rc.10/rc.12 H1 frontmatter-key-fold class: rc.10/rc.12 folded the *consumer*
114
+ * (query) reads, but the tag/title *producers* (parser/bases/meta/write/embed-pipeline)
115
+ * still read the key raw, so `Tags: [x]` was invisible to tag search / DQL / Bases.
116
+ *
117
+ * @param obj - a frontmatter object
118
+ * @param keys - candidate key names in precedence order (e.g. `["tags", "tag"]`)
119
+ * @returns the first present non-nullish folded value, or `undefined`
120
+ */
121
+ export function lookupFoldedAny(obj, keys) {
122
+ for (const k of keys) {
123
+ const hit = lookupFoldedKey(obj, k);
124
+ if (hit.present && hit.value != null)
125
+ return hit.value;
126
+ }
127
+ return undefined;
128
+ }
35
129
  //# sourceMappingURL=name-fold.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"name-fold.js","sourceRoot":"","sources":["../src/name-fold.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,MAAM,UAAU,QAAQ,CAAC,IAAY;IACnC,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;AAC7C,CAAC"}
1
+ {"version":3,"file":"name-fold.js","sourceRoot":"","sources":["../src/name-fold.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,MAAM,UAAU,QAAQ,CAAC,IAAY;IACnC,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;AAC7C,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,OAAO,CAAC,GAAW;IACjC,OAAO,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;AAC1C,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAa;IACpC,OAAO,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;AAC9C,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,GAAG,CAAC,KAAa;IAC/B,OAAO,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAChC,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,eAAe,CAAC,GAA4B,EAAE,GAAW;IACvE,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC;QAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;IACvE,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC3B,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACjC,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,IAAI;YAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IACpE,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;AAC9C,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,eAAe,CAAC,GAA4B,EAAE,IAAc;IAC1E,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;QACrB,MAAM,GAAG,GAAG,eAAe,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACpC,IAAI,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,KAAK,IAAI,IAAI;YAAE,OAAO,GAAG,CAAC,KAAK,CAAC;IACzD,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
package/dist/parser.d.ts CHANGED
@@ -68,9 +68,32 @@ export interface ParsedNote {
68
68
  * ```
69
69
  */
70
70
  export declare function parseNote(source: string): ParsedNote;
71
+ /**
72
+ * Linear, non-backtracking scan for `[[wikilink]]` (embed=false) / `![[embed]]`
73
+ * (embed=true) INNER captures, in source order. Byte-equivalent to the `m[1]`
74
+ * sequence of the former regexes `/(?<!!)\[\[([^\]\n]+?)\]\]/g` (wikilink) and
75
+ * `/!\[\[([^\]\n]+?)\]\]/g` (embed) — proven by `tests/wikilink-scan.test.ts`'s
76
+ * differential against inlined copies of those regexes over a broad corpus.
77
+ *
78
+ * v3.11.0-rc.17 (rc.16 re-audit, HIGH ReDoS) — REPLACES those two regexes. The
79
+ * lazy `[^\]\n]+?` searching for the 2-char `]]` delimiter is O(n²) on an
80
+ * unclosed `[[`-run: each `[[` start lazily extends to EOF hunting a `]]` that
81
+ * never comes (measured 195 KB → 10.7 s; reachable via the always-on
82
+ * `obsidian_read_note` → `parseNote` over adversarial note CONTENT = a
83
+ * bearer-reachable serve-http event-loop hang — the rc.39 worker sink-bound and
84
+ * the rc.14/rc.71 linear matchers never covered this wikilink/embed sink). This
85
+ * scan visits each `]` / `[[` / `\n` at most once → O(n) for ANY input. Inner
86
+ * excludes `]` and `\n` (a wikilink never crosses a line); the close is the first
87
+ * `]` after `[[`, which must be doubled (`]]`).
88
+ *
89
+ * @param text - Markdown source (already stripped of code spans, ideally).
90
+ * @param embed - false = `[[wikilink]]` (preceding char not `!`); true = `![[embed]]`.
91
+ * @returns Inner capture strings in source order.
92
+ */
93
+ export declare function scanWikilinkInners(text: string, embed?: boolean): string[];
71
94
  /**
72
95
  * Extract all `[[wikilinks]]` from a markdown string. Excludes `![[embeds]]`
73
- * via a negative lookbehind on `!`. Caller is responsible for stripping
96
+ * via the preceding-`!` check. Caller is responsible for stripping
74
97
  * code fences / inline code first if recall over example markdown matters
75
98
  * (use the same pipeline as {@link parseNote}).
76
99
  *
@@ -86,6 +109,26 @@ export declare function extractWikilinks(text: string): Wikilink[];
86
109
  * @returns Embeds in source order. Empty array if none found.
87
110
  */
88
111
  export declare function extractEmbeds(text: string): Embed[];
112
+ /**
113
+ * Inline `#tag` extraction regex (shared — imported by `tools/meta.ts` so the
114
+ * two extractors cannot drift; was a byte-identical copy before v3.11.0-rc.10).
115
+ * Tag = a leading Unicode LETTER then letters/digits/`_`/`/`/`-`. Preceded by
116
+ * whitespace/bracket/BOL so `#1` in a heading is not a tag. The `u` flag is
117
+ * required for `\p{L}`. `matchAll` clones the regex per call, so sharing this
118
+ * `/g` instance across modules is lastIndex-safe.
119
+ *
120
+ * v3.11.0-rc.10 (M1, external audit) — the character class deliberately does NOT
121
+ * include `\p{M}` (combining marks); instead every caller NFC-normalizes the text
122
+ * BEFORE matching (see {@link extractInlineTags}). On macOS APFS an inline `#café`
123
+ * is stored DECOMPOSED (NFD: `e` + U+0301), and U+0301 is a `\p{M}` mark that the
124
+ * class excludes — so a raw match would TRUNCATE the capture to `cafe` and the
125
+ * accent would be lost BEFORE any downstream `nfc()`/`foldTag()` could recover it
126
+ * (the rc.9 producer-`nfc()` ran on already-corrupted input). Normalizing the text
127
+ * first composes the mark back into the base letter (`é` = `\p{L}`), so the capture
128
+ * is complete and canonical. (Normalize-before-match recovers ANY combining mark,
129
+ * not just the ones we could enumerate in a character class.)
130
+ */
131
+ export declare const INLINE_TAG_RE: RegExp;
89
132
  /**
90
133
  * Extract `#hashtag` style inline tags from markdown body text. Tags must
91
134
  * be preceded by whitespace, bracket, or BOL — `#1` inside a markdown
@@ -1 +1 @@
1
- {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AACH,MAAM,WAAW,QAAQ;IACvB;wEACoE;IACpE,GAAG,EAAE,MAAM,CAAC;IACZ;+DAC2D;IAC3D,MAAM,EAAE,MAAM,CAAC;IACf,mDAAmD;IACnD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oDAAoD;IACpD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kDAAkD;IAClD,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;wDACwD;AACxD,MAAM,MAAM,KAAK,GAAG,QAAQ,CAAC;AAE7B;;;;;;;;GAQG;AACH,MAAM,WAAW,UAAU;IACzB,gFAAgF;IAChF,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,+DAA+D;IAC/D,IAAI,EAAE,MAAM,CAAC;IACb;;;;oCAIgC;IAChC,aAAa,EAAE,MAAM,CAAC;IACtB,0EAA0E;IAC1E,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,wEAAwE;IACxE,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB;8EAC0E;IAC1E,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CA8BpD;AAKD;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,EAAE,CAEzD;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,EAAE,CAEnD;AAuCD;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAMxD;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,EAAE,CAa5E"}
1
+ {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"AAGA;;;;;;;GAOG;AACH,MAAM,WAAW,QAAQ;IACvB;wEACoE;IACpE,GAAG,EAAE,MAAM,CAAC;IACZ;+DAC2D;IAC3D,MAAM,EAAE,MAAM,CAAC;IACf,mDAAmD;IACnD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oDAAoD;IACpD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kDAAkD;IAClD,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;wDACwD;AACxD,MAAM,MAAM,KAAK,GAAG,QAAQ,CAAC;AAE7B;;;;;;;;GAQG;AACH,MAAM,WAAW,UAAU;IACzB,gFAAgF;IAChF,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,+DAA+D;IAC/D,IAAI,EAAE,MAAM,CAAC;IACb;;;;oCAIgC;IAChC,aAAa,EAAE,MAAM,CAAC;IACtB,0EAA0E;IAC1E,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,wEAAwE;IACxE,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB;8EAC0E;IAC1E,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CA8BpD;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,UAAQ,GAAG,MAAM,EAAE,CA6CxE;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,EAAE,CAEzD;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,EAAE,CAEnD;AAmCD;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,aAAa,QAA+C,CAAC;AAE1E;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAWxD;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,EAAE,CAiB5E"}
package/dist/parser.js CHANGED
@@ -1,4 +1,5 @@
1
1
  import { parseFrontmatter } from "./frontmatter.js";
2
+ import { lookupFoldedAny, nfc } from "./name-fold.js";
2
3
  /**
3
4
  * Parse an Obsidian markdown source string. Splits frontmatter (via
4
5
  * `parseFrontmatter`) from body, then extracts wikilinks, embeds, and tags
@@ -47,11 +48,81 @@ export function parseNote(source) {
47
48
  tags: collectTags(frontmatter, sanitized)
48
49
  };
49
50
  }
50
- const WIKILINK_RE = /(?<!!)\[\[([^\]\n]+?)\]\]/g;
51
- const EMBED_RE = /!\[\[([^\]\n]+?)\]\]/g;
51
+ /**
52
+ * Linear, non-backtracking scan for `[[wikilink]]` (embed=false) / `![[embed]]`
53
+ * (embed=true) INNER captures, in source order. Byte-equivalent to the `m[1]`
54
+ * sequence of the former regexes `/(?<!!)\[\[([^\]\n]+?)\]\]/g` (wikilink) and
55
+ * `/!\[\[([^\]\n]+?)\]\]/g` (embed) — proven by `tests/wikilink-scan.test.ts`'s
56
+ * differential against inlined copies of those regexes over a broad corpus.
57
+ *
58
+ * v3.11.0-rc.17 (rc.16 re-audit, HIGH ReDoS) — REPLACES those two regexes. The
59
+ * lazy `[^\]\n]+?` searching for the 2-char `]]` delimiter is O(n²) on an
60
+ * unclosed `[[`-run: each `[[` start lazily extends to EOF hunting a `]]` that
61
+ * never comes (measured 195 KB → 10.7 s; reachable via the always-on
62
+ * `obsidian_read_note` → `parseNote` over adversarial note CONTENT = a
63
+ * bearer-reachable serve-http event-loop hang — the rc.39 worker sink-bound and
64
+ * the rc.14/rc.71 linear matchers never covered this wikilink/embed sink). This
65
+ * scan visits each `]` / `[[` / `\n` at most once → O(n) for ANY input. Inner
66
+ * excludes `]` and `\n` (a wikilink never crosses a line); the close is the first
67
+ * `]` after `[[`, which must be doubled (`]]`).
68
+ *
69
+ * @param text - Markdown source (already stripped of code spans, ideally).
70
+ * @param embed - false = `[[wikilink]]` (preceding char not `!`); true = `![[embed]]`.
71
+ * @returns Inner capture strings in source order.
72
+ */
73
+ export function scanWikilinkInners(text, embed = false) {
74
+ const out = [];
75
+ let from = 0;
76
+ for (;;) {
77
+ const open = text.indexOf("[[", from);
78
+ if (open < 0)
79
+ break;
80
+ const innerStart = open + 2;
81
+ const bracket = text.indexOf("]", innerStart);
82
+ if (bracket < 0)
83
+ break; // no closing ']' anywhere → no further match is possible
84
+ // A `\n` before the first `]` means the inner would cross a newline (inner is
85
+ // `[^\]\n]`), so no `[[` start ≤ that `\n` can match → skip past it.
86
+ // v3.11.0-rc.18 (rc.17 external audit, HIGH ReDoS regression) — scan ONLY the
87
+ // bounded inner window [innerStart, bracket). The rc.17 form used the UNBOUNDED
88
+ // `text.indexOf("\n", innerStart)`: on a body with no `\n` between `[[` and EOF
89
+ // (a dense single-line `[[a]]`-run / MOC-index note) it rescanned to EOF every
90
+ // iteration → O(n²) (400k links = 8.2s; ~50s at the 5 MB cap, bearer-reachable
91
+ // via the always-on obsidian_read_note → parseNote). This bounded charCodeAt
92
+ // scan visits each inner char at most once → O(n) overall, and is
93
+ // byte-equivalent (it finds the same first `\n`-before-`]`, if any).
94
+ let nl = -1;
95
+ for (let k = innerStart; k < bracket; k++) {
96
+ if (text.charCodeAt(k) === 10 /* '\n' */) {
97
+ nl = k;
98
+ break;
99
+ }
100
+ }
101
+ if (nl >= 0) {
102
+ from = nl + 1;
103
+ continue;
104
+ }
105
+ if (bracket === innerStart) {
106
+ from = open + 1; // empty inner (`[[]]`) — the inner needs ≥1 char; try next start
107
+ continue;
108
+ }
109
+ if (text.charCodeAt(bracket + 1) === 93 /* ']' */) {
110
+ const isEmbed = open > 0 && text.charCodeAt(open - 1) === 33; /* '!' */
111
+ if (isEmbed === embed)
112
+ out.push(text.slice(innerStart, bracket));
113
+ from = bracket + 2; // consume past `]]`
114
+ }
115
+ else {
116
+ // lone ']' (not doubled) — inner can't cross it and the close isn't `]]`;
117
+ // no `[[` start ≤ bracket can match → skip past this ']'.
118
+ from = bracket + 1;
119
+ }
120
+ }
121
+ return out;
122
+ }
52
123
  /**
53
124
  * Extract all `[[wikilinks]]` from a markdown string. Excludes `![[embeds]]`
54
- * via a negative lookbehind on `!`. Caller is responsible for stripping
125
+ * via the preceding-`!` check. Caller is responsible for stripping
55
126
  * code fences / inline code first if recall over example markdown matters
56
127
  * (use the same pipeline as {@link parseNote}).
57
128
  *
@@ -59,7 +130,7 @@ const EMBED_RE = /!\[\[([^\]\n]+?)\]\]/g;
59
130
  * @returns Wikilinks in source order. Empty array if none found.
60
131
  */
61
132
  export function extractWikilinks(text) {
62
- return matchLinks(text, WIKILINK_RE);
133
+ return matchLinks(text, false);
63
134
  }
64
135
  /**
65
136
  * Extract all `![[embeds]]` from a markdown string. Same payload syntax as
@@ -69,14 +140,11 @@ export function extractWikilinks(text) {
69
140
  * @returns Embeds in source order. Empty array if none found.
70
141
  */
71
142
  export function extractEmbeds(text) {
72
- return matchLinks(text, EMBED_RE);
143
+ return matchLinks(text, true);
73
144
  }
74
- function matchLinks(text, re) {
145
+ function matchLinks(text, embed) {
75
146
  const out = [];
76
- for (const m of text.matchAll(re)) {
77
- const raw = m[1];
78
- if (raw === undefined)
79
- continue;
147
+ for (const raw of scanWikilinkInners(text, embed)) {
80
148
  let alias;
81
149
  let rest = raw;
82
150
  const pipe = rest.indexOf("|");
@@ -106,7 +174,26 @@ function matchLinks(text, re) {
106
174
  }
107
175
  return out;
108
176
  }
109
- const TAG_RE = /(?:^|[\s([{>])#([\p{L}][\p{L}\p{N}_/-]*)/gu;
177
+ /**
178
+ * Inline `#tag` extraction regex (shared — imported by `tools/meta.ts` so the
179
+ * two extractors cannot drift; was a byte-identical copy before v3.11.0-rc.10).
180
+ * Tag = a leading Unicode LETTER then letters/digits/`_`/`/`/`-`. Preceded by
181
+ * whitespace/bracket/BOL so `#1` in a heading is not a tag. The `u` flag is
182
+ * required for `\p{L}`. `matchAll` clones the regex per call, so sharing this
183
+ * `/g` instance across modules is lastIndex-safe.
184
+ *
185
+ * v3.11.0-rc.10 (M1, external audit) — the character class deliberately does NOT
186
+ * include `\p{M}` (combining marks); instead every caller NFC-normalizes the text
187
+ * BEFORE matching (see {@link extractInlineTags}). On macOS APFS an inline `#café`
188
+ * is stored DECOMPOSED (NFD: `e` + U+0301), and U+0301 is a `\p{M}` mark that the
189
+ * class excludes — so a raw match would TRUNCATE the capture to `cafe` and the
190
+ * accent would be lost BEFORE any downstream `nfc()`/`foldTag()` could recover it
191
+ * (the rc.9 producer-`nfc()` ran on already-corrupted input). Normalizing the text
192
+ * first composes the mark back into the base letter (`é` = `\p{L}`), so the capture
193
+ * is complete and canonical. (Normalize-before-match recovers ANY combining mark,
194
+ * not just the ones we could enumerate in a character class.)
195
+ */
196
+ export const INLINE_TAG_RE = /(?:^|[\s([{>])#([\p{L}][\p{L}\p{N}_/-]*)/gu;
110
197
  /**
111
198
  * Extract `#hashtag` style inline tags from markdown body text. Tags must
112
199
  * be preceded by whitespace, bracket, or BOL — `#1` inside a markdown
@@ -117,9 +204,14 @@ const TAG_RE = /(?:^|[\s([{>])#([\p{L}][\p{L}\p{N}_/-]*)/gu;
117
204
  */
118
205
  export function extractInlineTags(text) {
119
206
  const found = new Set();
120
- for (const m of text.matchAll(TAG_RE)) {
207
+ // v3.11.0-rc.10 (M1) NFC-normalize the BODY before matching so an NFD inline
208
+ // tag (`#café` = `cafe`+U+0301 on macOS APFS) composes to `café` and the regex
209
+ // captures the full accented token instead of truncating at the combining mark.
210
+ for (const m of text.normalize("NFC").matchAll(INLINE_TAG_RE)) {
211
+ // nfc() is now belt-and-suspenders (the input is already NFC); kept so a future
212
+ // caller passing un-normalized text still stores a canonical tag.
121
213
  if (m[1] !== undefined)
122
- found.add(m[1]);
214
+ found.add(nfc(m[1]));
123
215
  }
124
216
  return [...found];
125
217
  }
@@ -132,7 +224,11 @@ export function extractInlineTags(text) {
132
224
  * @returns Normalized tag list. Empty array when no `tags` / `tag` key.
133
225
  */
134
226
  export function extractFrontmatterTags(fm) {
135
- const raw = fm.tags ?? fm.tag;
227
+ // v3.11.0-rc.13 (rc.12-audit AUD-03) — fold the `tags`/`tag` KEY (case/NFC) so a
228
+ // `Tags:`/`Tag:` (or NFD-on-disk) frontmatter property is not invisible to tag
229
+ // retrieval (list_tags / list_notes(tag) / DQL `FROM #tag` / Bases / paper_audit).
230
+ // The PRODUCER sibling of the rc.10/rc.12 H1 frontmatter-key-fold class.
231
+ const raw = lookupFoldedAny(fm, ["tags", "tag"]);
136
232
  if (!raw)
137
233
  return [];
138
234
  if (Array.isArray(raw)) {
@@ -147,7 +243,9 @@ export function extractFrontmatterTags(fm) {
147
243
  return [];
148
244
  }
149
245
  function normalizeTag(t) {
150
- return t.replace(/^#+/, "");
246
+ // v3.11.0-rc.9 (L-TAG-1) — NFC-normalize the stored tag (display case kept) so
247
+ // frontmatter + inline forms of one accented tag canonicalize to a single key.
248
+ return nfc(t.replace(/^#+/, ""));
151
249
  }
152
250
  function collectTags(fm, body) {
153
251
  const out = new Set();
@@ -1 +1 @@
1
- {"version":3,"file":"parser.js","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parser.js","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"periodic.d.ts","sourceRoot":"","sources":["../src/periodic.ts"],"names":[],"mappings":"AAeA,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC;AAEnF,MAAM,WAAW,YAAY;IAC3B,kEAAkE;IAClE,MAAM,EAAE,MAAM,CAAC;IACf,uEAAuE;IACvE,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,SAAS,CAAC,EAAE,YAAY,CAAC;IACzB,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB;AAUD;;;;;;;;;;;mEAWmE;AACnE,wBAAsB,kBAAkB,CACtC,SAAS,EAAE,MAAM,EACjB,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,GACxC,OAAO,CAAC,cAAc,CAAC,CAgDzB;AASD;;;gEAGgE;AAChE,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,cAAc,EACtB,GAAG,GAAE,IAAiB,GACrB;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAYhD;AAED;;gDAEgD;AAChD,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,GAAG,MAAM,CAmC/D"}
1
+ {"version":3,"file":"periodic.d.ts","sourceRoot":"","sources":["../src/periodic.ts"],"names":[],"mappings":"AAgBA,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC;AAEnF,MAAM,WAAW,YAAY;IAC3B,kEAAkE;IAClE,MAAM,EAAE,MAAM,CAAC;IACf,uEAAuE;IACvE,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,SAAS,CAAC,EAAE,YAAY,CAAC;IACzB,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB;AAUD;;;;;;;;;;;mEAWmE;AACnE,wBAAsB,kBAAkB,CACtC,SAAS,EAAE,MAAM,EACjB,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,GACxC,OAAO,CAAC,cAAc,CAAC,CAgDzB;AASD;;;gEAGgE;AAChE,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,cAAc,EACtB,GAAG,GAAE,IAAiB,GACrB;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAYhD;AAED;;gDAEgD;AAChD,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,GAAG,MAAM,CAmC/D"}
package/dist/periodic.js CHANGED
@@ -11,6 +11,7 @@
11
11
  // Otherwise we fall back to the defaults that v0.11 hard-coded.
12
12
  import { promises as fs } from "node:fs";
13
13
  import * as path from "node:path";
14
+ import { stripSurroundingSlashes } from "./wildcard-match.js";
14
15
  const DEFAULTS = {
15
16
  daily: { format: "YYYY-MM-DD", folder: "" },
16
17
  weekly: { format: "YYYY-[W]ww", folder: "" },
@@ -83,7 +84,7 @@ export async function loadPeriodicConfig(vaultRoot, isExcluded) {
83
84
  function normaliseFolder(folder) {
84
85
  // Strip leading/trailing slashes, normalize backslashes, then re-add a
85
86
  // single trailing slash if non-empty so callers can concatenate cleanly.
86
- const stripped = folder.replace(/\\/g, "/").replace(/^\/+|\/+$/g, "");
87
+ const stripped = stripSurroundingSlashes(folder.replace(/\\/g, "/"));
87
88
  return stripped ? `${stripped}/` : "";
88
89
  }
89
90
  /** Resolve a periodic alias ("today" / "daily" / "weekly" / "monthly" /
@@ -1 +1 @@
1
- {"version":3,"file":"periodic.js","sourceRoot":"","sources":["../src/periodic.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"periodic.js","sourceRoot":"","sources":["../src/periodic.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"tool-registry.d.ts","sourceRoot":"","sources":["../src/tool-registry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,SAAS,EAAoB,MAAM,yCAAyC,CAAC;AAG3F,OAAO,EAAoB,KAAK,QAAQ,EAAE,MAAM,WAAW,CAAC;AAE5D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AA2C9C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAExC,+EAA+E;AAC/E,wBAAgB,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAIrD;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI,CA8DrF;AAED,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,SAAS,EACjB,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,GAAG,IAAI,EACzB,qBAAqB,EAAE,OAAO;AAC9B;;;;GAIG;AACH,cAAc,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAW;AAC/D;;;;GAIG;AACH,WAAW,GAAE,UAAU,CAAC,aAAa,CAAQ;AAC7C;;;;;GAKG;AACH,aAAa,GAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG,IAAW;AAClE;;;;;GAKG;AACH,eAAe,GAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,eAAe,EAAE,aAAa,CAAA;CAAE,GAAG,IAAW,GAC9F,IAAI,CA+5BN;AAED;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,eAAe,EAAE,aAAa,GAAG,IAAI,CA6B1G;AAsBD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI,CA2JxE;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI,CAmE1F;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI,CAsDvE;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAMlE;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,KAAK,GAAG,MAAM,GAAG,SAAS,CASzF;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAI/F"}
1
+ {"version":3,"file":"tool-registry.d.ts","sourceRoot":"","sources":["../src/tool-registry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,SAAS,EAAoB,MAAM,yCAAyC,CAAC;AAG3F,OAAO,EAAoB,KAAK,QAAQ,EAAE,MAAM,WAAW,CAAC;AAE5D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AA2C9C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAiCxC,+EAA+E;AAC/E,wBAAgB,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAIrD;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI,CAsErF;AAED,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,SAAS,EACjB,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,GAAG,IAAI,EACzB,qBAAqB,EAAE,OAAO;AAC9B;;;;GAIG;AACH,cAAc,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAW;AAC/D;;;;GAIG;AACH,WAAW,GAAE,UAAU,CAAC,aAAa,CAAQ;AAC7C;;;;;GAKG;AACH,aAAa,GAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG,IAAW;AAClE;;;;;GAKG;AACH,eAAe,GAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,eAAe,EAAE,aAAa,CAAA;CAAE,GAAG,IAAW,GAC9F,IAAI,CAk8BN;AAED;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,eAAe,EAAE,aAAa,GAAG,IAAI,CA6B1G;AAsBD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI,CA8JxE;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI,CAmE1F;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI,CAsDvE;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAMlE;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,KAAK,GAAG,MAAM,GAAG,SAAS,CASzF;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAI/F"}