@xsynaptic/rehype-wrap-cjk 3.0.0 → 3.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.mts CHANGED
@@ -1,13 +1,12 @@
1
1
  import { Root } from "hast";
2
2
  import { Plugin } from "unified";
3
-
4
3
  //#region src/index.d.ts
5
4
  interface RehypeWrapCjkOptions {
6
- element?: string;
7
5
  attribute?: string;
8
- value?: string;
6
+ element?: string;
9
7
  regex?: RegExp;
10
8
  skipTags?: Array<string>;
9
+ value?: string;
11
10
  }
12
11
  /**
13
12
  * Script-based ranges using Unicode Script Extensions property
@@ -23,10 +22,10 @@ declare const cjkScriptRange: string;
23
22
  */
24
23
  declare const fullwidthAsciiRange: string;
25
24
  declare const cjkRegexPresets: {
26
- zh: RegExp;
25
+ cjk: RegExp;
27
26
  ja: RegExp;
28
27
  ko: RegExp;
29
- cjk: RegExp;
28
+ zh: RegExp;
30
29
  };
31
30
  declare const rehypeWrapCjk: Plugin<[RehypeWrapCjkOptions?], Root>;
32
31
  //#endregion
package/dist/index.mjs CHANGED
@@ -12,9 +12,7 @@ const defaultSkipTags = [
12
12
  function isAncestorWrapped(ancestor, attribute, value) {
13
13
  if (attribute === "class" || attribute === "className") {
14
14
  const classes = ancestor.properties.className;
15
- if (Array.isArray(classes)) return classes.includes(value);
16
- if (typeof classes === "string") return classes.split(/\s+/).includes(value);
17
- return false;
15
+ return Array.isArray(classes) && classes.includes(value);
18
16
  }
19
17
  return ancestor.properties[attribute] === value;
20
18
  }
@@ -32,20 +30,26 @@ const cjkScriptRange = String.raw`\p{scx=Han}\p{scx=Hiragana}\p{scx=Katakana}\p{
32
30
  */
33
31
  const fullwidthAsciiRange = String.raw`\uFF01-\uFF5E`;
34
32
  const cjkRegexPresets = {
35
- zh: new RegExp(`[${zhScriptRange}${fullwidthAsciiRange}]+`, "gu"),
33
+ cjk: new RegExp(`[${cjkScriptRange}${fullwidthAsciiRange}]+`, "gu"),
36
34
  ja: new RegExp(`[${jaScriptRange}${fullwidthAsciiRange}]+`, "gu"),
37
35
  ko: new RegExp(`[${koScriptRange}${fullwidthAsciiRange}]+`, "gu"),
38
- cjk: new RegExp(`[${cjkScriptRange}${fullwidthAsciiRange}]+`, "gu")
36
+ zh: new RegExp(`[${zhScriptRange}${fullwidthAsciiRange}]+`, "gu")
39
37
  };
38
+ function presetFor(value) {
39
+ if (value === "cjk") return cjkRegexPresets.cjk;
40
+ if (value === "ja") return cjkRegexPresets.ja;
41
+ if (value === "ko") return cjkRegexPresets.ko;
42
+ if (value === "zh") return cjkRegexPresets.zh;
43
+ }
40
44
  const rehypeWrapCjk = (options) => {
41
45
  const settings = {
42
- element: options?.element ?? "span",
43
46
  attribute: options?.attribute ?? "class",
44
- value: options?.value ?? "cjk",
47
+ element: options?.element ?? "span",
45
48
  regex: options?.regex,
46
- skipTags: options?.skipTags ?? defaultSkipTags
49
+ skipTags: options?.skipTags ?? defaultSkipTags,
50
+ value: options?.value ?? "cjk"
47
51
  };
48
- const baseRegex = settings.regex ?? (settings.value in cjkRegexPresets ? cjkRegexPresets[settings.value] : cjkRegexPresets.cjk);
52
+ const baseRegex = settings.regex ?? presetFor(settings.value) ?? cjkRegexPresets.cjk;
49
53
  const flags = baseRegex.flags.includes("g") ? baseRegex.flags : baseRegex.flags + "g";
50
54
  const regex = new RegExp(baseRegex.source, flags);
51
55
  function transformer(tree) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":[],"sources":["../src/index.ts"],"sourcesContent":["import type { Element, Root, Text } from 'hast';\nimport type { Plugin, Transformer } from 'unified';\n\nimport { h } from 'hastscript';\nimport { visitParents } from 'unist-util-visit-parents';\n\nexport interface RehypeWrapCjkOptions {\n\telement?: string;\n\tattribute?: string;\n\tvalue?: string;\n\tregex?: RegExp;\n\tskipTags?: Array<string>;\n}\n\nconst defaultSkipTags = ['code', 'pre', 'kbd', 'samp', 'script', 'style'];\n\nfunction isAncestorWrapped(ancestor: Element, attribute: string, value: string): boolean {\n\tif (attribute === 'class' || attribute === 'className') {\n\t\tconst classes = ancestor.properties.className;\n\n\t\tif (Array.isArray(classes)) return classes.includes(value);\n\n\t\tif (typeof classes === 'string') return classes.split(/\\s+/).includes(value);\n\n\t\treturn false;\n\t}\n\treturn ancestor.properties[attribute] === value;\n}\n\n/**\n * Script-based ranges using Unicode Script Extensions property\n * Authoritative and auto-updates with the JS engine's Unicode version\n */\nexport const zhScriptRange = String.raw`\\p{scx=Han}\\p{scx=Bopomofo}`;\nexport const jaScriptRange = String.raw`\\p{scx=Hiragana}\\p{scx=Katakana}\\p{scx=Han}`;\nexport const koScriptRange = String.raw`\\p{scx=Hangul}\\p{scx=Han}`;\nexport const cjkScriptRange = String.raw`\\p{scx=Han}\\p{scx=Hiragana}\\p{scx=Katakana}\\p{scx=Hangul}\\p{scx=Bopomofo}`;\n\n/**\n * Full-width ASCII variants (FF01-FF5E): digits,letters, punctuation\n * Not covered by script extensions but sometimes used in CJK contexts\n */\nexport const fullwidthAsciiRange = String.raw`\\uFF01-\\uFF5E`;\n\nexport const cjkRegexPresets = {\n\tzh: new RegExp(`[${zhScriptRange}${fullwidthAsciiRange}]+`, 'gu'),\n\tja: new RegExp(`[${jaScriptRange}${fullwidthAsciiRange}]+`, 'gu'),\n\tko: new RegExp(`[${koScriptRange}${fullwidthAsciiRange}]+`, 'gu'),\n\tcjk: new RegExp(`[${cjkScriptRange}${fullwidthAsciiRange}]+`, 'gu'),\n};\n\nexport const rehypeWrapCjk: Plugin<[RehypeWrapCjkOptions?], Root> = (options) => {\n\tconst settings = {\n\t\telement: options?.element ?? 'span',\n\t\tattribute: options?.attribute ?? 'class',\n\t\tvalue: options?.value ?? 'cjk',\n\t\tregex: options?.regex,\n\t\tskipTags: options?.skipTags ?? defaultSkipTags,\n\t};\n\n\tconst baseRegex =\n\t\tsettings.regex ??\n\t\t(settings.value in cjkRegexPresets\n\t\t\t? cjkRegexPresets[settings.value as keyof typeof cjkRegexPresets]\n\t\t\t: cjkRegexPresets.cjk);\n\n\t// always clone so a caller-supplied global regex never carries its lastIndex into matchAll\n\tconst flags = baseRegex.flags.includes('g') ? baseRegex.flags : baseRegex.flags + 'g';\n\tconst regex = new RegExp(baseRegex.source, flags);\n\n\tfunction transformer(tree: Root) {\n\t\tvisitParents(tree, 'text', function visitor(node, ancestors) {\n\t\t\tconst parent = ancestors.at(-1);\n\t\t\tif (!parent || !('children' in parent) || typeof node.value !== 'string') return;\n\n\t\t\t// Skip text inside excluded tags (code, pre, script, etc.)\n\t\t\tif (\n\t\t\t\tancestors.some(\n\t\t\t\t\t(ancestor) => ancestor.type === 'element' && settings.skipTags.includes(ancestor.tagName),\n\t\t\t\t)\n\t\t\t)\n\t\t\t\treturn;\n\n\t\t\t// Skip if any ancestor is already wrapped\n\t\t\tif (\n\t\t\t\tancestors.some(\n\t\t\t\t\t(ancestor) =>\n\t\t\t\t\t\tancestor.type === 'element' &&\n\t\t\t\t\t\tisAncestorWrapped(ancestor, settings.attribute, settings.value),\n\t\t\t\t)\n\t\t\t)\n\t\t\t\treturn;\n\n\t\t\tconst index = parent.children.indexOf(node);\n\t\t\tif (index === -1) return;\n\n\t\t\tconst parts: Array<Element | Text> = [];\n\t\t\tlet lastIndex = 0;\n\n\t\t\tfor (const match of node.value.matchAll(regex)) {\n\t\t\t\tconst matchIndex = match.index;\n\n\t\t\t\tif (matchIndex > lastIndex) {\n\t\t\t\t\tparts.push({\n\t\t\t\t\t\ttype: 'text',\n\t\t\t\t\t\tvalue: node.value.slice(lastIndex, matchIndex),\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tparts.push(h(settings.element, { [settings.attribute]: settings.value }, [match[0]]));\n\t\t\t\tlastIndex = matchIndex + match[0].length;\n\t\t\t}\n\n\t\t\tif (lastIndex < node.value.length) {\n\t\t\t\tparts.push({ type: 'text', value: node.value.slice(lastIndex) });\n\t\t\t}\n\n\t\t\tparent.children.splice(index, 1, ...parts);\n\t\t});\n\n\t\treturn tree;\n\t}\n\n\treturn transformer satisfies Transformer<Root>;\n};\n"],"mappings":";;;AAcA,MAAM,kBAAkB;CAAC;CAAQ;CAAO;CAAO;CAAQ;CAAU;AAAO;AAExE,SAAS,kBAAkB,UAAmB,WAAmB,OAAwB;CACxF,IAAI,cAAc,WAAW,cAAc,aAAa;EACvD,MAAM,UAAU,SAAS,WAAW;EAEpC,IAAI,MAAM,QAAQ,OAAO,GAAG,OAAO,QAAQ,SAAS,KAAK;EAEzD,IAAI,OAAO,YAAY,UAAU,OAAO,QAAQ,MAAM,KAAK,CAAC,CAAC,SAAS,KAAK;EAE3E,OAAO;CACR;CACA,OAAO,SAAS,WAAW,eAAe;AAC3C;;;;;AAMA,MAAa,gBAAgB,OAAO,GAAG;AACvC,MAAa,gBAAgB,OAAO,GAAG;AACvC,MAAa,gBAAgB,OAAO,GAAG;AACvC,MAAa,iBAAiB,OAAO,GAAG;;;;;AAMxC,MAAa,sBAAsB,OAAO,GAAG;AAE7C,MAAa,kBAAkB;CAC9B,IAAI,IAAI,OAAO,IAAI,gBAAgB,oBAAoB,KAAK,IAAI;CAChE,IAAI,IAAI,OAAO,IAAI,gBAAgB,oBAAoB,KAAK,IAAI;CAChE,IAAI,IAAI,OAAO,IAAI,gBAAgB,oBAAoB,KAAK,IAAI;CAChE,KAAK,IAAI,OAAO,IAAI,iBAAiB,oBAAoB,KAAK,IAAI;AACnE;AAEA,MAAa,iBAAwD,YAAY;CAChF,MAAM,WAAW;EAChB,SAAS,SAAS,WAAW;EAC7B,WAAW,SAAS,aAAa;EACjC,OAAO,SAAS,SAAS;EACzB,OAAO,SAAS;EAChB,UAAU,SAAS,YAAY;CAChC;CAEA,MAAM,YACL,SAAS,UACR,SAAS,SAAS,kBAChB,gBAAgB,SAAS,SACzB,gBAAgB;CAGpB,MAAM,QAAQ,UAAU,MAAM,SAAS,GAAG,IAAI,UAAU,QAAQ,UAAU,QAAQ;CAClF,MAAM,QAAQ,IAAI,OAAO,UAAU,QAAQ,KAAK;CAEhD,SAAS,YAAY,MAAY;EAChC,aAAa,MAAM,QAAQ,SAAS,QAAQ,MAAM,WAAW;GAC5D,MAAM,SAAS,UAAU,GAAG,EAAE;GAC9B,IAAI,CAAC,UAAU,EAAE,cAAc,WAAW,OAAO,KAAK,UAAU,UAAU;GAG1E,IACC,UAAU,MACR,aAAa,SAAS,SAAS,aAAa,SAAS,SAAS,SAAS,SAAS,OAAO,CACzF,GAEA;GAGD,IACC,UAAU,MACR,aACA,SAAS,SAAS,aAClB,kBAAkB,UAAU,SAAS,WAAW,SAAS,KAAK,CAChE,GAEA;GAED,MAAM,QAAQ,OAAO,SAAS,QAAQ,IAAI;GAC1C,IAAI,UAAU,IAAI;GAElB,MAAM,QAA+B,CAAC;GACtC,IAAI,YAAY;GAEhB,KAAK,MAAM,SAAS,KAAK,MAAM,SAAS,KAAK,GAAG;IAC/C,MAAM,aAAa,MAAM;IAEzB,IAAI,aAAa,WAChB,MAAM,KAAK;KACV,MAAM;KACN,OAAO,KAAK,MAAM,MAAM,WAAW,UAAU;IAC9C,CAAC;IAEF,MAAM,KAAK,EAAE,SAAS,SAAS,GAAG,SAAS,YAAY,SAAS,MAAM,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;IACpF,YAAY,aAAa,MAAM,EAAE,CAAC;GACnC;GAEA,IAAI,YAAY,KAAK,MAAM,QAC1B,MAAM,KAAK;IAAE,MAAM;IAAQ,OAAO,KAAK,MAAM,MAAM,SAAS;GAAE,CAAC;GAGhE,OAAO,SAAS,OAAO,OAAO,GAAG,GAAG,KAAK;EAC1C,CAAC;EAED,OAAO;CACR;CAEA,OAAO;AACR"}
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../src/index.ts"],"sourcesContent":["import type { Element, Root, Text } from 'hast';\nimport type { Plugin, Transformer } from 'unified';\n\nimport { h } from 'hastscript';\nimport { visitParents } from 'unist-util-visit-parents';\n\nexport interface RehypeWrapCjkOptions {\n\tattribute?: string;\n\telement?: string;\n\tregex?: RegExp;\n\tskipTags?: Array<string>;\n\tvalue?: string;\n}\n\nconst defaultSkipTags = ['code', 'pre', 'kbd', 'samp', 'script', 'style'];\n\nfunction isAncestorWrapped(ancestor: Element, attribute: string, value: string): boolean {\n\tif (attribute === 'class' || attribute === 'className') {\n\t\tconst classes = ancestor.properties.className;\n\n\t\treturn Array.isArray(classes) && classes.includes(value);\n\t}\n\treturn ancestor.properties[attribute] === value;\n}\n\n/**\n * Script-based ranges using Unicode Script Extensions property\n * Authoritative and auto-updates with the JS engine's Unicode version\n */\nexport const zhScriptRange = String.raw`\\p{scx=Han}\\p{scx=Bopomofo}`;\nexport const jaScriptRange = String.raw`\\p{scx=Hiragana}\\p{scx=Katakana}\\p{scx=Han}`;\nexport const koScriptRange = String.raw`\\p{scx=Hangul}\\p{scx=Han}`;\nexport const cjkScriptRange = String.raw`\\p{scx=Han}\\p{scx=Hiragana}\\p{scx=Katakana}\\p{scx=Hangul}\\p{scx=Bopomofo}`;\n\n/**\n * Full-width ASCII variants (FF01-FF5E): digits,letters, punctuation\n * Not covered by script extensions but sometimes used in CJK contexts\n */\nexport const fullwidthAsciiRange = String.raw`\\uFF01-\\uFF5E`;\n\nexport const cjkRegexPresets = {\n\tcjk: new RegExp(`[${cjkScriptRange}${fullwidthAsciiRange}]+`, 'gu'),\n\tja: new RegExp(`[${jaScriptRange}${fullwidthAsciiRange}]+`, 'gu'),\n\tko: new RegExp(`[${koScriptRange}${fullwidthAsciiRange}]+`, 'gu'),\n\tzh: new RegExp(`[${zhScriptRange}${fullwidthAsciiRange}]+`, 'gu'),\n};\n\nfunction presetFor(value: string): RegExp | undefined {\n\tif (value === 'cjk') return cjkRegexPresets.cjk;\n\tif (value === 'ja') return cjkRegexPresets.ja;\n\tif (value === 'ko') return cjkRegexPresets.ko;\n\tif (value === 'zh') return cjkRegexPresets.zh;\n\treturn undefined;\n}\n\nexport const rehypeWrapCjk: Plugin<[RehypeWrapCjkOptions?], Root> = (options) => {\n\tconst settings = {\n\t\tattribute: options?.attribute ?? 'class',\n\t\telement: options?.element ?? 'span',\n\t\tregex: options?.regex,\n\t\tskipTags: options?.skipTags ?? defaultSkipTags,\n\t\tvalue: options?.value ?? 'cjk',\n\t};\n\n\tconst baseRegex = settings.regex ?? presetFor(settings.value) ?? cjkRegexPresets.cjk;\n\n\t// always clone so a caller-supplied global regex never carries its lastIndex into matchAll\n\tconst flags = baseRegex.flags.includes('g') ? baseRegex.flags : baseRegex.flags + 'g';\n\tconst regex = new RegExp(baseRegex.source, flags);\n\n\tfunction transformer(tree: Root) {\n\t\tvisitParents(tree, 'text', function visitor(node, ancestors) {\n\t\t\tconst parent = ancestors.at(-1);\n\t\t\tif (!parent || !('children' in parent) || typeof node.value !== 'string') return;\n\n\t\t\t// Skip text inside excluded tags (code, pre, script, etc.)\n\t\t\tif (\n\t\t\t\tancestors.some(\n\t\t\t\t\t(ancestor) => ancestor.type === 'element' && settings.skipTags.includes(ancestor.tagName),\n\t\t\t\t)\n\t\t\t)\n\t\t\t\treturn;\n\n\t\t\t// Skip if any ancestor is already wrapped\n\t\t\tif (\n\t\t\t\tancestors.some(\n\t\t\t\t\t(ancestor) =>\n\t\t\t\t\t\tancestor.type === 'element' &&\n\t\t\t\t\t\tisAncestorWrapped(ancestor, settings.attribute, settings.value),\n\t\t\t\t)\n\t\t\t)\n\t\t\t\treturn;\n\n\t\t\tconst index = parent.children.indexOf(node);\n\t\t\tif (index === -1) return;\n\n\t\t\tconst parts: Array<Element | Text> = [];\n\t\t\tlet lastIndex = 0;\n\n\t\t\tfor (const match of node.value.matchAll(regex)) {\n\t\t\t\tconst matchIndex = match.index;\n\n\t\t\t\tif (matchIndex > lastIndex) {\n\t\t\t\t\tparts.push({\n\t\t\t\t\t\ttype: 'text',\n\t\t\t\t\t\tvalue: node.value.slice(lastIndex, matchIndex),\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tparts.push(h(settings.element, { [settings.attribute]: settings.value }, [match[0]]));\n\t\t\t\tlastIndex = matchIndex + match[0].length;\n\t\t\t}\n\n\t\t\tif (lastIndex < node.value.length) {\n\t\t\t\tparts.push({ type: 'text', value: node.value.slice(lastIndex) });\n\t\t\t}\n\n\t\t\tparent.children.splice(index, 1, ...parts);\n\t\t});\n\n\t\treturn tree;\n\t}\n\n\treturn transformer satisfies Transformer<Root>;\n};\n"],"mappings":";;;AAcA,MAAM,kBAAkB;CAAC;CAAQ;CAAO;CAAO;CAAQ;CAAU;AAAO;AAExE,SAAS,kBAAkB,UAAmB,WAAmB,OAAwB;CACxF,IAAI,cAAc,WAAW,cAAc,aAAa;EACvD,MAAM,UAAU,SAAS,WAAW;EAEpC,OAAO,MAAM,QAAQ,OAAO,KAAK,QAAQ,SAAS,KAAK;CACxD;CACA,OAAO,SAAS,WAAW,eAAe;AAC3C;;;;;AAMA,MAAa,gBAAgB,OAAO,GAAG;AACvC,MAAa,gBAAgB,OAAO,GAAG;AACvC,MAAa,gBAAgB,OAAO,GAAG;AACvC,MAAa,iBAAiB,OAAO,GAAG;;;;;AAMxC,MAAa,sBAAsB,OAAO,GAAG;AAE7C,MAAa,kBAAkB;CAC9B,KAAK,IAAI,OAAO,IAAI,iBAAiB,oBAAoB,KAAK,IAAI;CAClE,IAAI,IAAI,OAAO,IAAI,gBAAgB,oBAAoB,KAAK,IAAI;CAChE,IAAI,IAAI,OAAO,IAAI,gBAAgB,oBAAoB,KAAK,IAAI;CAChE,IAAI,IAAI,OAAO,IAAI,gBAAgB,oBAAoB,KAAK,IAAI;AACjE;AAEA,SAAS,UAAU,OAAmC;CACrD,IAAI,UAAU,OAAO,OAAO,gBAAgB;CAC5C,IAAI,UAAU,MAAM,OAAO,gBAAgB;CAC3C,IAAI,UAAU,MAAM,OAAO,gBAAgB;CAC3C,IAAI,UAAU,MAAM,OAAO,gBAAgB;AAE5C;AAEA,MAAa,iBAAwD,YAAY;CAChF,MAAM,WAAW;EAChB,WAAW,SAAS,aAAa;EACjC,SAAS,SAAS,WAAW;EAC7B,OAAO,SAAS;EAChB,UAAU,SAAS,YAAY;EAC/B,OAAO,SAAS,SAAS;CAC1B;CAEA,MAAM,YAAY,SAAS,SAAS,UAAU,SAAS,KAAK,KAAK,gBAAgB;CAGjF,MAAM,QAAQ,UAAU,MAAM,SAAS,GAAG,IAAI,UAAU,QAAQ,UAAU,QAAQ;CAClF,MAAM,QAAQ,IAAI,OAAO,UAAU,QAAQ,KAAK;CAEhD,SAAS,YAAY,MAAY;EAChC,aAAa,MAAM,QAAQ,SAAS,QAAQ,MAAM,WAAW;GAC5D,MAAM,SAAS,UAAU,GAAG,EAAE;GAC9B,IAAI,CAAC,UAAU,EAAE,cAAc,WAAW,OAAO,KAAK,UAAU,UAAU;GAG1E,IACC,UAAU,MACR,aAAa,SAAS,SAAS,aAAa,SAAS,SAAS,SAAS,SAAS,OAAO,CACzF,GAEA;GAGD,IACC,UAAU,MACR,aACA,SAAS,SAAS,aAClB,kBAAkB,UAAU,SAAS,WAAW,SAAS,KAAK,CAChE,GAEA;GAED,MAAM,QAAQ,OAAO,SAAS,QAAQ,IAAI;GAC1C,IAAI,UAAU,IAAI;GAElB,MAAM,QAA+B,CAAC;GACtC,IAAI,YAAY;GAEhB,KAAK,MAAM,SAAS,KAAK,MAAM,SAAS,KAAK,GAAG;IAC/C,MAAM,aAAa,MAAM;IAEzB,IAAI,aAAa,WAChB,MAAM,KAAK;KACV,MAAM;KACN,OAAO,KAAK,MAAM,MAAM,WAAW,UAAU;IAC9C,CAAC;IAEF,MAAM,KAAK,EAAE,SAAS,SAAS,GAAG,SAAS,YAAY,SAAS,MAAM,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;IACpF,YAAY,aAAa,MAAM,EAAE,CAAC;GACnC;GAEA,IAAI,YAAY,KAAK,MAAM,QAC1B,MAAM,KAAK;IAAE,MAAM;IAAQ,OAAO,KAAK,MAAM,MAAM,SAAS;GAAE,CAAC;GAGhE,OAAO,SAAS,OAAO,OAAO,GAAG,GAAG,KAAK;EAC1C,CAAC;EAED,OAAO;CACR;CAEA,OAAO;AACR"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xsynaptic/rehype-wrap-cjk",
3
- "version": "3.0.0",
3
+ "version": "3.0.2",
4
4
  "description": "Rehype plugin for wrapping CJK character sequences in an HTML element with a configurable attribute for styling or language tagging.",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -33,7 +33,7 @@
33
33
  ],
34
34
  "sideEffects": false,
35
35
  "dependencies": {
36
- "@types/hast": "^3.0.4",
36
+ "@types/hast": "^3.0.5",
37
37
  "hastscript": "^9.0.1",
38
38
  "unist-util-visit-parents": "^6.0.2"
39
39
  },