intlayer-editor 8.12.2 → 8.12.3

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 (158) hide show
  1. package/client/dist/assets/{CodeBlockClient-b-yeqFuz.js → CodeBlockClient-BQMC5gqu.js} +3 -3
  2. package/client/dist/assets/{CodeBlockShiki-CKm7rixD.js → CodeBlockShiki-DB7ndrOR.js} +2 -2
  3. package/client/dist/assets/{MarkDownRender-EQEw6Grf.js → MarkDownRender-BQwPctN-.js} +3 -3
  4. package/client/dist/assets/{bundle-web-DofprJDj.js → bundle-web-C4HpQhJS.js} +1 -1
  5. package/client/dist/assets/{dist-BFhKwA67.js → dist-GH_AdANR.js} +1 -1
  6. package/client/dist/assets/index-DIJj_-IN.css +2 -0
  7. package/client/dist/assets/index-DJVEpj0g.js +189 -0
  8. package/client/dist/assets/purify.es-6-uFcs4-.js +3 -0
  9. package/client/dist/index.html +2 -2
  10. package/package.json +15 -15
  11. package/server/dist/@intlayer/chokidar/dist/types/build.d.ts +1 -0
  12. package/server/dist/@intlayer/chokidar/dist/types/buildIntlayerDictionary/buildIntlayerDictionary.d.ts +2 -0
  13. package/server/dist/@intlayer/chokidar/dist/types/buildIntlayerDictionary/processContentDeclaration.d.ts +2 -0
  14. package/server/dist/@intlayer/chokidar/dist/types/buildIntlayerDictionary/writeDynamicDictionary.d.ts +2 -0
  15. package/server/dist/@intlayer/chokidar/dist/types/buildIntlayerDictionary/writeMergedDictionary.d.ts +2 -0
  16. package/server/dist/@intlayer/chokidar/dist/types/buildIntlayerDictionary/writeUnmergedDictionary.d.ts +2 -0
  17. package/server/dist/@intlayer/chokidar/dist/types/cleanOutputDir.d.ts +1 -0
  18. package/server/dist/@intlayer/chokidar/dist/types/createDictionaryEntryPoint/createDictionaryEntryPoint.d.ts +1 -0
  19. package/server/dist/@intlayer/chokidar/dist/types/createDictionaryEntryPoint/generateDictionaryListContent.d.ts +1 -0
  20. package/server/dist/@intlayer/chokidar/dist/types/createDictionaryEntryPoint/getBuiltDictionariesPath.d.ts +1 -0
  21. package/server/dist/@intlayer/chokidar/dist/types/createDictionaryEntryPoint/getBuiltDynamicDictionariesPath.d.ts +1 -0
  22. package/server/dist/@intlayer/chokidar/dist/types/createDictionaryEntryPoint/getBuiltFetchDictionariesPath.d.ts +1 -0
  23. package/server/dist/@intlayer/chokidar/dist/types/createDictionaryEntryPoint/getBuiltRemoteDictionariesPath.d.ts +1 -0
  24. package/server/dist/@intlayer/chokidar/dist/types/createDictionaryEntryPoint/getBuiltUnmergedDictionariesPath.d.ts +1 -0
  25. package/server/dist/@intlayer/chokidar/dist/types/createType/createModuleAugmentation.d.ts +1 -0
  26. package/server/dist/@intlayer/chokidar/dist/types/createType/createType.d.ts +2 -0
  27. package/server/dist/@intlayer/chokidar/dist/types/formatDictionary.d.ts +1 -0
  28. package/server/dist/@intlayer/chokidar/dist/types/intlayer/dist/types/index.d.ts +1 -0
  29. package/server/dist/@intlayer/chokidar/dist/types/loadDictionaries/loadContentDeclaration.d.ts +2 -0
  30. package/server/dist/@intlayer/chokidar/dist/types/loadDictionaries/loadDictionaries.d.ts +2 -0
  31. package/server/dist/@intlayer/chokidar/dist/types/loadDictionaries/loadLocalDictionaries.d.ts +2 -0
  32. package/server/dist/@intlayer/chokidar/dist/types/loadDictionaries/loadRemoteDictionaries.d.ts +1 -0
  33. package/server/dist/@intlayer/chokidar/dist/types/prepareIntlayer.d.ts +1 -0
  34. package/server/dist/@intlayer/chokidar/dist/types/writeConfiguration/index.d.ts +1 -0
  35. package/server/dist/@intlayer/chokidar/dist/types/writeContentDeclaration/dictionaryStatus.d.ts +6 -0
  36. package/server/dist/@intlayer/chokidar/dist/types/writeContentDeclaration/transformJSFile.d.ts +1 -0
  37. package/server/dist/@intlayer/chokidar/dist/types/writeContentDeclaration/writeContentDeclaration.d.ts +2 -0
  38. package/server/dist/@intlayer/chokidar/dist/types/writeContentDeclaration/writeJSFile.d.ts +2 -0
  39. package/server/dist/@intlayer/core/dist/types/messageFormat/ICU.d.ts +1 -0
  40. package/server/dist/@intlayer/core/dist/types/messageFormat/i18next.d.ts +1 -0
  41. package/server/dist/@intlayer/core/dist/types/messageFormat/index.d.ts +1 -0
  42. package/server/dist/@intlayer/core/dist/types/messageFormat/po.d.ts +1 -0
  43. package/server/dist/@intlayer/core/dist/types/messageFormat/vue-i18n.d.ts +1 -0
  44. package/server/dist/controllers/configuration.controller.cjs +1 -0
  45. package/server/dist/controllers/configuration.controller.cjs.map +1 -1
  46. package/server/dist/controllers/configuration.controller.mjs.map +1 -1
  47. package/server/dist/controllers/dictionary.controller.cjs +1 -0
  48. package/server/dist/controllers/dictionary.controller.cjs.map +1 -1
  49. package/server/dist/controllers/dictionary.controller.mjs.map +1 -1
  50. package/server/dist/index.cjs.map +1 -1
  51. package/server/dist/index.mjs.map +1 -1
  52. package/server/dist/packages/@intlayer/chokidar/dist/esm/detectFormatCommand.cjs +32 -0
  53. package/server/dist/packages/@intlayer/chokidar/dist/esm/detectFormatCommand.cjs.map +1 -0
  54. package/server/dist/packages/@intlayer/chokidar/dist/esm/detectFormatCommand.mjs +31 -0
  55. package/server/dist/packages/@intlayer/chokidar/dist/esm/detectFormatCommand.mjs.map +1 -0
  56. package/server/dist/packages/@intlayer/chokidar/dist/esm/getContentDeclarationFileTemplate/getContentDeclarationFileTemplate.cjs +82 -0
  57. package/server/dist/packages/@intlayer/chokidar/dist/esm/getContentDeclarationFileTemplate/getContentDeclarationFileTemplate.cjs.map +1 -0
  58. package/server/dist/packages/@intlayer/chokidar/dist/esm/getContentDeclarationFileTemplate/getContentDeclarationFileTemplate.mjs +81 -0
  59. package/server/dist/packages/@intlayer/chokidar/dist/esm/getContentDeclarationFileTemplate/getContentDeclarationFileTemplate.mjs.map +1 -0
  60. package/server/dist/packages/@intlayer/chokidar/dist/esm/utils/getFormatFromExtension.cjs +26 -0
  61. package/server/dist/packages/@intlayer/chokidar/dist/esm/utils/getFormatFromExtension.cjs.map +1 -0
  62. package/server/dist/packages/@intlayer/chokidar/dist/esm/utils/getFormatFromExtension.mjs +25 -0
  63. package/server/dist/packages/@intlayer/chokidar/dist/esm/utils/getFormatFromExtension.mjs.map +1 -0
  64. package/server/dist/packages/@intlayer/chokidar/dist/esm/utils/readDictionariesFromDisk.cjs +24 -0
  65. package/server/dist/packages/@intlayer/chokidar/dist/esm/utils/readDictionariesFromDisk.cjs.map +1 -0
  66. package/server/dist/packages/@intlayer/chokidar/dist/esm/utils/readDictionariesFromDisk.mjs +23 -0
  67. package/server/dist/packages/@intlayer/chokidar/dist/esm/utils/readDictionariesFromDisk.mjs.map +1 -0
  68. package/server/dist/packages/@intlayer/chokidar/dist/esm/writeContentDeclaration/processContentDeclarationContent.cjs +94 -0
  69. package/server/dist/packages/@intlayer/chokidar/dist/esm/writeContentDeclaration/processContentDeclarationContent.cjs.map +1 -0
  70. package/server/dist/packages/@intlayer/chokidar/dist/esm/writeContentDeclaration/processContentDeclarationContent.mjs +92 -0
  71. package/server/dist/packages/@intlayer/chokidar/dist/esm/writeContentDeclaration/processContentDeclarationContent.mjs.map +1 -0
  72. package/server/dist/packages/@intlayer/chokidar/dist/esm/writeContentDeclaration/transformJSFile.cjs +416 -0
  73. package/server/dist/packages/@intlayer/chokidar/dist/esm/writeContentDeclaration/transformJSFile.cjs.map +1 -0
  74. package/server/dist/packages/@intlayer/chokidar/dist/esm/writeContentDeclaration/transformJSFile.mjs +412 -0
  75. package/server/dist/packages/@intlayer/chokidar/dist/esm/writeContentDeclaration/transformJSFile.mjs.map +1 -0
  76. package/server/dist/packages/@intlayer/chokidar/dist/esm/writeContentDeclaration/transformJSONFile.cjs +127 -0
  77. package/server/dist/packages/@intlayer/chokidar/dist/esm/writeContentDeclaration/transformJSONFile.cjs.map +1 -0
  78. package/server/dist/packages/@intlayer/chokidar/dist/esm/writeContentDeclaration/transformJSONFile.mjs +125 -0
  79. package/server/dist/packages/@intlayer/chokidar/dist/esm/writeContentDeclaration/transformJSONFile.mjs.map +1 -0
  80. package/server/dist/packages/@intlayer/chokidar/dist/esm/writeContentDeclaration/writeContentDeclaration.cjs +164 -0
  81. package/server/dist/packages/@intlayer/chokidar/dist/esm/writeContentDeclaration/writeContentDeclaration.cjs.map +1 -0
  82. package/server/dist/packages/@intlayer/chokidar/dist/esm/writeContentDeclaration/writeContentDeclaration.mjs +163 -0
  83. package/server/dist/packages/@intlayer/chokidar/dist/esm/writeContentDeclaration/writeContentDeclaration.mjs.map +1 -0
  84. package/server/dist/packages/@intlayer/chokidar/dist/esm/writeContentDeclaration/writeJSFile.cjs +92 -0
  85. package/server/dist/packages/@intlayer/chokidar/dist/esm/writeContentDeclaration/writeJSFile.cjs.map +1 -0
  86. package/server/dist/packages/@intlayer/chokidar/dist/esm/writeContentDeclaration/writeJSFile.mjs +91 -0
  87. package/server/dist/packages/@intlayer/chokidar/dist/esm/writeContentDeclaration/writeJSFile.mjs.map +1 -0
  88. package/server/dist/packages/@intlayer/chokidar/dist/esm/writeContentDeclaration/writeMarkdownFile.cjs +65 -0
  89. package/server/dist/packages/@intlayer/chokidar/dist/esm/writeContentDeclaration/writeMarkdownFile.cjs.map +1 -0
  90. package/server/dist/packages/@intlayer/chokidar/dist/esm/writeContentDeclaration/writeMarkdownFile.mjs +64 -0
  91. package/server/dist/packages/@intlayer/chokidar/dist/esm/writeContentDeclaration/writeMarkdownFile.mjs.map +1 -0
  92. package/server/dist/packages/@intlayer/chokidar/dist/esm/writeContentDeclaration/writeYamlFile.cjs +43 -0
  93. package/server/dist/packages/@intlayer/chokidar/dist/esm/writeContentDeclaration/writeYamlFile.cjs.map +1 -0
  94. package/server/dist/packages/@intlayer/chokidar/dist/esm/writeContentDeclaration/writeYamlFile.mjs +42 -0
  95. package/server/dist/packages/@intlayer/chokidar/dist/esm/writeContentDeclaration/writeYamlFile.mjs.map +1 -0
  96. package/server/dist/packages/@intlayer/core/dist/esm/deepTransformPlugins/getFilteredLocalesContent.cjs +45 -0
  97. package/server/dist/packages/@intlayer/core/dist/esm/deepTransformPlugins/getFilteredLocalesContent.cjs.map +1 -0
  98. package/server/dist/packages/@intlayer/core/dist/esm/deepTransformPlugins/getFilteredLocalesContent.mjs +43 -0
  99. package/server/dist/packages/@intlayer/core/dist/esm/deepTransformPlugins/getFilteredLocalesContent.mjs.map +1 -0
  100. package/server/dist/packages/@intlayer/core/dist/esm/deepTransformPlugins/getLocalizedContent.cjs +32 -0
  101. package/server/dist/packages/@intlayer/core/dist/esm/deepTransformPlugins/getLocalizedContent.cjs.map +1 -0
  102. package/server/dist/packages/@intlayer/core/dist/esm/deepTransformPlugins/getLocalizedContent.mjs +32 -0
  103. package/server/dist/packages/@intlayer/core/dist/esm/deepTransformPlugins/getLocalizedContent.mjs.map +1 -0
  104. package/server/dist/packages/@intlayer/core/dist/esm/dictionaryManipulator/getNodeType.cjs +56 -0
  105. package/server/dist/packages/@intlayer/core/dist/esm/dictionaryManipulator/getNodeType.cjs.map +1 -0
  106. package/server/dist/packages/@intlayer/core/dist/esm/dictionaryManipulator/getNodeType.mjs +54 -0
  107. package/server/dist/packages/@intlayer/core/dist/esm/dictionaryManipulator/getNodeType.mjs.map +1 -0
  108. package/server/dist/packages/@intlayer/core/dist/esm/interpreter/getCondition.cjs +27 -0
  109. package/server/dist/packages/@intlayer/core/dist/esm/interpreter/getCondition.cjs.map +1 -0
  110. package/server/dist/packages/@intlayer/core/dist/esm/interpreter/getCondition.mjs +26 -0
  111. package/server/dist/packages/@intlayer/core/dist/esm/interpreter/getCondition.mjs.map +1 -0
  112. package/server/dist/packages/@intlayer/core/dist/esm/interpreter/getContent/deepTransform.cjs +58 -0
  113. package/server/dist/packages/@intlayer/core/dist/esm/interpreter/getContent/deepTransform.cjs.map +1 -0
  114. package/server/dist/packages/@intlayer/core/dist/esm/interpreter/getContent/deepTransform.mjs +56 -0
  115. package/server/dist/packages/@intlayer/core/dist/esm/interpreter/getContent/deepTransform.mjs.map +1 -0
  116. package/server/dist/packages/@intlayer/core/dist/esm/interpreter/getContent/plugins.cjs +160 -0
  117. package/server/dist/packages/@intlayer/core/dist/esm/interpreter/getContent/plugins.cjs.map +1 -0
  118. package/server/dist/packages/@intlayer/core/dist/esm/interpreter/getContent/plugins.mjs +158 -0
  119. package/server/dist/packages/@intlayer/core/dist/esm/interpreter/getContent/plugins.mjs.map +1 -0
  120. package/server/dist/packages/@intlayer/core/dist/esm/interpreter/getEnumeration.cjs +71 -0
  121. package/server/dist/packages/@intlayer/core/dist/esm/interpreter/getEnumeration.cjs.map +1 -0
  122. package/server/dist/packages/@intlayer/core/dist/esm/interpreter/getEnumeration.mjs +70 -0
  123. package/server/dist/packages/@intlayer/core/dist/esm/interpreter/getEnumeration.mjs.map +1 -0
  124. package/server/dist/packages/@intlayer/core/dist/esm/interpreter/getGender.cjs +38 -0
  125. package/server/dist/packages/@intlayer/core/dist/esm/interpreter/getGender.cjs.map +1 -0
  126. package/server/dist/packages/@intlayer/core/dist/esm/interpreter/getGender.mjs +37 -0
  127. package/server/dist/packages/@intlayer/core/dist/esm/interpreter/getGender.mjs.map +1 -0
  128. package/server/dist/packages/@intlayer/core/dist/esm/interpreter/getInsertion.cjs +22 -0
  129. package/server/dist/packages/@intlayer/core/dist/esm/interpreter/getInsertion.cjs.map +1 -0
  130. package/server/dist/packages/@intlayer/core/dist/esm/interpreter/getInsertion.mjs +21 -0
  131. package/server/dist/packages/@intlayer/core/dist/esm/interpreter/getInsertion.mjs.map +1 -0
  132. package/server/dist/packages/@intlayer/core/dist/esm/interpreter/getTranslation.cjs +87 -0
  133. package/server/dist/packages/@intlayer/core/dist/esm/interpreter/getTranslation.cjs.map +1 -0
  134. package/server/dist/packages/@intlayer/core/dist/esm/interpreter/getTranslation.mjs +86 -0
  135. package/server/dist/packages/@intlayer/core/dist/esm/interpreter/getTranslation.mjs.map +1 -0
  136. package/server/dist/packages/@intlayer/core/dist/esm/utils/isValidReactElement.cjs +14 -0
  137. package/server/dist/packages/@intlayer/core/dist/esm/utils/isValidReactElement.cjs.map +1 -0
  138. package/server/dist/packages/@intlayer/core/dist/esm/utils/isValidReactElement.mjs +13 -0
  139. package/server/dist/packages/@intlayer/core/dist/esm/utils/isValidReactElement.mjs.map +1 -0
  140. package/server/dist/packages/@intlayer/core/dist/esm/utils/stringifyYaml.cjs +58 -0
  141. package/server/dist/packages/@intlayer/core/dist/esm/utils/stringifyYaml.cjs.map +1 -0
  142. package/server/dist/packages/@intlayer/core/dist/esm/utils/stringifyYaml.mjs +57 -0
  143. package/server/dist/packages/@intlayer/core/dist/esm/utils/stringifyYaml.mjs.map +1 -0
  144. package/server/dist/routes/config.routes.cjs +1 -0
  145. package/server/dist/routes/config.routes.cjs.map +1 -1
  146. package/server/dist/routes/config.routes.mjs.map +1 -1
  147. package/server/dist/routes/dictionary.routes.cjs +1 -0
  148. package/server/dist/routes/dictionary.routes.cjs.map +1 -1
  149. package/server/dist/routes/dictionary.routes.mjs.map +1 -1
  150. package/server/dist/utils/checkPortAvailability.cjs.map +1 -1
  151. package/server/dist/utils/checkPortAvailability.mjs.map +1 -1
  152. package/server/dist/utils/httpStatusCodes.cjs.map +1 -1
  153. package/server/dist/utils/httpStatusCodes.mjs.map +1 -1
  154. package/server/dist/utils/responseData.cjs.map +1 -1
  155. package/server/dist/utils/responseData.mjs.map +1 -1
  156. package/client/dist/assets/index-CTSrsWZb.css +0 -2
  157. package/client/dist/assets/index-bVSusa0N.js +0 -185
  158. package/client/dist/assets/purify.es-Dt2VzQ8a.js +0 -3
