vite-plugin-fenom 1.0.6 → 1.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vite-plugin-fenom",
3
- "version": "1.0.6",
3
+ "version": "1.0.7",
4
4
  "type": "module",
5
5
  "main": "./vite-plugin-fenom.cjs",
6
6
  "exports": {
@@ -248,81 +248,101 @@ function fenomPlugin(options = {}) {
248
248
  const files = await fastGlob(pattern);
249
249
  if (debug)
250
250
  console.log('\x1b[36m[Fenom Plugin]\x1b[0m Found templates:', files);
251
- // === Анализ входов и ассетов как было ===
251
+ // === Сбор информации о выходных файлах ===
252
+ const entryChunks = {}; // inputPath → /out/path.js
253
+ const cssAssets = {}; // inputPath → /out/path.css
254
+ for (const [fileName, file] of Object.entries(bundle)) {
255
+ const outFile = `/${fileName}`;
256
+ if (file.type === 'chunk' && file.facadeModuleId) {
257
+ // Это JS-чанк, сопоставим с входом
258
+ const inputPath = require$$0.relative(config.root, file.facadeModuleId).replace(/\\/g, '/');
259
+ entryChunks[inputPath] = outFile;
260
+ }
261
+ if (file.type === 'asset' && fileName.endsWith('.css')) {
262
+ // Это CSS-ассет. Попробуем найти, из какого входа.
263
+ // Vite не всегда хранит source, но имя может помочь
264
+ if (file.name && file.name.endsWith('.css')) {
265
+ // Пример: file.name = 'style.css' или 'style-hash.css'
266
+ const baseName = require$$0.basename(file.name, '.css');
267
+ // Пока просто запоминаем — уточним позже
268
+ cssAssets[file.name] = outFile;
269
+ }
270
+ }
271
+ }
272
+ // === Анализ входов ===
252
273
  const inputEntries = config.build.rollupOptions.input;
253
- let inputFiles = [];
274
+ const inputs = [];
254
275
  if (Array.isArray(inputEntries)) {
255
- inputFiles = inputEntries;
276
+ inputs.push(...inputEntries.filter((i) => typeof i === 'string'));
256
277
  }
257
278
  else if (typeof inputEntries === 'object' && inputEntries !== null) {
258
- inputFiles = Object.values(inputEntries);
279
+ inputs.push(...Object.values(inputEntries).filter((i) => typeof i === 'string'));
259
280
  }
260
281
  else if (typeof inputEntries === 'string') {
261
- inputFiles = [inputEntries];
262
- }
263
- let jsChunk = '';
264
- const cssAssets = [];
265
- for (const [fileName, file] of Object.entries(bundle)) {
266
- if (file.type === 'chunk' && /\.(js|ts)$/.test(fileName)) {
267
- jsChunk = `/${fileName}`;
268
- }
269
- if (file.type === 'asset' && fileName.endsWith('.css')) {
270
- cssAssets.push(`/${fileName}`);
271
- }
282
+ inputs.push(inputEntries);
272
283
  }
284
+ // === Карта замены: исходный путь → собранный файл ===
273
285
  const replacementMap = new Map();
274
- for (const input of inputFiles) {
275
- if (/\.(ts|js)$/.test(input) && jsChunk) {
276
- replacementMap.set(input, jsChunk);
286
+ for (const input of inputs) {
287
+ if (!input.endsWith('.js') && !input.endsWith('.ts') && !input.endsWith('.css'))
288
+ continue;
289
+ const normalizedInput = require$$0.resolve(input).replace(/\\/g, '/');
290
+ const relativeInput = require$$0.relative(config.root, normalizedInput).replace(/\\/g, '/');
291
+ if (input.endsWith('.ts') || input.endsWith('.js')) {
292
+ const moduleId = require$$0.relative(config.root, normalizedInput).replace(/\\/g, '/');
293
+ if (entryChunks[moduleId]) {
294
+ replacementMap.set(relativeInput, entryChunks[moduleId]);
295
+ }
277
296
  }
278
- if (/\.css$/.test(input) && cssAssets.length > 0) {
279
- replacementMap.set(input, cssAssets[0]);
297
+ if (input.endsWith('.css')) {
298
+ const cssFileName = require$$0.basename(input);
299
+ // Ищем ассет, содержащий имя файла
300
+ const matchedCss = Object.keys(cssAssets).find(name => name === cssFileName || name.startsWith(require$$0.basename(cssFileName, '.css')));
301
+ if (matchedCss) {
302
+ replacementMap.set(relativeInput, cssAssets[matchedCss]);
303
+ }
280
304
  }
281
305
  }
282
306
  // === Генерация HTML ===
283
307
  for (const file of files) {
284
308
  const fileName = require$$0.basename(file, '.tpl');
285
309
  const outputFileName = fileName === 'index' ? 'index.html' : `${fileName}.html`;
286
- try {
287
- const source = await fs__namespace.readFile(file, 'utf-8');
288
- const context = {
289
- title: `${fileName.charAt(0).toUpperCase() + fileName.slice(1)} Page`,
290
- debug: false,
291
- url: '/' + (fileName === 'index' ? '' : fileName),
292
- ...globalData, // ← все данные из data/**/*.json
293
- };
294
- let html = await fenomJsExports.FenomJs(source, context, {
295
- loader: templateLoader,
296
- root,
297
- minify: minifyHtml,
298
- });
299
- for (const [devPath, prodPath] of replacementMap) {
300
- const fullDevPath = '/' + devPath;
301
- const escaped = fullDevPath.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
302
- const scriptRegex = new RegExp(`<script[^>]+src=["']${escaped}["'][^>]*>`, 'gi');
303
- if (scriptRegex.test(html)) {
304
- html = html.replace(scriptRegex, `<script type="module" src="${prodPath}"></script>`);
305
- }
306
- const linkRegex = new RegExp(`<link[^>]+href=["']${escaped}["'][^>]*>`, 'gi');
307
- if (linkRegex.test(html)) {
308
- html = html.replace(linkRegex, `<link rel="stylesheet" href="${prodPath}">`);
309
- }
310
+ const source = await fs__namespace.readFile(file, 'utf-8');
311
+ const context = {
312
+ title: `${fileName.charAt(0).toUpperCase() + fileName.slice(1)} Page`,
313
+ debug: false,
314
+ url: '/' + (fileName === 'index' ? '' : fileName),
315
+ ...globalData,
316
+ };
317
+ let html = await fenomJsExports.FenomJs(source, context, {
318
+ loader: templateLoader,
319
+ root,
320
+ minify: minifyHtml,
321
+ });
322
+ // === Замена путей ===
323
+ for (const [devPath, prodPath] of replacementMap) {
324
+ const fullDevPath = '/' + devPath;
325
+ const escaped = fullDevPath.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
326
+ const scriptRegex = new RegExp(`<script[^>]+src=["']${escaped}["'][^>]*/?>`, 'gi');
327
+ if (scriptRegex.test(html)) {
328
+ html = html.replace(scriptRegex, `<script type="module" src="${prodPath}"></script>`);
329
+ }
330
+ const linkRegex = new RegExp(`<link[^>]+href=["']${escaped}["'][^>]*/?>`, 'gi');
331
+ if (linkRegex.test(html)) {
332
+ html = html.replace(linkRegex, `<link rel="stylesheet" href="${prodPath}">`);
310
333
  }
311
- this.emitFile({
312
- type: 'asset',
313
- fileName: outputFileName,
314
- source: html,
315
- });
316
- if (debug)
317
- console.log('\x1b[36m[Fenom Plugin]\x1b[0m Generated:', outputFileName);
318
- }
319
- catch (err) {
320
- console.error('\x1b[31m[Fenom Plugin]\x1b[0m Error rendering:', file);
321
334
  }
335
+ this.emitFile({
336
+ type: 'asset',
337
+ fileName: outputFileName,
338
+ source: html,
339
+ });
340
+ if (debug)
341
+ console.log('\x1b[36m[Fenom Plugin]\x1b[0m Generated:', outputFileName);
322
342
  }
323
343
  }
324
344
  catch (err) {
325
- console.error('\x1b[31m[Fenom Plugin]\x1b[0m glob error:', err);
345
+ console.error('\x1b[31m[Fenom Plugin]\x1b[0m Error during HTML generation:', err);
326
346
  }
327
347
  },
328
348
  };
@@ -1 +1 @@
1
- {"version":3,"file":"vite-plugin-fenom.cjs","sources":["../fenom-js/index.cjs","../src/src/vite-plugin-fenom/vite-plugin-fenom.ts"],"sourcesContent":["\"use strict\";Object.defineProperty(exports,Symbol.toStringTag,{value:\"Module\"});const e=require(\"path\"),t=require(\"fs/promises\"),r=[...[{type:\"extends\",regex:/^\\{extends\\s+['\"]file:([^'\"]+)['\"]\\s*\\}/,process:e=>({file:e[1]})},{type:\"block_open\",regex:/^\\{block\\s+(['\"])(.*?)\\1\\s*\\}/,process:e=>({name:e[2]})},{type:\"block_close\",regex:/^\\{\\/block\\}/},{type:\"parent\",regex:/^\\{parent\\}/},{type:\"paste\",regex:/^\\{paste\\s+(['\"])(.*?)\\1\\}/,process:e=>({name:e[2]})},{type:\"use\",regex:/^\\{use\\s+(['\"])(.*?)\\1\\}/,process:e=>({file:e[2]})}],{type:\"include\",regex:/^\\{include\\s+['\"]file:([^'\"]+)['\"](?:\\s+((?:\\s*\\w+\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s}]+))+))?\\s*\\}/,process:e=>{const t=e[1],r=e[2],s={};if(r){const e=/(\\w+)\\s*=\\s*(?:\"([^\"]*)\"|'([^']*)'|([^\\s}]+))/g;let t;for(;null!==(t=e.exec(r));){const e=t[1],r=t[2]||t[3]||t[4]||\"\";s[e]=r}}return{file:t,params:s}}},{type:\"for\",regex:/^\\{(for|foreach)\\s*\\$(\\w+(?:\\.\\w+)?)\\s+as\\s*\\$(\\w+)(?:\\s*\\|\\s*reverse)?\\s*\\}/,process:e=>({collection:`$${e[2]}`,item:e[3],key:null,reverse:e[0].includes(\"| reverse\")})},{type:\"for\",regex:/^\\{(for|foreach)\\s*\\$(\\w+(?:\\.\\w+)?)\\s+as\\s*\\$(\\w+)\\s*=>\\s*\\$(\\w+)(?:\\s*\\|\\s*reverse)?\\s*\\}/,process:e=>({collection:`$${e[2]}`,key:e[3],item:e[4],reverse:e[0].includes(\"| reverse\")})},{type:\"endfor\",regex:/^\\{\\/(?:for|foreach)\\}/},{type:\"break\",regex:/^\\{break\\}/i},{type:\"continue\",regex:/^\\{continue\\}/i},...[{type:\"switch\",regex:/^\\{switch\\s+(.+?)\\}/,process:e=>({value:e[1].trim()})},{type:\"case\",regex:/^\\{case\\s+(.+?)\\}/,process:e=>({value:e[1].trim()})},{type:\"default\",regex:/^\\{default\\}/},{type:\"endswitch\",regex:/^\\{\\/switch\\}/}],{type:\"operator\",regex:/^\\{\\$(\\w+)\\s*(\\+\\+|--|\\+=|-=|\\*=|\\/=|\\%=)\\s*([^}]+)?\\}/,process:e=>{var t;return{variable:e[1],operator:e[2],value:(null==(t=e[3])?void 0:t.trim())||\"1\"}}},...[{type:\"if\",regex:/^\\{if\\s+(.+?)\\}/,process:e=>({condition:e[1].trim()})},{type:\"elseif\",regex:/^\\{elseif\\s+(.+?)\\}/,process:e=>({condition:e[1].trim()})},{type:\"else\",regex:/^\\{else\\}/},{type:\"endif\",regex:/^\\{\\/if\\}/}],{type:\"ignore_block\",regex:/^\\{ignore\\}([\\s\\S]*?)\\{\\/ignore\\}/,process:e=>({content:e[1]})},...[{type:\"set\",regex:/^\\{set\\s+\\$(\\w+)\\s*=\\s*(\\{[^}]*\\}|\\[[^}]*\\])\\}/,process:e=>({variable:e[1],value:e[2]})},{type:\"set\",regex:/^\\{set\\s+\\$(\\w+)\\s*=\\s*(['\"])(.*?)\\2\\}/,process:e=>({variable:e[1],value:e[3]})},{type:\"set\",regex:/^\\{set\\s+\\$(\\w+)\\s*=\\s*([^}\\s][^}]*)\\}/,process:e=>({variable:e[1],value:e[2].trim()})},{type:\"add\",regex:/^\\{add\\s+\\$(\\w+)\\s*\\+\\+\\}/,process:e=>({variable:e[1]})},{type:\"var\",regex:/^\\{var\\s+\\$(\\w+)\\s*=\\s*(['\"])(.*?)\\2\\}/,process:e=>({variable:e[1],value:e[3]})}],...[{type:\"unset\",regex:/^\\{unset\\s+\\$(\\w+)\\}/,process:e=>({variable:e[1]})},{type:\"comment\",regex:/^\\{\\*\\s*([\\s\\S]*?)\\s*\\*\\}/}],...[{type:\"cycle\",regex:/^\\{cycle\\s+(.+?)\\}/,process:e=>({values:e[1]})}],...[{type:\"filter\",regex:/^\\{filter\\s+(.+?)\\}/,process:e=>({filter:e[1].trim()})},{type:\"endfilter\",regex:/^\\{\\/filter\\}/},{type:\"raw\",regex:/^\\{raw\\}/},{type:\"endraw\",regex:/^\\{\\/raw\\}/},{type:\"autoescape\",regex:/^\\{autoescape\\}/},{type:\"endautoescape\",regex:/^\\{\\/autoescape\\}/}],...[{type:\"macro\",regex:/^\\{macro\\s+(\\w+)(?:\\s*\\((.*?)\\))?\\}/,process(e){const t=e[2]?e[2].split(\",\").map(e=>e.trim()):[];return{name:e[1],args:t}}},{type:\"endmacro\",regex:/^\\{\\/macro\\}/},{type:\"import\",regex:/^\\{import\\s+(['\"])(.*?)\\1\\s+as\\s+(\\w+)\\}/,process:e=>({file:e[2],alias:e[3]})}],{type:\"output\",regex:/^\\{output\\s+name\\s*=\\s*(['\"])(.*?)\\1\\s*\\}/,process:e=>({name:e[2],filters:[]})},{type:\"output\",regex:/^\\{output\\s+(['\"])(.*?)\\1\\s*\\}/,process:e=>({name:e[2],filters:[]})},{type:\"output\",regex:/^\\{output\\s+([^\\s}]+)\\s*\\}/,process:e=>({name:e[1],filters:[]})},{type:\"output\",regex:/^\\{output\\s+(\\$?[^}]+)\\}/,process:e=>({name:e[1].trim(),filters:[]})},{type:\"output\",regex:/^\\{\\$(.+?)\\}/,process:e=>{const t=e[1].trim().split(\"|\").map(e=>e.trim());return{name:`$${t[0]}`,filters:t.slice(1)}}},{type:\"output\",regex:/^\\{([^$].+?)\\}/,process:e=>({name:e[1].trim(),filters:[]})}];function s(e){const t=[];let s=0;for(;s<e.length;){let n=!1;if(e.slice(s).startsWith(\"{ignore}\")){let r=1,o=s+8;for(;o<e.length;)if(e.length-o>=8&&e.startsWith(\"{ignore}\",o))r++,o+=8;else if(e.length-o>=9&&e.startsWith(\"{/ignore}\",o)){if(r--,o+=9,0===r){const r=e.slice(s+8,o-9);t.push({type:\"text\",value:r}),s=o,n=!0;break}}else o++;n||(t.push({type:\"text\",value:\"{ignore}\"}),s+=8);continue}if(\"{\"!==e[s]){const r=e.indexOf(\"{\",s);if(-1===r){t.push({type:\"text\",value:e.slice(s)});break}r>s&&t.push({type:\"text\",value:e.slice(s,r)}),s=r}for(const o of r){const r=e.slice(s).match(o.regex);if(r){const e={type:o.type,value:r[0]};if(\"comment\"===o.type){s+=r[0].length,n=!0;break}o.process&&Object.assign(e,o.process(r)),t.push(e),s+=r[0].length,n=!0;break}}if(!n){const t=e.slice(s,s+30).replace(/\\n/g,\"↵\");console.warn(`Skip unknown tag at ${s}: \"${t}\"`),s++}}return t}function n(e,t){const r={type:\"if\",condition:e[t].condition,body:[],elseIfs:[],elseBody:[]};let s=t+1,n=0;const o=[],i=[],a=[];let l=null,u=!1;for(;s<e.length;){const t=e[s];if(\"if\"===t.type&&n++,\"endif\"===t.type){if(0===n)break;n--}if(n>0)l||u?l?l.tokens.push(t):u&&a.push(t):o.push(t),s++;else if(\"elseif\"!==t.type)if(\"else\"!==t.type){if(\"endif\"===t.type)break;l||u?l?l.tokens.push(t):u&&a.push(t):o.push(t),s++}else l=null,u=!0,s++;else l||u?l?l.tokens.push(t):u&&a.push(t):(l={condition:t.condition,tokens:[]},i.push(l)),s++}return r.body=c(o),r.elseIfs=i.map(e=>({condition:e.condition,body:c(e.tokens)})),r.elseBody=c(a),{node:r,nextIndex:s+1}}function o(e,t){const r=e[t],s={type:\"for\",key:r.key||null,item:r.item,collection:r.collection,reverse:Boolean(r.reverse),body:[],elseBody:[]};let n=t+1,o=0,i=!1;for(;n<e.length;){const t=e[n];if(\"for\"===t.type&&o++,\"endfor\"===t.type){if(o>0){o--,i?s.elseBody.push(t):s.body.push(t),n++;continue}return{node:s,nextIndex:n+1}}if(o>0)i?s.elseBody.push(t):s.body.push(t),n++;else if(\"foreachelse\"!==t.type)[\"break\",\"continue\"].includes(t.type),i?s.elseBody.push(t):s.body.push(t),n++;else{if(0===o){i=!0,n++;continue}s.body.push(t),n++}}throw new Error(\"Unclosed for loop: expected {/for}\")}function i(e,t){const r={type:\"switch\",value:e[t].value,cases:[],defaultBody:[]};let s=t+1,n=0,o=null,i=!1;for(;s<e.length;){const t=e[s];if(\"switch\"===t.type&&n++,\"endswitch\"===t.type){if(n>0){n--,o&&o.body.push(t),s++;continue}return{node:r,nextIndex:s+1}}if(n>0)o&&o.body.push(t),s++;else if(\"case\"!==t.type)if(\"default\"!==t.type)o?o.body.push(t):i?r.defaultBody.push(t):r.cases.length>0&&r.cases[r.cases.length-1].body.push(t),s++;else{if(i)throw new Error(\"Duplicate {default} in switch\");i=!0,o=null,s++}else o={value:t.value,body:[]},r.cases.push(o),s++}throw new Error(\"Unclosed switch: expected {/switch}\")}function c(e){const t=[];let r=0;for(;r<e.length;){const s=e[r];if(\"block_open\"===s.type){const n=s.name;r++;const o=[];let i=0;for(;r<e.length;){const t=e[r];if(\"block_open\"===t.type&&i++,\"block_close\"===t.type){if(0===i)break;i--}o.push(t),r++}const a=c(o);t.push({type:\"block\",name:n,body:a}),r++;continue}if(\"extends\"!==s.type)if(\"include\"!==s.type)if([\"set\",\"var\",\"add\"].includes(s.type))t.push({...s}),r++;else{if(\"if\"===s.type){const{node:s,nextIndex:o}=n(e,r);t.push(s),r=o;continue}if(\"for\"===s.type||\"foreach\"===s.type){const{node:s,nextIndex:n}=o(e,r);t.push(s),r=n;continue}if(\"switch\"===s.type){const{node:s,nextIndex:n}=i(e,r);t.push(s),r=n;continue}if(\"output\"===s.type){const e=s.value.match(/^\\{\\$(.+)\\}$/);if(!e){t.push({type:\"text\",value:s.value}),r++;continue}const n=e[1].trim().split(\"|\"),o=n[0],i=n.slice(1);t.push({type:\"output\",name:`$${o}`,filters:i}),r++;continue}[\"elseif\",\"else\",\"endif\",\"endfor\",\"endforeach\",\"endswitch\"].includes(s.type)||t.push({...s}),r++}else t.push({...s}),r++;else t.push({...s}),r++}return t}function a(e){if(\"true\"===(e=e.trim()))return!0;if(\"false\"===e)return!1;if(\"null\"===e)return null;if(\"undefined\"!==e){if(!isNaN(+e)&&!e.includes(\" \"))return+e;if(/^[\"'](.*)[\"']$/.test(e))return e.slice(1,-1);if(e.startsWith(\"[\")&&e.endsWith(\"]\"))try{return e.slice(1,-1).split(\",\").map(e=>e.trim()).map(a)}catch{}if(e.startsWith(\"{\")&&e.endsWith(\"}\"))try{return JSON.parse(e.replace(/(\\w+):/g,'\"$1\":').replace(/'/g,'\"'))}catch{}return e}}function l(e,t,r){return(...s)=>{const n=s[0];let o=!1;switch(t){case\"array\":o=Array.isArray(n);break;case\"string\":o=\"string\"==typeof n;break;case\"object\":o=n&&\"object\"==typeof n&&!Array.isArray(n)}return o||console.warn(`[Fenom] filter '${e}' should be used with ${t}, but got ${typeof n}`),r(...s)}}function u(e,t){const r=e.split(\".\").map(e=>e.trim());let s=t;for(const n of r){if(null==s||\"object\"!=typeof s)return;s=s[n]}return s}function p(e,t,r,s){let n=e;for(const i of t){const[e,...t]=i.split(\":\").map(e=>e.trim()),c=s[e];if(\"function\"==typeof c){const e=t.map(e=>/^[\"'].*[\"']$/.test(e)?e.slice(1,-1):isNaN(+e)?e.startsWith(\"$\")?u(e.slice(1),r)??\"\":e:+e);try{n=c(n,...e)}catch(o){n=\"\"}}}return n}function f(e){const t=function(e){const t=[],r=/(\\s+|[$a-zA-Z_]\\w*(?:\\.\\w+)*|\"(?:[^\"\\\\]|\\\\.)*\"|'(?:[^'\\\\]|\\\\.)*'|\\d+(?:\\.\\d+)?|[-+*/%<>=!&|?:(){}[\\]~]+|[\\w-]+:)/g;let s;const n=e=>[\"+\",\"-\",\"*\",\"/\",\"%\",\"==\",\"!=\",\"<\",\"<=\",\">\",\">=\",\"&&\",\"||\",\"!\",\"(\",\")\",\"?\",\":\",\"~\"].includes(e);for(;null!==(s=r.exec(e));){const e=s[0].trim();if(e)if(n(e))t.push({type:\"op\",value:e});else if(\"|\"===e)t.push({type:\"filter\",value:e});else if(e.startsWith(\"$\"))t.push({type:\"var\",value:e});else if(/^[\"']/.test(e)){const r=e.slice(1,-1).replace(/\\\\(.)/g,\"$1\");t.push({type:\"str\",value:r})}else isNaN(+e)?t.push({type:\"str\",value:e}):t.push({type:\"num\",value:e})}return t}(e);let r=0;function s(){const e=o(()=>o(()=>o(()=>o(()=>o(()=>n(),[\"*\",\"/\",\"%\"]),[\"+\",\"-\",\"~\"]),[\"<\",\"<=\",\">\",\">=\"]),[\"==\",\"!=\"]),[\"||\",\"&&\"]);if(r<t.length&&\"?\"===t[r].value){r++;const n=s();r<t.length&&\":\"===t[r].value&&r++;return{type:\"conditional\",test:e,consequent:n,alternate:s()}}return e}function n(){if(r<t.length&&[\"!\",\"+\",\"-\"].includes(t[r].value)){const e=t[r].value;return r++,{type:\"unary\",operator:e,argument:n()}}return function(){const e=t[r];if(!e)throw new Error(\"Unexpected end of expression\");if(\"num\"===e.type)return r++,{type:\"literal\",value:+e.value};if(\"str\"===e.type)return r++,{type:\"literal\",value:e.value};if(\"var\"===e.type)return r++,{type:\"variable\",path:e.value.slice(1)};if(\"(\"===e.value){r++;const e=s();if(r>=t.length||\")\"!==t[r].value)throw new Error(\"Expected )\");return r++,e}throw new Error(`Unexpected token: ${e.value}`)}()}function o(e,s){let n=e();for(;r<t.length&&s.includes(t[r].value);){const s=t[r].value;r++;n={type:\"binary\",operator:s,left:n,right:e()}}return n}return s()}function y(e,t,r){switch(e.type){case\"literal\":return e.value;case\"variable\":return u(e.path,t)??\"\";case\"unary\":const s=y(e.argument,t,r);switch(e.operator){case\"!\":return!s;case\"+\":return+s;case\"-\":return-s}break;case\"binary\":{const s=y(e.left,t,r),n=y(e.right,t,r);switch(e.operator){case\"+\":return s+n;case\"-\":return s-n;case\"*\":return s*n;case\"/\":return s/n;case\"%\":return s%n;case\"==\":return s==n;case\"!=\":return s!=n;case\"<\":return s<n;case\"<=\":return s<=n;case\">\":return s>n;case\">=\":return s>=n;case\"&&\":return s&&n;case\"||\":return s||n;case\"~\":return String(s)+String(n)}break}case\"conditional\":const n=y(e.test,t,r);return y(n?e.consequent:e.alternate,t,r);case\"filter\":{const s=y(e.expression,t,r),n=e.args.map(e=>y(e,t,r)),o=r[e.filter];return\"function\"==typeof o?o(s,...n):s}}return\"\"}function d(e,t,r,s){var n,o,i,c,l,g;switch(e.type){case\"ignore_block\":t(e.content||\"\");break;case\"comment\":case\"extends\":case\"include\":break;case\"text\":t(e.value);break;case\"output\":if(/[+\\-*/%<>!=&|?:]/.test(e.name))try{let n=y(f(e.name),r,s);n=p(n,e.filters,r,s),t(String(n))}catch(h){console.warn(`Eval error: ${e.name}`,h),t(\"\")}else{let n=u((g=e.name).startsWith(\"$\")?g.slice(1):g,r)??\"\";n=p(n,e.filters,r,s),t(String(n))}break;case\"set\":{const{variable:t,value:n}=e;if(/[+\\-*/%~]/.test(n))try{const e=f(n);r[t]=y(e,r,s)}catch(h){r[t]=\"\"}else if(n.startsWith(\"$\")){const e=n.slice(1);r[t]=u(e,r)??\"\"}else r[t]=a(n);break}case\"var\":void 0===r[e.variable]&&(r[e.variable]=a(e.value));break;case\"add\":r[e.variable]=(r[e.variable]||0)+1;break;case\"if\":{let c=!1;try{c=!!y(f(e.condition),r,s)}catch(h){console.warn(`Condition error: ${e.condition}`,h),c=!1}if(c)for(const n of e.body)d(n,t,r,s);else if(null==(n=e.elseIfs)?void 0:n.length){let n=!1;for(const o of e.elseIfs){let e=!1;try{e=!!y(f(o.condition),r,s)}catch(h){console.warn(`Condition error: ${o.condition}`,h),e=!1}if(e){for(const e of o.body)d(e,t,r,s);n=!0;break}}if(!n&&(null==(o=e.elseBody)?void 0:o.length))for(const o of e.elseBody)d(o,t,r,s)}else if(null==(i=e.elseBody)?void 0:i.length)for(const n of e.elseBody)d(n,t,r,s);break}case\"for\":{const n=u(e.collection.slice(1),r);if(Array.isArray(n)&&n.length>0){const o=e.reverse??!1?[...n].reverse().keys():n.keys();for(const i of o){const o=n[i];r[e.item]=o,e.key&&(r[e.key]=i);for(const n of e.body)d(n,t,r,s)}}else if(null==(c=e.elseBody)?void 0:c.length)for(const o of e.elseBody)d(o,t,r,s);break}case\"switch\":{const n=r[e.value.slice(1)];let o=!1;for(const i of e.cases)if(i.value===n){for(const e of i.body)d(e,t,r,s);o=!0;break}if(!o&&(null==(l=e.defaultBody)?void 0:l.length))for(const i of e.defaultBody)d(i,t,r,s);break}case\"operator\":{const{variable:s,operator:n,value:o}=e,i=u(s,r),c=\"number\"==typeof i?i:+i||0;let a,l;if(/^[\\d.]+$/.test(o))a=parseFloat(o);else{const e=u(o,r);a=\"number\"==typeof e?e:+e||0}switch(n){case\"++\":l=c,r[s]=c+1;break;case\"--\":l=c,r[s]=c-1;break;case\"+=\":l=c,r[s]=c+a;break;case\"-=\":l=c,r[s]=c-a;break;case\"*=\":l=c,r[s]=c*a;break;case\"/=\":l=c,r[s]=c/a;break;case\"%=\":l=c,r[s]=c%a;break;default:console.warn(`Unknown operator: ${n}`),l=0}t(String(l));break}case\"block\":t(`{block \"${e.name}\"}`);break;default:console.warn(`Unknown node type: ${e.type}`)}}function g(e,t){const r={};let n=null;for(const s of e)\"extends\"===s.type?n=s.file:\"block\"===s.type&&(r[s.name]=s.body);return n?async function(e,o){try{const i=await t(n),a=c(s(i)),l={};for(const e of a)\"block\"===e.type&&(l[e.name]=e.body);const u={...l,...r},p={};e.block=async r=>{if(void 0!==p[r])return p[r];const n=u[r];if(!n)return p[r]=\"\",\"\";let i=\"\";const a={...e};for(const e of n)if(\"include\"===e.type)try{const r=await t(e.file),n=c(s(r)),l={...a};if(e.params)for(const[t,s]of Object.entries(e.params))\"string\"==typeof s&&s.startsWith(\"$\")?l[t]=a[s.slice(1)]:l[t]=s;for(const e of n)d(e,e=>i+=e,l,o)}catch{i+=`[Include error: ${e.file}]`}else d(e,e=>i+=e,a,o);return p[r]=i,i};let f=\"\";for(const r of a)if(\"block\"===r.type)f+=await e.block(r.name);else if(\"include\"===r.type)try{const n=await t(r.file),i=c(s(n)),a={...e};if(r.params)for(const[t,s]of Object.entries(r.params))\"string\"==typeof s&&s.startsWith(\"$\")?a[t]=e[s.slice(1)]:a[t]=s;for(const e of i)d(e,e=>f+=e,a,o)}catch{f+=`[Include error: ${r.file}]`}else d(r,e=>f+=e,e,o);return f}catch(i){return`[Render error: ${i.message}]`}}:async function(r,n){let o=\"\";for(const i of e)if(\"include\"===i.type)try{const e=await t(i.file),a=c(s(e)),l={...r};if(i.params)for(const[t,s]of Object.entries(i.params))\"string\"==typeof s&&s.startsWith(\"$\")?l[t]=r[s.slice(1)]:l[t]=s;for(const t of a)d(t,e=>o+=e,l,n)}catch{o+=`[Include error: ${i.file}]`}else d(i,e=>o+=e,r,n);return o}}function h(r){return async function(s){const n=e.join(r,s);if(!n.endsWith(\".tpl\"))throw new Error(`Template path must end with .tpl: ${s}`);try{return await t.readFile(n,\"utf-8\")}catch(o){if(\"ENOENT\"===o.code)throw new Error(`Template not found: ${n}`);throw o}}}const b={upper:e=>String(e).toUpperCase(),lower:e=>String(e).toLowerCase(),capitalize:e=>{const t=String(e).trim();return 0===t.length?\"\":t.charAt(0).toUpperCase()+t.slice(1).toLowerCase()},ucfirst:e=>b.capitalize(e),ucwords:e=>String(e).trim().replace(/\\b\\w/g,e=>e.toUpperCase()),lcfirst:e=>{const t=String(e).trim();return 0===t.length?\"\":t.charAt(0).toLowerCase()+t.slice(1)},trim:e=>String(e).trim(),ltrim:e=>String(e).replace(/^\\s+/,\"\"),rtrim:e=>String(e).replace(/\\s+$/,\"\"),nl2br:e=>String(e).replace(/\\n/g,\"<br>\"),replace:(e,t,r)=>String(e).split(String(t)).join(String(r)),substr:l(\"substr\",\"string\",(e,t,r)=>{const s=String(e);return void 0===r?s.slice(t):s.slice(t,t+r)}),urlencode:e=>encodeURIComponent(String(e)),urldecode:e=>decodeURIComponent(String(e)),escape:l(\"escape\",\"string\",e=>String(e).replace(/&/g,\"&amp;\").replace(/</g,\"&lt;\").replace(/>/g,\"&gt;\").replace(/\"/g,\"&quot;\").replace(/'/g,\"&#039;\")),e:e=>b.escape(e),first:l(\"first\",\"array\",e=>Array.isArray(e)?e[0]:e&&\"object\"==typeof e?Object.values(e)[0]:\"\"),last:l(\"last\",\"array\",e=>{if(Array.isArray(e))return e[e.length-1];if(e&&\"object\"==typeof e){const t=Object.values(e);return t[t.length-1]}return\"\"}),join:l(\"join\",\"array\",(e,t=\",\")=>Array.isArray(e)?e.join(t):e&&\"object\"==typeof e?Object.values(e).join(t):String(e)),reverse:l(\"reverse\",\"array\",e=>Array.isArray(e)?[...e].reverse():e),sort:l(\"sort\",\"array\",e=>Array.isArray(e)?[...e].sort():e),ksort:l(\"ksort\",\"object\",e=>{if(e&&\"object\"==typeof e){const t={};return Object.keys(e).sort().forEach(r=>{t[r]=e[r]}),t}return e}),unique:l(\"unique\",\"array\",e=>Array.isArray(e)?[...new Set(e)]:e),shuffle:l(\"shuffle\",\"array\",e=>{if(!Array.isArray(e))return e;const t=[...e];for(let r=t.length-1;r>0;r--){const e=Math.floor(Math.random()*(r+1));[t[r],t[e]]=[t[e],t[r]]}return t}),slice:(e,t,r)=>Array.isArray(e)||\"string\"==typeof e?void 0===r?e.slice(t):e.slice(t,t+r):e,merge:(e,t)=>Array.isArray(e)&&Array.isArray(t)?[...e,...t]:e,batch:(e,t)=>{if(!Array.isArray(e))return e;const r=[];for(let s=0;s<e.length;s+=t)r.push(e.slice(s,s+t));return r},keys:e=>e&&\"object\"==typeof e?Object.keys(e):[],values:e=>e&&\"object\"==typeof e?Object.values(e):[],length:e=>Array.isArray(e)?e.length:e&&\"object\"==typeof e?Object.keys(e).length:String(e).length,number_format:(e,t=0,r=\".\",s=\",\")=>{const n=Number(e);return isNaN(n)?\"\":n.toLocaleString(\"en-US\",{minimumFractionDigits:t,maximumFractionDigits:t,useGrouping:!0}).replace(/,/g,s).replace(/\\./g,r)},abs:e=>Math.abs(Number(e)||0),round:(e,t=0)=>{const r=10**t;return Math.round((Number(e)||0)*r)/r},json_encode:e=>JSON.stringify(e),json_decode:e=>{try{return JSON.parse(String(e))}catch{return null}},date:(e,t=\"d.m.Y\")=>{const r=Number(e),s=new Date(isNaN(r)?e:1e3*r);if(isNaN(s.getTime()))return console.warn(`[Fenom] filter 'date' received invalid timestamp: ${e}`),\"\";const n=e=>e.toString().padStart(2,\"0\");return t.replace(/d/g,n(s.getDate())).replace(/m/g,n(s.getMonth()+1)).replace(/Y/g,s.getFullYear().toString()).replace(/H/g,n(s.getHours())).replace(/i/g,n(s.getMinutes())).replace(/s/g,n(s.getSeconds()))},default:(e,t)=>null==e||\"\"===e||\"object\"==typeof e&&0===Object.keys(e).length?t:e,raw:e=>e,var_dump:e=>`<pre>${JSON.stringify(e,null,2)}</pre>`,print_r:e=>`<pre>${e instanceof Object?JSON.stringify(e,null,2):String(e)}</pre>`};exports.FenomJs=async function(e,t={},r){const{root:n=\"./src/\",loader:o,minify:i=!1}=r||{},a=o||h(n);try{const r=s(e),n=g(c(r),a),o=await n(t,b);return i?function(e){return e.replace(/>\\s+</g,\"><\").replace(/\\s{2,}/g,\" \").replace(/(<!--.*?-->)\\s+/g,\"$1\").trim()}(o):o}catch(l){return console.error(\"Template error:\",l),`<span style='color:red'>[Ошибка шаблона: ${l.message}]</span>`}},exports.compile=g,exports.createAsyncLoader=h,exports.parse=c,exports.tokenize=s;\n","import type { Plugin, ResolvedConfig } from 'vite';\r\nimport { join, relative, resolve, dirname, basename } from 'path';\r\nimport * as fs from 'fs/promises';\r\n\r\nimport { FenomJs, createAsyncLoader } from 'fenom-js';\r\nimport type { TemplateLoader } from 'fenom-js';\r\n\r\n// === Опции плагина ===\r\nexport interface FenomPluginOptions {\r\n pages?: string;\r\n data?: string;\r\n root?: string;\r\n minifyHtml?: boolean,\r\n debug?: boolean;\r\n}\r\n\r\n/**\r\n * Vite-плагин для рендеринга .tpl шаблонов через fenom-js\r\n */\r\nexport default function fenomPlugin(options: FenomPluginOptions = {}): Plugin {\r\n const {\r\n pages = 'src/pages',\r\n data = 'src/data/**/*.json',\r\n root = 'src',\r\n minifyHtml = true,\r\n debug = false,\r\n } = options;\r\n\r\n let config: ResolvedConfig;\r\n let templateLoader: TemplateLoader;\r\n let globalData: Record<string, any> = {}; // ← храним глобальные данные\r\n\r\n // === Функция загрузки глобальных JSON-данных ===\r\n async function loadGlobalData(rootDir: string) {\r\n const { default: fastGlob } = await import('fast-glob');\r\n\r\n const dataGlob = data;\r\n let baseDir = dataGlob;\r\n\r\n if (baseDir.includes('**')) {\r\n baseDir = baseDir.substring(0, baseDir.indexOf('**')).replace(/[/\\\\]+$/, '');\r\n }\r\n\r\n const fullPath = resolve(rootDir, baseDir);\r\n const globPattern = dataGlob.replace(baseDir, '').replace(/^\\//, ''); // → **/*.json\r\n\r\n if (debug) {\r\n console.log('[Fenom Plugin] Base dir:', fullPath);\r\n console.log('[Fenom Plugin] Glob pattern:', globPattern);\r\n }\r\n\r\n try {\r\n await fs.access(fullPath);\r\n } catch {\r\n console.warn(`[Fenom Plugin] Data directory not found: ${fullPath}`);\r\n return {};\r\n }\r\n\r\n const files = await fastGlob(globPattern, {\r\n cwd: fullPath,\r\n absolute: true,\r\n onlyFiles: true,\r\n dot: true,\r\n });\r\n\r\n if (debug) {\r\n console.log('Found JSON files:', files);\r\n }\r\n\r\n const jsonData: Record<string, any> = {};\r\n\r\n for (const file of files) {\r\n try {\r\n const content = await fs.readFile(file, 'utf-8');\r\n const parsed = JSON.parse(content);\r\n const fileName = basename(file, '.json');\r\n jsonData[fileName] = parsed;\r\n } catch (err) {\r\n console.warn(`[Fenom Plugin] Failed to load: ${file}`, err);\r\n }\r\n }\r\n\r\n if (debug) console.log('\\x1b[36m[Fenom Plugin]\\x1b[0m Loaded data keys:', Object.keys(jsonData));\r\n if (debug) console.log(jsonData);\r\n return jsonData;\r\n }\r\n\r\n\r\n return {\r\n name: 'vite-plugin-fenom',\r\n\r\n async configResolved(resolvedConfig) {\r\n config = resolvedConfig;\r\n\r\n if (debug) console.log('\\x1b[36m[Fenom Plugin]\\x1b[0m Config resolved', {\r\n mode: config.mode,\r\n command: config.command,\r\n root: config.root,\r\n });\r\n\r\n // === Загружаем глобальные данные при старте ===\r\n try {\r\n globalData = await loadGlobalData(config.root);\r\n } catch (err) {\r\n console.error('\\x1b[31m[Fenom Plugin]\\x1b[0m Failed to load global data:', err);\r\n }\r\n },\r\n\r\n configureServer(server) {\r\n if (debug) console.log('\\x1b[36m[Fenom Plugin]\\x1b[0m Dev server setup started...');\r\n\r\n templateLoader = createAsyncLoader(root);\r\n if (debug) console.log('\\x1b[36m[Fenom Plugin]\\x1b[0m Template loader created for root:', root);\r\n\r\n // === Добавляем отслеживание ===\r\n const tplDir = resolve(config.root, pages);\r\n const dataDir = resolve(config.root, data.split('**')[0]);\r\n\r\n server.watcher.add(tplDir);\r\n server.watcher.add(dataDir);\r\n\r\n if (debug) {\r\n console.log('[Fenom Plugin] 📂 Watching TPL:', tplDir);\r\n console.log('[Fenom Plugin] 📂 Watching DATA:', dataDir);\r\n }\r\n\r\n // === ЕДИНСТВЕННЫЙ обработчик ===\r\n server.watcher.on('change', async (filePath) => {\r\n const normalizedPath = filePath.replace(/\\\\/g, '/');\r\n\r\n if (filePath.endsWith('.tpl')) {\r\n if (debug) console.log('[Fenom Plugin] 🔄 TPL changed:', filePath);\r\n server.ws.send({ type: 'full-reload' });\r\n return;\r\n }\r\n\r\n if (normalizedPath.endsWith('.json') && normalizedPath.includes(dataDir.replace(/\\\\/g, '/'))) {\r\n if (debug) console.log('[Fenom Plugin] 📄 JSON changed:', filePath);\r\n\r\n try {\r\n const newData = await loadGlobalData(config.root);\r\n globalData = newData;\r\n if (debug) console.log('\\x1b[33m[Fenom Plugin]\\x1b[0m Global data reloaded:', Object.keys(newData));\r\n } catch (err) {\r\n console.warn('[Fenom Plugin] Failed to reload JSON data:', err);\r\n } finally {\r\n server.ws.send({ type: 'full-reload' });\r\n }\r\n }\r\n });\r\n\r\n // === handlePageRequest ===\r\n const handlePageRequest = async (req: any, res: any, next: () => void) => {\r\n const url = req.url;\r\n\r\n if (debug) console.log('\\x1b[36m[Fenom Plugin]\\x1b[0m Incoming request:', url);\r\n\r\n if (\r\n !url ||\r\n url.startsWith('/assets/') ||\r\n url.startsWith('/@') ||\r\n url.startsWith('/src/') ||\r\n url.startsWith('/node_modules/') ||\r\n url.startsWith('/favicon.ico') ||\r\n (url.includes('.') && !url.endsWith('/')) ||\r\n (url.includes('?') && url.includes('.'))\r\n ) {\r\n return next();\r\n }\r\n\r\n let pageName = 'index';\r\n if (url !== '/') {\r\n pageName = url.split('?')[0].split('#')[0].replace(/^\\/|\\/$/g, '');\r\n }\r\n\r\n const templatePath = join(pages, `${pageName}.tpl`);\r\n const relativePath = relative(root, templatePath);\r\n\r\n try {\r\n const source = await templateLoader(relativePath);\r\n\r\n const context = {\r\n title: `${pageName.charAt(0).toUpperCase() + pageName.slice(1)} Page`,\r\n debug,\r\n url,\r\n ...globalData,\r\n };\r\n\r\n let html = await FenomJs(source, context, {\r\n loader: templateLoader,\r\n root,\r\n minify: minifyHtml,\r\n });\r\n\r\n if (config.mode === 'development') {\r\n const hmrScript = `\r\n <script type=\"module\">\r\n import \"/@vite/client\";\r\n </script>`;\r\n if (html.includes('</head>')) {\r\n html = html.replace('</head>', hmrScript + '\\n</head>');\r\n } else if (html.includes('<body>')) {\r\n html = html.replace('<body>', '<body>\\n' + hmrScript);\r\n } else {\r\n html = hmrScript + html;\r\n }\r\n }\r\n\r\n res.statusCode = 200;\r\n res.setHeader('Content-Type', 'text/html; charset=utf-8');\r\n res.end(html);\r\n\r\n if (debug) console.log('\\x1b[36m[Fenom Plugin]\\x1b[0m Page sent:', url);\r\n } catch (err: any) {\r\n if (err.message.includes('Template not found')) {\r\n return next();\r\n }\r\n console.error('\\x1b[36m[Fenom Plugin]\\x1b[0m Rendering error:', err.message);\r\n res.statusCode = 500;\r\n res.end(`<h1>🔧 Ошибка</h1><pre>${err.stack}</pre>`);\r\n }\r\n };\r\n\r\n server.middlewares.stack.unshift({ route: '', handle: handlePageRequest });\r\n if (debug) console.log('\\x1b[36m[Fenom Plugin]\\x1b[0m Middleware inserted at top of stack');\r\n },\r\n\r\n async buildStart() {\r\n if (config.command !== 'build') return;\r\n if (debug) console.log('\\x1b[36m[Fenom Plugin]\\x1b[0m Build started');\r\n\r\n // === Загружаем данные перед сборкой ===\r\n try {\r\n globalData = await loadGlobalData(config.root);\r\n } catch (err) {\r\n console.error('\\x1b[31m[Fenom Plugin]\\x1b[0m Failed to load data on build start:', err);\r\n }\r\n },\r\n\r\n async generateBundle(_options, bundle) {\r\n if (config.command !== 'build') return;\r\n\r\n if (debug) console.log('\\x1b[36m[Fenom Plugin]\\x1b[0m Generating HTML files...');\r\n\r\n const { default: fastGlob } = await import('fast-glob');\r\n templateLoader = createAsyncLoader(root);\r\n\r\n const searchPath = resolve(config.root, pages);\r\n const pattern = join(searchPath, '**/*.tpl').replace(/\\\\/g, '/');\r\n\r\n try {\r\n const files = await fastGlob(pattern);\r\n if (debug) console.log('\\x1b[36m[Fenom Plugin]\\x1b[0m Found templates:', files);\r\n\r\n // === Анализ входов и ассетов — как было ===\r\n const inputEntries = config.build.rollupOptions.input;\r\n let inputFiles: string[] = [];\r\n\r\n if (Array.isArray(inputEntries)) {\r\n inputFiles = inputEntries;\r\n } else if (typeof inputEntries === 'object' && inputEntries !== null) {\r\n inputFiles = Object.values(inputEntries);\r\n } else if (typeof inputEntries === 'string') {\r\n inputFiles = [inputEntries];\r\n }\r\n\r\n let jsChunk = '';\r\n const cssAssets: string[] = [];\r\n\r\n for (const [fileName, file] of Object.entries(bundle)) {\r\n if (file.type === 'chunk' && /\\.(js|ts)$/.test(fileName)) {\r\n jsChunk = `/${fileName}`;\r\n }\r\n if (file.type === 'asset' && fileName.endsWith('.css')) {\r\n cssAssets.push(`/${fileName}`);\r\n }\r\n }\r\n\r\n const replacementMap = new Map<string, string>();\r\n for (const input of inputFiles) {\r\n if (/\\.(ts|js)$/.test(input) && jsChunk) {\r\n replacementMap.set(input, jsChunk);\r\n }\r\n if (/\\.css$/.test(input) && cssAssets.length > 0) {\r\n replacementMap.set(input, cssAssets[0]);\r\n }\r\n }\r\n\r\n // === Генерация HTML ===\r\n for (const file of files) {\r\n const fileName = basename(file, '.tpl');\r\n const outputFileName = fileName === 'index' ? 'index.html' : `${fileName}.html`;\r\n\r\n try {\r\n const source = await fs.readFile(file, 'utf-8');\r\n\r\n const context = {\r\n title: `${fileName.charAt(0).toUpperCase() + fileName.slice(1)} Page`,\r\n debug: false,\r\n url: '/' + (fileName === 'index' ? '' : fileName),\r\n ...globalData, // ← все данные из data/**/*.json\r\n };\r\n\r\n let html = await FenomJs(source, context, {\r\n loader: templateLoader,\r\n root,\r\n minify: minifyHtml,\r\n });\r\n\r\n for (const [devPath, prodPath] of replacementMap) {\r\n const fullDevPath = '/' + devPath;\r\n const escaped = fullDevPath.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\r\n\r\n const scriptRegex = new RegExp(`<script[^>]+src=[\"']${escaped}[\"'][^>]*>`, 'gi');\r\n if (scriptRegex.test(html)) {\r\n html = html.replace(scriptRegex, `<script type=\"module\" src=\"${prodPath}\"></script>`);\r\n }\r\n\r\n const linkRegex = new RegExp(`<link[^>]+href=[\"']${escaped}[\"'][^>]*>`, 'gi');\r\n if (linkRegex.test(html)) {\r\n html = html.replace(linkRegex, `<link rel=\"stylesheet\" href=\"${prodPath}\">`);\r\n }\r\n }\r\n\r\n this.emitFile({\r\n type: 'asset',\r\n fileName: outputFileName,\r\n source: html,\r\n });\r\n\r\n if (debug) console.log('\\x1b[36m[Fenom Plugin]\\x1b[0m Generated:', outputFileName);\r\n } catch (err) {\r\n console.error('\\x1b[31m[Fenom Plugin]\\x1b[0m Error rendering:', file);\r\n }\r\n }\r\n } catch (err) {\r\n console.error('\\x1b[31m[Fenom Plugin]\\x1b[0m glob error:', err);\r\n }\r\n },\r\n };\r\n}\r\n"],"names":["exports","require$$1","resolve","fs","basename","createAsyncLoader","join","relative","FenomJs"],"mappings":"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"}
1
+ {"version":3,"file":"vite-plugin-fenom.cjs","sources":["../fenom-js/index.cjs","../src/src/vite-plugin-fenom/vite-plugin-fenom.ts"],"sourcesContent":["\"use strict\";Object.defineProperty(exports,Symbol.toStringTag,{value:\"Module\"});const e=require(\"path\"),t=require(\"fs/promises\"),r=[...[{type:\"extends\",regex:/^\\{extends\\s+['\"]file:([^'\"]+)['\"]\\s*\\}/,process:e=>({file:e[1]})},{type:\"block_open\",regex:/^\\{block\\s+(['\"])(.*?)\\1\\s*\\}/,process:e=>({name:e[2]})},{type:\"block_close\",regex:/^\\{\\/block\\}/},{type:\"parent\",regex:/^\\{parent\\}/},{type:\"paste\",regex:/^\\{paste\\s+(['\"])(.*?)\\1\\}/,process:e=>({name:e[2]})},{type:\"use\",regex:/^\\{use\\s+(['\"])(.*?)\\1\\}/,process:e=>({file:e[2]})}],{type:\"include\",regex:/^\\{include\\s+['\"]file:([^'\"]+)['\"](?:\\s+((?:\\s*\\w+\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s}]+))+))?\\s*\\}/,process:e=>{const t=e[1],r=e[2],s={};if(r){const e=/(\\w+)\\s*=\\s*(?:\"([^\"]*)\"|'([^']*)'|([^\\s}]+))/g;let t;for(;null!==(t=e.exec(r));){const e=t[1],r=t[2]||t[3]||t[4]||\"\";s[e]=r}}return{file:t,params:s}}},{type:\"for\",regex:/^\\{(for|foreach)\\s*\\$(\\w+(?:\\.\\w+)?)\\s+as\\s*\\$(\\w+)(?:\\s*\\|\\s*reverse)?\\s*\\}/,process:e=>({collection:`$${e[2]}`,item:e[3],key:null,reverse:e[0].includes(\"| reverse\")})},{type:\"for\",regex:/^\\{(for|foreach)\\s*\\$(\\w+(?:\\.\\w+)?)\\s+as\\s*\\$(\\w+)\\s*=>\\s*\\$(\\w+)(?:\\s*\\|\\s*reverse)?\\s*\\}/,process:e=>({collection:`$${e[2]}`,key:e[3],item:e[4],reverse:e[0].includes(\"| reverse\")})},{type:\"endfor\",regex:/^\\{\\/(?:for|foreach)\\}/},{type:\"break\",regex:/^\\{break\\}/i},{type:\"continue\",regex:/^\\{continue\\}/i},...[{type:\"switch\",regex:/^\\{switch\\s+(.+?)\\}/,process:e=>({value:e[1].trim()})},{type:\"case\",regex:/^\\{case\\s+(.+?)\\}/,process:e=>({value:e[1].trim()})},{type:\"default\",regex:/^\\{default\\}/},{type:\"endswitch\",regex:/^\\{\\/switch\\}/}],{type:\"operator\",regex:/^\\{\\$(\\w+)\\s*(\\+\\+|--|\\+=|-=|\\*=|\\/=|\\%=)\\s*([^}]+)?\\}/,process:e=>{var t;return{variable:e[1],operator:e[2],value:(null==(t=e[3])?void 0:t.trim())||\"1\"}}},...[{type:\"if\",regex:/^\\{if\\s+(.+?)\\}/,process:e=>({condition:e[1].trim()})},{type:\"elseif\",regex:/^\\{elseif\\s+(.+?)\\}/,process:e=>({condition:e[1].trim()})},{type:\"else\",regex:/^\\{else\\}/},{type:\"endif\",regex:/^\\{\\/if\\}/}],{type:\"ignore_block\",regex:/^\\{ignore\\}([\\s\\S]*?)\\{\\/ignore\\}/,process:e=>({content:e[1]})},...[{type:\"set\",regex:/^\\{set\\s+\\$(\\w+)\\s*=\\s*(\\{[^}]*\\}|\\[[^}]*\\])\\}/,process:e=>({variable:e[1],value:e[2]})},{type:\"set\",regex:/^\\{set\\s+\\$(\\w+)\\s*=\\s*(['\"])(.*?)\\2\\}/,process:e=>({variable:e[1],value:e[3]})},{type:\"set\",regex:/^\\{set\\s+\\$(\\w+)\\s*=\\s*([^}\\s][^}]*)\\}/,process:e=>({variable:e[1],value:e[2].trim()})},{type:\"add\",regex:/^\\{add\\s+\\$(\\w+)\\s*\\+\\+\\}/,process:e=>({variable:e[1]})},{type:\"var\",regex:/^\\{var\\s+\\$(\\w+)\\s*=\\s*(['\"])(.*?)\\2\\}/,process:e=>({variable:e[1],value:e[3]})}],...[{type:\"unset\",regex:/^\\{unset\\s+\\$(\\w+)\\}/,process:e=>({variable:e[1]})},{type:\"comment\",regex:/^\\{\\*\\s*([\\s\\S]*?)\\s*\\*\\}/}],...[{type:\"cycle\",regex:/^\\{cycle\\s+(.+?)\\}/,process:e=>({values:e[1]})}],...[{type:\"filter\",regex:/^\\{filter\\s+(.+?)\\}/,process:e=>({filter:e[1].trim()})},{type:\"endfilter\",regex:/^\\{\\/filter\\}/},{type:\"raw\",regex:/^\\{raw\\}/},{type:\"endraw\",regex:/^\\{\\/raw\\}/},{type:\"autoescape\",regex:/^\\{autoescape\\}/},{type:\"endautoescape\",regex:/^\\{\\/autoescape\\}/}],...[{type:\"macro\",regex:/^\\{macro\\s+(\\w+)(?:\\s*\\((.*?)\\))?\\}/,process(e){const t=e[2]?e[2].split(\",\").map(e=>e.trim()):[];return{name:e[1],args:t}}},{type:\"endmacro\",regex:/^\\{\\/macro\\}/},{type:\"import\",regex:/^\\{import\\s+(['\"])(.*?)\\1\\s+as\\s+(\\w+)\\}/,process:e=>({file:e[2],alias:e[3]})}],{type:\"output\",regex:/^\\{output\\s+name\\s*=\\s*(['\"])(.*?)\\1\\s*\\}/,process:e=>({name:e[2],filters:[]})},{type:\"output\",regex:/^\\{output\\s+(['\"])(.*?)\\1\\s*\\}/,process:e=>({name:e[2],filters:[]})},{type:\"output\",regex:/^\\{output\\s+([^\\s}]+)\\s*\\}/,process:e=>({name:e[1],filters:[]})},{type:\"output\",regex:/^\\{output\\s+(\\$?[^}]+)\\}/,process:e=>({name:e[1].trim(),filters:[]})},{type:\"output\",regex:/^\\{\\$(.+?)\\}/,process:e=>{const t=e[1].trim().split(\"|\").map(e=>e.trim());return{name:`$${t[0]}`,filters:t.slice(1)}}},{type:\"output\",regex:/^\\{([^$].+?)\\}/,process:e=>({name:e[1].trim(),filters:[]})}];function s(e){const t=[];let s=0;for(;s<e.length;){let n=!1;if(e.slice(s).startsWith(\"{ignore}\")){let r=1,o=s+8;for(;o<e.length;)if(e.length-o>=8&&e.startsWith(\"{ignore}\",o))r++,o+=8;else if(e.length-o>=9&&e.startsWith(\"{/ignore}\",o)){if(r--,o+=9,0===r){const r=e.slice(s+8,o-9);t.push({type:\"text\",value:r}),s=o,n=!0;break}}else o++;n||(t.push({type:\"text\",value:\"{ignore}\"}),s+=8);continue}if(\"{\"!==e[s]){const r=e.indexOf(\"{\",s);if(-1===r){t.push({type:\"text\",value:e.slice(s)});break}r>s&&t.push({type:\"text\",value:e.slice(s,r)}),s=r}for(const o of r){const r=e.slice(s).match(o.regex);if(r){const e={type:o.type,value:r[0]};if(\"comment\"===o.type){s+=r[0].length,n=!0;break}o.process&&Object.assign(e,o.process(r)),t.push(e),s+=r[0].length,n=!0;break}}if(!n){const t=e.slice(s,s+30).replace(/\\n/g,\"↵\");console.warn(`Skip unknown tag at ${s}: \"${t}\"`),s++}}return t}function n(e,t){const r={type:\"if\",condition:e[t].condition,body:[],elseIfs:[],elseBody:[]};let s=t+1,n=0;const o=[],i=[],a=[];let l=null,u=!1;for(;s<e.length;){const t=e[s];if(\"if\"===t.type&&n++,\"endif\"===t.type){if(0===n)break;n--}if(n>0)l||u?l?l.tokens.push(t):u&&a.push(t):o.push(t),s++;else if(\"elseif\"!==t.type)if(\"else\"!==t.type){if(\"endif\"===t.type)break;l||u?l?l.tokens.push(t):u&&a.push(t):o.push(t),s++}else l=null,u=!0,s++;else l||u?l?l.tokens.push(t):u&&a.push(t):(l={condition:t.condition,tokens:[]},i.push(l)),s++}return r.body=c(o),r.elseIfs=i.map(e=>({condition:e.condition,body:c(e.tokens)})),r.elseBody=c(a),{node:r,nextIndex:s+1}}function o(e,t){const r=e[t],s={type:\"for\",key:r.key||null,item:r.item,collection:r.collection,reverse:Boolean(r.reverse),body:[],elseBody:[]};let n=t+1,o=0,i=!1;for(;n<e.length;){const t=e[n];if(\"for\"===t.type&&o++,\"endfor\"===t.type){if(o>0){o--,i?s.elseBody.push(t):s.body.push(t),n++;continue}return{node:s,nextIndex:n+1}}if(o>0)i?s.elseBody.push(t):s.body.push(t),n++;else if(\"foreachelse\"!==t.type)[\"break\",\"continue\"].includes(t.type),i?s.elseBody.push(t):s.body.push(t),n++;else{if(0===o){i=!0,n++;continue}s.body.push(t),n++}}throw new Error(\"Unclosed for loop: expected {/for}\")}function i(e,t){const r={type:\"switch\",value:e[t].value,cases:[],defaultBody:[]};let s=t+1,n=0,o=null,i=!1;for(;s<e.length;){const t=e[s];if(\"switch\"===t.type&&n++,\"endswitch\"===t.type){if(n>0){n--,o&&o.body.push(t),s++;continue}return{node:r,nextIndex:s+1}}if(n>0)o&&o.body.push(t),s++;else if(\"case\"!==t.type)if(\"default\"!==t.type)o?o.body.push(t):i?r.defaultBody.push(t):r.cases.length>0&&r.cases[r.cases.length-1].body.push(t),s++;else{if(i)throw new Error(\"Duplicate {default} in switch\");i=!0,o=null,s++}else o={value:t.value,body:[]},r.cases.push(o),s++}throw new Error(\"Unclosed switch: expected {/switch}\")}function c(e){const t=[];let r=0;for(;r<e.length;){const s=e[r];if(\"block_open\"===s.type){const n=s.name;r++;const o=[];let i=0;for(;r<e.length;){const t=e[r];if(\"block_open\"===t.type&&i++,\"block_close\"===t.type){if(0===i)break;i--}o.push(t),r++}const a=c(o);t.push({type:\"block\",name:n,body:a}),r++;continue}if(\"extends\"!==s.type)if(\"include\"!==s.type)if([\"set\",\"var\",\"add\"].includes(s.type))t.push({...s}),r++;else{if(\"if\"===s.type){const{node:s,nextIndex:o}=n(e,r);t.push(s),r=o;continue}if(\"for\"===s.type||\"foreach\"===s.type){const{node:s,nextIndex:n}=o(e,r);t.push(s),r=n;continue}if(\"switch\"===s.type){const{node:s,nextIndex:n}=i(e,r);t.push(s),r=n;continue}if(\"output\"===s.type){const e=s.value.match(/^\\{\\$(.+)\\}$/);if(!e){t.push({type:\"text\",value:s.value}),r++;continue}const n=e[1].trim().split(\"|\"),o=n[0],i=n.slice(1);t.push({type:\"output\",name:`$${o}`,filters:i}),r++;continue}[\"elseif\",\"else\",\"endif\",\"endfor\",\"endforeach\",\"endswitch\"].includes(s.type)||t.push({...s}),r++}else t.push({...s}),r++;else t.push({...s}),r++}return t}function a(e){if(\"true\"===(e=e.trim()))return!0;if(\"false\"===e)return!1;if(\"null\"===e)return null;if(\"undefined\"!==e){if(!isNaN(+e)&&!e.includes(\" \"))return+e;if(/^[\"'](.*)[\"']$/.test(e))return e.slice(1,-1);if(e.startsWith(\"[\")&&e.endsWith(\"]\"))try{return e.slice(1,-1).split(\",\").map(e=>e.trim()).map(a)}catch{}if(e.startsWith(\"{\")&&e.endsWith(\"}\"))try{return JSON.parse(e.replace(/(\\w+):/g,'\"$1\":').replace(/'/g,'\"'))}catch{}return e}}function l(e,t,r){return(...s)=>{const n=s[0];let o=!1;switch(t){case\"array\":o=Array.isArray(n);break;case\"string\":o=\"string\"==typeof n;break;case\"object\":o=n&&\"object\"==typeof n&&!Array.isArray(n)}return o||console.warn(`[Fenom] filter '${e}' should be used with ${t}, but got ${typeof n}`),r(...s)}}function u(e,t){const r=e.split(\".\").map(e=>e.trim());let s=t;for(const n of r){if(null==s||\"object\"!=typeof s)return;s=s[n]}return s}function p(e,t,r,s){let n=e;for(const i of t){const[e,...t]=i.split(\":\").map(e=>e.trim()),c=s[e];if(\"function\"==typeof c){const e=t.map(e=>/^[\"'].*[\"']$/.test(e)?e.slice(1,-1):isNaN(+e)?e.startsWith(\"$\")?u(e.slice(1),r)??\"\":e:+e);try{n=c(n,...e)}catch(o){n=\"\"}}}return n}function f(e){const t=function(e){const t=[],r=/(\\s+|[$a-zA-Z_]\\w*(?:\\.\\w+)*|\"(?:[^\"\\\\]|\\\\.)*\"|'(?:[^'\\\\]|\\\\.)*'|\\d+(?:\\.\\d+)?|[-+*/%<>=!&|?:(){}[\\]~]+|[\\w-]+:)/g;let s;const n=e=>[\"+\",\"-\",\"*\",\"/\",\"%\",\"==\",\"!=\",\"<\",\"<=\",\">\",\">=\",\"&&\",\"||\",\"!\",\"(\",\")\",\"?\",\":\",\"~\"].includes(e);for(;null!==(s=r.exec(e));){const e=s[0].trim();if(e)if(n(e))t.push({type:\"op\",value:e});else if(\"|\"===e)t.push({type:\"filter\",value:e});else if(e.startsWith(\"$\"))t.push({type:\"var\",value:e});else if(/^[\"']/.test(e)){const r=e.slice(1,-1).replace(/\\\\(.)/g,\"$1\");t.push({type:\"str\",value:r})}else isNaN(+e)?t.push({type:\"str\",value:e}):t.push({type:\"num\",value:e})}return t}(e);let r=0;function s(){const e=o(()=>o(()=>o(()=>o(()=>o(()=>n(),[\"*\",\"/\",\"%\"]),[\"+\",\"-\",\"~\"]),[\"<\",\"<=\",\">\",\">=\"]),[\"==\",\"!=\"]),[\"||\",\"&&\"]);if(r<t.length&&\"?\"===t[r].value){r++;const n=s();r<t.length&&\":\"===t[r].value&&r++;return{type:\"conditional\",test:e,consequent:n,alternate:s()}}return e}function n(){if(r<t.length&&[\"!\",\"+\",\"-\"].includes(t[r].value)){const e=t[r].value;return r++,{type:\"unary\",operator:e,argument:n()}}return function(){const e=t[r];if(!e)throw new Error(\"Unexpected end of expression\");if(\"num\"===e.type)return r++,{type:\"literal\",value:+e.value};if(\"str\"===e.type)return r++,{type:\"literal\",value:e.value};if(\"var\"===e.type)return r++,{type:\"variable\",path:e.value.slice(1)};if(\"(\"===e.value){r++;const e=s();if(r>=t.length||\")\"!==t[r].value)throw new Error(\"Expected )\");return r++,e}throw new Error(`Unexpected token: ${e.value}`)}()}function o(e,s){let n=e();for(;r<t.length&&s.includes(t[r].value);){const s=t[r].value;r++;n={type:\"binary\",operator:s,left:n,right:e()}}return n}return s()}function y(e,t,r){switch(e.type){case\"literal\":return e.value;case\"variable\":return u(e.path,t)??\"\";case\"unary\":const s=y(e.argument,t,r);switch(e.operator){case\"!\":return!s;case\"+\":return+s;case\"-\":return-s}break;case\"binary\":{const s=y(e.left,t,r),n=y(e.right,t,r);switch(e.operator){case\"+\":return s+n;case\"-\":return s-n;case\"*\":return s*n;case\"/\":return s/n;case\"%\":return s%n;case\"==\":return s==n;case\"!=\":return s!=n;case\"<\":return s<n;case\"<=\":return s<=n;case\">\":return s>n;case\">=\":return s>=n;case\"&&\":return s&&n;case\"||\":return s||n;case\"~\":return String(s)+String(n)}break}case\"conditional\":const n=y(e.test,t,r);return y(n?e.consequent:e.alternate,t,r);case\"filter\":{const s=y(e.expression,t,r),n=e.args.map(e=>y(e,t,r)),o=r[e.filter];return\"function\"==typeof o?o(s,...n):s}}return\"\"}function d(e,t,r,s){var n,o,i,c,l,g;switch(e.type){case\"ignore_block\":t(e.content||\"\");break;case\"comment\":case\"extends\":case\"include\":break;case\"text\":t(e.value);break;case\"output\":if(/[+\\-*/%<>!=&|?:]/.test(e.name))try{let n=y(f(e.name),r,s);n=p(n,e.filters,r,s),t(String(n))}catch(h){console.warn(`Eval error: ${e.name}`,h),t(\"\")}else{let n=u((g=e.name).startsWith(\"$\")?g.slice(1):g,r)??\"\";n=p(n,e.filters,r,s),t(String(n))}break;case\"set\":{const{variable:t,value:n}=e;if(/[+\\-*/%~]/.test(n))try{const e=f(n);r[t]=y(e,r,s)}catch(h){r[t]=\"\"}else if(n.startsWith(\"$\")){const e=n.slice(1);r[t]=u(e,r)??\"\"}else r[t]=a(n);break}case\"var\":void 0===r[e.variable]&&(r[e.variable]=a(e.value));break;case\"add\":r[e.variable]=(r[e.variable]||0)+1;break;case\"if\":{let c=!1;try{c=!!y(f(e.condition),r,s)}catch(h){console.warn(`Condition error: ${e.condition}`,h),c=!1}if(c)for(const n of e.body)d(n,t,r,s);else if(null==(n=e.elseIfs)?void 0:n.length){let n=!1;for(const o of e.elseIfs){let e=!1;try{e=!!y(f(o.condition),r,s)}catch(h){console.warn(`Condition error: ${o.condition}`,h),e=!1}if(e){for(const e of o.body)d(e,t,r,s);n=!0;break}}if(!n&&(null==(o=e.elseBody)?void 0:o.length))for(const o of e.elseBody)d(o,t,r,s)}else if(null==(i=e.elseBody)?void 0:i.length)for(const n of e.elseBody)d(n,t,r,s);break}case\"for\":{const n=u(e.collection.slice(1),r);if(Array.isArray(n)&&n.length>0){const o=e.reverse??!1?[...n].reverse().keys():n.keys();for(const i of o){const o=n[i];r[e.item]=o,e.key&&(r[e.key]=i);for(const n of e.body)d(n,t,r,s)}}else if(null==(c=e.elseBody)?void 0:c.length)for(const o of e.elseBody)d(o,t,r,s);break}case\"switch\":{const n=r[e.value.slice(1)];let o=!1;for(const i of e.cases)if(i.value===n){for(const e of i.body)d(e,t,r,s);o=!0;break}if(!o&&(null==(l=e.defaultBody)?void 0:l.length))for(const i of e.defaultBody)d(i,t,r,s);break}case\"operator\":{const{variable:s,operator:n,value:o}=e,i=u(s,r),c=\"number\"==typeof i?i:+i||0;let a,l;if(/^[\\d.]+$/.test(o))a=parseFloat(o);else{const e=u(o,r);a=\"number\"==typeof e?e:+e||0}switch(n){case\"++\":l=c,r[s]=c+1;break;case\"--\":l=c,r[s]=c-1;break;case\"+=\":l=c,r[s]=c+a;break;case\"-=\":l=c,r[s]=c-a;break;case\"*=\":l=c,r[s]=c*a;break;case\"/=\":l=c,r[s]=c/a;break;case\"%=\":l=c,r[s]=c%a;break;default:console.warn(`Unknown operator: ${n}`),l=0}t(String(l));break}case\"block\":t(`{block \"${e.name}\"}`);break;default:console.warn(`Unknown node type: ${e.type}`)}}function g(e,t){const r={};let n=null;for(const s of e)\"extends\"===s.type?n=s.file:\"block\"===s.type&&(r[s.name]=s.body);return n?async function(e,o){try{const i=await t(n),a=c(s(i)),l={};for(const e of a)\"block\"===e.type&&(l[e.name]=e.body);const u={...l,...r},p={};e.block=async r=>{if(void 0!==p[r])return p[r];const n=u[r];if(!n)return p[r]=\"\",\"\";let i=\"\";const a={...e};for(const e of n)if(\"include\"===e.type)try{const r=await t(e.file),n=c(s(r)),l={...a};if(e.params)for(const[t,s]of Object.entries(e.params))\"string\"==typeof s&&s.startsWith(\"$\")?l[t]=a[s.slice(1)]:l[t]=s;for(const e of n)d(e,e=>i+=e,l,o)}catch{i+=`[Include error: ${e.file}]`}else d(e,e=>i+=e,a,o);return p[r]=i,i};let f=\"\";for(const r of a)if(\"block\"===r.type)f+=await e.block(r.name);else if(\"include\"===r.type)try{const n=await t(r.file),i=c(s(n)),a={...e};if(r.params)for(const[t,s]of Object.entries(r.params))\"string\"==typeof s&&s.startsWith(\"$\")?a[t]=e[s.slice(1)]:a[t]=s;for(const e of i)d(e,e=>f+=e,a,o)}catch{f+=`[Include error: ${r.file}]`}else d(r,e=>f+=e,e,o);return f}catch(i){return`[Render error: ${i.message}]`}}:async function(r,n){let o=\"\";for(const i of e)if(\"include\"===i.type)try{const e=await t(i.file),a=c(s(e)),l={...r};if(i.params)for(const[t,s]of Object.entries(i.params))\"string\"==typeof s&&s.startsWith(\"$\")?l[t]=r[s.slice(1)]:l[t]=s;for(const t of a)d(t,e=>o+=e,l,n)}catch{o+=`[Include error: ${i.file}]`}else d(i,e=>o+=e,r,n);return o}}function h(r){return async function(s){const n=e.join(r,s);if(!n.endsWith(\".tpl\"))throw new Error(`Template path must end with .tpl: ${s}`);try{return await t.readFile(n,\"utf-8\")}catch(o){if(\"ENOENT\"===o.code)throw new Error(`Template not found: ${n}`);throw o}}}const b={upper:e=>String(e).toUpperCase(),lower:e=>String(e).toLowerCase(),capitalize:e=>{const t=String(e).trim();return 0===t.length?\"\":t.charAt(0).toUpperCase()+t.slice(1).toLowerCase()},ucfirst:e=>b.capitalize(e),ucwords:e=>String(e).trim().replace(/\\b\\w/g,e=>e.toUpperCase()),lcfirst:e=>{const t=String(e).trim();return 0===t.length?\"\":t.charAt(0).toLowerCase()+t.slice(1)},trim:e=>String(e).trim(),ltrim:e=>String(e).replace(/^\\s+/,\"\"),rtrim:e=>String(e).replace(/\\s+$/,\"\"),nl2br:e=>String(e).replace(/\\n/g,\"<br>\"),replace:(e,t,r)=>String(e).split(String(t)).join(String(r)),substr:l(\"substr\",\"string\",(e,t,r)=>{const s=String(e);return void 0===r?s.slice(t):s.slice(t,t+r)}),urlencode:e=>encodeURIComponent(String(e)),urldecode:e=>decodeURIComponent(String(e)),escape:l(\"escape\",\"string\",e=>String(e).replace(/&/g,\"&amp;\").replace(/</g,\"&lt;\").replace(/>/g,\"&gt;\").replace(/\"/g,\"&quot;\").replace(/'/g,\"&#039;\")),e:e=>b.escape(e),first:l(\"first\",\"array\",e=>Array.isArray(e)?e[0]:e&&\"object\"==typeof e?Object.values(e)[0]:\"\"),last:l(\"last\",\"array\",e=>{if(Array.isArray(e))return e[e.length-1];if(e&&\"object\"==typeof e){const t=Object.values(e);return t[t.length-1]}return\"\"}),join:l(\"join\",\"array\",(e,t=\",\")=>Array.isArray(e)?e.join(t):e&&\"object\"==typeof e?Object.values(e).join(t):String(e)),reverse:l(\"reverse\",\"array\",e=>Array.isArray(e)?[...e].reverse():e),sort:l(\"sort\",\"array\",e=>Array.isArray(e)?[...e].sort():e),ksort:l(\"ksort\",\"object\",e=>{if(e&&\"object\"==typeof e){const t={};return Object.keys(e).sort().forEach(r=>{t[r]=e[r]}),t}return e}),unique:l(\"unique\",\"array\",e=>Array.isArray(e)?[...new Set(e)]:e),shuffle:l(\"shuffle\",\"array\",e=>{if(!Array.isArray(e))return e;const t=[...e];for(let r=t.length-1;r>0;r--){const e=Math.floor(Math.random()*(r+1));[t[r],t[e]]=[t[e],t[r]]}return t}),slice:(e,t,r)=>Array.isArray(e)||\"string\"==typeof e?void 0===r?e.slice(t):e.slice(t,t+r):e,merge:(e,t)=>Array.isArray(e)&&Array.isArray(t)?[...e,...t]:e,batch:(e,t)=>{if(!Array.isArray(e))return e;const r=[];for(let s=0;s<e.length;s+=t)r.push(e.slice(s,s+t));return r},keys:e=>e&&\"object\"==typeof e?Object.keys(e):[],values:e=>e&&\"object\"==typeof e?Object.values(e):[],length:e=>Array.isArray(e)?e.length:e&&\"object\"==typeof e?Object.keys(e).length:String(e).length,number_format:(e,t=0,r=\".\",s=\",\")=>{const n=Number(e);return isNaN(n)?\"\":n.toLocaleString(\"en-US\",{minimumFractionDigits:t,maximumFractionDigits:t,useGrouping:!0}).replace(/,/g,s).replace(/\\./g,r)},abs:e=>Math.abs(Number(e)||0),round:(e,t=0)=>{const r=10**t;return Math.round((Number(e)||0)*r)/r},json_encode:e=>JSON.stringify(e),json_decode:e=>{try{return JSON.parse(String(e))}catch{return null}},date:(e,t=\"d.m.Y\")=>{const r=Number(e),s=new Date(isNaN(r)?e:1e3*r);if(isNaN(s.getTime()))return console.warn(`[Fenom] filter 'date' received invalid timestamp: ${e}`),\"\";const n=e=>e.toString().padStart(2,\"0\");return t.replace(/d/g,n(s.getDate())).replace(/m/g,n(s.getMonth()+1)).replace(/Y/g,s.getFullYear().toString()).replace(/H/g,n(s.getHours())).replace(/i/g,n(s.getMinutes())).replace(/s/g,n(s.getSeconds()))},default:(e,t)=>null==e||\"\"===e||\"object\"==typeof e&&0===Object.keys(e).length?t:e,raw:e=>e,var_dump:e=>`<pre>${JSON.stringify(e,null,2)}</pre>`,print_r:e=>`<pre>${e instanceof Object?JSON.stringify(e,null,2):String(e)}</pre>`};exports.FenomJs=async function(e,t={},r){const{root:n=\"./src/\",loader:o,minify:i=!1}=r||{},a=o||h(n);try{const r=s(e),n=g(c(r),a),o=await n(t,b);return i?function(e){return e.replace(/>\\s+</g,\"><\").replace(/\\s{2,}/g,\" \").replace(/(<!--.*?-->)\\s+/g,\"$1\").trim()}(o):o}catch(l){return console.error(\"Template error:\",l),`<span style='color:red'>[Ошибка шаблона: ${l.message}]</span>`}},exports.compile=g,exports.createAsyncLoader=h,exports.parse=c,exports.tokenize=s;\n","import type { Plugin, ResolvedConfig } from 'vite';\r\nimport { join, relative, resolve, dirname, basename } from 'path';\r\nimport * as fs from 'fs/promises';\r\n\r\nimport { FenomJs, createAsyncLoader } from 'fenom-js';\r\nimport type { TemplateLoader } from 'fenom-js';\r\n\r\n// === Опции плагина ===\r\nexport interface FenomPluginOptions {\r\n pages?: string;\r\n data?: string;\r\n root?: string;\r\n minifyHtml?: boolean,\r\n debug?: boolean;\r\n}\r\n\r\n/**\r\n * Vite-плагин для рендеринга .tpl шаблонов через fenom-js\r\n */\r\nexport default function fenomPlugin(options: FenomPluginOptions = {}): Plugin {\r\n const {\r\n pages = 'src/pages',\r\n data = 'src/data/**/*.json',\r\n root = 'src',\r\n minifyHtml = true,\r\n debug = false,\r\n } = options;\r\n\r\n let config: ResolvedConfig;\r\n let templateLoader: TemplateLoader;\r\n let globalData: Record<string, any> = {}; // ← храним глобальные данные\r\n\r\n // === Функция загрузки глобальных JSON-данных ===\r\n async function loadGlobalData(rootDir: string) {\r\n const { default: fastGlob } = await import('fast-glob');\r\n\r\n const dataGlob = data;\r\n let baseDir = dataGlob;\r\n\r\n if (baseDir.includes('**')) {\r\n baseDir = baseDir.substring(0, baseDir.indexOf('**')).replace(/[/\\\\]+$/, '');\r\n }\r\n\r\n const fullPath = resolve(rootDir, baseDir);\r\n const globPattern = dataGlob.replace(baseDir, '').replace(/^\\//, ''); // → **/*.json\r\n\r\n if (debug) {\r\n console.log('[Fenom Plugin] Base dir:', fullPath);\r\n console.log('[Fenom Plugin] Glob pattern:', globPattern);\r\n }\r\n\r\n try {\r\n await fs.access(fullPath);\r\n } catch {\r\n console.warn(`[Fenom Plugin] Data directory not found: ${fullPath}`);\r\n return {};\r\n }\r\n\r\n const files = await fastGlob(globPattern, {\r\n cwd: fullPath,\r\n absolute: true,\r\n onlyFiles: true,\r\n dot: true,\r\n });\r\n\r\n if (debug) {\r\n console.log('Found JSON files:', files);\r\n }\r\n\r\n const jsonData: Record<string, any> = {};\r\n\r\n for (const file of files) {\r\n try {\r\n const content = await fs.readFile(file, 'utf-8');\r\n const parsed = JSON.parse(content);\r\n const fileName = basename(file, '.json');\r\n jsonData[fileName] = parsed;\r\n } catch (err) {\r\n console.warn(`[Fenom Plugin] Failed to load: ${file}`, err);\r\n }\r\n }\r\n\r\n if (debug) console.log('\\x1b[36m[Fenom Plugin]\\x1b[0m Loaded data keys:', Object.keys(jsonData));\r\n if (debug) console.log(jsonData);\r\n return jsonData;\r\n }\r\n\r\n\r\n return {\r\n name: 'vite-plugin-fenom',\r\n\r\n async configResolved(resolvedConfig) {\r\n config = resolvedConfig;\r\n\r\n if (debug) console.log('\\x1b[36m[Fenom Plugin]\\x1b[0m Config resolved', {\r\n mode: config.mode,\r\n command: config.command,\r\n root: config.root,\r\n });\r\n\r\n // === Загружаем глобальные данные при старте ===\r\n try {\r\n globalData = await loadGlobalData(config.root);\r\n } catch (err) {\r\n console.error('\\x1b[31m[Fenom Plugin]\\x1b[0m Failed to load global data:', err);\r\n }\r\n },\r\n\r\n configureServer(server) {\r\n if (debug) console.log('\\x1b[36m[Fenom Plugin]\\x1b[0m Dev server setup started...');\r\n\r\n templateLoader = createAsyncLoader(root);\r\n if (debug) console.log('\\x1b[36m[Fenom Plugin]\\x1b[0m Template loader created for root:', root);\r\n\r\n // === Добавляем отслеживание ===\r\n const tplDir = resolve(config.root, pages);\r\n const dataDir = resolve(config.root, data.split('**')[0]);\r\n\r\n server.watcher.add(tplDir);\r\n server.watcher.add(dataDir);\r\n\r\n if (debug) {\r\n console.log('[Fenom Plugin] 📂 Watching TPL:', tplDir);\r\n console.log('[Fenom Plugin] 📂 Watching DATA:', dataDir);\r\n }\r\n\r\n // === ЕДИНСТВЕННЫЙ обработчик ===\r\n server.watcher.on('change', async (filePath) => {\r\n const normalizedPath = filePath.replace(/\\\\/g, '/');\r\n\r\n if (filePath.endsWith('.tpl')) {\r\n if (debug) console.log('[Fenom Plugin] 🔄 TPL changed:', filePath);\r\n server.ws.send({ type: 'full-reload' });\r\n return;\r\n }\r\n\r\n if (normalizedPath.endsWith('.json') && normalizedPath.includes(dataDir.replace(/\\\\/g, '/'))) {\r\n if (debug) console.log('[Fenom Plugin] 📄 JSON changed:', filePath);\r\n\r\n try {\r\n const newData = await loadGlobalData(config.root);\r\n globalData = newData;\r\n if (debug) console.log('\\x1b[33m[Fenom Plugin]\\x1b[0m Global data reloaded:', Object.keys(newData));\r\n } catch (err) {\r\n console.warn('[Fenom Plugin] Failed to reload JSON data:', err);\r\n } finally {\r\n server.ws.send({ type: 'full-reload' });\r\n }\r\n }\r\n });\r\n\r\n // === handlePageRequest ===\r\n const handlePageRequest = async (req: any, res: any, next: () => void) => {\r\n const url = req.url;\r\n\r\n if (debug) console.log('\\x1b[36m[Fenom Plugin]\\x1b[0m Incoming request:', url);\r\n\r\n if (\r\n !url ||\r\n url.startsWith('/assets/') ||\r\n url.startsWith('/@') ||\r\n url.startsWith('/src/') ||\r\n url.startsWith('/node_modules/') ||\r\n url.startsWith('/favicon.ico') ||\r\n (url.includes('.') && !url.endsWith('/')) ||\r\n (url.includes('?') && url.includes('.'))\r\n ) {\r\n return next();\r\n }\r\n\r\n let pageName = 'index';\r\n if (url !== '/') {\r\n pageName = url.split('?')[0].split('#')[0].replace(/^\\/|\\/$/g, '');\r\n }\r\n\r\n const templatePath = join(pages, `${pageName}.tpl`);\r\n const relativePath = relative(root, templatePath);\r\n\r\n try {\r\n const source = await templateLoader(relativePath);\r\n\r\n const context = {\r\n title: `${pageName.charAt(0).toUpperCase() + pageName.slice(1)} Page`,\r\n debug,\r\n url,\r\n ...globalData,\r\n };\r\n\r\n let html = await FenomJs(source, context, {\r\n loader: templateLoader,\r\n root,\r\n minify: minifyHtml,\r\n });\r\n\r\n if (config.mode === 'development') {\r\n const hmrScript = `\r\n <script type=\"module\">\r\n import \"/@vite/client\";\r\n </script>`;\r\n if (html.includes('</head>')) {\r\n html = html.replace('</head>', hmrScript + '\\n</head>');\r\n } else if (html.includes('<body>')) {\r\n html = html.replace('<body>', '<body>\\n' + hmrScript);\r\n } else {\r\n html = hmrScript + html;\r\n }\r\n }\r\n\r\n res.statusCode = 200;\r\n res.setHeader('Content-Type', 'text/html; charset=utf-8');\r\n res.end(html);\r\n\r\n if (debug) console.log('\\x1b[36m[Fenom Plugin]\\x1b[0m Page sent:', url);\r\n } catch (err: any) {\r\n if (err.message.includes('Template not found')) {\r\n return next();\r\n }\r\n console.error('\\x1b[36m[Fenom Plugin]\\x1b[0m Rendering error:', err.message);\r\n res.statusCode = 500;\r\n res.end(`<h1>🔧 Ошибка</h1><pre>${err.stack}</pre>`);\r\n }\r\n };\r\n\r\n server.middlewares.stack.unshift({ route: '', handle: handlePageRequest });\r\n if (debug) console.log('\\x1b[36m[Fenom Plugin]\\x1b[0m Middleware inserted at top of stack');\r\n },\r\n\r\n async buildStart() {\r\n if (config.command !== 'build') return;\r\n if (debug) console.log('\\x1b[36m[Fenom Plugin]\\x1b[0m Build started');\r\n\r\n // === Загружаем данные перед сборкой ===\r\n try {\r\n globalData = await loadGlobalData(config.root);\r\n } catch (err) {\r\n console.error('\\x1b[31m[Fenom Plugin]\\x1b[0m Failed to load data on build start:', err);\r\n }\r\n },\r\n\r\n async generateBundle(_options, bundle) {\r\n if (config.command !== 'build') return;\r\n\r\n if (debug) console.log('\\x1b[36m[Fenom Plugin]\\x1b[0m Generating HTML files...');\r\n\r\n const { default: fastGlob } = await import('fast-glob');\r\n templateLoader = createAsyncLoader(root);\r\n\r\n const searchPath = resolve(config.root, pages);\r\n const pattern = join(searchPath, '**/*.tpl').replace(/\\\\/g, '/');\r\n\r\n try {\r\n const files = await fastGlob(pattern);\r\n if (debug) console.log('\\x1b[36m[Fenom Plugin]\\x1b[0m Found templates:', files);\r\n\r\n // === Сбор информации о выходных файлах ===\r\n const entryChunks: Record<string, string> = {}; // inputPath → /out/path.js\r\n const cssAssets: Record<string, string> = {}; // inputPath → /out/path.css\r\n\r\n for (const [fileName, file] of Object.entries(bundle)) {\r\n const outFile = `/${fileName}`;\r\n\r\n if (file.type === 'chunk' && file.facadeModuleId) {\r\n // Это JS-чанк, сопоставим с входом\r\n const inputPath = relative(config.root, file.facadeModuleId).replace(/\\\\/g, '/');\r\n entryChunks[inputPath] = outFile;\r\n }\r\n\r\n if (file.type === 'asset' && fileName.endsWith('.css')) {\r\n // Это CSS-ассет. Попробуем найти, из какого входа.\r\n // Vite не всегда хранит source, но имя может помочь\r\n if (file.name && file.name.endsWith('.css')) {\r\n // Пример: file.name = 'style.css' или 'style-hash.css'\r\n const baseName = basename(file.name, '.css');\r\n // Пока просто запоминаем — уточним позже\r\n cssAssets[file.name] = outFile;\r\n }\r\n }\r\n }\r\n\r\n // === Анализ входов ===\r\n const inputEntries = config.build.rollupOptions.input;\r\n const inputs: string[] = [];\r\n\r\n if (Array.isArray(inputEntries)) {\r\n inputs.push(...inputEntries.filter((i): i is string => typeof i === 'string'));\r\n } else if (typeof inputEntries === 'object' && inputEntries !== null) {\r\n inputs.push(...Object.values(inputEntries).filter((i): i is string => typeof i === 'string'));\r\n } else if (typeof inputEntries === 'string') {\r\n inputs.push(inputEntries);\r\n }\r\n\r\n // === Карта замены: исходный путь → собранный файл ===\r\n const replacementMap = new Map<string, string>();\r\n\r\n for (const input of inputs) {\r\n if (!input.endsWith('.js') && !input.endsWith('.ts') && !input.endsWith('.css')) continue;\r\n\r\n const normalizedInput = resolve(input).replace(/\\\\/g, '/');\r\n const relativeInput = relative(config.root, normalizedInput).replace(/\\\\/g, '/');\r\n\r\n if (input.endsWith('.ts') || input.endsWith('.js')) {\r\n const moduleId = relative(config.root, normalizedInput).replace(/\\\\/g, '/');\r\n if (entryChunks[moduleId]) {\r\n replacementMap.set(relativeInput, entryChunks[moduleId]);\r\n }\r\n }\r\n\r\n if (input.endsWith('.css')) {\r\n const cssFileName = basename(input);\r\n // Ищем ассет, содержащий имя файла\r\n const matchedCss = Object.keys(cssAssets).find(name =>\r\n name === cssFileName || name.startsWith(basename(cssFileName, '.css'))\r\n );\r\n if (matchedCss) {\r\n replacementMap.set(relativeInput, cssAssets[matchedCss]);\r\n }\r\n }\r\n }\r\n\r\n // === Генерация HTML ===\r\n for (const file of files) {\r\n const fileName = basename(file, '.tpl');\r\n const outputFileName = fileName === 'index' ? 'index.html' : `${fileName}.html`;\r\n\r\n const source = await fs.readFile(file, 'utf-8');\r\n const context = {\r\n title: `${fileName.charAt(0).toUpperCase() + fileName.slice(1)} Page`,\r\n debug: false,\r\n url: '/' + (fileName === 'index' ? '' : fileName),\r\n ...globalData,\r\n };\r\n\r\n let html = await FenomJs(source, context, {\r\n loader: templateLoader,\r\n root,\r\n minify: minifyHtml,\r\n });\r\n\r\n // === Замена путей ===\r\n for (const [devPath, prodPath] of replacementMap) {\r\n const fullDevPath = '/' + devPath;\r\n const escaped = fullDevPath.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\r\n\r\n const scriptRegex = new RegExp(`<script[^>]+src=[\"']${escaped}[\"'][^>]*/?>`, 'gi');\r\n if (scriptRegex.test(html)) {\r\n html = html.replace(scriptRegex, `<script type=\"module\" src=\"${prodPath}\"></script>`);\r\n }\r\n\r\n const linkRegex = new RegExp(`<link[^>]+href=[\"']${escaped}[\"'][^>]*/?>`, 'gi');\r\n if (linkRegex.test(html)) {\r\n html = html.replace(linkRegex, `<link rel=\"stylesheet\" href=\"${prodPath}\">`);\r\n }\r\n }\r\n\r\n this.emitFile({\r\n type: 'asset',\r\n fileName: outputFileName,\r\n source: html,\r\n });\r\n\r\n if (debug) console.log('\\x1b[36m[Fenom Plugin]\\x1b[0m Generated:', outputFileName);\r\n }\r\n } catch (err) {\r\n console.error('\\x1b[31m[Fenom Plugin]\\x1b[0m Error during HTML generation:', err);\r\n }\r\n },\r\n };\r\n}\r\n"],"names":["exports","require$$1","resolve","fs","basename","createAsyncLoader","join","relative","FenomJs"],"mappings":"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"}