{
  "version": 3,
  "sources": ["../../src/utils/crdt-text.ts"],
  "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { RichTextData } from '@wordpress/rich-text';\n\nconst RICH_TEXT_CACHE_MAX_SIZE = 500;\n\n/**\n * Returns a function that converts HTML strings to RichTextData instances,\n * using a FIFO cache bounded by `maxSize` to avoid re-parsing identical\n * strings. Repeated calls with the same string return the cached instance\n * without re-running the HTML parser and DOM traversal.\n *\n * @param maxSize Maximum number of entries to hold in the cache.\n * @return A cached version of RichTextData.fromHTMLString.\n */\nexport function createRichTextDataCache(\n\tmaxSize: number\n): ( value: string ) => RichTextData {\n\tconst cache = new Map< string, RichTextData >();\n\n\treturn function ( value: string ): RichTextData {\n\t\tconst cached = cache.get( value );\n\n\t\tif ( cached ) {\n\t\t\treturn cached;\n\t\t}\n\n\t\tconst result = RichTextData.fromHTMLString( value );\n\n\t\tif ( cache.size >= maxSize ) {\n\t\t\t// Evict the oldest entry (Map preserves insertion order).\n\t\t\tcache.delete( cache.keys().next().value! );\n\t\t}\n\n\t\tcache.set( value, result );\n\t\treturn result;\n\t};\n}\n\nexport const getCachedRichTextData = createRichTextDataCache(\n\tRICH_TEXT_CACHE_MAX_SIZE\n);\n"],
  "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,uBAA6B;AAE7B,IAAM,2BAA2B;AAW1B,SAAS,wBACf,SACoC;AACpC,QAAM,QAAQ,oBAAI,IAA4B;AAE9C,SAAO,SAAW,OAA8B;AAC/C,UAAM,SAAS,MAAM,IAAK,KAAM;AAEhC,QAAK,QAAS;AACb,aAAO;AAAA,IACR;AAEA,UAAM,SAAS,8BAAa,eAAgB,KAAM;AAElD,QAAK,MAAM,QAAQ,SAAU;AAE5B,YAAM,OAAQ,MAAM,KAAK,EAAE,KAAK,EAAE,KAAO;AAAA,IAC1C;AAEA,UAAM,IAAK,OAAO,MAAO;AACzB,WAAO;AAAA,EACR;AACD;AAEO,IAAM,wBAAwB;AAAA,EACpC;AACD;",
  "names": []
}