@@ -0,0 +1,3 @@
1
+ function e(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function t(e){if(Array.isArray(e))return e}function n(e,t){var n=e==null?null:typeof Symbol<`u`&&e[Symbol.iterator]||e[`@@iterator`];if(n!=null){var r,i,a,o,s=[],c=!0,l=!1;try{if(a=(n=n.call(e)).next,t!==0)for(;!(c=(r=a.call(n)).done)&&(s.push(r.value),s.length!==t);c=!0);}catch(e){l=!0,i=e}finally{try{if(!c&&n.return!=null&&(o=n.return(),Object(o)!==o))return}finally{if(l)throw i}}return s}}function r(){throw TypeError(`Invalid attempt to destructure non-iterable instance.
2
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function i(e,i){return t(e)||n(e,i)||a(e,i)||r()}function a(t,n){if(t){if(typeof t==`string`)return e(t,n);var r={}.toString.call(t).slice(8,-1);return r===`Object`&&t.constructor&&(r=t.constructor.name),r===`Map`||r===`Set`?Array.from(t):r===`Arguments`||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?e(t,n):void 0}}var o=Object.entries,s=Object.setPrototypeOf,c=Object.isFrozen,l=Object.getPrototypeOf,u=Object.getOwnPropertyDescriptor,d=Object.freeze,f=Object.seal,p=Object.create,m=typeof Reflect<`u`&&Reflect,ee=m.apply,te=m.construct;d||=function(e){return e},f||=function(e){return e},ee||=function(e,t){var n=[...arguments].slice(2);return e.apply(t,n)},te||=function(e){return new e(...[...arguments].slice(1))};var h=T(Array.prototype.forEach),ne=T(Array.prototype.lastIndexOf),re=T(Array.prototype.pop),g=T(Array.prototype.push),ie=T(Array.prototype.splice),_=Array.isArray,ae=T(String.prototype.toLowerCase),oe=T(String.prototype.toString),se=T(String.prototype.match),v=T(String.prototype.replace),ce=T(String.prototype.indexOf),le=T(String.prototype.trim),ue=T(Number.prototype.toString),de=T(Boolean.prototype.toString),y=typeof BigInt>`u`?null:T(BigInt.prototype.toString),b=typeof Symbol>`u`?null:T(Symbol.prototype.toString),x=T(Object.prototype.hasOwnProperty),S=T(Object.prototype.toString),C=T(RegExp.prototype.test),w=E(TypeError);function T(e){return function(t){t instanceof RegExp&&(t.lastIndex=0);var n=[...arguments].slice(1);return ee(e,t,n)}}function E(e){return function(){return te(e,[...arguments])}}function D(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:ae;if(s&&s(e,null),!_(t))return e;let r=t.length;for(;r--;){let i=t[r];if(typeof i==`string`){let e=n(i);e!==i&&(c(t)||(t[r]=e),i=e)}e[i]=!0}return e}function O(e){for(let t=0;t<e.length;t++)x(e,t)||(e[t]=null);return e}function k(e){let t=p(null);for(let r of o(e)){var n=i(r,2);let a=n[0],o=n[1];x(e,a)&&(_(o)?t[a]=O(o):o&&typeof o==`object`&&o.constructor===Object?t[a]=k(o):t[a]=o)}return t}function fe(e){switch(typeof e){case`string`:return e;case`number`:return ue(e);case`boolean`:return de(e);case`bigint`:return y?y(e):`0`;case`symbol`:return b?b(e):`Symbol()`;case`undefined`:return S(e);case`function`:case`object`:{if(e===null)return S(e);let t=e,n=A(t,`toString`);if(typeof n==`function`){let e=n(t);return typeof e==`string`?e:S(e)}return S(e)}default:return S(e)}}function A(e,t){for(;e!==null;){let n=u(e,t);if(n){if(n.get)return T(n.get);if(typeof n.value==`function`)return T(n.value)}e=l(e)}function n(){return null}return n}function pe(e){try{return C(e,``),!0}catch{return!1}}var me=d(`a.abbr.acronym.address.area.article.aside.audio.b.bdi.bdo.big.blink.blockquote.body.br.button.canvas.caption.center.cite.code.col.colgroup.content.data.datalist.dd.decorator.del.details.dfn.dialog.dir.div.dl.dt.element.em.fieldset.figcaption.figure.font.footer.form.h1.h2.h3.h4.h5.h6.head.header.hgroup.hr.html.i.img.input.ins.kbd.label.legend.li.main.map.mark.marquee.menu.menuitem.meter.nav.nobr.ol.optgroup.option.output.p.picture.pre.progress.q.rp.rt.ruby.s.samp.search.section.select.shadow.slot.small.source.spacer.span.strike.strong.style.sub.summary.sup.table.tbody.td.template.textarea.tfoot.th.thead.time.tr.track.tt.u.ul.var.video.wbr`.split(`.`)),he=d(`svg.a.altglyph.altglyphdef.altglyphitem.animatecolor.animatemotion.animatetransform.circle.clippath.defs.desc.ellipse.enterkeyhint.exportparts.filter.font.g.glyph.glyphref.hkern.image.inputmode.line.lineargradient.marker.mask.metadata.mpath.part.path.pattern.polygon.polyline.radialgradient.rect.stop.style.switch.symbol.text.textpath.title.tref.tspan.view.vkern`.split(`.`)),ge=d([`feBlend`,`feColorMatrix`,`feComponentTransfer`,`feComposite`,`feConvolveMatrix`,`feDiffuseLighting`,`feDisplacementMap`,`feDistantLight`,`feDropShadow`,`feFlood`,`feFuncA`,`feFuncB`,`feFuncG`,`feFuncR`,`feGaussianBlur`,`feImage`,`feMerge`,`feMergeNode`,`feMorphology`,`feOffset`,`fePointLight`,`feSpecularLighting`,`feSpotLight`,`feTile`,`feTurbulence`]),_e=d([`animate`,`color-profile`,`cursor`,`discard`,`font-face`,`font-face-format`,`font-face-name`,`font-face-src`,`font-face-uri`,`foreignobject`,`hatch`,`hatchpath`,`mesh`,`meshgradient`,`meshpatch`,`meshrow`,`missing-glyph`,`script`,`set`,`solidcolor`,`unknown`,`use`]),ve=d(`math.menclose.merror.mfenced.mfrac.mglyph.mi.mlabeledtr.mmultiscripts.mn.mo.mover.mpadded.mphantom.mroot.mrow.ms.mspace.msqrt.mstyle.msub.msup.msubsup.mtable.mtd.mtext.mtr.munder.munderover.mprescripts`.split(`.`)),ye=d([`maction`,`maligngroup`,`malignmark`,`mlongdiv`,`mscarries`,`mscarry`,`msgroup`,`mstack`,`msline`,`msrow`,`semantics`,`annotation`,`annotation-xml`,`mprescripts`,`none`]),be=d([`#text`]),xe=d(`accept.action.align.alt.autocapitalize.autocomplete.autopictureinpicture.autoplay.background.bgcolor.border.capture.cellpadding.cellspacing.checked.cite.class.clear.color.cols.colspan.command.commandfor.controls.controlslist.coords.crossorigin.datetime.decoding.default.dir.disabled.disablepictureinpicture.disableremoteplayback.download.draggable.enctype.enterkeyhint.exportparts.face.for.headers.height.hidden.high.href.hreflang.id.inert.inputmode.integrity.ismap.kind.label.lang.list.loading.loop.low.max.maxlength.media.method.min.minlength.multiple.muted.name.nonce.noshade.novalidate.nowrap.open.optimum.part.pattern.placeholder.playsinline.popover.popovertarget.popovertargetaction.poster.preload.pubdate.radiogroup.readonly.rel.required.rev.reversed.role.rows.rowspan.spellcheck.scope.selected.shape.size.sizes.slot.span.srclang.start.src.srcset.step.style.summary.tabindex.title.translate.type.usemap.valign.value.width.wrap.xmlns`.split(`.`)),Se=d(`accent-height.accumulate.additive.alignment-baseline.amplitude.ascent.attributename.attributetype.azimuth.basefrequency.baseline-shift.begin.bias.by.class.clip.clippathunits.clip-path.clip-rule.color.color-interpolation.color-interpolation-filters.color-profile.color-rendering.cx.cy.d.dx.dy.diffuseconstant.direction.display.divisor.dur.edgemode.elevation.end.exponent.fill.fill-opacity.fill-rule.filter.filterunits.flood-color.flood-opacity.font-family.font-size.font-size-adjust.font-stretch.font-style.font-variant.font-weight.fx.fy.g1.g2.glyph-name.glyphref.gradientunits.gradienttransform.height.href.id.image-rendering.in.in2.intercept.k.k1.k2.k3.k4.kerning.keypoints.keysplines.keytimes.lang.lengthadjust.letter-spacing.kernelmatrix.kernelunitlength.lighting-color.local.marker-end.marker-mid.marker-start.markerheight.markerunits.markerwidth.maskcontentunits.maskunits.max.mask.mask-type.media.method.mode.min.name.numoctaves.offset.operator.opacity.order.orient.orientation.origin.overflow.paint-order.path.pathlength.patterncontentunits.patterntransform.patternunits.points.preservealpha.preserveaspectratio.primitiveunits.r.rx.ry.radius.refx.refy.repeatcount.repeatdur.restart.result.rotate.scale.seed.shape-rendering.slope.specularconstant.specularexponent.spreadmethod.startoffset.stddeviation.stitchtiles.stop-color.stop-opacity.stroke-dasharray.stroke-dashoffset.stroke-linecap.stroke-linejoin.stroke-miterlimit.stroke-opacity.stroke.stroke-width.style.surfacescale.systemlanguage.tabindex.tablevalues.targetx.targety.transform.transform-origin.text-anchor.text-decoration.text-rendering.textlength.type.u1.u2.unicode.values.viewbox.visibility.version.vert-adv-y.vert-origin-x.vert-origin-y.width.word-spacing.wrap.writing-mode.xchannelselector.ychannelselector.x.x1.x2.xmlns.y.y1.y2.z.zoomandpan`.split(`.`)),Ce=d(`accent.accentunder.align.bevelled.close.columnalign.columnlines.columnspacing.columnspan.denomalign.depth.dir.display.displaystyle.encoding.fence.frame.height.href.id.largeop.length.linethickness.lquote.lspace.mathbackground.mathcolor.mathsize.mathvariant.maxsize.minsize.movablelimits.notation.numalign.open.rowalign.rowlines.rowspacing.rowspan.rspace.rquote.scriptlevel.scriptminsize.scriptsizemultiplier.selection.separator.separators.stretchy.subscriptshift.supscriptshift.symmetric.voffset.width.xmlns`.split(`.`)),we=d([`xlink:href`,`xml:id`,`xlink:title`,`xml:space`,`xmlns:xlink`]),Te=f(/{{[\w\W]*|^[\w\W]*}}/g),Ee=f(/<%[\w\W]*|^[\w\W]*%>/g),De=f(/\${[\w\W]*/g),Oe=f(/^data-[\-\w.\u00B7-\uFFFF]+$/),ke=f(/^aria-[\-\w]+$/),Ae=f(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),je=f(/^(?:\w+script|data):/i),Me=f(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),Ne=f(/^html$/i),Pe=f(/^[a-z][.\w]*(-[.\w]+)+$/i),j={element:1,attribute:2,text:3,cdataSection:4,entityReference:5,entityNode:6,progressingInstruction:7,comment:8,document:9,documentType:10,documentFragment:11,notation:12},Fe=function(){return typeof window>`u`?null:window},Ie=function(e,t){if(typeof e!=`object`||typeof e.createPolicy!=`function`)return null;let n=null,r=`data-tt-policy-suffix`;t&&t.hasAttribute(r)&&(n=t.getAttribute(r));let i=`dompurify`+(n?`#`+n:``);try{return e.createPolicy(i,{createHTML(e){return e},createScriptURL(e){return e}})}catch{return console.warn(`TrustedTypes policy `+i+` could not be created.`),null}},Le=function(){return{afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}};function Re(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:Fe(),t=e=>Re(e);if(t.version=`3.4.8`,t.removed=[],!e||!e.document||e.document.nodeType!==j.document||!e.Element)return t.isSupported=!1,t;let n=e.document,r=n,i=r.currentScript;e.DocumentFragment;let a=e.HTMLTemplateElement,s=e.Node,c=e.Element,l=e.NodeFilter;e.NamedNodeMap===void 0&&(e.NamedNodeMap||e.MozNamedAttrMap),e.HTMLFormElement;let u=e.DOMParser,f=e.trustedTypes,m=c.prototype,ee=A(m,`cloneNode`),te=A(m,`remove`),ue=A(m,`nextSibling`),de=A(m,`childNodes`),y=A(m,`parentNode`),b=A(m,`shadowRoot`),S=A(m,`attributes`),T=s&&s.prototype?A(s.prototype,`nodeType`):null,E=s&&s.prototype?A(s.prototype,`nodeName`):null;if(typeof a==`function`){let e=n.createElement(`template`);e.content&&e.content.ownerDocument&&(n=e.content.ownerDocument)}let O,M=``,ze=0,N=function(e){if(ze>0)throw w(`The configured TRUSTED_TYPES_POLICY.createHTML must not call DOMPurify.sanitize, as that causes infinite recursion. Do not pass a policy whose createHTML wraps DOMPurify as TRUSTED_TYPES_POLICY; see the "DOMPurify and Trusted Types" section of the README.`);ze++;try{return O.createHTML(e)}finally{ze--}},Be=n,Ve=Be.implementation,He=Be.createNodeIterator,Ue=Be.createDocumentFragment,We=Be.getElementsByTagName,Ge=r.importNode,P=Le();t.isSupported=typeof o==`function`&&typeof y==`function`&&Ve&&Ve.createHTMLDocument!==void 0;let Ke=Te,qe=Ee,Je=De,Ye=Oe,Xe=ke,Ze=je,Qe=Me,$e=Pe,et=Ae,F=null,tt=D({},[...me,...he,...ge,...ve,...be]),I=null,nt=D({},[...xe,...Se,...Ce,...we]),L=Object.seal(p(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),R=null,rt=null,z=Object.seal(p(null,{tagCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeCheck:{writable:!0,configurable:!1,enumerable:!0,value:null}})),it=!0,at=!0,ot=!1,st=!0,B=!1,ct=!0,V=!1,lt=!1,ut=!1,H=!1,dt=!1,ft=!1,pt=!0,mt=!1,ht=`user-content-`,gt=!0,_t=!1,U={},W=null,vt=D({},[`annotation-xml`,`audio`,`colgroup`,`desc`,`foreignobject`,`head`,`iframe`,`math`,`mi`,`mn`,`mo`,`ms`,`mtext`,`noembed`,`noframes`,`noscript`,`plaintext`,`script`,`style`,`svg`,`template`,`thead`,`title`,`video`,`xmp`]),yt=null,bt=D({},[`audio`,`video`,`img`,`source`,`image`,`track`]),xt=null,St=D({},[`alt`,`class`,`for`,`id`,`label`,`name`,`pattern`,`placeholder`,`role`,`summary`,`title`,`value`,`style`,`xmlns`]),Ct=`http://www.w3.org/1998/Math/MathML`,wt=`http://www.w3.org/2000/svg`,G=`http://www.w3.org/1999/xhtml`,K=G,Tt=!1,Et=null,Dt=D({},[Ct,wt,G],oe),Ot=D({},[`mi`,`mo`,`mn`,`ms`,`mtext`]),kt=D({},[`annotation-xml`]),At=D({},[`title`,`style`,`font`,`a`,`script`]),jt=null,Mt=[`application/xhtml+xml`,`text/html`],q=null,J=null,Nt=n.createElement(`form`),Pt=function(e){return e instanceof RegExp||e instanceof Function},Ft=function(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(J&&J===e)return;(!e||typeof e!=`object`)&&(e={}),e=k(e),jt=Mt.indexOf(e.PARSER_MEDIA_TYPE)===-1?`text/html`:e.PARSER_MEDIA_TYPE,q=jt===`application/xhtml+xml`?oe:ae,F=x(e,`ALLOWED_TAGS`)&&_(e.ALLOWED_TAGS)?D({},e.ALLOWED_TAGS,q):tt,I=x(e,`ALLOWED_ATTR`)&&_(e.ALLOWED_ATTR)?D({},e.ALLOWED_ATTR,q):nt,Et=x(e,`ALLOWED_NAMESPACES`)&&_(e.ALLOWED_NAMESPACES)?D({},e.ALLOWED_NAMESPACES,oe):Dt,xt=x(e,`ADD_URI_SAFE_ATTR`)&&_(e.ADD_URI_SAFE_ATTR)?D(k(St),e.ADD_URI_SAFE_ATTR,q):St,yt=x(e,`ADD_DATA_URI_TAGS`)&&_(e.ADD_DATA_URI_TAGS)?D(k(bt),e.ADD_DATA_URI_TAGS,q):bt,W=x(e,`FORBID_CONTENTS`)&&_(e.FORBID_CONTENTS)?D({},e.FORBID_CONTENTS,q):vt,R=x(e,`FORBID_TAGS`)&&_(e.FORBID_TAGS)?D({},e.FORBID_TAGS,q):k({}),rt=x(e,`FORBID_ATTR`)&&_(e.FORBID_ATTR)?D({},e.FORBID_ATTR,q):k({}),U=x(e,`USE_PROFILES`)?e.USE_PROFILES&&typeof e.USE_PROFILES==`object`?k(e.USE_PROFILES):e.USE_PROFILES:!1,it=e.ALLOW_ARIA_ATTR!==!1,at=e.ALLOW_DATA_ATTR!==!1,ot=e.ALLOW_UNKNOWN_PROTOCOLS||!1,st=e.ALLOW_SELF_CLOSE_IN_ATTR!==!1,B=e.SAFE_FOR_TEMPLATES||!1,ct=e.SAFE_FOR_XML!==!1,V=e.WHOLE_DOCUMENT||!1,H=e.RETURN_DOM||!1,dt=e.RETURN_DOM_FRAGMENT||!1,ft=e.RETURN_TRUSTED_TYPE||!1,ut=e.FORCE_BODY||!1,pt=e.SANITIZE_DOM!==!1,mt=e.SANITIZE_NAMED_PROPS||!1,gt=e.KEEP_CONTENT!==!1,_t=e.IN_PLACE||!1,et=pe(e.ALLOWED_URI_REGEXP)?e.ALLOWED_URI_REGEXP:Ae,K=typeof e.NAMESPACE==`string`?e.NAMESPACE:G,Ot=x(e,`MATHML_TEXT_INTEGRATION_POINTS`)&&e.MATHML_TEXT_INTEGRATION_POINTS&&typeof e.MATHML_TEXT_INTEGRATION_POINTS==`object`?k(e.MATHML_TEXT_INTEGRATION_POINTS):D({},[`mi`,`mo`,`mn`,`ms`,`mtext`]),kt=x(e,`HTML_INTEGRATION_POINTS`)&&e.HTML_INTEGRATION_POINTS&&typeof e.HTML_INTEGRATION_POINTS==`object`?k(e.HTML_INTEGRATION_POINTS):D({},[`annotation-xml`]);let t=x(e,`CUSTOM_ELEMENT_HANDLING`)&&e.CUSTOM_ELEMENT_HANDLING&&typeof e.CUSTOM_ELEMENT_HANDLING==`object`?k(e.CUSTOM_ELEMENT_HANDLING):p(null);if(L=p(null),x(t,`tagNameCheck`)&&Pt(t.tagNameCheck)&&(L.tagNameCheck=t.tagNameCheck),x(t,`attributeNameCheck`)&&Pt(t.attributeNameCheck)&&(L.attributeNameCheck=t.attributeNameCheck),x(t,`allowCustomizedBuiltInElements`)&&typeof t.allowCustomizedBuiltInElements==`boolean`&&(L.allowCustomizedBuiltInElements=t.allowCustomizedBuiltInElements),B&&(at=!1),dt&&(H=!0),U&&(F=D({},be),I=p(null),U.html===!0&&(D(F,me),D(I,xe)),U.svg===!0&&(D(F,he),D(I,Se),D(I,we)),U.svgFilters===!0&&(D(F,ge),D(I,Se),D(I,we)),U.mathMl===!0&&(D(F,ve),D(I,Ce),D(I,we))),z.tagCheck=null,z.attributeCheck=null,x(e,`ADD_TAGS`)&&(typeof e.ADD_TAGS==`function`?z.tagCheck=e.ADD_TAGS:_(e.ADD_TAGS)&&(F===tt&&(F=k(F)),D(F,e.ADD_TAGS,q))),x(e,`ADD_ATTR`)&&(typeof e.ADD_ATTR==`function`?z.attributeCheck=e.ADD_ATTR:_(e.ADD_ATTR)&&(I===nt&&(I=k(I)),D(I,e.ADD_ATTR,q))),x(e,`ADD_URI_SAFE_ATTR`)&&_(e.ADD_URI_SAFE_ATTR)&&D(xt,e.ADD_URI_SAFE_ATTR,q),x(e,`FORBID_CONTENTS`)&&_(e.FORBID_CONTENTS)&&(W===vt&&(W=k(W)),D(W,e.FORBID_CONTENTS,q)),x(e,`ADD_FORBID_CONTENTS`)&&_(e.ADD_FORBID_CONTENTS)&&(W===vt&&(W=k(W)),D(W,e.ADD_FORBID_CONTENTS,q)),gt&&(F[`#text`]=!0),V&&D(F,[`html`,`head`,`body`]),F.table&&(D(F,[`tbody`]),delete R.tbody),e.TRUSTED_TYPES_POLICY){if(typeof e.TRUSTED_TYPES_POLICY.createHTML!=`function`)throw w(`TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.`);if(typeof e.TRUSTED_TYPES_POLICY.createScriptURL!=`function`)throw w(`TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.`);let t=O;O=e.TRUSTED_TYPES_POLICY;try{M=N(``)}catch(e){throw O=t,e}}else O===void 0&&e.TRUSTED_TYPES_POLICY!==null&&(O=Ie(f,i)),O&&typeof M==`string`&&(M=N(``));(P.uponSanitizeElement.length>0||P.uponSanitizeAttribute.length>0)&&F===tt&&(F=k(F)),P.uponSanitizeAttribute.length>0&&I===nt&&(I=k(I)),d&&d(e),J=e},It=D({},[...he,...ge,..._e]),Lt=D({},[...ve,...ye]),Rt=function(e){let t=y(e);(!t||!t.tagName)&&(t={namespaceURI:K,tagName:`template`});let n=ae(e.tagName),r=ae(t.tagName);return Et[e.namespaceURI]?e.namespaceURI===wt?t.namespaceURI===G?n===`svg`:t.namespaceURI===Ct?n===`svg`&&(r===`annotation-xml`||Ot[r]):!!It[n]:e.namespaceURI===Ct?t.namespaceURI===G?n===`math`:t.namespaceURI===wt?n===`math`&&kt[r]:!!Lt[n]:e.namespaceURI===G?t.namespaceURI===wt&&!kt[r]||t.namespaceURI===Ct&&!Ot[r]?!1:!Lt[n]&&(At[n]||!It[n]):!!(jt===`application/xhtml+xml`&&Et[e.namespaceURI]):!1},Y=function(e){g(t.removed,{element:e});try{y(e).removeChild(e)}catch{te(e)}},X=function(e,n){try{g(t.removed,{attribute:n.getAttributeNode(e),from:n})}catch{g(t.removed,{attribute:null,from:n})}if(n.removeAttribute(e),e===`is`)if(H||dt)try{Y(n)}catch{}else try{n.setAttribute(e,``)}catch{}},zt=function(e){let t=null,r=null;if(ut)e=`<remove></remove>`+e;else{let t=se(e,/^[\r\n\t ]+/);r=t&&t[0]}jt===`application/xhtml+xml`&&K===G&&(e=`<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>`+e+`</body></html>`);let i=O?N(e):e;if(K===G)try{t=new u().parseFromString(i,jt)}catch{}if(!t||!t.documentElement){t=Ve.createDocument(K,`template`,null);try{t.documentElement.innerHTML=Tt?M:i}catch{}}let a=t.body||t.documentElement;return e&&r&&a.insertBefore(n.createTextNode(r),a.childNodes[0]||null),K===G?We.call(t,V?`html`:`body`)[0]:V?t.documentElement:a},Bt=function(e){return He.call(e.ownerDocument||e,e,l.SHOW_ELEMENT|l.SHOW_COMMENT|l.SHOW_TEXT|l.SHOW_PROCESSING_INSTRUCTION|l.SHOW_CDATA_SECTION,null)},Vt=function(e){e.normalize();let t=He.call(e.ownerDocument||e,e,l.SHOW_TEXT|l.SHOW_COMMENT|l.SHOW_CDATA_SECTION|l.SHOW_PROCESSING_INSTRUCTION,null),n=t.nextNode();for(;n;){let e=n.data;h([Ke,qe,Je],t=>{e=v(e,t,` `)}),n.data=e,n=t.nextNode()}let r=e.querySelectorAll?.call(e,`template`)??[];h(Array.from(r),e=>{Z(e.content)&&Vt(e.content)})},Ht=function(e){let t=E?E(e):null;return typeof t!=`string`||q(t)!==`form`?!1:typeof e.nodeName!=`string`||typeof e.textContent!=`string`||typeof e.removeChild!=`function`||e.attributes!==S(e)||typeof e.removeAttribute!=`function`||typeof e.setAttribute!=`function`||typeof e.namespaceURI!=`string`||typeof e.insertBefore!=`function`||typeof e.hasChildNodes!=`function`||e.nodeType!==T(e)||e.childNodes!==de(e)},Z=function(e){if(!T||typeof e!=`object`||!e)return!1;try{return T(e)===j.documentFragment}catch{return!1}},Ut=function(e){if(!T||typeof e!=`object`||!e)return!1;try{return typeof T(e)==`number`}catch{return!1}};function Q(e,n,r){h(e,e=>{e.call(t,n,r,J)})}let Wt=function(e){let n=null;if(Q(P.beforeSanitizeElements,e,null),Ht(e))return Y(e),!0;let r=q(E?E(e):e.nodeName);if(Q(P.uponSanitizeElement,e,{tagName:r,allowedTags:F}),ct&&e.hasChildNodes()&&!Ut(e.firstElementChild)&&C(/<[/\w!]/g,e.innerHTML)&&C(/<[/\w!]/g,e.textContent)||ct&&e.namespaceURI===G&&r===`style`&&Ut(e.firstElementChild)||e.nodeType===j.progressingInstruction||ct&&e.nodeType===j.comment&&C(/<[/\w]/g,e.data))return Y(e),!0;if(R[r]||!(z.tagCheck instanceof Function&&z.tagCheck(r))&&!F[r]){if(!R[r]&&qt(r)&&(L.tagNameCheck instanceof RegExp&&C(L.tagNameCheck,r)||L.tagNameCheck instanceof Function&&L.tagNameCheck(r)))return!1;if(gt&&!W[r]){let t=y(e),n=de(e);if(n&&t){let r=n.length;for(let i=r-1;i>=0;--i){let r=ee(n[i],!0);t.insertBefore(r,ue(e))}}}return Y(e),!0}return(T?T(e):e.nodeType)===j.element&&!Rt(e)||(r===`noscript`||r===`noembed`||r===`noframes`)&&C(/<\/no(script|embed|frames)/i,e.innerHTML)?(Y(e),!0):(B&&e.nodeType===j.text&&(n=e.textContent,h([Ke,qe,Je],e=>{n=v(n,e,` `)}),e.textContent!==n&&(g(t.removed,{element:e.cloneNode()}),e.textContent=n)),Q(P.afterSanitizeElements,e,null),!1)},Gt=function(e,t,r){if(rt[t]||pt&&(t===`id`||t===`name`)&&(r in n||r in Nt))return!1;let i=I[t]||z.attributeCheck instanceof Function&&z.attributeCheck(t,e);if(!(at&&!rt[t]&&C(Ye,t))&&!(it&&C(Xe,t))){if(!i||rt[t]){if(!(qt(e)&&(L.tagNameCheck instanceof RegExp&&C(L.tagNameCheck,e)||L.tagNameCheck instanceof Function&&L.tagNameCheck(e))&&(L.attributeNameCheck instanceof RegExp&&C(L.attributeNameCheck,t)||L.attributeNameCheck instanceof Function&&L.attributeNameCheck(t,e))||t===`is`&&L.allowCustomizedBuiltInElements&&(L.tagNameCheck instanceof RegExp&&C(L.tagNameCheck,r)||L.tagNameCheck instanceof Function&&L.tagNameCheck(r))))return!1}else if(!xt[t]&&!C(et,v(r,Qe,``))&&!((t===`src`||t===`xlink:href`||t===`href`)&&e!==`script`&&ce(r,`data:`)===0&&yt[e])&&!(ot&&!C(Ze,v(r,Qe,``)))&&r)return!1}return!0},Kt=D({},[`annotation-xml`,`color-profile`,`font-face`,`font-face-format`,`font-face-name`,`font-face-src`,`font-face-uri`,`missing-glyph`]),qt=function(e){return!Kt[ae(e)]&&C($e,e)},Jt=function(e){Q(P.beforeSanitizeAttributes,e,null);let n=e.attributes;if(!n||Ht(e))return;let r={attrName:``,attrValue:``,keepAttr:!0,allowedAttributes:I,forceKeepAttr:void 0},i=n.length;for(;i--;){let a=n[i],o=a.name,s=a.namespaceURI,c=a.value,l=q(o),u=c,d=o===`value`?u:le(u);if(r.attrName=l,r.attrValue=d,r.keepAttr=!0,r.forceKeepAttr=void 0,Q(P.uponSanitizeAttribute,e,r),d=r.attrValue,mt&&(l===`id`||l===`name`)&&ce(d,ht)!==0&&(X(o,e),d=ht+d),ct&&C(/((--!?|])>)|<\/(style|script|title|xmp|textarea|noscript|iframe|noembed|noframes)/i,d)){X(o,e);continue}if(l===`attributename`&&se(d,`href`)){X(o,e);continue}if(r.forceKeepAttr)continue;if(!r.keepAttr){X(o,e);continue}if(!st&&C(/\/>/i,d)){X(o,e);continue}B&&h([Ke,qe,Je],e=>{d=v(d,e,` `)});let p=q(e.nodeName);if(!Gt(p,l,d)){X(o,e);continue}if(O&&typeof f==`object`&&typeof f.getAttributeType==`function`&&!s)switch(f.getAttributeType(p,l)){case`TrustedHTML`:d=N(d);break;case`TrustedScriptURL`:d=O.createScriptURL(d);break}if(d!==u)try{s?e.setAttributeNS(s,o,d):e.setAttribute(o,d),Ht(e)?Y(e):re(t.removed)}catch{X(o,e)}}Q(P.afterSanitizeAttributes,e,null)},Yt=function(e){let t=null,n=Bt(e);for(Q(P.beforeSanitizeShadowDOM,e,null);t=n.nextNode();)if(Q(P.uponSanitizeShadowNode,t,null),Wt(t),Jt(t),Z(t.content)&&Yt(t.content),(T?T(t):t.nodeType)===j.element){let e=b?b(t):t.shadowRoot;Z(e)&&($(e),Yt(e))}Q(P.afterSanitizeShadowDOM,e,null)},$=function(e){let t=T?T(e):e.nodeType;if(t===j.element){let t=b?b(e):e.shadowRoot;Z(t)&&($(t),Yt(t))}let n=de?de(e):e.childNodes;if(!n)return;let r=[];h(n,e=>{g(r,e)});for(let e of r)$(e);if(t===j.element){let t=E?E(e):null;if(typeof t==`string`&&q(t)===`template`){let t=e.content;Z(t)&&$(t)}}};return t.sanitize=function(e){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=null,a=null,o=null,s=null;if(Tt=!e,Tt&&(e=`<!-->`),typeof e!=`string`&&!Ut(e)&&(e=fe(e),typeof e!=`string`))throw w(`dirty is not a string, aborting`);if(!t.isSupported)return e;if(lt||Ft(n),t.removed=[],typeof e==`string`&&(_t=!1),_t){let t=E?E(e):e.nodeName;if(typeof t==`string`){let e=q(t);if(!F[e]||R[e])throw w(`root node is forbidden and cannot be sanitized in-place`)}if(Ht(e))throw w(`root node is clobbered and cannot be sanitized in-place`);$(e)}else if(Ut(e))i=zt(`<!---->`),a=i.ownerDocument.importNode(e,!0),a.nodeType===j.element&&a.nodeName===`BODY`||a.nodeName===`HTML`?i=a:i.appendChild(a),$(a);else{if(!H&&!B&&!V&&e.indexOf(`<`)===-1)return O&&ft?N(e):e;if(i=zt(e),!i)return H?null:ft?M:``}i&&ut&&Y(i.firstChild);let c=Bt(_t?e:i);for(;o=c.nextNode();)Wt(o),Jt(o),Z(o.content)&&Yt(o.content);if(_t)return B&&Vt(e),e;if(H){if(B&&Vt(i),dt)for(s=Ue.call(i.ownerDocument);i.firstChild;)s.appendChild(i.firstChild);else s=i;return(I.shadowroot||I.shadowrootmode)&&(s=Ge.call(r,s,!0)),s}let l=V?i.outerHTML:i.innerHTML;return V&&F[`!doctype`]&&i.ownerDocument&&i.ownerDocument.doctype&&i.ownerDocument.doctype.name&&C(Ne,i.ownerDocument.doctype.name)&&(l=`<!DOCTYPE `+i.ownerDocument.doctype.name+`>
3
+ `+l),B&&h([Ke,qe,Je],e=>{l=v(l,e,` `)}),O&&ft?N(l):l},t.setConfig=function(){Ft(arguments.length>0&&arguments[0]!==void 0?arguments[0]:{}),lt=!0},t.clearConfig=function(){J=null,lt=!1},t.isValidAttribute=function(e,t,n){return J||Ft({}),Gt(q(e),q(t),n)},t.addHook=function(e,t){typeof t==`function`&&g(P[e],t)},t.removeHook=function(e,t){if(t!==void 0){let n=ne(P[e],t);return n===-1?void 0:ie(P[e],n,1)[0]}return re(P[e])},t.removeHooks=function(e){P[e]=[]},t.removeAllHooks=function(){P=Le()},t}var M=Re();export{M as default};
@@ -5,9 +5,9 @@
5
5
  <link rel="icon" type="image/svg+xml" href="/vite.svg" />
6
6
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
7
7
  <title>Intlayer Editor</title>
8
- <script type="module" crossorigin src="/assets/index-bVSusa0N.js"></script>
8
+ <script type="module" crossorigin src="/assets/index-DJVEpj0g.js"></script>
9
9
  <link rel="modulepreload" crossorigin href="/assets/chunk-Cyuzqnbw.js">
10
- <link rel="stylesheet" crossorigin href="/assets/index-CTSrsWZb.css">
10
+ <link rel="stylesheet" crossorigin href="/assets/index-DIJj_-IN.css">
11
11
  </head>
12
12
  <body>
13
13
  <div id="root"></div>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "intlayer-editor",
3
- "version": "8.12.2",
3
+ "version": "8.12.3",
4
4
  "private": false,
5
5
  "description": "Integrate the Intlayer visual editor into your Intlayer projects, enabling CMS-like content management with multilingual support.",
6
6
  "keywords": [
@@ -93,21 +93,21 @@
93
93
  "@fastify/formbody": "8.0.2",
94
94
  "@fastify/helmet": "13.0.2",
95
95
  "@fastify/static": "9.1.3",
96
- "@intlayer/chokidar": "8.12.2",
97
- "@intlayer/config": "8.12.2",
98
- "@intlayer/unmerged-dictionaries-entry": "8.12.2",
96
+ "@intlayer/chokidar": "8.12.3",
97
+ "@intlayer/config": "8.12.3",
98
+ "@intlayer/unmerged-dictionaries-entry": "8.12.3",
99
99
  "fastify": "5.8.5",
100
- "fastify-intlayer": "8.12.2",
100
+ "fastify-intlayer": "8.12.3",
101
101
  "mime": "4.1.0"
102
102
  },
103
103
  "devDependencies": {
104
- "@intlayer/design-system": "8.12.2",
105
- "@intlayer/editor-react": "8.12.2",
106
- "@intlayer/types": "8.12.2",
104
+ "@intlayer/design-system": "8.12.3",
105
+ "@intlayer/editor-react": "8.12.3",
106
+ "@intlayer/types": "8.12.3",
107
107
  "@rolldown/plugin-babel": "0.2.3",
108
108
  "@tailwindcss/vite": "4.3.0",
109
109
  "@tanstack/react-query": "5.101.0",
110
- "@types/node": "25.9.1",
110
+ "@types/node": "25.9.2",
111
111
  "@types/react": "19.2.17",
112
112
  "@types/react-dom": "19.2.3",
113
113
  "@utils/ts-config": "1.0.4",
@@ -115,19 +115,19 @@
115
115
  "autoprefixer": "10.5.0",
116
116
  "babel-plugin-react-compiler": "1.0.0",
117
117
  "framer-motion": "12.40.0",
118
- "fuse.js": "7.4.1",
118
+ "fuse.js": "7.4.2",
119
119
  "globals": "17.6.0",
120
- "intlayer": "8.12.2",
120
+ "intlayer": "8.12.3",
121
121
  "lucide-react": "1.17.0",
122
122
  "react": "19.2.7",
123
123
  "react-dom": "19.2.7",
124
- "react-intlayer": "8.12.2",
125
- "react-router-dom": "7.15.0",
124
+ "react-intlayer": "8.12.3",
125
+ "react-router-dom": "7.15.1",
126
126
  "tailwindcss": "4.3.0",
127
- "tsdown": "0.22.1",
127
+ "tsdown": "0.21.10",
128
128
  "typescript": "6.0.3",
129
129
  "vite": "8.0.16",
130
- "vite-intlayer": "8.12.2",
130
+ "vite-intlayer": "8.12.3",
131
131
  "vitest": "4.1.8"
132
132
  },
133
133
  "engines": {
@@ -0,0 +1 @@
1
+ import { DictionaryStatus } from "./writeContentDeclaration/dictionaryStatus.js";
@@ -0,0 +1,2 @@
1
+ import { IntlayerConfig } from "@intlayer/types/config";
2
+ import { Dictionary } from "@intlayer/types/dictionary";
@@ -0,0 +1,2 @@
1
+ import { IntlayerConfig } from "@intlayer/types/config";
2
+ import { Dictionary } from "@intlayer/types/dictionary";
@@ -0,0 +1,2 @@
1
+ import { IntlayerConfig } from "@intlayer/types/config";
2
+ import { Dictionary } from "@intlayer/types/dictionary";
@@ -0,0 +1,2 @@
1
+ import { IntlayerConfig } from "@intlayer/types/config";
2
+ import { Dictionary } from "@intlayer/types/dictionary";
@@ -0,0 +1,2 @@
1
+ import { IntlayerConfig } from "@intlayer/types/config";
2
+ import { Dictionary } from "@intlayer/types/dictionary";
@@ -0,0 +1 @@
1
+ import { IntlayerConfig } from "@intlayer/types/config";
@@ -0,0 +1 @@
1
+ import { IntlayerConfig } from "@intlayer/types/config";
@@ -0,0 +1 @@
1
+ import { IntlayerConfig } from "@intlayer/types/config";
@@ -0,0 +1 @@
1
+ import { IntlayerConfig } from "@intlayer/types/config";
@@ -0,0 +1 @@
1
+ import { IntlayerConfig } from "@intlayer/types/config";
@@ -0,0 +1 @@
1
+ import { IntlayerConfig } from "@intlayer/types/config";
@@ -0,0 +1 @@
1
+ import { IntlayerConfig } from "@intlayer/types/config";
@@ -0,0 +1,2 @@
1
+ import { IntlayerConfig } from "@intlayer/types/config";
2
+ import { Dictionary } from "@intlayer/types/dictionary";
@@ -0,0 +1 @@
1
+ import { Dictionary } from "@intlayer/types/dictionary";
@@ -0,0 +1,2 @@
1
+ import { IntlayerConfig } from "@intlayer/types/config";
2
+ import { Dictionary } from "@intlayer/types/dictionary";
@@ -0,0 +1,2 @@
1
+ import { IntlayerConfig } from "@intlayer/types/config";
2
+ import { Dictionary } from "@intlayer/types/dictionary";
@@ -0,0 +1,2 @@
1
+ import { IntlayerConfig } from "@intlayer/types/config";
2
+ import { Dictionary } from "@intlayer/types/dictionary";
@@ -0,0 +1 @@
1
+ import { Dictionary } from "@intlayer/types/dictionary";
@@ -0,0 +1 @@
1
+ import { IntlayerConfig } from "@intlayer/types/config";
@@ -0,0 +1 @@
1
+ import { IntlayerConfig } from "@intlayer/types/config";
@@ -0,0 +1,6 @@
1
+ //#region ../../@intlayer/chokidar/dist/types/writeContentDeclaration/dictionaryStatus.d.ts
2
+ //#region src/writeContentDeclaration/dictionaryStatus.d.ts
3
+ type DictionaryStatus = 'pending' | 'fetching' | 'up-to-date' | 'replaced' | 'updated' | 'fetched' | 'unknown' | 'error' | 'imported' | 'reimported in JSON' | 'new content file' | 'created'; //#endregion
4
+ //#endregion
5
+ export { DictionaryStatus };
6
+ //# sourceMappingURL=dictionaryStatus.d.ts.map
@@ -0,0 +1 @@
1
+ import { Dictionary } from "@intlayer/types/dictionary";
@@ -0,0 +1,2 @@
1
+ import { IntlayerConfig } from "@intlayer/types/config";
2
+ import { Dictionary } from "@intlayer/types/dictionary";
@@ -0,0 +1,2 @@
1
+ import { IntlayerConfig } from "@intlayer/types/config";
2
+ import { Dictionary } from "@intlayer/types/dictionary";
@@ -0,0 +1 @@
1
+ import { Dictionary } from "@intlayer/types/dictionary";
@@ -0,0 +1 @@
1
+ import { Dictionary } from "@intlayer/types/dictionary";
@@ -0,0 +1 @@
1
+ import { Dictionary } from "@intlayer/types/dictionary";
@@ -0,0 +1 @@
1
+ import { Dictionary } from "@intlayer/types/dictionary";
@@ -1,4 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
+ const require_runtime = require('../_virtual/_rolldown/runtime.cjs');
2
3
  const require_utils_responseData = require('../utils/responseData.cjs');
3
4
  let _intlayer_config_node = require("@intlayer/config/node");
4
5
 
@@ -1 +1 @@
1
- {"version":3,"file":"configuration.controller.cjs","names":["formatResponse"],"sources":["../../src/controllers/configuration.controller.ts"],"sourcesContent":["import { getConfiguration as getApplicationConfiguration } from '@intlayer/config/node';\nimport type { IntlayerConfig } from '@intlayer/types/config';\nimport { formatResponse, type ResponseData } from '@utils/responseData';\nimport type { FastifyReply, FastifyRequest } from 'fastify';\n\nexport type GetConfigurationResult = ResponseData<IntlayerConfig>;\n\n/**\n * Get the Intlayer configuration\n */\nexport const getConfiguration = async (\n _req: FastifyRequest,\n res: FastifyReply\n): Promise<void> => {\n try {\n const config = getApplicationConfiguration();\n\n const formattedResponse = formatResponse<IntlayerConfig>({\n data: config,\n });\n\n return res.send(formattedResponse);\n } catch (err) {\n const errorMessage = (err as { message?: string; status?: number }) ?? {\n message: 'Internal Server Error',\n status: 500,\n };\n\n const formattedErrorResponse = formatResponse<IntlayerConfig>({\n error: {\n message: errorMessage.message ?? 'Internal Server Error',\n code: 'INTERNAL_SERVER_ERROR',\n title: 'Internal Server Error',\n },\n status: errorMessage.status ?? 500,\n });\n\n return res.send(formattedErrorResponse);\n }\n};\n"],"mappings":";;;;;;;;AAUA,MAAa,mBAAmB,OAC9B,MACA,QACkB;CAClB,IAAI;EAGF,MAAM,oBAAoBA,0CAA+B,EACvD,kDAAW,EACb,CAAC;EAED,OAAO,IAAI,KAAK,iBAAiB;CACnC,SAAS,KAAK;EACZ,MAAM,eAAgB,OAAiD;GACrE,SAAS;GACT,QAAQ;EACV;EAEA,MAAM,yBAAyBA,0CAA+B;GAC5D,OAAO;IACL,SAAS,aAAa,WAAW;IACjC,MAAM;IACN,OAAO;GACT;GACA,QAAQ,aAAa,UAAU;EACjC,CAAC;EAED,OAAO,IAAI,KAAK,sBAAsB;CACxC;AACF"}
1
+ {"version":3,"file":"configuration.controller.cjs","names":["formatResponse"],"sources":["../../src/controllers/configuration.controller.ts"],"sourcesContent":["import { getConfiguration as getApplicationConfiguration } from '@intlayer/config/node';\nimport type { IntlayerConfig } from '@intlayer/types/config';\nimport { formatResponse, type ResponseData } from '@utils/responseData';\nimport type { FastifyReply, FastifyRequest } from 'fastify';\n\nexport type GetConfigurationResult = ResponseData<IntlayerConfig>;\n\n/**\n * Get the Intlayer configuration\n */\nexport const getConfiguration = async (\n _req: FastifyRequest,\n res: FastifyReply\n): Promise<void> => {\n try {\n const config = getApplicationConfiguration();\n\n const formattedResponse = formatResponse<IntlayerConfig>({\n data: config,\n });\n\n return res.send(formattedResponse);\n } catch (err) {\n const errorMessage = (err as { message?: string; status?: number }) ?? {\n message: 'Internal Server Error',\n status: 500,\n };\n\n const formattedErrorResponse = formatResponse<IntlayerConfig>({\n error: {\n message: errorMessage.message ?? 'Internal Server Error',\n code: 'INTERNAL_SERVER_ERROR',\n title: 'Internal Server Error',\n },\n status: errorMessage.status ?? 500,\n });\n\n return res.send(formattedErrorResponse);\n }\n};\n"],"mappings":";;;;;;;;;AAUA,MAAa,mBAAmB,OAC9B,MACA,QACkB;AAClB,KAAI;EAGF,MAAM,oBAAoBA,0CAA+B,EACvD,mDAAY,EACb,CAAC;AAEF,SAAO,IAAI,KAAK,kBAAkB;UAC3B,KAAK;EACZ,MAAM,eAAgB,OAAiD;GACrE,SAAS;GACT,QAAQ;GACT;EAED,MAAM,yBAAyBA,0CAA+B;GAC5D,OAAO;IACL,SAAS,aAAa,WAAW;IACjC,MAAM;IACN,OAAO;IACR;GACD,QAAQ,aAAa,UAAU;GAChC,CAAC;AAEF,SAAO,IAAI,KAAK,uBAAuB"}
@@ -1 +1 @@
1
- {"version":3,"file":"configuration.controller.mjs","names":["getApplicationConfiguration"],"sources":["../../src/controllers/configuration.controller.ts"],"sourcesContent":["import { getConfiguration as getApplicationConfiguration } from '@intlayer/config/node';\nimport type { IntlayerConfig } from '@intlayer/types/config';\nimport { formatResponse, type ResponseData } from '@utils/responseData';\nimport type { FastifyReply, FastifyRequest } from 'fastify';\n\nexport type GetConfigurationResult = ResponseData<IntlayerConfig>;\n\n/**\n * Get the Intlayer configuration\n */\nexport const getConfiguration = async (\n _req: FastifyRequest,\n res: FastifyReply\n): Promise<void> => {\n try {\n const config = getApplicationConfiguration();\n\n const formattedResponse = formatResponse<IntlayerConfig>({\n data: config,\n });\n\n return res.send(formattedResponse);\n } catch (err) {\n const errorMessage = (err as { message?: string; status?: number }) ?? {\n message: 'Internal Server Error',\n status: 500,\n };\n\n const formattedErrorResponse = formatResponse<IntlayerConfig>({\n error: {\n message: errorMessage.message ?? 'Internal Server Error',\n code: 'INTERNAL_SERVER_ERROR',\n title: 'Internal Server Error',\n },\n status: errorMessage.status ?? 500,\n });\n\n return res.send(formattedErrorResponse);\n }\n};\n"],"mappings":";;;;;;;AAUA,MAAa,mBAAmB,OAC9B,MACA,QACkB;CAClB,IAAI;EAGF,MAAM,oBAAoB,eAA+B,EACvD,MAHaA,mBAGF,EACb,CAAC;EAED,OAAO,IAAI,KAAK,iBAAiB;CACnC,SAAS,KAAK;EACZ,MAAM,eAAgB,OAAiD;GACrE,SAAS;GACT,QAAQ;EACV;EAEA,MAAM,yBAAyB,eAA+B;GAC5D,OAAO;IACL,SAAS,aAAa,WAAW;IACjC,MAAM;IACN,OAAO;GACT;GACA,QAAQ,aAAa,UAAU;EACjC,CAAC;EAED,OAAO,IAAI,KAAK,sBAAsB;CACxC;AACF"}
1
+ {"version":3,"file":"configuration.controller.mjs","names":["getApplicationConfiguration"],"sources":["../../src/controllers/configuration.controller.ts"],"sourcesContent":["import { getConfiguration as getApplicationConfiguration } from '@intlayer/config/node';\nimport type { IntlayerConfig } from '@intlayer/types/config';\nimport { formatResponse, type ResponseData } from '@utils/responseData';\nimport type { FastifyReply, FastifyRequest } from 'fastify';\n\nexport type GetConfigurationResult = ResponseData<IntlayerConfig>;\n\n/**\n * Get the Intlayer configuration\n */\nexport const getConfiguration = async (\n _req: FastifyRequest,\n res: FastifyReply\n): Promise<void> => {\n try {\n const config = getApplicationConfiguration();\n\n const formattedResponse = formatResponse<IntlayerConfig>({\n data: config,\n });\n\n return res.send(formattedResponse);\n } catch (err) {\n const errorMessage = (err as { message?: string; status?: number }) ?? {\n message: 'Internal Server Error',\n status: 500,\n };\n\n const formattedErrorResponse = formatResponse<IntlayerConfig>({\n error: {\n message: errorMessage.message ?? 'Internal Server Error',\n code: 'INTERNAL_SERVER_ERROR',\n title: 'Internal Server Error',\n },\n status: errorMessage.status ?? 500,\n });\n\n return res.send(formattedErrorResponse);\n }\n};\n"],"mappings":";;;;;;;AAUA,MAAa,mBAAmB,OAC9B,MACA,QACkB;AAClB,KAAI;EAGF,MAAM,oBAAoB,eAA+B,EACvD,MAHaA,oBAGD,EACb,CAAC;AAEF,SAAO,IAAI,KAAK,kBAAkB;UAC3B,KAAK;EACZ,MAAM,eAAgB,OAAiD;GACrE,SAAS;GACT,QAAQ;GACT;EAED,MAAM,yBAAyB,eAA+B;GAC5D,OAAO;IACL,SAAS,aAAa,WAAW;IACjC,MAAM;IACN,OAAO;IACR;GACD,QAAQ,aAAa,UAAU;GAChC,CAAC;AAEF,SAAO,IAAI,KAAK,uBAAuB"}
@@ -1,4 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
+ const require_runtime = require('../_virtual/_rolldown/runtime.cjs');
2
3
  const require_utils_responseData = require('../utils/responseData.cjs');
3
4
  let _intlayer_config_node = require("@intlayer/config/node");
4
5
  let node_path = require("node:path");
@@ -1 +1 @@
1
- {"version":3,"file":"dictionary.controller.cjs","names":["formatResponse"],"sources":["../../src/controllers/dictionary.controller.ts"],"sourcesContent":["import { join } from 'node:path';\nimport {\n type DictionaryStatus,\n writeContentDeclaration as writeContentDeclarationEditor,\n} from '@intlayer/chokidar/build';\nimport { getConfiguration } from '@intlayer/config/node';\nimport { clearModuleCache } from '@intlayer/config/utils';\nimport type { Dictionary } from '@intlayer/types/dictionary';\nimport {\n getUnmergedDictionaries,\n type UnmergedDictionaries,\n} from '@intlayer/unmerged-dictionaries-entry';\nimport { formatResponse, type ResponseData } from '@utils/responseData';\nimport type { FastifyReply, FastifyRequest } from 'fastify';\nimport { t } from 'fastify-intlayer';\n\nexport type GetEditorDictionariesResult = ResponseData<UnmergedDictionaries>;\n\n/**\n * Get the Intlayer configuration\n */\nexport const getDictionaries = async (\n _req: FastifyRequest,\n res: FastifyReply\n): Promise<void> => {\n try {\n const formattedResponse = formatResponse<UnmergedDictionaries>({\n data: getUnmergedDictionaries(),\n });\n\n return res.send(formattedResponse);\n } catch (err) {\n const errorMessage = (err as { message?: string; status?: number }) ?? {\n message: 'Internal Server Error',\n status: 500,\n };\n\n const formattedErrorResponse = formatResponse<UnmergedDictionaries>({\n error: {\n message: errorMessage.message ?? 'Internal Server Error',\n code: 'INTERNAL_SERVER_ERROR',\n title: 'Internal Server Error',\n },\n status: errorMessage.status ?? 500,\n });\n\n return res.send(formattedErrorResponse);\n }\n};\n\nexport type WriteContentDeclarationBody = { dictionary: Dictionary };\ntype WriteContentDeclarationResultData = {\n status: DictionaryStatus;\n path: string;\n};\nexport type WriteContentDeclarationResult =\n ResponseData<WriteContentDeclarationResultData>;\n\n/**\n * Adds a new dictionary to the database.\n */\nexport const writeContentDeclaration = async (\n req: FastifyRequest<{ Body: WriteContentDeclarationBody }>,\n res: FastifyReply\n): Promise<void> => {\n try {\n const dictionaryData = req.body.dictionary;\n\n const config = getConfiguration();\n\n const result = await writeContentDeclarationEditor(dictionaryData, config);\n\n // Clear cache to hot reload the dictionaries\n const dictionariesPath = join(\n config.system.mainDir,\n `unmerged_dictionaries.cjs`\n );\n clearModuleCache(dictionariesPath);\n\n let description = '';\n\n switch (result.status) {\n case 'created': {\n description = t({\n en: 'Content declaration created successfully',\n fr: 'Déclaration de contenu créée avec succès',\n es: 'Declaración de contenido creada con éxito',\n });\n break;\n }\n\n case 'updated': {\n description = t({\n en: 'Content declaration updated successfully',\n fr: 'Déclaration de contenu mise à jour avec succès',\n es: 'Declaración de contenido actualizada con éxito',\n });\n break;\n }\n case 'reimported in JSON': {\n description = t({\n en: 'Content declaration reimported in JSON successfully',\n fr: 'Déclaration de contenu réimportée en JSON avec succès',\n es: 'Declaración de contenido reimportada en JSON con éxito',\n });\n break;\n }\n case 'new content file': {\n description = t({\n en: 'Content declaration new content file successfully',\n fr: 'Déclaration de contenu réimportée dans un nouveau emplacement avec succès',\n es: 'Declaración de contenido reimportada en un nuevo lugar con éxito',\n });\n break;\n }\n default: {\n description = t({\n en: 'Content declaration written successfully',\n fr: 'Déclaration de contenu écrite avec succès',\n es: 'Declaración de contenido escrita con éxito',\n });\n break;\n }\n }\n\n const formattedResponse = formatResponse<WriteContentDeclarationResultData>(\n {\n data: result,\n message: t({\n en: 'Content declaration written',\n fr: 'Déclaration de contenu écrite',\n es: 'Declaración de contenido escrita',\n }),\n description,\n }\n );\n\n return res.send(formattedResponse);\n } catch (err) {\n const errorMessage = (err as { message?: string; status?: number }) ?? {\n message: 'Internal Server Error',\n status: 500,\n };\n\n console.error(errorMessage);\n\n const formattedErrorResponse =\n formatResponse<WriteContentDeclarationResultData>({\n error: {\n message: errorMessage.message ?? 'Internal Server Error',\n code: 'INTERNAL_SERVER_ERROR',\n title: 'Internal Server Error',\n },\n status: errorMessage.status ?? 500,\n });\n\n return res.send(formattedErrorResponse);\n }\n};\n"],"mappings":";;;;;;;;;;;;;AAqBA,MAAa,kBAAkB,OAC7B,MACA,QACkB;CAClB,IAAI;EACF,MAAM,oBAAoBA,0CAAqC,EAC7D,yEAA8B,EAChC,CAAC;EAED,OAAO,IAAI,KAAK,iBAAiB;CACnC,SAAS,KAAK;EACZ,MAAM,eAAgB,OAAiD;GACrE,SAAS;GACT,QAAQ;EACV;EAEA,MAAM,yBAAyBA,0CAAqC;GAClE,OAAO;IACL,SAAS,aAAa,WAAW;IACjC,MAAM;IACN,OAAO;GACT;GACA,QAAQ,aAAa,UAAU;EACjC,CAAC;EAED,OAAO,IAAI,KAAK,sBAAsB;CACxC;AACF;;;;AAaA,MAAa,0BAA0B,OACrC,KACA,QACkB;CAClB,IAAI;EACF,MAAM,iBAAiB,IAAI,KAAK;EAEhC,MAAM,qDAA0B;EAEhC,MAAM,SAAS,4DAAoC,gBAAgB,MAAM;EAOzE,iEAHE,OAAO,OAAO,SACd,2BAE8B,CAAC;EAEjC,IAAI,cAAc;EAElB,QAAQ,OAAO,QAAf;GACE,KAAK;IACH,sCAAgB;KACd,IAAI;KACJ,IAAI;KACJ,IAAI;IACN,CAAC;IACD;GAGF,KAAK;IACH,sCAAgB;KACd,IAAI;KACJ,IAAI;KACJ,IAAI;IACN,CAAC;IACD;GAEF,KAAK;IACH,sCAAgB;KACd,IAAI;KACJ,IAAI;KACJ,IAAI;IACN,CAAC;IACD;GAEF,KAAK;IACH,sCAAgB;KACd,IAAI;KACJ,IAAI;KACJ,IAAI;IACN,CAAC;IACD;GAEF;IACE,sCAAgB;KACd,IAAI;KACJ,IAAI;KACJ,IAAI;IACN,CAAC;IACD;EAEJ;EAEA,MAAM,oBAAoBA,0CACxB;GACE,MAAM;GACN,iCAAW;IACT,IAAI;IACJ,IAAI;IACJ,IAAI;GACN,CAAC;GACD;EACF,CACF;EAEA,OAAO,IAAI,KAAK,iBAAiB;CACnC,SAAS,KAAK;EACZ,MAAM,eAAgB,OAAiD;GACrE,SAAS;GACT,QAAQ;EACV;EAEA,QAAQ,MAAM,YAAY;EAE1B,MAAM,yBACJA,0CAAkD;GAChD,OAAO;IACL,SAAS,aAAa,WAAW;IACjC,MAAM;IACN,OAAO;GACT;GACA,QAAQ,aAAa,UAAU;EACjC,CAAC;EAEH,OAAO,IAAI,KAAK,sBAAsB;CACxC;AACF"}
1
+ {"version":3,"file":"dictionary.controller.cjs","names":["formatResponse"],"sources":["../../src/controllers/dictionary.controller.ts"],"sourcesContent":["import { join } from 'node:path';\nimport {\n type DictionaryStatus,\n writeContentDeclaration as writeContentDeclarationEditor,\n} from '@intlayer/chokidar/build';\nimport { getConfiguration } from '@intlayer/config/node';\nimport { clearModuleCache } from '@intlayer/config/utils';\nimport type { Dictionary } from '@intlayer/types/dictionary';\nimport {\n getUnmergedDictionaries,\n type UnmergedDictionaries,\n} from '@intlayer/unmerged-dictionaries-entry';\nimport { formatResponse, type ResponseData } from '@utils/responseData';\nimport type { FastifyReply, FastifyRequest } from 'fastify';\nimport { t } from 'fastify-intlayer';\n\nexport type GetEditorDictionariesResult = ResponseData<UnmergedDictionaries>;\n\n/**\n * Get the Intlayer configuration\n */\nexport const getDictionaries = async (\n _req: FastifyRequest,\n res: FastifyReply\n): Promise<void> => {\n try {\n const formattedResponse = formatResponse<UnmergedDictionaries>({\n data: getUnmergedDictionaries(),\n });\n\n return res.send(formattedResponse);\n } catch (err) {\n const errorMessage = (err as { message?: string; status?: number }) ?? {\n message: 'Internal Server Error',\n status: 500,\n };\n\n const formattedErrorResponse = formatResponse<UnmergedDictionaries>({\n error: {\n message: errorMessage.message ?? 'Internal Server Error',\n code: 'INTERNAL_SERVER_ERROR',\n title: 'Internal Server Error',\n },\n status: errorMessage.status ?? 500,\n });\n\n return res.send(formattedErrorResponse);\n }\n};\n\nexport type WriteContentDeclarationBody = { dictionary: Dictionary };\ntype WriteContentDeclarationResultData = {\n status: DictionaryStatus;\n path: string;\n};\nexport type WriteContentDeclarationResult =\n ResponseData<WriteContentDeclarationResultData>;\n\n/**\n * Adds a new dictionary to the database.\n */\nexport const writeContentDeclaration = async (\n req: FastifyRequest<{ Body: WriteContentDeclarationBody }>,\n res: FastifyReply\n): Promise<void> => {\n try {\n const dictionaryData = req.body.dictionary;\n\n const config = getConfiguration();\n\n const result = await writeContentDeclarationEditor(dictionaryData, config);\n\n // Clear cache to hot reload the dictionaries\n const dictionariesPath = join(\n config.system.mainDir,\n `unmerged_dictionaries.cjs`\n );\n clearModuleCache(dictionariesPath);\n\n let description = '';\n\n switch (result.status) {\n case 'created': {\n description = t({\n en: 'Content declaration created successfully',\n fr: 'Déclaration de contenu créée avec succès',\n es: 'Declaración de contenido creada con éxito',\n });\n break;\n }\n\n case 'updated': {\n description = t({\n en: 'Content declaration updated successfully',\n fr: 'Déclaration de contenu mise à jour avec succès',\n es: 'Declaración de contenido actualizada con éxito',\n });\n break;\n }\n case 'reimported in JSON': {\n description = t({\n en: 'Content declaration reimported in JSON successfully',\n fr: 'Déclaration de contenu réimportée en JSON avec succès',\n es: 'Declaración de contenido reimportada en JSON con éxito',\n });\n break;\n }\n case 'new content file': {\n description = t({\n en: 'Content declaration new content file successfully',\n fr: 'Déclaration de contenu réimportée dans un nouveau emplacement avec succès',\n es: 'Declaración de contenido reimportada en un nuevo lugar con éxito',\n });\n break;\n }\n default: {\n description = t({\n en: 'Content declaration written successfully',\n fr: 'Déclaration de contenu écrite avec succès',\n es: 'Declaración de contenido escrita con éxito',\n });\n break;\n }\n }\n\n const formattedResponse = formatResponse<WriteContentDeclarationResultData>(\n {\n data: result,\n message: t({\n en: 'Content declaration written',\n fr: 'Déclaration de contenu écrite',\n es: 'Declaración de contenido escrita',\n }),\n description,\n }\n );\n\n return res.send(formattedResponse);\n } catch (err) {\n const errorMessage = (err as { message?: string; status?: number }) ?? {\n message: 'Internal Server Error',\n status: 500,\n };\n\n console.error(errorMessage);\n\n const formattedErrorResponse =\n formatResponse<WriteContentDeclarationResultData>({\n error: {\n message: errorMessage.message ?? 'Internal Server Error',\n code: 'INTERNAL_SERVER_ERROR',\n title: 'Internal Server Error',\n },\n status: errorMessage.status ?? 500,\n });\n\n return res.send(formattedErrorResponse);\n }\n};\n"],"mappings":";;;;;;;;;;;;;;AAqBA,MAAa,kBAAkB,OAC7B,MACA,QACkB;AAClB,KAAI;EACF,MAAM,oBAAoBA,0CAAqC,EAC7D,0EAA+B,EAChC,CAAC;AAEF,SAAO,IAAI,KAAK,kBAAkB;UAC3B,KAAK;EACZ,MAAM,eAAgB,OAAiD;GACrE,SAAS;GACT,QAAQ;GACT;EAED,MAAM,yBAAyBA,0CAAqC;GAClE,OAAO;IACL,SAAS,aAAa,WAAW;IACjC,MAAM;IACN,OAAO;IACR;GACD,QAAQ,aAAa,UAAU;GAChC,CAAC;AAEF,SAAO,IAAI,KAAK,uBAAuB;;;;;;AAe3C,MAAa,0BAA0B,OACrC,KACA,QACkB;AAClB,KAAI;EACF,MAAM,iBAAiB,IAAI,KAAK;EAEhC,MAAM,sDAA2B;EAEjC,MAAM,SAAS,4DAAoC,gBAAgB,OAAO;AAO1E,mEAHE,OAAO,OAAO,SACd,4BAE+B,CAAC;EAElC,IAAI,cAAc;AAElB,UAAQ,OAAO,QAAf;GACE,KAAK;AACH,0CAAgB;KACd,IAAI;KACJ,IAAI;KACJ,IAAI;KACL,CAAC;AACF;GAGF,KAAK;AACH,0CAAgB;KACd,IAAI;KACJ,IAAI;KACJ,IAAI;KACL,CAAC;AACF;GAEF,KAAK;AACH,0CAAgB;KACd,IAAI;KACJ,IAAI;KACJ,IAAI;KACL,CAAC;AACF;GAEF,KAAK;AACH,0CAAgB;KACd,IAAI;KACJ,IAAI;KACJ,IAAI;KACL,CAAC;AACF;GAEF;AACE,0CAAgB;KACd,IAAI;KACJ,IAAI;KACJ,IAAI;KACL,CAAC;AACF;;EAIJ,MAAM,oBAAoBA,0CACxB;GACE,MAAM;GACN,iCAAW;IACT,IAAI;IACJ,IAAI;IACJ,IAAI;IACL,CAAC;GACF;GACD,CACF;AAED,SAAO,IAAI,KAAK,kBAAkB;UAC3B,KAAK;EACZ,MAAM,eAAgB,OAAiD;GACrE,SAAS;GACT,QAAQ;GACT;AAED,UAAQ,MAAM,aAAa;EAE3B,MAAM,yBACJA,0CAAkD;GAChD,OAAO;IACL,SAAS,aAAa,WAAW;IACjC,MAAM;IACN,OAAO;IACR;GACD,QAAQ,aAAa,UAAU;GAChC,CAAC;AAEJ,SAAO,IAAI,KAAK,uBAAuB"}
@@ -1 +1 @@
1
- {"version":3,"file":"dictionary.controller.mjs","names":["writeContentDeclarationEditor"],"sources":["../../src/controllers/dictionary.controller.ts"],"sourcesContent":["import { join } from 'node:path';\nimport {\n type DictionaryStatus,\n writeContentDeclaration as writeContentDeclarationEditor,\n} from '@intlayer/chokidar/build';\nimport { getConfiguration } from '@intlayer/config/node';\nimport { clearModuleCache } from '@intlayer/config/utils';\nimport type { Dictionary } from '@intlayer/types/dictionary';\nimport {\n getUnmergedDictionaries,\n type UnmergedDictionaries,\n} from '@intlayer/unmerged-dictionaries-entry';\nimport { formatResponse, type ResponseData } from '@utils/responseData';\nimport type { FastifyReply, FastifyRequest } from 'fastify';\nimport { t } from 'fastify-intlayer';\n\nexport type GetEditorDictionariesResult = ResponseData<UnmergedDictionaries>;\n\n/**\n * Get the Intlayer configuration\n */\nexport const getDictionaries = async (\n _req: FastifyRequest,\n res: FastifyReply\n): Promise<void> => {\n try {\n const formattedResponse = formatResponse<UnmergedDictionaries>({\n data: getUnmergedDictionaries(),\n });\n\n return res.send(formattedResponse);\n } catch (err) {\n const errorMessage = (err as { message?: string; status?: number }) ?? {\n message: 'Internal Server Error',\n status: 500,\n };\n\n const formattedErrorResponse = formatResponse<UnmergedDictionaries>({\n error: {\n message: errorMessage.message ?? 'Internal Server Error',\n code: 'INTERNAL_SERVER_ERROR',\n title: 'Internal Server Error',\n },\n status: errorMessage.status ?? 500,\n });\n\n return res.send(formattedErrorResponse);\n }\n};\n\nexport type WriteContentDeclarationBody = { dictionary: Dictionary };\ntype WriteContentDeclarationResultData = {\n status: DictionaryStatus;\n path: string;\n};\nexport type WriteContentDeclarationResult =\n ResponseData<WriteContentDeclarationResultData>;\n\n/**\n * Adds a new dictionary to the database.\n */\nexport const writeContentDeclaration = async (\n req: FastifyRequest<{ Body: WriteContentDeclarationBody }>,\n res: FastifyReply\n): Promise<void> => {\n try {\n const dictionaryData = req.body.dictionary;\n\n const config = getConfiguration();\n\n const result = await writeContentDeclarationEditor(dictionaryData, config);\n\n // Clear cache to hot reload the dictionaries\n const dictionariesPath = join(\n config.system.mainDir,\n `unmerged_dictionaries.cjs`\n );\n clearModuleCache(dictionariesPath);\n\n let description = '';\n\n switch (result.status) {\n case 'created': {\n description = t({\n en: 'Content declaration created successfully',\n fr: 'Déclaration de contenu créée avec succès',\n es: 'Declaración de contenido creada con éxito',\n });\n break;\n }\n\n case 'updated': {\n description = t({\n en: 'Content declaration updated successfully',\n fr: 'Déclaration de contenu mise à jour avec succès',\n es: 'Declaración de contenido actualizada con éxito',\n });\n break;\n }\n case 'reimported in JSON': {\n description = t({\n en: 'Content declaration reimported in JSON successfully',\n fr: 'Déclaration de contenu réimportée en JSON avec succès',\n es: 'Declaración de contenido reimportada en JSON con éxito',\n });\n break;\n }\n case 'new content file': {\n description = t({\n en: 'Content declaration new content file successfully',\n fr: 'Déclaration de contenu réimportée dans un nouveau emplacement avec succès',\n es: 'Declaración de contenido reimportada en un nuevo lugar con éxito',\n });\n break;\n }\n default: {\n description = t({\n en: 'Content declaration written successfully',\n fr: 'Déclaration de contenu écrite avec succès',\n es: 'Declaración de contenido escrita con éxito',\n });\n break;\n }\n }\n\n const formattedResponse = formatResponse<WriteContentDeclarationResultData>(\n {\n data: result,\n message: t({\n en: 'Content declaration written',\n fr: 'Déclaration de contenu écrite',\n es: 'Declaración de contenido escrita',\n }),\n description,\n }\n );\n\n return res.send(formattedResponse);\n } catch (err) {\n const errorMessage = (err as { message?: string; status?: number }) ?? {\n message: 'Internal Server Error',\n status: 500,\n };\n\n console.error(errorMessage);\n\n const formattedErrorResponse =\n formatResponse<WriteContentDeclarationResultData>({\n error: {\n message: errorMessage.message ?? 'Internal Server Error',\n code: 'INTERNAL_SERVER_ERROR',\n title: 'Internal Server Error',\n },\n status: errorMessage.status ?? 500,\n });\n\n return res.send(formattedErrorResponse);\n }\n};\n"],"mappings":";;;;;;;;;;;;AAqBA,MAAa,kBAAkB,OAC7B,MACA,QACkB;CAClB,IAAI;EACF,MAAM,oBAAoB,eAAqC,EAC7D,MAAM,wBAAwB,EAChC,CAAC;EAED,OAAO,IAAI,KAAK,iBAAiB;CACnC,SAAS,KAAK;EACZ,MAAM,eAAgB,OAAiD;GACrE,SAAS;GACT,QAAQ;EACV;EAEA,MAAM,yBAAyB,eAAqC;GAClE,OAAO;IACL,SAAS,aAAa,WAAW;IACjC,MAAM;IACN,OAAO;GACT;GACA,QAAQ,aAAa,UAAU;EACjC,CAAC;EAED,OAAO,IAAI,KAAK,sBAAsB;CACxC;AACF;;;;AAaA,MAAa,0BAA0B,OACrC,KACA,QACkB;CAClB,IAAI;EACF,MAAM,iBAAiB,IAAI,KAAK;EAEhC,MAAM,SAAS,iBAAiB;EAEhC,MAAM,SAAS,MAAMA,0BAA8B,gBAAgB,MAAM;EAOzE,iBAJyB,KACvB,OAAO,OAAO,SACd,2BAE8B,CAAC;EAEjC,IAAI,cAAc;EAElB,QAAQ,OAAO,QAAf;GACE,KAAK;IACH,cAAc,EAAE;KACd,IAAI;KACJ,IAAI;KACJ,IAAI;IACN,CAAC;IACD;GAGF,KAAK;IACH,cAAc,EAAE;KACd,IAAI;KACJ,IAAI;KACJ,IAAI;IACN,CAAC;IACD;GAEF,KAAK;IACH,cAAc,EAAE;KACd,IAAI;KACJ,IAAI;KACJ,IAAI;IACN,CAAC;IACD;GAEF,KAAK;IACH,cAAc,EAAE;KACd,IAAI;KACJ,IAAI;KACJ,IAAI;IACN,CAAC;IACD;GAEF;IACE,cAAc,EAAE;KACd,IAAI;KACJ,IAAI;KACJ,IAAI;IACN,CAAC;IACD;EAEJ;EAEA,MAAM,oBAAoB,eACxB;GACE,MAAM;GACN,SAAS,EAAE;IACT,IAAI;IACJ,IAAI;IACJ,IAAI;GACN,CAAC;GACD;EACF,CACF;EAEA,OAAO,IAAI,KAAK,iBAAiB;CACnC,SAAS,KAAK;EACZ,MAAM,eAAgB,OAAiD;GACrE,SAAS;GACT,QAAQ;EACV;EAEA,QAAQ,MAAM,YAAY;EAE1B,MAAM,yBACJ,eAAkD;GAChD,OAAO;IACL,SAAS,aAAa,WAAW;IACjC,MAAM;IACN,OAAO;GACT;GACA,QAAQ,aAAa,UAAU;EACjC,CAAC;EAEH,OAAO,IAAI,KAAK,sBAAsB;CACxC;AACF"}
1
+ {"version":3,"file":"dictionary.controller.mjs","names":["writeContentDeclarationEditor"],"sources":["../../src/controllers/dictionary.controller.ts"],"sourcesContent":["import { join } from 'node:path';\nimport {\n type DictionaryStatus,\n writeContentDeclaration as writeContentDeclarationEditor,\n} from '@intlayer/chokidar/build';\nimport { getConfiguration } from '@intlayer/config/node';\nimport { clearModuleCache } from '@intlayer/config/utils';\nimport type { Dictionary } from '@intlayer/types/dictionary';\nimport {\n getUnmergedDictionaries,\n type UnmergedDictionaries,\n} from '@intlayer/unmerged-dictionaries-entry';\nimport { formatResponse, type ResponseData } from '@utils/responseData';\nimport type { FastifyReply, FastifyRequest } from 'fastify';\nimport { t } from 'fastify-intlayer';\n\nexport type GetEditorDictionariesResult = ResponseData<UnmergedDictionaries>;\n\n/**\n * Get the Intlayer configuration\n */\nexport const getDictionaries = async (\n _req: FastifyRequest,\n res: FastifyReply\n): Promise<void> => {\n try {\n const formattedResponse = formatResponse<UnmergedDictionaries>({\n data: getUnmergedDictionaries(),\n });\n\n return res.send(formattedResponse);\n } catch (err) {\n const errorMessage = (err as { message?: string; status?: number }) ?? {\n message: 'Internal Server Error',\n status: 500,\n };\n\n const formattedErrorResponse = formatResponse<UnmergedDictionaries>({\n error: {\n message: errorMessage.message ?? 'Internal Server Error',\n code: 'INTERNAL_SERVER_ERROR',\n title: 'Internal Server Error',\n },\n status: errorMessage.status ?? 500,\n });\n\n return res.send(formattedErrorResponse);\n }\n};\n\nexport type WriteContentDeclarationBody = { dictionary: Dictionary };\ntype WriteContentDeclarationResultData = {\n status: DictionaryStatus;\n path: string;\n};\nexport type WriteContentDeclarationResult =\n ResponseData<WriteContentDeclarationResultData>;\n\n/**\n * Adds a new dictionary to the database.\n */\nexport const writeContentDeclaration = async (\n req: FastifyRequest<{ Body: WriteContentDeclarationBody }>,\n res: FastifyReply\n): Promise<void> => {\n try {\n const dictionaryData = req.body.dictionary;\n\n const config = getConfiguration();\n\n const result = await writeContentDeclarationEditor(dictionaryData, config);\n\n // Clear cache to hot reload the dictionaries\n const dictionariesPath = join(\n config.system.mainDir,\n `unmerged_dictionaries.cjs`\n );\n clearModuleCache(dictionariesPath);\n\n let description = '';\n\n switch (result.status) {\n case 'created': {\n description = t({\n en: 'Content declaration created successfully',\n fr: 'Déclaration de contenu créée avec succès',\n es: 'Declaración de contenido creada con éxito',\n });\n break;\n }\n\n case 'updated': {\n description = t({\n en: 'Content declaration updated successfully',\n fr: 'Déclaration de contenu mise à jour avec succès',\n es: 'Declaración de contenido actualizada con éxito',\n });\n break;\n }\n case 'reimported in JSON': {\n description = t({\n en: 'Content declaration reimported in JSON successfully',\n fr: 'Déclaration de contenu réimportée en JSON avec succès',\n es: 'Declaración de contenido reimportada en JSON con éxito',\n });\n break;\n }\n case 'new content file': {\n description = t({\n en: 'Content declaration new content file successfully',\n fr: 'Déclaration de contenu réimportée dans un nouveau emplacement avec succès',\n es: 'Declaración de contenido reimportada en un nuevo lugar con éxito',\n });\n break;\n }\n default: {\n description = t({\n en: 'Content declaration written successfully',\n fr: 'Déclaration de contenu écrite avec succès',\n es: 'Declaración de contenido escrita con éxito',\n });\n break;\n }\n }\n\n const formattedResponse = formatResponse<WriteContentDeclarationResultData>(\n {\n data: result,\n message: t({\n en: 'Content declaration written',\n fr: 'Déclaration de contenu écrite',\n es: 'Declaración de contenido escrita',\n }),\n description,\n }\n );\n\n return res.send(formattedResponse);\n } catch (err) {\n const errorMessage = (err as { message?: string; status?: number }) ?? {\n message: 'Internal Server Error',\n status: 500,\n };\n\n console.error(errorMessage);\n\n const formattedErrorResponse =\n formatResponse<WriteContentDeclarationResultData>({\n error: {\n message: errorMessage.message ?? 'Internal Server Error',\n code: 'INTERNAL_SERVER_ERROR',\n title: 'Internal Server Error',\n },\n status: errorMessage.status ?? 500,\n });\n\n return res.send(formattedErrorResponse);\n }\n};\n"],"mappings":";;;;;;;;;;;;AAqBA,MAAa,kBAAkB,OAC7B,MACA,QACkB;AAClB,KAAI;EACF,MAAM,oBAAoB,eAAqC,EAC7D,MAAM,yBAAyB,EAChC,CAAC;AAEF,SAAO,IAAI,KAAK,kBAAkB;UAC3B,KAAK;EACZ,MAAM,eAAgB,OAAiD;GACrE,SAAS;GACT,QAAQ;GACT;EAED,MAAM,yBAAyB,eAAqC;GAClE,OAAO;IACL,SAAS,aAAa,WAAW;IACjC,MAAM;IACN,OAAO;IACR;GACD,QAAQ,aAAa,UAAU;GAChC,CAAC;AAEF,SAAO,IAAI,KAAK,uBAAuB;;;;;;AAe3C,MAAa,0BAA0B,OACrC,KACA,QACkB;AAClB,KAAI;EACF,MAAM,iBAAiB,IAAI,KAAK;EAEhC,MAAM,SAAS,kBAAkB;EAEjC,MAAM,SAAS,MAAMA,0BAA8B,gBAAgB,OAAO;AAO1E,mBAJyB,KACvB,OAAO,OAAO,SACd,4BAE+B,CAAC;EAElC,IAAI,cAAc;AAElB,UAAQ,OAAO,QAAf;GACE,KAAK;AACH,kBAAc,EAAE;KACd,IAAI;KACJ,IAAI;KACJ,IAAI;KACL,CAAC;AACF;GAGF,KAAK;AACH,kBAAc,EAAE;KACd,IAAI;KACJ,IAAI;KACJ,IAAI;KACL,CAAC;AACF;GAEF,KAAK;AACH,kBAAc,EAAE;KACd,IAAI;KACJ,IAAI;KACJ,IAAI;KACL,CAAC;AACF;GAEF,KAAK;AACH,kBAAc,EAAE;KACd,IAAI;KACJ,IAAI;KACJ,IAAI;KACL,CAAC;AACF;GAEF;AACE,kBAAc,EAAE;KACd,IAAI;KACJ,IAAI;KACJ,IAAI;KACL,CAAC;AACF;;EAIJ,MAAM,oBAAoB,eACxB;GACE,MAAM;GACN,SAAS,EAAE;IACT,IAAI;IACJ,IAAI;IACJ,IAAI;IACL,CAAC;GACF;GACD,CACF;AAED,SAAO,IAAI,KAAK,kBAAkB;UAC3B,KAAK;EACZ,MAAM,eAAgB,OAAiD;GACrE,SAAS;GACT,QAAQ;GACT;AAED,UAAQ,MAAM,aAAa;EAE3B,MAAM,yBACJ,eAAkD;GAChD,OAAO;IACL,SAAS,aAAa,WAAW;IACjC,MAAM;IACN,OAAO;IACR;GACD,QAAQ,aAAa,UAAU;GAChC,CAAC;AAEJ,SAAO,IAAI,KAAK,uBAAuB"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","names":["__dirname","ANSIColors","intlayer","checkPortAvailability","fastifyHelmet","fastifyCors","fastifyCompress","fastifyCookie","fastifyFormbody","dictionaryRouter","configurationRouter","fastifyStatic"],"sources":["../src/index.ts"],"sourcesContent":["import { existsSync, lstatSync, readFileSync } from 'node:fs';\nimport { dirname, join, resolve } from 'node:path';\nimport { fileURLToPath } from 'node:url';\nimport fastifyCompress from '@fastify/compress';\nimport fastifyCookie from '@fastify/cookie';\nimport fastifyCors, { type FastifyCorsOptions } from '@fastify/cors';\nimport fastifyFormbody from '@fastify/formbody';\nimport fastifyHelmet from '@fastify/helmet';\nimport fastifyStatic from '@fastify/static';\nimport * as ANSIColors from '@intlayer/config/colors';\nimport { getEnvFilePath } from '@intlayer/config/env';\nimport { colorize, colorizePath, getAppLogger } from '@intlayer/config/logger';\nimport { getConfiguration } from '@intlayer/config/node';\nimport { configurationRouter } from '@routes/config.routes';\nimport { dictionaryRouter } from '@routes/dictionary.routes';\nimport { checkPortAvailability } from '@utils/checkPortAvailability';\nimport Fastify, { type FastifyInstance } from 'fastify';\nimport { intlayer } from 'fastify-intlayer';\nimport mime from 'mime';\n\nconst __dirname = dirname(fileURLToPath(import.meta.url));\n\nconst envFileOptions = {\n env: process.env.NODE_ENV,\n envFile: process.env.ENV_FILE,\n};\n\nconst FALLBACK_PORT = 8000;\nconst config = getConfiguration(envFileOptions);\n\nconst appLogger = getAppLogger(config);\nconst port = config.editor.port ?? FALLBACK_PORT;\n\nif (!config.editor.enabled) {\n appLogger(\n `Editor is not enabled. Add ${colorize('editor.enabled', ANSIColors.BLUE)} to ${colorizePath('intlayer.config.ts')} file to enable it.`,\n {\n level: 'error',\n }\n );\n process.exit(0);\n}\n\n// Load package.json\nconst packageJson = JSON.parse(\n readFileSync(resolve(__dirname, '../../package.json'), 'utf8')\n);\n\nconst app: FastifyInstance = Fastify({\n disableRequestLogging: true, // Optional: Keep logs clean like the original\n});\n\n// Load internationalization plugin\n// Assuming fastify-intlayer is the Fastify equivalent of express-intlayer\napp.register(intlayer);\n\nconst clientDistPath = resolve(__dirname, '../../client/dist');\n\nconst corsOptions: FastifyCorsOptions = {\n origin: '*',\n credentials: true,\n};\n\nconst startServer = async (app: FastifyInstance) => {\n const isPortAvailable = await checkPortAvailability(port);\n\n if (!isPortAvailable) {\n appLogger(`Error: Port ${port} is already in use.`, {\n level: 'error',\n });\n process.exit(255);\n }\n\n // Security Headers\n await app.register(fastifyHelmet, {\n contentSecurityPolicy: false,\n global: true,\n });\n\n // CORS\n await app.register(fastifyCors, corsOptions);\n\n // Compression\n await app.register(fastifyCompress);\n\n // Cookie Parser\n await app.register(fastifyCookie);\n\n // Parse application/x-www-form-urlencoded\n await app.register(fastifyFormbody);\n\n // Register Routes\n await app.register(dictionaryRouter, { prefix: '/api/dictionary' });\n await app.register(configurationRouter, { prefix: '/api/config' });\n\n // Serve Static Files\n await app.register(fastifyStatic, {\n root: clientDistPath,\n wildcard: false, // We handle the fallback manually to match SPA logic\n });\n\n // For single-page applications, redirect all unmatched routes to index.html\n app.setNotFoundHandler((req, reply) => {\n const requestedPath = join(clientDistPath, req.raw.url || '/');\n\n if (existsSync(requestedPath) && lstatSync(requestedPath).isFile()) {\n const mimeType =\n mime.getType(requestedPath) ?? 'application/octet-stream';\n reply.header('Content-Type', mimeType);\n return reply.sendFile(req.raw.url?.split('/').pop() || 'index.html');\n } else {\n return reply.sendFile('index.html');\n }\n });\n\n try {\n await app.listen({ port, host: '0.0.0.0' });\n\n const dotEnvFilePath = getEnvFilePath(\n envFileOptions.env,\n envFileOptions.envFile\n );\n\n console.log(`\n ${colorize(colorize('INTLAYER', ANSIColors.BOLD), ANSIColors.GREY_DARK)} ${colorize(`v${packageJson.version}`, ANSIColors.GREY_DARK)}\n\n Editor running at: ${colorizePath(`http://localhost:${port}`)}\n ${colorize('➜', ANSIColors.GREY_DARK)} Watching application at: ${config.editor.applicationURL === '' ? '-' : colorizePath(config.editor.applicationURL)}\n ${colorize('➜', ANSIColors.GREY_DARK)} Access key: ${config.editor.clientId ?? '-'}\n ${colorize('➜', ANSIColors.GREY_DARK)} Environment: ${dotEnvFilePath ?? '-'}\n `);\n } catch (err) {\n app.log.error(err);\n process.exit(1);\n }\n};\n\n// Start it up!\nstartServer(app);\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoBA,MAAMA,8GAAiD,CAAC;AAExD,MAAM,iBAAiB;CACrB,KAAK,QAAQ,IAAI;CACjB,SAAS,QAAQ,IAAI;AACvB;AAEA,MAAM,gBAAgB;AACtB,MAAM,qDAA0B,cAAc;AAE9C,MAAM,sDAAyB,MAAM;AACrC,MAAM,OAAO,OAAO,OAAO,QAAQ;AAEnC,IAAI,CAAC,OAAO,OAAO,SAAS;CAC1B,UACE,oEAAuC,kBAAkBC,wBAAW,IAAI,EAAE,gDAAmB,oBAAoB,EAAE,sBACnH,EACE,OAAO,QACT,CACF;CACA,QAAQ,KAAK,CAAC;AAChB;AAGA,MAAM,cAAc,KAAK,uDACFD,aAAW,oBAAoB,GAAG,MAAM,CAC/D;AAEA,MAAM,2BAA+B,EACnC,uBAAuB,KACzB,CAAC;AAID,IAAI,SAASE,yBAAQ;AAErB,MAAM,wCAAyBF,aAAW,mBAAmB;AAE7D,MAAM,cAAkC;CACtC,QAAQ;CACR,aAAa;AACf;AAEA,MAAM,cAAc,OAAO,QAAyB;CAGlD,IAAI,CAAC,MAFyBG,0DAAsB,IAAI,GAElC;EACpB,UAAU,eAAe,KAAK,sBAAsB,EAClD,OAAO,QACT,CAAC;EACD,QAAQ,KAAK,GAAG;CAClB;CAGA,MAAM,IAAI,SAASC,yBAAe;EAChC,uBAAuB;EACvB,QAAQ;CACV,CAAC;CAGD,MAAM,IAAI,SAASC,uBAAa,WAAW;CAG3C,MAAM,IAAI,SAASC,yBAAe;CAGlC,MAAM,IAAI,SAASC,uBAAa;CAGhC,MAAM,IAAI,SAASC,yBAAe;CAGlC,MAAM,IAAI,SAASC,mDAAkB,EAAE,QAAQ,kBAAkB,CAAC;CAClE,MAAM,IAAI,SAASC,kDAAqB,EAAE,QAAQ,cAAc,CAAC;CAGjE,MAAM,IAAI,SAASC,yBAAe;EAChC,MAAM;EACN,UAAU;CACZ,CAAC;CAGD,IAAI,oBAAoB,KAAK,UAAU;EACrC,MAAM,oCAAqB,gBAAgB,IAAI,IAAI,OAAO,GAAG;EAE7D,4BAAe,aAAa,4BAAe,aAAa,EAAE,OAAO,GAAG;GAClE,MAAM,WACJ,aAAK,QAAQ,aAAa,KAAK;GACjC,MAAM,OAAO,gBAAgB,QAAQ;GACrC,OAAO,MAAM,SAAS,IAAI,IAAI,KAAK,MAAM,GAAG,EAAE,IAAI,KAAK,YAAY;EACrE,OACE,OAAO,MAAM,SAAS,YAAY;CAEtC,CAAC;CAED,IAAI;EACF,MAAM,IAAI,OAAO;GAAE;GAAM,MAAM;EAAU,CAAC;EAE1C,MAAM,0DACJ,eAAe,KACf,eAAe,OACjB;EAEA,QAAQ,IAAI;kFACQ,YAAYV,wBAAW,IAAI,GAAGA,wBAAW,SAAS,EAAE,yCAAY,IAAI,YAAY,WAAWA,wBAAW,SAAS,EAAE;;6EAEzF,oBAAoB,MAAM,EAAE;4CAC7D,KAAKA,wBAAW,SAAS,EAAE,8BAA8B,OAAO,OAAO,mBAAmB,KAAK,gDAAmB,OAAO,OAAO,cAAc,EAAE;4CAChJ,KAAKA,wBAAW,SAAS,EAAE,8BAA8B,OAAO,OAAO,YAAY,IAAI;4CACvF,KAAKA,wBAAW,SAAS,EAAE,8BAA8B,kBAAkB,IAAI;KACzF;CACH,SAAS,KAAK;EACZ,IAAI,IAAI,MAAM,GAAG;EACjB,QAAQ,KAAK,CAAC;CAChB;AACF;AAGA,YAAY,GAAG"}
1
+ {"version":3,"file":"index.cjs","names":["__dirname","ANSIColors","intlayer","checkPortAvailability","fastifyHelmet","fastifyCors","fastifyCompress","fastifyCookie","fastifyFormbody","dictionaryRouter","configurationRouter","fastifyStatic"],"sources":["../src/index.ts"],"sourcesContent":["import { existsSync, lstatSync, readFileSync } from 'node:fs';\nimport { dirname, join, resolve } from 'node:path';\nimport { fileURLToPath } from 'node:url';\nimport fastifyCompress from '@fastify/compress';\nimport fastifyCookie from '@fastify/cookie';\nimport fastifyCors, { type FastifyCorsOptions } from '@fastify/cors';\nimport fastifyFormbody from '@fastify/formbody';\nimport fastifyHelmet from '@fastify/helmet';\nimport fastifyStatic from '@fastify/static';\nimport * as ANSIColors from '@intlayer/config/colors';\nimport { getEnvFilePath } from '@intlayer/config/env';\nimport { colorize, colorizePath, getAppLogger } from '@intlayer/config/logger';\nimport { getConfiguration } from '@intlayer/config/node';\nimport { configurationRouter } from '@routes/config.routes';\nimport { dictionaryRouter } from '@routes/dictionary.routes';\nimport { checkPortAvailability } from '@utils/checkPortAvailability';\nimport Fastify, { type FastifyInstance } from 'fastify';\nimport { intlayer } from 'fastify-intlayer';\nimport mime from 'mime';\n\nconst __dirname = dirname(fileURLToPath(import.meta.url));\n\nconst envFileOptions = {\n env: process.env.NODE_ENV,\n envFile: process.env.ENV_FILE,\n};\n\nconst FALLBACK_PORT = 8000;\nconst config = getConfiguration(envFileOptions);\n\nconst appLogger = getAppLogger(config);\nconst port = config.editor.port ?? FALLBACK_PORT;\n\nif (!config.editor.enabled) {\n appLogger(\n `Editor is not enabled. Add ${colorize('editor.enabled', ANSIColors.BLUE)} to ${colorizePath('intlayer.config.ts')} file to enable it.`,\n {\n level: 'error',\n }\n );\n process.exit(0);\n}\n\n// Load package.json\nconst packageJson = JSON.parse(\n readFileSync(resolve(__dirname, '../../package.json'), 'utf8')\n);\n\nconst app: FastifyInstance = Fastify({\n disableRequestLogging: true, // Optional: Keep logs clean like the original\n});\n\n// Load internationalization plugin\n// Assuming fastify-intlayer is the Fastify equivalent of express-intlayer\napp.register(intlayer);\n\nconst clientDistPath = resolve(__dirname, '../../client/dist');\n\nconst corsOptions: FastifyCorsOptions = {\n origin: '*',\n credentials: true,\n};\n\nconst startServer = async (app: FastifyInstance) => {\n const isPortAvailable = await checkPortAvailability(port);\n\n if (!isPortAvailable) {\n appLogger(`Error: Port ${port} is already in use.`, {\n level: 'error',\n });\n process.exit(255);\n }\n\n // Security Headers\n await app.register(fastifyHelmet, {\n contentSecurityPolicy: false,\n global: true,\n });\n\n // CORS\n await app.register(fastifyCors, corsOptions);\n\n // Compression\n await app.register(fastifyCompress);\n\n // Cookie Parser\n await app.register(fastifyCookie);\n\n // Parse application/x-www-form-urlencoded\n await app.register(fastifyFormbody);\n\n // Register Routes\n await app.register(dictionaryRouter, { prefix: '/api/dictionary' });\n await app.register(configurationRouter, { prefix: '/api/config' });\n\n // Serve Static Files\n await app.register(fastifyStatic, {\n root: clientDistPath,\n wildcard: false, // We handle the fallback manually to match SPA logic\n });\n\n // For single-page applications, redirect all unmatched routes to index.html\n app.setNotFoundHandler((req, reply) => {\n const requestedPath = join(clientDistPath, req.raw.url || '/');\n\n if (existsSync(requestedPath) && lstatSync(requestedPath).isFile()) {\n const mimeType =\n mime.getType(requestedPath) ?? 'application/octet-stream';\n reply.header('Content-Type', mimeType);\n return reply.sendFile(req.raw.url?.split('/').pop() || 'index.html');\n } else {\n return reply.sendFile('index.html');\n }\n });\n\n try {\n await app.listen({ port, host: '0.0.0.0' });\n\n const dotEnvFilePath = getEnvFilePath(\n envFileOptions.env,\n envFileOptions.envFile\n );\n\n console.log(`\n ${colorize(colorize('INTLAYER', ANSIColors.BOLD), ANSIColors.GREY_DARK)} ${colorize(`v${packageJson.version}`, ANSIColors.GREY_DARK)}\n\n Editor running at: ${colorizePath(`http://localhost:${port}`)}\n ${colorize('➜', ANSIColors.GREY_DARK)} Watching application at: ${config.editor.applicationURL === '' ? '-' : colorizePath(config.editor.applicationURL)}\n ${colorize('➜', ANSIColors.GREY_DARK)} Access key: ${config.editor.clientId ?? '-'}\n ${colorize('➜', ANSIColors.GREY_DARK)} Environment: ${dotEnvFilePath ?? '-'}\n `);\n } catch (err) {\n app.log.error(err);\n process.exit(1);\n }\n};\n\n// Start it up!\nstartServer(app);\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoBA,MAAMA,+GAAkD,CAAC;AAEzD,MAAM,iBAAiB;CACrB,KAAK,QAAQ,IAAI;CACjB,SAAS,QAAQ,IAAI;CACtB;AAED,MAAM,gBAAgB;AACtB,MAAM,qDAA0B,eAAe;AAE/C,MAAM,sDAAyB,OAAO;AACtC,MAAM,OAAO,OAAO,OAAO,QAAQ;AAEnC,IAAI,CAAC,OAAO,OAAO,SAAS;AAC1B,WACE,oEAAuC,kBAAkBC,wBAAW,KAAK,CAAC,gDAAmB,qBAAqB,CAAC,sBACnH,EACE,OAAO,SACR,CACF;AACD,SAAQ,KAAK,EAAE;;AAIjB,MAAM,cAAc,KAAK,uDACFD,aAAW,qBAAqB,EAAE,OAAO,CAC/D;AAED,MAAM,2BAA+B,EACnC,uBAAuB,MACxB,CAAC;AAIF,IAAI,SAASE,0BAAS;AAEtB,MAAM,wCAAyBF,aAAW,oBAAoB;AAE9D,MAAM,cAAkC;CACtC,QAAQ;CACR,aAAa;CACd;AAED,MAAM,cAAc,OAAO,QAAyB;AAGlD,KAAI,CAAC,MAFyBG,0DAAsB,KAAK,EAEnC;AACpB,YAAU,eAAe,KAAK,sBAAsB,EAClD,OAAO,SACR,CAAC;AACF,UAAQ,KAAK,IAAI;;AAInB,OAAM,IAAI,SAASC,yBAAe;EAChC,uBAAuB;EACvB,QAAQ;EACT,CAAC;AAGF,OAAM,IAAI,SAASC,uBAAa,YAAY;AAG5C,OAAM,IAAI,SAASC,0BAAgB;AAGnC,OAAM,IAAI,SAASC,wBAAc;AAGjC,OAAM,IAAI,SAASC,0BAAgB;AAGnC,OAAM,IAAI,SAASC,mDAAkB,EAAE,QAAQ,mBAAmB,CAAC;AACnE,OAAM,IAAI,SAASC,kDAAqB,EAAE,QAAQ,eAAe,CAAC;AAGlE,OAAM,IAAI,SAASC,yBAAe;EAChC,MAAM;EACN,UAAU;EACX,CAAC;AAGF,KAAI,oBAAoB,KAAK,UAAU;EACrC,MAAM,oCAAqB,gBAAgB,IAAI,IAAI,OAAO,IAAI;AAE9D,8BAAe,cAAc,2BAAc,cAAc,CAAC,QAAQ,EAAE;GAClE,MAAM,WACJ,aAAK,QAAQ,cAAc,IAAI;AACjC,SAAM,OAAO,gBAAgB,SAAS;AACtC,UAAO,MAAM,SAAS,IAAI,IAAI,KAAK,MAAM,IAAI,CAAC,KAAK,IAAI,aAAa;QAEpE,QAAO,MAAM,SAAS,aAAa;GAErC;AAEF,KAAI;AACF,QAAM,IAAI,OAAO;GAAE;GAAM,MAAM;GAAW,CAAC;EAE3C,MAAM,0DACJ,eAAe,KACf,eAAe,QAChB;AAED,UAAQ,IAAI;kFACQ,YAAYV,wBAAW,KAAK,EAAEA,wBAAW,UAAU,CAAC,yCAAY,IAAI,YAAY,WAAWA,wBAAW,UAAU,CAAC;;6EAEzF,oBAAoB,OAAO,CAAC;4CAC7D,KAAKA,wBAAW,UAAU,CAAC,8BAA8B,OAAO,OAAO,mBAAmB,KAAK,gDAAmB,OAAO,OAAO,eAAe,CAAC;4CAChJ,KAAKA,wBAAW,UAAU,CAAC,8BAA8B,OAAO,OAAO,YAAY,IAAI;4CACvF,KAAKA,wBAAW,UAAU,CAAC,8BAA8B,kBAAkB,IAAI;MACxF;UACK,KAAK;AACZ,MAAI,IAAI,MAAM,IAAI;AAClB,UAAQ,KAAK,EAAE;;;AAKnB,YAAY,IAAI"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":[],"sources":["../src/index.ts"],"sourcesContent":["import { existsSync, lstatSync, readFileSync } from 'node:fs';\nimport { dirname, join, resolve } from 'node:path';\nimport { fileURLToPath } from 'node:url';\nimport fastifyCompress from '@fastify/compress';\nimport fastifyCookie from '@fastify/cookie';\nimport fastifyCors, { type FastifyCorsOptions } from '@fastify/cors';\nimport fastifyFormbody from '@fastify/formbody';\nimport fastifyHelmet from '@fastify/helmet';\nimport fastifyStatic from '@fastify/static';\nimport * as ANSIColors from '@intlayer/config/colors';\nimport { getEnvFilePath } from '@intlayer/config/env';\nimport { colorize, colorizePath, getAppLogger } from '@intlayer/config/logger';\nimport { getConfiguration } from '@intlayer/config/node';\nimport { configurationRouter } from '@routes/config.routes';\nimport { dictionaryRouter } from '@routes/dictionary.routes';\nimport { checkPortAvailability } from '@utils/checkPortAvailability';\nimport Fastify, { type FastifyInstance } from 'fastify';\nimport { intlayer } from 'fastify-intlayer';\nimport mime from 'mime';\n\nconst __dirname = dirname(fileURLToPath(import.meta.url));\n\nconst envFileOptions = {\n env: process.env.NODE_ENV,\n envFile: process.env.ENV_FILE,\n};\n\nconst FALLBACK_PORT = 8000;\nconst config = getConfiguration(envFileOptions);\n\nconst appLogger = getAppLogger(config);\nconst port = config.editor.port ?? FALLBACK_PORT;\n\nif (!config.editor.enabled) {\n appLogger(\n `Editor is not enabled. Add ${colorize('editor.enabled', ANSIColors.BLUE)} to ${colorizePath('intlayer.config.ts')} file to enable it.`,\n {\n level: 'error',\n }\n );\n process.exit(0);\n}\n\n// Load package.json\nconst packageJson = JSON.parse(\n readFileSync(resolve(__dirname, '../../package.json'), 'utf8')\n);\n\nconst app: FastifyInstance = Fastify({\n disableRequestLogging: true, // Optional: Keep logs clean like the original\n});\n\n// Load internationalization plugin\n// Assuming fastify-intlayer is the Fastify equivalent of express-intlayer\napp.register(intlayer);\n\nconst clientDistPath = resolve(__dirname, '../../client/dist');\n\nconst corsOptions: FastifyCorsOptions = {\n origin: '*',\n credentials: true,\n};\n\nconst startServer = async (app: FastifyInstance) => {\n const isPortAvailable = await checkPortAvailability(port);\n\n if (!isPortAvailable) {\n appLogger(`Error: Port ${port} is already in use.`, {\n level: 'error',\n });\n process.exit(255);\n }\n\n // Security Headers\n await app.register(fastifyHelmet, {\n contentSecurityPolicy: false,\n global: true,\n });\n\n // CORS\n await app.register(fastifyCors, corsOptions);\n\n // Compression\n await app.register(fastifyCompress);\n\n // Cookie Parser\n await app.register(fastifyCookie);\n\n // Parse application/x-www-form-urlencoded\n await app.register(fastifyFormbody);\n\n // Register Routes\n await app.register(dictionaryRouter, { prefix: '/api/dictionary' });\n await app.register(configurationRouter, { prefix: '/api/config' });\n\n // Serve Static Files\n await app.register(fastifyStatic, {\n root: clientDistPath,\n wildcard: false, // We handle the fallback manually to match SPA logic\n });\n\n // For single-page applications, redirect all unmatched routes to index.html\n app.setNotFoundHandler((req, reply) => {\n const requestedPath = join(clientDistPath, req.raw.url || '/');\n\n if (existsSync(requestedPath) && lstatSync(requestedPath).isFile()) {\n const mimeType =\n mime.getType(requestedPath) ?? 'application/octet-stream';\n reply.header('Content-Type', mimeType);\n return reply.sendFile(req.raw.url?.split('/').pop() || 'index.html');\n } else {\n return reply.sendFile('index.html');\n }\n });\n\n try {\n await app.listen({ port, host: '0.0.0.0' });\n\n const dotEnvFilePath = getEnvFilePath(\n envFileOptions.env,\n envFileOptions.envFile\n );\n\n console.log(`\n ${colorize(colorize('INTLAYER', ANSIColors.BOLD), ANSIColors.GREY_DARK)} ${colorize(`v${packageJson.version}`, ANSIColors.GREY_DARK)}\n\n Editor running at: ${colorizePath(`http://localhost:${port}`)}\n ${colorize('➜', ANSIColors.GREY_DARK)} Watching application at: ${config.editor.applicationURL === '' ? '-' : colorizePath(config.editor.applicationURL)}\n ${colorize('➜', ANSIColors.GREY_DARK)} Access key: ${config.editor.clientId ?? '-'}\n ${colorize('➜', ANSIColors.GREY_DARK)} Environment: ${dotEnvFilePath ?? '-'}\n `);\n } catch (err) {\n app.log.error(err);\n process.exit(1);\n }\n};\n\n// Start it up!\nstartServer(app);\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAoBA,MAAM,YAAY,QAAQ,cAAc,OAAO,KAAK,GAAG,CAAC;AAExD,MAAM,iBAAiB;CACrB;CACA,SAAS,QAAQ,IAAI;AACvB;AAEA,MAAM,gBAAgB;AACtB,MAAM,SAAS,iBAAiB,cAAc;AAE9C,MAAM,YAAY,aAAa,MAAM;AACrC,MAAM,OAAO,OAAO,OAAO,QAAQ;AAEnC,IAAI,CAAC,OAAO,OAAO,SAAS;CAC1B,UACE,8BAA8B,SAAS,kBAAkB,WAAW,IAAI,EAAE,MAAM,aAAa,oBAAoB,EAAE,sBACnH,EACE,OAAO,QACT,CACF;CACA,QAAQ,KAAK,CAAC;AAChB;AAGA,MAAM,cAAc,KAAK,MACvB,aAAa,QAAQ,WAAW,oBAAoB,GAAG,MAAM,CAC/D;AAEA,MAAM,MAAuB,QAAQ,EACnC,uBAAuB,KACzB,CAAC;AAID,IAAI,SAAS,QAAQ;AAErB,MAAM,iBAAiB,QAAQ,WAAW,mBAAmB;AAE7D,MAAM,cAAkC;CACtC,QAAQ;CACR,aAAa;AACf;AAEA,MAAM,cAAc,OAAO,QAAyB;CAGlD,IAAI,CAAC,MAFyB,sBAAsB,IAAI,GAElC;EACpB,UAAU,eAAe,KAAK,sBAAsB,EAClD,OAAO,QACT,CAAC;EACD,QAAQ,KAAK,GAAG;CAClB;CAGA,MAAM,IAAI,SAAS,eAAe;EAChC,uBAAuB;EACvB,QAAQ;CACV,CAAC;CAGD,MAAM,IAAI,SAAS,aAAa,WAAW;CAG3C,MAAM,IAAI,SAAS,eAAe;CAGlC,MAAM,IAAI,SAAS,aAAa;CAGhC,MAAM,IAAI,SAAS,eAAe;CAGlC,MAAM,IAAI,SAAS,kBAAkB,EAAE,QAAQ,kBAAkB,CAAC;CAClE,MAAM,IAAI,SAAS,qBAAqB,EAAE,QAAQ,cAAc,CAAC;CAGjE,MAAM,IAAI,SAAS,eAAe;EAChC,MAAM;EACN,UAAU;CACZ,CAAC;CAGD,IAAI,oBAAoB,KAAK,UAAU;EACrC,MAAM,gBAAgB,KAAK,gBAAgB,IAAI,IAAI,OAAO,GAAG;EAE7D,IAAI,WAAW,aAAa,KAAK,UAAU,aAAa,EAAE,OAAO,GAAG;GAClE,MAAM,WACJ,KAAK,QAAQ,aAAa,KAAK;GACjC,MAAM,OAAO,gBAAgB,QAAQ;GACrC,OAAO,MAAM,SAAS,IAAI,IAAI,KAAK,MAAM,GAAG,EAAE,IAAI,KAAK,YAAY;EACrE,OACE,OAAO,MAAM,SAAS,YAAY;CAEtC,CAAC;CAED,IAAI;EACF,MAAM,IAAI,OAAO;GAAE;GAAM,MAAM;EAAU,CAAC;EAE1C,MAAM,iBAAiB,eACrB,eAAe,KACf,eAAe,OACjB;EAEA,QAAQ,IAAI;MACV,SAAS,SAAS,YAAY,WAAW,IAAI,GAAG,WAAW,SAAS,EAAE,GAAG,SAAS,IAAI,YAAY,WAAW,WAAW,SAAS,EAAE;;mCAEtG,aAAa,oBAAoB,MAAM,EAAE;MACtE,SAAS,KAAK,WAAW,SAAS,EAAE,8BAA8B,OAAO,OAAO,mBAAmB,KAAK,MAAM,aAAa,OAAO,OAAO,cAAc,EAAE;MACzJ,SAAS,KAAK,WAAW,SAAS,EAAE,8BAA8B,OAAO,OAAO,YAAY,IAAI;MAChG,SAAS,KAAK,WAAW,SAAS,EAAE,8BAA8B,kBAAkB,IAAI;KACzF;CACH,SAAS,KAAK;EACZ,IAAI,IAAI,MAAM,GAAG;EACjB,QAAQ,KAAK,CAAC;CAChB;AACF;AAGA,YAAY,GAAG"}
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../src/index.ts"],"sourcesContent":["import { existsSync, lstatSync, readFileSync } from 'node:fs';\nimport { dirname, join, resolve } from 'node:path';\nimport { fileURLToPath } from 'node:url';\nimport fastifyCompress from '@fastify/compress';\nimport fastifyCookie from '@fastify/cookie';\nimport fastifyCors, { type FastifyCorsOptions } from '@fastify/cors';\nimport fastifyFormbody from '@fastify/formbody';\nimport fastifyHelmet from '@fastify/helmet';\nimport fastifyStatic from '@fastify/static';\nimport * as ANSIColors from '@intlayer/config/colors';\nimport { getEnvFilePath } from '@intlayer/config/env';\nimport { colorize, colorizePath, getAppLogger } from '@intlayer/config/logger';\nimport { getConfiguration } from '@intlayer/config/node';\nimport { configurationRouter } from '@routes/config.routes';\nimport { dictionaryRouter } from '@routes/dictionary.routes';\nimport { checkPortAvailability } from '@utils/checkPortAvailability';\nimport Fastify, { type FastifyInstance } from 'fastify';\nimport { intlayer } from 'fastify-intlayer';\nimport mime from 'mime';\n\nconst __dirname = dirname(fileURLToPath(import.meta.url));\n\nconst envFileOptions = {\n env: process.env.NODE_ENV,\n envFile: process.env.ENV_FILE,\n};\n\nconst FALLBACK_PORT = 8000;\nconst config = getConfiguration(envFileOptions);\n\nconst appLogger = getAppLogger(config);\nconst port = config.editor.port ?? FALLBACK_PORT;\n\nif (!config.editor.enabled) {\n appLogger(\n `Editor is not enabled. Add ${colorize('editor.enabled', ANSIColors.BLUE)} to ${colorizePath('intlayer.config.ts')} file to enable it.`,\n {\n level: 'error',\n }\n );\n process.exit(0);\n}\n\n// Load package.json\nconst packageJson = JSON.parse(\n readFileSync(resolve(__dirname, '../../package.json'), 'utf8')\n);\n\nconst app: FastifyInstance = Fastify({\n disableRequestLogging: true, // Optional: Keep logs clean like the original\n});\n\n// Load internationalization plugin\n// Assuming fastify-intlayer is the Fastify equivalent of express-intlayer\napp.register(intlayer);\n\nconst clientDistPath = resolve(__dirname, '../../client/dist');\n\nconst corsOptions: FastifyCorsOptions = {\n origin: '*',\n credentials: true,\n};\n\nconst startServer = async (app: FastifyInstance) => {\n const isPortAvailable = await checkPortAvailability(port);\n\n if (!isPortAvailable) {\n appLogger(`Error: Port ${port} is already in use.`, {\n level: 'error',\n });\n process.exit(255);\n }\n\n // Security Headers\n await app.register(fastifyHelmet, {\n contentSecurityPolicy: false,\n global: true,\n });\n\n // CORS\n await app.register(fastifyCors, corsOptions);\n\n // Compression\n await app.register(fastifyCompress);\n\n // Cookie Parser\n await app.register(fastifyCookie);\n\n // Parse application/x-www-form-urlencoded\n await app.register(fastifyFormbody);\n\n // Register Routes\n await app.register(dictionaryRouter, { prefix: '/api/dictionary' });\n await app.register(configurationRouter, { prefix: '/api/config' });\n\n // Serve Static Files\n await app.register(fastifyStatic, {\n root: clientDistPath,\n wildcard: false, // We handle the fallback manually to match SPA logic\n });\n\n // For single-page applications, redirect all unmatched routes to index.html\n app.setNotFoundHandler((req, reply) => {\n const requestedPath = join(clientDistPath, req.raw.url || '/');\n\n if (existsSync(requestedPath) && lstatSync(requestedPath).isFile()) {\n const mimeType =\n mime.getType(requestedPath) ?? 'application/octet-stream';\n reply.header('Content-Type', mimeType);\n return reply.sendFile(req.raw.url?.split('/').pop() || 'index.html');\n } else {\n return reply.sendFile('index.html');\n }\n });\n\n try {\n await app.listen({ port, host: '0.0.0.0' });\n\n const dotEnvFilePath = getEnvFilePath(\n envFileOptions.env,\n envFileOptions.envFile\n );\n\n console.log(`\n ${colorize(colorize('INTLAYER', ANSIColors.BOLD), ANSIColors.GREY_DARK)} ${colorize(`v${packageJson.version}`, ANSIColors.GREY_DARK)}\n\n Editor running at: ${colorizePath(`http://localhost:${port}`)}\n ${colorize('➜', ANSIColors.GREY_DARK)} Watching application at: ${config.editor.applicationURL === '' ? '-' : colorizePath(config.editor.applicationURL)}\n ${colorize('➜', ANSIColors.GREY_DARK)} Access key: ${config.editor.clientId ?? '-'}\n ${colorize('➜', ANSIColors.GREY_DARK)} Environment: ${dotEnvFilePath ?? '-'}\n `);\n } catch (err) {\n app.log.error(err);\n process.exit(1);\n }\n};\n\n// Start it up!\nstartServer(app);\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAoBA,MAAM,YAAY,QAAQ,cAAc,OAAO,KAAK,IAAI,CAAC;AAEzD,MAAM,iBAAiB;CACrB;CACA,SAAS,QAAQ,IAAI;CACtB;AAED,MAAM,gBAAgB;AACtB,MAAM,SAAS,iBAAiB,eAAe;AAE/C,MAAM,YAAY,aAAa,OAAO;AACtC,MAAM,OAAO,OAAO,OAAO,QAAQ;AAEnC,IAAI,CAAC,OAAO,OAAO,SAAS;AAC1B,WACE,8BAA8B,SAAS,kBAAkB,WAAW,KAAK,CAAC,MAAM,aAAa,qBAAqB,CAAC,sBACnH,EACE,OAAO,SACR,CACF;AACD,SAAQ,KAAK,EAAE;;AAIjB,MAAM,cAAc,KAAK,MACvB,aAAa,QAAQ,WAAW,qBAAqB,EAAE,OAAO,CAC/D;AAED,MAAM,MAAuB,QAAQ,EACnC,uBAAuB,MACxB,CAAC;AAIF,IAAI,SAAS,SAAS;AAEtB,MAAM,iBAAiB,QAAQ,WAAW,oBAAoB;AAE9D,MAAM,cAAkC;CACtC,QAAQ;CACR,aAAa;CACd;AAED,MAAM,cAAc,OAAO,QAAyB;AAGlD,KAAI,CAAC,MAFyB,sBAAsB,KAAK,EAEnC;AACpB,YAAU,eAAe,KAAK,sBAAsB,EAClD,OAAO,SACR,CAAC;AACF,UAAQ,KAAK,IAAI;;AAInB,OAAM,IAAI,SAAS,eAAe;EAChC,uBAAuB;EACvB,QAAQ;EACT,CAAC;AAGF,OAAM,IAAI,SAAS,aAAa,YAAY;AAG5C,OAAM,IAAI,SAAS,gBAAgB;AAGnC,OAAM,IAAI,SAAS,cAAc;AAGjC,OAAM,IAAI,SAAS,gBAAgB;AAGnC,OAAM,IAAI,SAAS,kBAAkB,EAAE,QAAQ,mBAAmB,CAAC;AACnE,OAAM,IAAI,SAAS,qBAAqB,EAAE,QAAQ,eAAe,CAAC;AAGlE,OAAM,IAAI,SAAS,eAAe;EAChC,MAAM;EACN,UAAU;EACX,CAAC;AAGF,KAAI,oBAAoB,KAAK,UAAU;EACrC,MAAM,gBAAgB,KAAK,gBAAgB,IAAI,IAAI,OAAO,IAAI;AAE9D,MAAI,WAAW,cAAc,IAAI,UAAU,cAAc,CAAC,QAAQ,EAAE;GAClE,MAAM,WACJ,KAAK,QAAQ,cAAc,IAAI;AACjC,SAAM,OAAO,gBAAgB,SAAS;AACtC,UAAO,MAAM,SAAS,IAAI,IAAI,KAAK,MAAM,IAAI,CAAC,KAAK,IAAI,aAAa;QAEpE,QAAO,MAAM,SAAS,aAAa;GAErC;AAEF,KAAI;AACF,QAAM,IAAI,OAAO;GAAE;GAAM,MAAM;GAAW,CAAC;EAE3C,MAAM,iBAAiB,eACrB,eAAe,KACf,eAAe,QAChB;AAED,UAAQ,IAAI;MACV,SAAS,SAAS,YAAY,WAAW,KAAK,EAAE,WAAW,UAAU,CAAC,GAAG,SAAS,IAAI,YAAY,WAAW,WAAW,UAAU,CAAC;;mCAEtG,aAAa,oBAAoB,OAAO,CAAC;MACtE,SAAS,KAAK,WAAW,UAAU,CAAC,8BAA8B,OAAO,OAAO,mBAAmB,KAAK,MAAM,aAAa,OAAO,OAAO,eAAe,CAAC;MACzJ,SAAS,KAAK,WAAW,UAAU,CAAC,8BAA8B,OAAO,OAAO,YAAY,IAAI;MAChG,SAAS,KAAK,WAAW,UAAU,CAAC,8BAA8B,kBAAkB,IAAI;MACxF;UACK,KAAK;AACZ,MAAI,IAAI,MAAM,IAAI;AAClB,UAAQ,KAAK,EAAE;;;AAKnB,YAAY,IAAI"}
@@ -0,0 +1,32 @@
1
+ const require_runtime = require('../../../../../_virtual/_rolldown/runtime.cjs');
2
+ let _intlayer_config_utils = require("@intlayer/config/utils");
3
+
4
+ //#region ../../@intlayer/chokidar/dist/esm/detectFormatCommand.mjs
5
+ let cachedFormatCommand = null;
6
+ const detectFormatCommand = (configuration, projectRequireProp) => {
7
+ const { baseDir } = configuration.system;
8
+ const { formatCommand } = configuration.content;
9
+ const projectRequire = projectRequireProp ?? (0, _intlayer_config_utils.getProjectRequire)(baseDir);
10
+ if (formatCommand) return formatCommand;
11
+ if (cachedFormatCommand !== null) return cachedFormatCommand;
12
+ try {
13
+ projectRequire.resolve("prettier");
14
+ cachedFormatCommand = "prettier --write \"{{file}}\" --log-level silent";
15
+ return cachedFormatCommand;
16
+ } catch (_error) {}
17
+ try {
18
+ projectRequire.resolve("biome");
19
+ cachedFormatCommand = "biome format \"{{file}}\" --write --log-level none";
20
+ return cachedFormatCommand;
21
+ } catch (_error) {}
22
+ try {
23
+ projectRequire.resolve("eslint");
24
+ cachedFormatCommand = "eslint --fix \"{{file}}\" --quiet || node -e \"process.exit(0)\"";
25
+ return cachedFormatCommand;
26
+ } catch (_error) {}
27
+ cachedFormatCommand = void 0;
28
+ };
29
+
30
+ //#endregion
31
+ exports.detectFormatCommand = detectFormatCommand;
32
+ //# sourceMappingURL=detectFormatCommand.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"detectFormatCommand.cjs","names":[],"sources":["../../../../../../../../@intlayer/chokidar/dist/esm/detectFormatCommand.mjs"],"sourcesContent":["import { getProjectRequire } from \"@intlayer/config/utils\";\n\n//#region src/detectFormatCommand.ts\nlet cachedFormatCommand = null;\nconst detectFormatCommand = (configuration, projectRequireProp) => {\n\tconst { baseDir } = configuration.system;\n\tconst { formatCommand } = configuration.content;\n\tconst projectRequire = projectRequireProp ?? getProjectRequire(baseDir);\n\tif (formatCommand) return formatCommand;\n\tif (cachedFormatCommand !== null) return cachedFormatCommand;\n\ttry {\n\t\tprojectRequire.resolve(\"prettier\");\n\t\tcachedFormatCommand = \"prettier --write \\\"{{file}}\\\" --log-level silent\";\n\t\treturn cachedFormatCommand;\n\t} catch (_error) {}\n\ttry {\n\t\tprojectRequire.resolve(\"biome\");\n\t\tcachedFormatCommand = \"biome format \\\"{{file}}\\\" --write --log-level none\";\n\t\treturn cachedFormatCommand;\n\t} catch (_error) {}\n\ttry {\n\t\tprojectRequire.resolve(\"eslint\");\n\t\tcachedFormatCommand = \"eslint --fix \\\"{{file}}\\\" --quiet || node -e \\\"process.exit(0)\\\"\";\n\t\treturn cachedFormatCommand;\n\t} catch (_error) {}\n\tcachedFormatCommand = void 0;\n};\n\n//#endregion\nexport { detectFormatCommand };\n//# sourceMappingURL=detectFormatCommand.mjs.map"],"mappings":";;;;AAGA,IAAI,sBAAsB;AAC1B,MAAM,uBAAuB,eAAe,uBAAuB;CAClE,MAAM,EAAE,YAAY,cAAc;CAClC,MAAM,EAAE,kBAAkB,cAAc;CACxC,MAAM,iBAAiB,oEAAwC,QAAQ;AACvE,KAAI,cAAe,QAAO;AAC1B,KAAI,wBAAwB,KAAM,QAAO;AACzC,KAAI;AACH,iBAAe,QAAQ,WAAW;AAClC,wBAAsB;AACtB,SAAO;UACC,QAAQ;AACjB,KAAI;AACH,iBAAe,QAAQ,QAAQ;AAC/B,wBAAsB;AACtB,SAAO;UACC,QAAQ;AACjB,KAAI;AACH,iBAAe,QAAQ,SAAS;AAChC,wBAAsB;AACtB,SAAO;UACC,QAAQ;AACjB,uBAAsB,KAAK"}
@@ -0,0 +1,31 @@
1
+ import { getProjectRequire } from "@intlayer/config/utils";
2
+
3
+ //#region ../../@intlayer/chokidar/dist/esm/detectFormatCommand.mjs
4
+ let cachedFormatCommand = null;
5
+ const detectFormatCommand = (configuration, projectRequireProp) => {
6
+ const { baseDir } = configuration.system;
7
+ const { formatCommand } = configuration.content;
8
+ const projectRequire = projectRequireProp ?? getProjectRequire(baseDir);
9
+ if (formatCommand) return formatCommand;
10
+ if (cachedFormatCommand !== null) return cachedFormatCommand;
11
+ try {
12
+ projectRequire.resolve("prettier");
13
+ cachedFormatCommand = "prettier --write \"{{file}}\" --log-level silent";
14
+ return cachedFormatCommand;
15
+ } catch (_error) {}
16
+ try {
17
+ projectRequire.resolve("biome");
18
+ cachedFormatCommand = "biome format \"{{file}}\" --write --log-level none";
19
+ return cachedFormatCommand;
20
+ } catch (_error) {}
21
+ try {
22
+ projectRequire.resolve("eslint");
23
+ cachedFormatCommand = "eslint --fix \"{{file}}\" --quiet || node -e \"process.exit(0)\"";
24
+ return cachedFormatCommand;
25
+ } catch (_error) {}
26
+ cachedFormatCommand = void 0;
27
+ };
28
+
29
+ //#endregion
30
+ export { detectFormatCommand };
31
+ //# sourceMappingURL=detectFormatCommand.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"detectFormatCommand.mjs","names":[],"sources":["../../../../../../../../@intlayer/chokidar/dist/esm/detectFormatCommand.mjs"],"sourcesContent":["import { getProjectRequire } from \"@intlayer/config/utils\";\n\n//#region src/detectFormatCommand.ts\nlet cachedFormatCommand = null;\nconst detectFormatCommand = (configuration, projectRequireProp) => {\n\tconst { baseDir } = configuration.system;\n\tconst { formatCommand } = configuration.content;\n\tconst projectRequire = projectRequireProp ?? getProjectRequire(baseDir);\n\tif (formatCommand) return formatCommand;\n\tif (cachedFormatCommand !== null) return cachedFormatCommand;\n\ttry {\n\t\tprojectRequire.resolve(\"prettier\");\n\t\tcachedFormatCommand = \"prettier --write \\\"{{file}}\\\" --log-level silent\";\n\t\treturn cachedFormatCommand;\n\t} catch (_error) {}\n\ttry {\n\t\tprojectRequire.resolve(\"biome\");\n\t\tcachedFormatCommand = \"biome format \\\"{{file}}\\\" --write --log-level none\";\n\t\treturn cachedFormatCommand;\n\t} catch (_error) {}\n\ttry {\n\t\tprojectRequire.resolve(\"eslint\");\n\t\tcachedFormatCommand = \"eslint --fix \\\"{{file}}\\\" --quiet || node -e \\\"process.exit(0)\\\"\";\n\t\treturn cachedFormatCommand;\n\t} catch (_error) {}\n\tcachedFormatCommand = void 0;\n};\n\n//#endregion\nexport { detectFormatCommand };\n//# sourceMappingURL=detectFormatCommand.mjs.map"],"mappings":";;;AAGA,IAAI,sBAAsB;AAC1B,MAAM,uBAAuB,eAAe,uBAAuB;CAClE,MAAM,EAAE,YAAY,cAAc;CAClC,MAAM,EAAE,kBAAkB,cAAc;CACxC,MAAM,iBAAiB,sBAAsB,kBAAkB,QAAQ;AACvE,KAAI,cAAe,QAAO;AAC1B,KAAI,wBAAwB,KAAM,QAAO;AACzC,KAAI;AACH,iBAAe,QAAQ,WAAW;AAClC,wBAAsB;AACtB,SAAO;UACC,QAAQ;AACjB,KAAI;AACH,iBAAe,QAAQ,QAAQ;AAC/B,wBAAsB;AACtB,SAAO;UACC,QAAQ;AACjB,KAAI;AACH,iBAAe,QAAQ,SAAS;AAChC,wBAAsB;AACtB,SAAO;UACC,QAAQ;AACjB,uBAAsB,KAAK"}