@fluenti/next 0.2.0 → 0.3.0

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.
@@ -0,0 +1 @@
1
+ var e=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return e}});
@@ -0,0 +1,7 @@
1
+ //#region \0rolldown/runtime.js
2
+ var e = (e, t) => () => (t || e((t = { exports: {} }).exports, t), t.exports), t = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy < "u" ? new Proxy(e, { get: (e, t) => (typeof require < "u" ? require : e)[t] }) : e)(function(e) {
3
+ if (typeof require < "u") return require.apply(this, arguments);
4
+ throw Error("Calling `require` for \"" + e + "\" in an environment that doesn't expose the `require` function. See https://rolldown.rs/in-depth/bundling-cjs#require-external-modules for more details.");
5
+ });
6
+ //#endregion
7
+ export { t as n, e as t };
@@ -6,6 +6,8 @@ export interface DevRunnerOptions {
6
6
  throwOnError?: boolean;
7
7
  /** Run only compile (skip extract). Useful for production builds where source is unchanged. */
8
8
  compileOnly?: boolean;
9
+ /** Enable parallel compilation across locales using worker threads */
10
+ parallelCompile?: boolean;
9
11
  }
10
12
  /**
11
13
  * Walk up from `cwd` to find `node_modules/.bin/fluenti`.
@@ -1 +1 @@
1
- {"version":3,"file":"dev-runner.d.ts","sourceRoot":"","sources":["../src/dev-runner.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAA;IACX,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;IACtB,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,CAAA;IAC9B,6EAA6E;IAC7E,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,+FAA+F;IAC/F,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAUxD;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAuDhF;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,gBAAgB,EACzB,KAAK,SAAM,GACV,MAAM,IAAI,CAiCZ"}
1
+ {"version":3,"file":"dev-runner.d.ts","sourceRoot":"","sources":["../src/dev-runner.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAA;IACX,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;IACtB,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,CAAA;IAC9B,6EAA6E;IAC7E,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,+FAA+F;IAC/F,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,sEAAsE;IACtE,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAUxD;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAoEhF;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,gBAAgB,EACzB,KAAK,SAAM,GACV,MAAM,IAAI,CAiCZ"}
@@ -0,0 +1,36 @@
1
+ export interface DevWatcherOptions {
2
+ cwd: string;
3
+ compiledDir: string;
4
+ delay?: number;
5
+ /** Glob patterns from fluenti.config.ts `include` field */
6
+ include?: string[];
7
+ /** Glob patterns from fluenti.config.ts `exclude` field */
8
+ exclude?: string[];
9
+ /** Enable parallel compilation across locales using worker threads */
10
+ parallelCompile?: boolean;
11
+ }
12
+ /**
13
+ * Extract watch directories from include glob patterns.
14
+ *
15
+ * Takes the static prefix before the first glob wildcard (`*`).
16
+ * Falls back to `src` if no include patterns are provided.
17
+ *
18
+ * @example
19
+ * extractWatchDirs('/proj', ['./src/**\/*.tsx']) → ['/proj/src']
20
+ * extractWatchDirs('/proj', ['./app/**\/*.ts', './lib/**\/*.ts']) → ['/proj/app', '/proj/lib']
21
+ * extractWatchDirs('/proj', ['./**\/*.ts']) → ['/proj']
22
+ */
23
+ export declare function extractWatchDirs(cwd: string, include?: string[]): string[];
24
+ /**
25
+ * Start a standalone file watcher for dev auto-compile.
26
+ *
27
+ * Works independently of webpack/Turbopack — watches source directories
28
+ * (inferred from `include` patterns) for changes and triggers
29
+ * extract+compile via the debounced runner.
30
+ *
31
+ * Only one watcher is active at a time (guards against multiple `applyFluenti()` calls).
32
+ *
33
+ * @returns A cleanup function that stops the watcher.
34
+ */
35
+ export declare function startDevWatcher(options: DevWatcherOptions): () => void;
36
+ //# sourceMappingURL=dev-watcher.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dev-watcher.d.ts","sourceRoot":"","sources":["../src/dev-watcher.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,MAAM,CAAA;IACX,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,2DAA2D;IAC3D,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB,2DAA2D;IAC3D,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB,sEAAsE;IACtE,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B;AAID;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAY1E;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM,IAAI,CAsCtE"}
@@ -1 +1 @@
1
- {"version":3,"file":"generate-server-module.d.ts","sourceRoot":"","sources":["../src/generate-server-module.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAEnD;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,oBAAoB,GAC3B,MAAM,CAiMR"}
1
+ {"version":3,"file":"generate-server-module.d.ts","sourceRoot":"","sources":["../src/generate-server-module.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAEnD;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,oBAAoB,GAC3B,MAAM,CAwOR"}
package/dist/index.cjs CHANGED
@@ -1,45 +1,77 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require(`node:fs`),t=require(`node:child_process`),n=require(`node:path`),r=require(`node:module`),i=require(`@fluenti/core`);var a=typeof __filename==`string`?__filename:{}.url,{createJiti:o}=(0,r.createRequire)(a)(`jiti`);function s(e,t){let r=c(e),i=t?.defaultLocale??r?.sourceLocale??`en`,a=t?.locales??r?.locales??[i],o=t?.compiledDir??r?.compileOutDir??`./src/locales/compiled`,s=t?.serverModuleOutDir??(0,n.join)(`node_modules`,`.fluenti`),l={locales:a,defaultLocale:i,compiledDir:o,serverModule:t?.serverModule??null,serverModuleOutDir:s};return t?.resolveLocale&&(l.resolveLocale=t.resolveLocale),t?.dateFormats&&(l.dateFormats=t.dateFormats),t?.numberFormats&&(l.numberFormats=t.numberFormats),t?.fallbackChain&&(l.fallbackChain=t.fallbackChain),l}function c(t){let r=o(a,{moduleCache:!1,interopDefault:!0});for(let i of[`fluenti.config.ts`,`fluenti.config.js`,`fluenti.config.mjs`]){let a=(0,n.resolve)(t,i);if((0,e.existsSync)(a))try{return u(r(a))}catch{return l(a,r)||null}}return null}function l(t,r){let i=(0,e.readFileSync)(t,`utf8`),a=i.match(/import\s*\{\s*defineConfig(?:\s+as\s+([A-Za-z_$][\w$]*))?\s*\}\s*from\s*['"]@fluenti\/cli['"]\s*;?/);if(!a)return null;let o=a[1]??`defineConfig`,s=i.replace(a[0],``),c=(0,n.join)((0,n.dirname)(t),`.${(0,n.basename)(t,(0,n.extname)(t))}.next-plugin-read-config${(0,n.extname)(t)||`.ts`}`);(0,e.writeFileSync)(c,`const ${o} = (config) => config\n${s}`,`utf8`);try{return u(r(c))}catch{return null}finally{(0,e.rmSync)(c,{force:!0})}}function u(e){return typeof e==`object`&&e&&`default`in e?e.default??{}:e}function d(t,r){if(r.serverModule)return(0,n.resolve)(t,r.serverModule);let a=(0,n.resolve)(t,r.serverModuleOutDir),o=(0,n.resolve)(a,`server.js`),s=(0,n.resolve)(a,`server.d.ts`);(0,e.existsSync)(a)||(0,e.mkdirSync)(a,{recursive:!0});for(let e of r.locales)(0,i.validateLocale)(e,`next-plugin`);let c=f((0,n.relative)(a,(0,n.resolve)(t,r.compiledDir))),l=r.locales.map(e=>` case '${e}': return import('${c}/${e}')`).join(`
2
- `),u=r.fallbackChain?JSON.stringify(r.fallbackChain):`undefined`;(0,e.writeFileSync)((0,n.resolve)(a,`client-provider.js`),`"use client";
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./chunk-C5jLAML2.cjs`);let t=require(`node:fs`),n=require(`node:path`),r=require(`@fluenti/core/config`),i=require(`@fluenti/core`),a=require(`@fluenti/core/internal`),o=require(`node:child_process`),s=require(`node:module`);function c(e,t){let n;n=t?.config&&typeof t.config==`object`?{...r.DEFAULT_FLUENTI_CONFIG,...t.config}:(0,r.loadConfigSync)(typeof t?.config==`string`?t.config:void 0,e);let i=t?.serverModuleOutDir??`.fluenti`,a=t?.cookieName??`locale`,o={fluentiConfig:n,serverModule:t?.serverModule??null,serverModuleOutDir:i,cookieName:a};return t?.resolveLocale&&(o.resolveLocale=t.resolveLocale),o}function l(e,r){if(r.serverModule)return(0,n.resolve)(e,r.serverModule);let o=(0,n.resolve)(e,r.serverModuleOutDir),s=(0,n.resolve)(o,`server.js`),c=(0,n.resolve)(o,`server.d.ts`);(0,t.existsSync)(o)||(0,t.mkdirSync)(o,{recursive:!0});let l=(0,a.resolveLocaleCodes)(r.fluentiConfig.locales),d=r.fluentiConfig.defaultLocale??r.fluentiConfig.sourceLocale,f=r.fluentiConfig.compileOutDir,p=r.fluentiConfig.fallbackChain;for(let e of l)(0,i.validateLocale)(e,`next-plugin`);let m=u((0,n.relative)(o,(0,n.resolve)(e,f))),h=l.map(e=>` case '${e}': return import('${m}/${e}')`).join(`
2
+ `),g=p?JSON.stringify(p):`undefined`;(0,t.writeFileSync)((0,n.resolve)(o,`client-provider.js`),`"use client";
3
3
  // Auto-generated by @fluenti/next — do not edit
4
4
  import { createElement } from 'react'
5
5
  import { I18nProvider } from '@fluenti/react'
6
- ${r.locales.map(e=>`import ${e.replace(/[^a-zA-Z0-9]/g,`_`)} from '${c}/${e}'`).join(`
6
+ ${l.map(e=>`import ${e.replace(/[^a-zA-Z0-9]/g,`_`)} from '${m}/${e}'`).join(`
7
7
  `)}
8
8
 
9
- const __allMessages = { ${r.locales.map(e=>`'${e}': ${e.replace(/[^a-zA-Z0-9]/g,`_`)}`).join(`, `)} }
9
+ const __allMessages = { ${l.map(e=>`'${e}': ${e.replace(/[^a-zA-Z0-9]/g,`_`)}`).join(`, `)} }
10
10
 
11
11
  export function ClientI18nProvider({ locale, fallbackLocale, fallbackChain, children }) {
12
12
  return createElement(I18nProvider, { locale, fallbackLocale, messages: __allMessages, fallbackChain }, children)
13
13
  }
14
- `,`utf-8`);let d=r.resolveLocale?`import __resolveLocale from '${f((0,n.relative)(a,(0,n.resolve)(t,r.resolveLocale)))}'`:null,p=r.resolveLocale?`resolveLocale: __resolveLocale,`:`resolveLocale: async () => {
14
+ `,`utf-8`);let _=r.resolveLocale?`import __resolveLocale from '${u((0,n.relative)(o,(0,n.resolve)(e,r.resolveLocale)))}'`:null,v=r.resolveLocale?`resolveLocale: __resolveLocale,`:`resolveLocale: async () => {
15
15
  try {
16
- const { cookies } = await import('next/headers')
17
- return (await cookies()).get('locale')?.value ?? '${r.defaultLocale}'
16
+ const { cookies, headers } = await import('next/headers')
17
+ const [cookieStore, headerStore] = await Promise.all([cookies(), headers()])
18
+
19
+ // 1. Referer URL path segment (available in Server Action context)
20
+ const referer = headerStore.get('referer')
21
+ if (referer) {
22
+ try {
23
+ const seg = new URL(referer).pathname.split('/')[1]
24
+ if (seg && __locales.includes(seg)) return seg
25
+ } catch {}
26
+ }
27
+
28
+ // 2. Cookie (configurable name)
29
+ const fromCookie = cookieStore.get('${r.cookieName}')?.value
30
+ if (fromCookie && __locales.includes(fromCookie)) return fromCookie
31
+
32
+ // 3. Accept-Language header
33
+ const acceptLang = headerStore.get('accept-language')
34
+ if (acceptLang) {
35
+ for (const part of acceptLang.split(',')) {
36
+ const lang = part.split(';')[0].trim()
37
+ if (__locales.includes(lang)) return lang
38
+ const prefix = lang.split('-')[0]
39
+ const match = __locales.find(l => l === prefix || l.startsWith(prefix + '-'))
40
+ if (match) return match
41
+ }
42
+ }
43
+
44
+ return '${d}'
18
45
  } catch {
19
- return '${r.defaultLocale}'
46
+ return '${d}'
20
47
  }
21
- },`,m=`// Auto-generated by @fluenti/next — do not edit
48
+ },`,y=JSON.stringify(l),b=`// Auto-generated by @fluenti/next — do not edit
22
49
  import { createServerI18n } from '@fluenti/react/server'
23
50
  import { createElement } from 'react'
24
- ${d?`${d}\n`:``}
51
+ ${_?`${_}\n`:``}
52
+ const __locales = ${y}
53
+
25
54
  const serverI18n = createServerI18n({
26
55
  loadMessages: async (locale) => {
27
56
  switch (locale) {
28
- ${l}
29
- default: return import('${c}/${r.defaultLocale}')
57
+ ${h}
58
+ default: return import('${m}/${d}')
30
59
  }
31
60
  },
32
- fallbackLocale: '${r.defaultLocale}',
33
- fallbackChain: ${u},
34
- ${p}
61
+ fallbackLocale: '${d}',
62
+ fallbackChain: ${g},
63
+ ${v}
35
64
  })
36
65
 
37
66
  export const setLocale = serverI18n.setLocale
38
67
  export const getI18n = serverI18n.getI18n
39
68
  export const t = (..._args) => {
40
69
  throw new Error(
41
- "[fluenti] \`t\` imported from '@fluenti/next' is a compile-time API. " +
42
- 'Use it only with the Fluenti loader inside an async server scope.',
70
+ "[fluenti] \`t\` imported from '@fluenti/next' is a compile-time API replaced at build time.\\n" +
71
+ ' Ensure:\\n' +
72
+ ' 1. \`withFluenti()\` is configured in next.config.ts\\n' +
73
+ ' 2. The file is inside src/ (not node_modules)\\n' +
74
+ " 3. For client components, import from '@fluenti/react'",
43
75
  )
44
76
  }
45
77
  export const Trans = serverI18n.Trans
@@ -54,7 +86,7 @@ export const NumberFormat = serverI18n.NumberFormat
54
86
  * Sets up both server-side (React.cache) and client-side (I18nProvider) i18n.
55
87
  */
56
88
  export async function I18nProvider({ locale, children }) {
57
- const activeLocale = locale ?? '${r.defaultLocale}'
89
+ const activeLocale = (locale && locale.trim()) ? locale : '${d}'
58
90
 
59
91
  // 1. Initialize server-side i18n (React.cache scoped)
60
92
  serverI18n.setLocale(activeLocale)
@@ -66,16 +98,16 @@ export async function I18nProvider({ locale, children }) {
66
98
 
67
99
  return createElement(ClientI18nProvider, {
68
100
  locale: activeLocale,
69
- fallbackLocale: '${r.defaultLocale}',
70
- fallbackChain: ${u},
101
+ fallbackLocale: '${d}',
102
+ fallbackChain: ${g},
71
103
  }, children)
72
104
  }
73
- `;return(0,e.writeFileSync)(o,m,`utf-8`),(0,e.writeFileSync)(s,`// Auto-generated by @fluenti/next — do not edit
105
+ `;return(0,t.writeFileSync)(s,b,`utf-8`),(0,t.writeFileSync)(c,`// Auto-generated by @fluenti/next — do not edit
74
106
  import type { ReactNode, ReactElement } from 'react'
75
- import type { CompileTimeT, FluentInstanceExtended } from '@fluenti/core'
107
+ import type { CompileTimeT, FluentiCoreInstanceFull } from '@fluenti/core'
76
108
 
77
109
  export declare function setLocale(locale: string): void
78
- export declare function getI18n(): Promise<FluentInstanceExtended & { locale: string }>
110
+ export declare function getI18n(): Promise<FluentiCoreInstanceFull & { locale: string }>
79
111
  export declare const t: CompileTimeT
80
112
 
81
113
  export declare function Trans(props: {
@@ -124,5 +156,5 @@ export declare function I18nProvider(props: {
124
156
  locale?: string
125
157
  children: ReactNode
126
158
  }): Promise<ReactElement>
127
- `,`utf-8`),o}function f(e){return e.split(`\\`).join(`/`)}function p(t){let r=t;for(;;){let t=(0,n.resolve)(r,`node_modules/.bin/fluenti`);if((0,e.existsSync)(t))return t;let i=(0,n.dirname)(r);if(i===r)break;r=i}return null}async function m(e){if(e.compileOnly)try{let{runCompile:t}=(0,r.createRequire)((0,n.join)(e.cwd,`package.json`))(`@fluenti/cli`);await t(e.cwd),console.log(`[fluenti] Compiling... done`),e.onSuccess?.();return}catch(t){let n=t instanceof Error?t:Error(String(t));if(e.throwOnError)throw n;console.warn(`[fluenti] Compile failed:`,n.message),e.onError?.(n);return}let i=p(e.cwd);if(!i){let t=`[fluenti] CLI not found — skipping auto-compile. Install @fluenti/cli as a devDependency.`;return e.throwOnError?Promise.reject(Error(t)):(console.warn(t),Promise.resolve())}let a=`${i} extract && ${i} compile`;return new Promise((n,r)=>{(0,t.exec)(a,{cwd:e.cwd},(t,i,a)=>{if(t){let n=Error(a||t.message);if(e.throwOnError){r(n);return}console.warn(`[fluenti] Extract/compile failed:`,n.message),e.onError?.(n)}else console.log(`[fluenti] Extracting and compiling... done`),e.onSuccess?.();n()})})}function h(e,t=300){let n=null,r=!1,i=!1;async function a(){r=!0;try{await m(e)}finally{r=!1,i&&(i=!1,o())}}function o(){n!==null&&clearTimeout(n),n=setTimeout(()=>{n=null,r?i=!0:a()},t)}return o}function g(e){if(e&&_(e))return v({},e);let t=e??{};return function(e){return v(t,e??{})}}function _(e){return[`reactStrictMode`,`experimental`,`images`,`env`,`webpack`,`rewrites`,`redirects`,`headers`,`pageExtensions`,`output`,`basePath`,`i18n`,`trailingSlash`,`compiler`,`transpilePackages`].some(t=>t in e)}function v(r,i){let a=process.cwd(),o=s(a,r);(0,e.existsSync)((0,n.resolve)(a,o.compiledDir))||console.warn(`\n[fluenti] Compiled catalogs not found at ${o.compiledDir}.\nRun: npx fluenti extract && npx fluenti compile\n`);let c=d(a,o),l=(0,n.resolve)(typeof __dirname<`u`?__dirname:(0,n.dirname)(new URL({}.url).pathname),`loader.js`),u=i.webpack,f=!1;return{...i,webpack(e,i){e.module.rules.push({test:/\.[jt]sx?$/,enforce:`pre`,exclude:[/node_modules/,/\.next/],use:[{loader:l,options:{serverModulePath:c}}]}),e.resolve=e.resolve??{},e.resolve.alias=e.resolve.alias??{},e.resolve.alias[`@fluenti/next$`]=c;let s=r.buildAutoCompile??!0;if(!i.dev&&s&&!f){f=!0;try{(0,t.execSync)(`node --input-type=module -e "const { runCompile } = await import('@fluenti/cli'); await runCompile('${a.replace(/\\/g,`\\\\`).replace(/'/g,`\\'`)}')"`,{cwd:a,stdio:`inherit`})}catch{}}let d=r.devAutoCompile??!0;if(i.dev&&d){let t=r.devAutoCompileDelay??1e3,i=h({cwd:a},t),s=(0,n.resolve)(a,o.compiledDir);e.plugins=e.plugins??[],e.plugins.push({apply(e){let t=!0;e.hooks.watchRun.tapAsync(`fluenti-dev`,(e,n)=>{t&&(t=!1,i());let r=e.modifiedFiles;r&&[...r].some(e=>/\.[jt]sx?$/.test(e)&&!e.includes(`node_modules`)&&!e.includes(`.next`)&&!e.startsWith(s))&&i(),n()})}})}return u?u(e,i):e}}}var y='[fluenti] `withFluenti()` must be configured in next.config.ts before importing from "@fluenti/next".';function b(){throw Error(y)}var x=b,S=b,C=b,w=b,T=b,E=b,D=b,O=b,k=b;exports.DateTime=D,exports.I18nProvider=k,exports.NumberFormat=O,exports.Plural=T,exports.Select=E,exports.Trans=w,exports.getI18n=S,exports.setLocale=x,exports.t=C,exports.withFluenti=g;
159
+ `,`utf-8`),s}function u(e){return e.split(`\\`).join(`/`)}function d(e){let r=e;for(;;){let e=(0,n.resolve)(r,`node_modules/.bin/fluenti`);if((0,t.existsSync)(e))return e;let i=(0,n.dirname)(r);if(i===r)break;r=i}return null}async function f(e){if(e.compileOnly)try{let{runCompile:t}=(0,s.createRequire)((0,n.join)(e.cwd,`package.json`))(`@fluenti/cli`);await t(e.cwd),console.log(`[fluenti] Compiling... done`),e.onSuccess?.();return}catch(t){let n=t instanceof Error?t:Error(String(t));if(e.throwOnError)throw n;console.warn(`[fluenti] Compile failed:`,n.message),e.onError?.(n);return}try{let{runExtract:t,runCompile:r}=(0,s.createRequire)((0,n.join)(e.cwd,`package.json`))(`@fluenti/cli`);await t(e.cwd),await r(e.cwd,{parallel:e.parallelCompile}),console.log(`[fluenti] Extracting and compiling... done`),e.onSuccess?.();return}catch{}let t=d(e.cwd);if(!t){let t=`[fluenti] CLI not found — skipping auto-compile. Install @fluenti/cli as a devDependency.`;return e.throwOnError?Promise.reject(Error(t)):(console.warn(t),Promise.resolve())}let r=`${t} extract && ${t} compile${e.parallelCompile?` --parallel`:``}`;return new Promise((t,n)=>{(0,o.exec)(r,{cwd:e.cwd},(r,i,a)=>{if(r){let t=Error(a||r.message);if(e.throwOnError){n(t);return}console.warn(`[fluenti] Extract/compile failed:`,t.message),e.onError?.(t)}else console.log(`[fluenti] Extracting and compiling... done`),e.onSuccess?.();t()})})}function p(e,t=300){let n=null,r=!1,i=!1;async function a(){r=!0;try{await f(e)}finally{r=!1,i&&(i=!1,o())}}function o(){n!==null&&clearTimeout(n),n=setTimeout(()=>{n=null,r?i=!0:a()},t)}return o}var m=e.t(((e,t)=>{var n=`\\\\/`,r=`[^${n}]`,i=`\\.`,a=`\\+`,o=`\\?`,s=`\\/`,c=`(?=.)`,l=`[^/]`,u=`(?:${s}|$)`,d=`(?:^|${s})`,f=`${i}{1,2}${u}`,p={DOT_LITERAL:i,PLUS_LITERAL:a,QMARK_LITERAL:o,SLASH_LITERAL:s,ONE_CHAR:c,QMARK:l,END_ANCHOR:u,DOTS_SLASH:f,NO_DOT:`(?!${i})`,NO_DOTS:`(?!${d}${f})`,NO_DOT_SLASH:`(?!${i}{0,1}${u})`,NO_DOTS_SLASH:`(?!${f})`,QMARK_NO_DOT:`[^.${s}]`,STAR:`${l}*?`,START_ANCHOR:d,SEP:`/`},m={...p,SLASH_LITERAL:`[${n}]`,QMARK:r,STAR:`${r}*?`,DOTS_SLASH:`${i}{1,2}(?:[${n}]|$)`,NO_DOT:`(?!${i})`,NO_DOTS:`(?!(?:^|[${n}])${i}{1,2}(?:[${n}]|$))`,NO_DOT_SLASH:`(?!${i}{0,1}(?:[${n}]|$))`,NO_DOTS_SLASH:`(?!${i}{1,2}(?:[${n}]|$))`,QMARK_NO_DOT:`[^.${n}]`,START_ANCHOR:`(?:^|[${n}])`,END_ANCHOR:`(?:[${n}]|$)`,SEP:`\\`};t.exports={MAX_LENGTH:1024*64,POSIX_REGEX_SOURCE:{alnum:`a-zA-Z0-9`,alpha:`a-zA-Z`,ascii:`\\x00-\\x7F`,blank:` \\t`,cntrl:`\\x00-\\x1F\\x7F`,digit:`0-9`,graph:`\\x21-\\x7E`,lower:`a-z`,print:`\\x20-\\x7E `,punct:`\\-!"#$%&'()\\*+,./:;<=>?@[\\]^_\`{|}~`,space:` \\t\\r\\n\\v\\f`,upper:`A-Z`,word:`A-Za-z0-9_`,xdigit:`A-Fa-f0-9`},REGEX_BACKSLASH:/\\(?![*+?^${}(|)[\]])/g,REGEX_NON_SPECIAL_CHARS:/^[^@![\].,$*+?^{}()|\\/]+/,REGEX_SPECIAL_CHARS:/[-*+?.^${}(|)[\]]/,REGEX_SPECIAL_CHARS_BACKREF:/(\\?)((\W)(\3*))/g,REGEX_SPECIAL_CHARS_GLOBAL:/([-*+?.^${}(|)[\]])/g,REGEX_REMOVE_BACKSLASH:/(?:\[.*?[^\\]\]|\\(?=.))/g,REPLACEMENTS:{__proto__:null,"***":`*`,"**/**":`**`,"**/**/**":`**`},CHAR_0:48,CHAR_9:57,CHAR_UPPERCASE_A:65,CHAR_LOWERCASE_A:97,CHAR_UPPERCASE_Z:90,CHAR_LOWERCASE_Z:122,CHAR_LEFT_PARENTHESES:40,CHAR_RIGHT_PARENTHESES:41,CHAR_ASTERISK:42,CHAR_AMPERSAND:38,CHAR_AT:64,CHAR_BACKWARD_SLASH:92,CHAR_CARRIAGE_RETURN:13,CHAR_CIRCUMFLEX_ACCENT:94,CHAR_COLON:58,CHAR_COMMA:44,CHAR_DOT:46,CHAR_DOUBLE_QUOTE:34,CHAR_EQUAL:61,CHAR_EXCLAMATION_MARK:33,CHAR_FORM_FEED:12,CHAR_FORWARD_SLASH:47,CHAR_GRAVE_ACCENT:96,CHAR_HASH:35,CHAR_HYPHEN_MINUS:45,CHAR_LEFT_ANGLE_BRACKET:60,CHAR_LEFT_CURLY_BRACE:123,CHAR_LEFT_SQUARE_BRACKET:91,CHAR_LINE_FEED:10,CHAR_NO_BREAK_SPACE:160,CHAR_PERCENT:37,CHAR_PLUS:43,CHAR_QUESTION_MARK:63,CHAR_RIGHT_ANGLE_BRACKET:62,CHAR_RIGHT_CURLY_BRACE:125,CHAR_RIGHT_SQUARE_BRACKET:93,CHAR_SEMICOLON:59,CHAR_SINGLE_QUOTE:39,CHAR_SPACE:32,CHAR_TAB:9,CHAR_UNDERSCORE:95,CHAR_VERTICAL_LINE:124,CHAR_ZERO_WIDTH_NOBREAK_SPACE:65279,extglobChars(e){return{"!":{type:`negate`,open:`(?:(?!(?:`,close:`))${e.STAR})`},"?":{type:`qmark`,open:`(?:`,close:`)?`},"+":{type:`plus`,open:`(?:`,close:`)+`},"*":{type:`star`,open:`(?:`,close:`)*`},"@":{type:`at`,open:`(?:`,close:`)`}}},globChars(e){return e===!0?m:p}}})),h=e.t((e=>{var{REGEX_BACKSLASH:t,REGEX_REMOVE_BACKSLASH:n,REGEX_SPECIAL_CHARS:r,REGEX_SPECIAL_CHARS_GLOBAL:i}=m();e.isObject=e=>typeof e==`object`&&!!e&&!Array.isArray(e),e.hasRegexChars=e=>r.test(e),e.isRegexChar=t=>t.length===1&&e.hasRegexChars(t),e.escapeRegex=e=>e.replace(i,`\\$1`),e.toPosixSlashes=e=>e.replace(t,`/`),e.isWindows=()=>{if(typeof navigator<`u`&&navigator.platform){let e=navigator.platform.toLowerCase();return e===`win32`||e===`windows`}return typeof process<`u`&&process.platform?process.platform===`win32`:!1},e.removeBackslashes=e=>e.replace(n,e=>e===`\\`?``:e),e.escapeLast=(t,n,r)=>{let i=t.lastIndexOf(n,r);return i===-1?t:t[i-1]===`\\`?e.escapeLast(t,n,i-1):`${t.slice(0,i)}\\${t.slice(i)}`},e.removePrefix=(e,t={})=>{let n=e;return n.startsWith(`./`)&&(n=n.slice(2),t.prefix=`./`),n},e.wrapOutput=(e,t={},n={})=>{let r=`${n.contains?``:`^`}(?:${e})${n.contains?``:`$`}`;return t.negated===!0&&(r=`(?:^(?!${r}).*$)`),r},e.basename=(e,{windows:t}={})=>{let n=e.split(t?/[\\/]/:`/`),r=n[n.length-1];return r===``?n[n.length-2]:r}})),g=e.t(((e,t)=>{var n=h(),{CHAR_ASTERISK:r,CHAR_AT:i,CHAR_BACKWARD_SLASH:a,CHAR_COMMA:o,CHAR_DOT:s,CHAR_EXCLAMATION_MARK:c,CHAR_FORWARD_SLASH:l,CHAR_LEFT_CURLY_BRACE:u,CHAR_LEFT_PARENTHESES:d,CHAR_LEFT_SQUARE_BRACKET:f,CHAR_PLUS:p,CHAR_QUESTION_MARK:g,CHAR_RIGHT_CURLY_BRACE:_,CHAR_RIGHT_PARENTHESES:v,CHAR_RIGHT_SQUARE_BRACKET:y}=m(),b=e=>e===l||e===a,x=e=>{e.isPrefix!==!0&&(e.depth=e.isGlobstar?1/0:1)};t.exports=(e,t)=>{let m=t||{},h=e.length-1,S=m.parts===!0||m.scanToEnd===!0,C=[],w=[],T=[],E=e,D=-1,O=0,k=0,A=!1,j=!1,M=!1,N=!1,P=!1,F=!1,I=!1,L=!1,R=!1,z=!1,B=0,V,H,U={value:``,depth:0,isGlob:!1},W=()=>D>=h,G=()=>E.charCodeAt(D+1),K=()=>(V=H,E.charCodeAt(++D));for(;D<h;){H=K();let e;if(H===a){I=U.backslashes=!0,H=K(),H===u&&(F=!0);continue}if(F===!0||H===u){for(B++;W()!==!0&&(H=K());){if(H===a){I=U.backslashes=!0,K();continue}if(H===u){B++;continue}if(F!==!0&&H===s&&(H=K())===s){if(A=U.isBrace=!0,M=U.isGlob=!0,z=!0,S===!0)continue;break}if(F!==!0&&H===o){if(A=U.isBrace=!0,M=U.isGlob=!0,z=!0,S===!0)continue;break}if(H===_&&(B--,B===0)){F=!1,A=U.isBrace=!0,z=!0;break}}if(S===!0)continue;break}if(H===l){if(C.push(D),w.push(U),U={value:``,depth:0,isGlob:!1},z===!0)continue;if(V===s&&D===O+1){O+=2;continue}k=D+1;continue}if(m.noext!==!0&&(H===p||H===i||H===r||H===g||H===c)&&G()===d){if(M=U.isGlob=!0,N=U.isExtglob=!0,z=!0,H===c&&D===O&&(R=!0),S===!0){for(;W()!==!0&&(H=K());){if(H===a){I=U.backslashes=!0,H=K();continue}if(H===v){M=U.isGlob=!0,z=!0;break}}continue}break}if(H===r){if(V===r&&(P=U.isGlobstar=!0),M=U.isGlob=!0,z=!0,S===!0)continue;break}if(H===g){if(M=U.isGlob=!0,z=!0,S===!0)continue;break}if(H===f){for(;W()!==!0&&(e=K());){if(e===a){I=U.backslashes=!0,K();continue}if(e===y){j=U.isBracket=!0,M=U.isGlob=!0,z=!0;break}}if(S===!0)continue;break}if(m.nonegate!==!0&&H===c&&D===O){L=U.negated=!0,O++;continue}if(m.noparen!==!0&&H===d){if(M=U.isGlob=!0,S===!0){for(;W()!==!0&&(H=K());){if(H===d){I=U.backslashes=!0,H=K();continue}if(H===v){z=!0;break}}continue}break}if(M===!0){if(z=!0,S===!0)continue;break}}m.noext===!0&&(N=!1,M=!1);let q=E,J=``,Y=``;O>0&&(J=E.slice(0,O),E=E.slice(O),k-=O),q&&M===!0&&k>0?(q=E.slice(0,k),Y=E.slice(k)):M===!0?(q=``,Y=E):q=E,q&&q!==``&&q!==`/`&&q!==E&&b(q.charCodeAt(q.length-1))&&(q=q.slice(0,-1)),m.unescape===!0&&(Y&&=n.removeBackslashes(Y),q&&I===!0&&(q=n.removeBackslashes(q)));let X={prefix:J,input:e,start:O,base:q,glob:Y,isBrace:A,isBracket:j,isGlob:M,isExtglob:N,isGlobstar:P,negated:L,negatedExtglob:R};if(m.tokens===!0&&(X.maxDepth=0,b(H)||w.push(U),X.tokens=w),m.parts===!0||m.tokens===!0){let t;for(let n=0;n<C.length;n++){let r=t?t+1:O,i=C[n],a=e.slice(r,i);m.tokens&&(n===0&&O!==0?(w[n].isPrefix=!0,w[n].value=J):w[n].value=a,x(w[n]),X.maxDepth+=w[n].depth),(n!==0||a!==``)&&T.push(a),t=i}if(t&&t+1<e.length){let n=e.slice(t+1);T.push(n),m.tokens&&(w[w.length-1].value=n,x(w[w.length-1]),X.maxDepth+=w[w.length-1].depth)}X.slashes=C,X.parts=T}return X}})),_=e.t(((e,t)=>{var n=m(),r=h(),{MAX_LENGTH:i,POSIX_REGEX_SOURCE:a,REGEX_NON_SPECIAL_CHARS:o,REGEX_SPECIAL_CHARS_BACKREF:s,REPLACEMENTS:c}=n,l=(e,t)=>{if(typeof t.expandRange==`function`)return t.expandRange(...e,t);e.sort();let n=`[${e.join(`-`)}]`;try{new RegExp(n)}catch{return e.map(e=>r.escapeRegex(e)).join(`..`)}return n},u=(e,t)=>`Missing ${e}: "${t}" - use "\\\\${t}" to match literal characters`,d=(e,t)=>{if(typeof e!=`string`)throw TypeError(`Expected a string`);e=c[e]||e;let f={...t},p=typeof f.maxLength==`number`?Math.min(i,f.maxLength):i,m=e.length;if(m>p)throw SyntaxError(`Input length: ${m}, exceeds maximum allowed length: ${p}`);let h={type:`bos`,value:``,output:f.prepend||``},g=[h],_=f.capture?``:`?:`,v=n.globChars(f.windows),y=n.extglobChars(v),{DOT_LITERAL:b,PLUS_LITERAL:x,SLASH_LITERAL:S,ONE_CHAR:C,DOTS_SLASH:w,NO_DOT:T,NO_DOT_SLASH:E,NO_DOTS_SLASH:D,QMARK:O,QMARK_NO_DOT:k,STAR:A,START_ANCHOR:j}=v,M=e=>`(${_}(?:(?!${j}${e.dot?w:b}).)*?)`,N=f.dot?``:T,P=f.dot?O:k,F=f.bash===!0?M(f):A;f.capture&&(F=`(${F})`),typeof f.noext==`boolean`&&(f.noextglob=f.noext);let I={input:e,index:-1,start:0,dot:f.dot===!0,consumed:``,output:``,prefix:``,backtrack:!1,negated:!1,brackets:0,braces:0,parens:0,quotes:0,globstar:!1,tokens:g};e=r.removePrefix(e,I),m=e.length;let L=[],R=[],z=[],B=h,V,H=()=>I.index===m-1,U=I.peek=(t=1)=>e[I.index+t],W=I.advance=()=>e[++I.index]||``,G=()=>e.slice(I.index+1),K=(e=``,t=0)=>{I.consumed+=e,I.index+=t},q=e=>{I.output+=e.output==null?e.value:e.output,K(e.value)},J=()=>{let e=1;for(;U()===`!`&&(U(2)!==`(`||U(3)===`?`);)W(),I.start++,e++;return e%2==0?!1:(I.negated=!0,I.start++,!0)},Y=e=>{I[e]++,z.push(e)},X=e=>{I[e]--,z.pop()},Z=e=>{if(B.type===`globstar`){let t=I.braces>0&&(e.type===`comma`||e.type===`brace`),n=e.extglob===!0||L.length&&(e.type===`pipe`||e.type===`paren`);e.type!==`slash`&&e.type!==`paren`&&!t&&!n&&(I.output=I.output.slice(0,-B.output.length),B.type=`star`,B.value=`*`,B.output=F,I.output+=B.output)}if(L.length&&e.type!==`paren`&&(L[L.length-1].inner+=e.value),(e.value||e.output)&&q(e),B&&B.type===`text`&&e.type===`text`){B.output=(B.output||B.value)+e.value,B.value+=e.value;return}e.prev=B,g.push(e),B=e},Q=(e,t)=>{let n={...y[t],conditions:1,inner:``};n.prev=B,n.parens=I.parens,n.output=I.output;let r=(f.capture?`(`:``)+n.open;Y(`parens`),Z({type:e,value:t,output:I.output?``:C}),Z({type:`paren`,extglob:!0,value:W(),output:r}),L.push(n)},$=e=>{let n=e.close+(f.capture?`)`:``),r;if(e.type===`negate`){let i=F;e.inner&&e.inner.length>1&&e.inner.includes(`/`)&&(i=M(f)),(i!==F||H()||/^\)+$/.test(G()))&&(n=e.close=`)$))${i}`),e.inner.includes(`*`)&&(r=G())&&/^\.[^\\/.]+$/.test(r)&&(n=e.close=`)${d(r,{...t,fastpaths:!1}).output})${i})`),e.prev.type===`bos`&&(I.negatedExtglob=!0)}Z({type:`paren`,extglob:!0,value:V,output:n}),X(`parens`)};if(f.fastpaths!==!1&&!/(^[*!]|[/()[\]{}"])/.test(e)){let n=!1,i=e.replace(s,(e,t,r,i,a,o)=>i===`\\`?(n=!0,e):i===`?`?t?t+i+(a?O.repeat(a.length):``):o===0?P+(a?O.repeat(a.length):``):O.repeat(r.length):i===`.`?b.repeat(r.length):i===`*`?t?t+i+(a?F:``):F:t?e:`\\${e}`);return n===!0&&(i=f.unescape===!0?i.replace(/\\/g,``):i.replace(/\\+/g,e=>e.length%2==0?`\\\\`:e?`\\`:``)),i===e&&f.contains===!0?(I.output=e,I):(I.output=r.wrapOutput(i,I,t),I)}for(;!H();){if(V=W(),V===`\0`)continue;if(V===`\\`){let e=U();if(e===`/`&&f.bash!==!0||e===`.`||e===`;`)continue;if(!e){V+=`\\`,Z({type:`text`,value:V});continue}let t=/^\\+/.exec(G()),n=0;if(t&&t[0].length>2&&(n=t[0].length,I.index+=n,n%2!=0&&(V+=`\\`)),f.unescape===!0?V=W():V+=W(),I.brackets===0){Z({type:`text`,value:V});continue}}if(I.brackets>0&&(V!==`]`||B.value===`[`||B.value===`[^`)){if(f.posix!==!1&&V===`:`){let e=B.value.slice(1);if(e.includes(`[`)&&(B.posix=!0,e.includes(`:`))){let e=B.value.lastIndexOf(`[`),t=B.value.slice(0,e),n=a[B.value.slice(e+2)];if(n){B.value=t+n,I.backtrack=!0,W(),!h.output&&g.indexOf(B)===1&&(h.output=C);continue}}}(V===`[`&&U()!==`:`||V===`-`&&U()===`]`)&&(V=`\\${V}`),V===`]`&&(B.value===`[`||B.value===`[^`)&&(V=`\\${V}`),f.posix===!0&&V===`!`&&B.value===`[`&&(V=`^`),B.value+=V,q({value:V});continue}if(I.quotes===1&&V!==`"`){V=r.escapeRegex(V),B.value+=V,q({value:V});continue}if(V===`"`){I.quotes=I.quotes===1?0:1,f.keepQuotes===!0&&Z({type:`text`,value:V});continue}if(V===`(`){Y(`parens`),Z({type:`paren`,value:V});continue}if(V===`)`){if(I.parens===0&&f.strictBrackets===!0)throw SyntaxError(u(`opening`,`(`));let e=L[L.length-1];if(e&&I.parens===e.parens+1){$(L.pop());continue}Z({type:`paren`,value:V,output:I.parens?`)`:`\\)`}),X(`parens`);continue}if(V===`[`){if(f.nobracket===!0||!G().includes(`]`)){if(f.nobracket!==!0&&f.strictBrackets===!0)throw SyntaxError(u(`closing`,`]`));V=`\\${V}`}else Y(`brackets`);Z({type:`bracket`,value:V});continue}if(V===`]`){if(f.nobracket===!0||B&&B.type===`bracket`&&B.value.length===1){Z({type:`text`,value:V,output:`\\${V}`});continue}if(I.brackets===0){if(f.strictBrackets===!0)throw SyntaxError(u(`opening`,`[`));Z({type:`text`,value:V,output:`\\${V}`});continue}X(`brackets`);let e=B.value.slice(1);if(B.posix!==!0&&e[0]===`^`&&!e.includes(`/`)&&(V=`/${V}`),B.value+=V,q({value:V}),f.literalBrackets===!1||r.hasRegexChars(e))continue;let t=r.escapeRegex(B.value);if(I.output=I.output.slice(0,-B.value.length),f.literalBrackets===!0){I.output+=t,B.value=t;continue}B.value=`(${_}${t}|${B.value})`,I.output+=B.value;continue}if(V===`{`&&f.nobrace!==!0){Y(`braces`);let e={type:`brace`,value:V,output:`(`,outputIndex:I.output.length,tokensIndex:I.tokens.length};R.push(e),Z(e);continue}if(V===`}`){let e=R[R.length-1];if(f.nobrace===!0||!e){Z({type:`text`,value:V,output:V});continue}let t=`)`;if(e.dots===!0){let e=g.slice(),n=[];for(let t=e.length-1;t>=0&&(g.pop(),e[t].type!==`brace`);t--)e[t].type!==`dots`&&n.unshift(e[t].value);t=l(n,f),I.backtrack=!0}if(e.comma!==!0&&e.dots!==!0){let n=I.output.slice(0,e.outputIndex),r=I.tokens.slice(e.tokensIndex);e.value=e.output=`\\{`,V=t=`\\}`,I.output=n;for(let e of r)I.output+=e.output||e.value}Z({type:`brace`,value:V,output:t}),X(`braces`),R.pop();continue}if(V===`|`){L.length>0&&L[L.length-1].conditions++,Z({type:`text`,value:V});continue}if(V===`,`){let e=V,t=R[R.length-1];t&&z[z.length-1]===`braces`&&(t.comma=!0,e=`|`),Z({type:`comma`,value:V,output:e});continue}if(V===`/`){if(B.type===`dot`&&I.index===I.start+1){I.start=I.index+1,I.consumed=``,I.output=``,g.pop(),B=h;continue}Z({type:`slash`,value:V,output:S});continue}if(V===`.`){if(I.braces>0&&B.type===`dot`){B.value===`.`&&(B.output=b);let e=R[R.length-1];B.type=`dots`,B.output+=V,B.value+=V,e.dots=!0;continue}if(I.braces+I.parens===0&&B.type!==`bos`&&B.type!==`slash`){Z({type:`text`,value:V,output:b});continue}Z({type:`dot`,value:V,output:b});continue}if(V===`?`){if(!(B&&B.value===`(`)&&f.noextglob!==!0&&U()===`(`&&U(2)!==`?`){Q(`qmark`,V);continue}if(B&&B.type===`paren`){let e=U(),t=V;(B.value===`(`&&!/[!=<:]/.test(e)||e===`<`&&!/<([!=]|\w+>)/.test(G()))&&(t=`\\${V}`),Z({type:`text`,value:V,output:t});continue}if(f.dot!==!0&&(B.type===`slash`||B.type===`bos`)){Z({type:`qmark`,value:V,output:k});continue}Z({type:`qmark`,value:V,output:O});continue}if(V===`!`){if(f.noextglob!==!0&&U()===`(`&&(U(2)!==`?`||!/[!=<:]/.test(U(3)))){Q(`negate`,V);continue}if(f.nonegate!==!0&&I.index===0){J();continue}}if(V===`+`){if(f.noextglob!==!0&&U()===`(`&&U(2)!==`?`){Q(`plus`,V);continue}if(B&&B.value===`(`||f.regex===!1){Z({type:`plus`,value:V,output:x});continue}if(B&&(B.type===`bracket`||B.type===`paren`||B.type===`brace`)||I.parens>0){Z({type:`plus`,value:V});continue}Z({type:`plus`,value:x});continue}if(V===`@`){if(f.noextglob!==!0&&U()===`(`&&U(2)!==`?`){Z({type:`at`,extglob:!0,value:V,output:``});continue}Z({type:`text`,value:V});continue}if(V!==`*`){(V===`$`||V===`^`)&&(V=`\\${V}`);let e=o.exec(G());e&&(V+=e[0],I.index+=e[0].length),Z({type:`text`,value:V});continue}if(B&&(B.type===`globstar`||B.star===!0)){B.type=`star`,B.star=!0,B.value+=V,B.output=F,I.backtrack=!0,I.globstar=!0,K(V);continue}let t=G();if(f.noextglob!==!0&&/^\([^?]/.test(t)){Q(`star`,V);continue}if(B.type===`star`){if(f.noglobstar===!0){K(V);continue}let n=B.prev,r=n.prev,i=n.type===`slash`||n.type===`bos`,a=r&&(r.type===`star`||r.type===`globstar`);if(f.bash===!0&&(!i||t[0]&&t[0]!==`/`)){Z({type:`star`,value:V,output:``});continue}let o=I.braces>0&&(n.type===`comma`||n.type===`brace`),s=L.length&&(n.type===`pipe`||n.type===`paren`);if(!i&&n.type!==`paren`&&!o&&!s){Z({type:`star`,value:V,output:``});continue}for(;t.slice(0,3)===`/**`;){let n=e[I.index+4];if(n&&n!==`/`)break;t=t.slice(3),K(`/**`,3)}if(n.type===`bos`&&H()){B.type=`globstar`,B.value+=V,B.output=M(f),I.output=B.output,I.globstar=!0,K(V);continue}if(n.type===`slash`&&n.prev.type!==`bos`&&!a&&H()){I.output=I.output.slice(0,-(n.output+B.output).length),n.output=`(?:${n.output}`,B.type=`globstar`,B.output=M(f)+(f.strictSlashes?`)`:`|$)`),B.value+=V,I.globstar=!0,I.output+=n.output+B.output,K(V);continue}if(n.type===`slash`&&n.prev.type!==`bos`&&t[0]===`/`){let e=t[1]===void 0?``:`|$`;I.output=I.output.slice(0,-(n.output+B.output).length),n.output=`(?:${n.output}`,B.type=`globstar`,B.output=`${M(f)}${S}|${S}${e})`,B.value+=V,I.output+=n.output+B.output,I.globstar=!0,K(V+W()),Z({type:`slash`,value:`/`,output:``});continue}if(n.type===`bos`&&t[0]===`/`){B.type=`globstar`,B.value+=V,B.output=`(?:^|${S}|${M(f)}${S})`,I.output=B.output,I.globstar=!0,K(V+W()),Z({type:`slash`,value:`/`,output:``});continue}I.output=I.output.slice(0,-B.output.length),B.type=`globstar`,B.output=M(f),B.value+=V,I.output+=B.output,I.globstar=!0,K(V);continue}let n={type:`star`,value:V,output:F};if(f.bash===!0){n.output=`.*?`,(B.type===`bos`||B.type===`slash`)&&(n.output=N+n.output),Z(n);continue}if(B&&(B.type===`bracket`||B.type===`paren`)&&f.regex===!0){n.output=V,Z(n);continue}(I.index===I.start||B.type===`slash`||B.type===`dot`)&&(B.type===`dot`?(I.output+=E,B.output+=E):f.dot===!0?(I.output+=D,B.output+=D):(I.output+=N,B.output+=N),U()!==`*`&&(I.output+=C,B.output+=C)),Z(n)}for(;I.brackets>0;){if(f.strictBrackets===!0)throw SyntaxError(u(`closing`,`]`));I.output=r.escapeLast(I.output,`[`),X(`brackets`)}for(;I.parens>0;){if(f.strictBrackets===!0)throw SyntaxError(u(`closing`,`)`));I.output=r.escapeLast(I.output,`(`),X(`parens`)}for(;I.braces>0;){if(f.strictBrackets===!0)throw SyntaxError(u(`closing`,`}`));I.output=r.escapeLast(I.output,`{`),X(`braces`)}if(f.strictSlashes!==!0&&(B.type===`star`||B.type===`bracket`)&&Z({type:`maybe_slash`,value:``,output:`${S}?`}),I.backtrack===!0){I.output=``;for(let e of I.tokens)I.output+=e.output==null?e.value:e.output,e.suffix&&(I.output+=e.suffix)}return I};d.fastpaths=(e,t)=>{let a={...t},o=typeof a.maxLength==`number`?Math.min(i,a.maxLength):i,s=e.length;if(s>o)throw SyntaxError(`Input length: ${s}, exceeds maximum allowed length: ${o}`);e=c[e]||e;let{DOT_LITERAL:l,SLASH_LITERAL:u,ONE_CHAR:d,DOTS_SLASH:f,NO_DOT:p,NO_DOTS:m,NO_DOTS_SLASH:h,STAR:g,START_ANCHOR:_}=n.globChars(a.windows),v=a.dot?m:p,y=a.dot?h:p,b=a.capture?``:`?:`,x={negated:!1,prefix:``},S=a.bash===!0?`.*?`:g;a.capture&&(S=`(${S})`);let C=e=>e.noglobstar===!0?S:`(${b}(?:(?!${_}${e.dot?f:l}).)*?)`,w=e=>{switch(e){case`*`:return`${v}${d}${S}`;case`.*`:return`${l}${d}${S}`;case`*.*`:return`${v}${S}${l}${d}${S}`;case`*/*`:return`${v}${S}${u}${d}${y}${S}`;case`**`:return v+C(a);case`**/*`:return`(?:${v}${C(a)}${u})?${y}${d}${S}`;case`**/*.*`:return`(?:${v}${C(a)}${u})?${y}${S}${l}${d}${S}`;case`**/.*`:return`(?:${v}${C(a)}${u})?${l}${d}${S}`;default:{let t=/^(.*?)\.(\w+)$/.exec(e);if(!t)return;let n=w(t[1]);return n?n+l+t[2]:void 0}}},T=w(r.removePrefix(e,x));return T&&a.strictSlashes!==!0&&(T+=`${u}?`),T},t.exports=d})),v=e.t(((e,t)=>{var n=g(),r=_(),i=h(),a=m(),o=e=>e&&typeof e==`object`&&!Array.isArray(e),s=(e,t,n=!1)=>{if(Array.isArray(e)){let r=e.map(e=>s(e,t,n));return e=>{for(let t of r){let n=t(e);if(n)return n}return!1}}let r=o(e)&&e.tokens&&e.input;if(e===``||typeof e!=`string`&&!r)throw TypeError(`Expected pattern to be a non-empty string`);let i=t||{},a=i.windows,c=r?s.compileRe(e,t):s.makeRe(e,t,!1,!0),l=c.state;delete c.state;let u=()=>!1;if(i.ignore){let e={...t,ignore:null,onMatch:null,onResult:null};u=s(i.ignore,e,n)}let d=(n,r=!1)=>{let{isMatch:o,match:d,output:f}=s.test(n,c,t,{glob:e,posix:a}),p={glob:e,state:l,regex:c,posix:a,input:n,output:f,match:d,isMatch:o};return typeof i.onResult==`function`&&i.onResult(p),o===!1?(p.isMatch=!1,r?p:!1):u(n)?(typeof i.onIgnore==`function`&&i.onIgnore(p),p.isMatch=!1,r?p:!1):(typeof i.onMatch==`function`&&i.onMatch(p),r?p:!0)};return n&&(d.state=l),d};s.test=(e,t,n,{glob:r,posix:a}={})=>{if(typeof e!=`string`)throw TypeError(`Expected input to be a string`);if(e===``)return{isMatch:!1,output:``};let o=n||{},c=o.format||(a?i.toPosixSlashes:null),l=e===r,u=l&&c?c(e):e;return l===!1&&(u=c?c(e):e,l=u===r),(l===!1||o.capture===!0)&&(l=o.matchBase===!0||o.basename===!0?s.matchBase(e,t,n,a):t.exec(u)),{isMatch:!!l,match:l,output:u}},s.matchBase=(e,t,n)=>(t instanceof RegExp?t:s.makeRe(t,n)).test(i.basename(e)),s.isMatch=(e,t,n)=>s(t,n)(e),s.parse=(e,t)=>Array.isArray(e)?e.map(e=>s.parse(e,t)):r(e,{...t,fastpaths:!1}),s.scan=(e,t)=>n(e,t),s.compileRe=(e,t,n=!1,r=!1)=>{if(n===!0)return e.output;let i=t||{},a=i.contains?``:`^`,o=i.contains?``:`$`,c=`${a}(?:${e.output})${o}`;e&&e.negated===!0&&(c=`^(?!${c}).*$`);let l=s.toRegex(c,t);return r===!0&&(l.state=e),l},s.makeRe=(e,t={},n=!1,i=!1)=>{if(!e||typeof e!=`string`)throw TypeError(`Expected a non-empty string`);let a={negated:!1,fastpaths:!0};return t.fastpaths!==!1&&(e[0]===`.`||e[0]===`*`)&&(a.output=r.fastpaths(e,t)),a.output||(a=r(e,t)),s.compileRe(a,t,n,i)},s.toRegex=(e,t)=>{try{let n=t||{};return new RegExp(e,n.flags||(n.nocase?`i`:``))}catch(e){if(t&&t.debug===!0)throw e;return/$^/}},s.constants=a,t.exports=s})),y=e.t(((e,t)=>{var n=v(),r=h();function i(e,t,i=!1){return t&&(t.windows===null||t.windows===void 0)&&(t={...t,windows:r.isWindows()}),n(e,t,i)}Object.assign(i,n),t.exports=i})),b=null;function x(e,t){if(!t||t.length===0)return[(0,n.resolve)(e,`src`)];let r=new Set;for(let e of t){let t=e.replace(/^\.\//,``).split(`*`)[0].replace(/\/+$/,``);r.add(t||`.`)}return[...r].map(t=>(0,n.resolve)(e,t))}function S(e){b&&b();let{cwd:r,compiledDir:i,delay:a=1e3,include:o,exclude:s,parallelCompile:c}=e,l=(0,n.resolve)(r,i),u=y(),d=s?.length?u(s):()=>!1,f={cwd:r};c&&(f.parallelCompile=!0);let m=p(f,a);m();let h=x(r,o).map(e=>(0,t.watch)(e,{recursive:!0},(t,r)=>{r&&/\.[jt]sx?$/.test(r)&&(r.includes(`node_modules`)||r.includes(`.next`)||(0,n.resolve)(e,r).startsWith(l)||d(r)||m())})),g=()=>{for(let e of h)e.close();b=null};return b=g,g}function C(e){if(e&&!w(e))return T({},e);let t=e??{};return function(e){return T(t,e??{})}}function w(e){return[`config`,`serverModule`,`serverModuleOutDir`,`resolveLocale`,`cookieName`,`loaderEnforce`].some(t=>t in e)}function T(e,r){let i=process.cwd(),a=c(i,e),o=a.fluentiConfig,s=o.compileOutDir;(0,t.existsSync)((0,n.resolve)(i,s))||console.warn(`\n[fluenti] Compiled catalogs not found at ${s}.\nRun: npx fluenti extract && npx fluenti compile\n`);let u=l(i,a),d=(0,n.resolve)(typeof __dirname<`u`?__dirname:(0,n.dirname)(new URL({}.url).pathname),`loader.js`),f=r.webpack,p=!1,m=Object.fromEntries([`*.ts`,`*.tsx`,`*.js`,`*.jsx`].map(e=>[e,{condition:{not:`foreign`},loaders:[`@fluenti/next/loader`]}])),h=`./`+u.replace(i+`/`,``).replace(i+`\\`,``),g={"@fluenti/next":h},_=process.env.NODE_ENV===`development`||process.argv.some(e=>e===`dev`),v=o.devAutoCompile??!0;if(_&&v){let e={cwd:i,compiledDir:s,delay:o.devAutoCompileDelay??1e3};o.parallelCompile&&(e.parallelCompile=!0),o.include&&(e.include=o.include),o.exclude&&(e.exclude=o.exclude),S(e)}return{...r,turbopack:E(r.turbopack,{rules:m,resolveAlias:g}),webpack(t,n){let r=e.loaderEnforce===void 0&&!(`loaderEnforce`in e)?`pre`:e.loaderEnforce;t.module.rules.push({test:/\.[jt]sx?$/,...r?{enforce:r}:{},exclude:[/node_modules/,/\.next/],use:[{loader:d,options:{serverModulePath:u}}]}),t.resolve=t.resolve??{},t.resolve.alias=t.resolve.alias??{},t.resolve.alias[`@fluenti/next$`]=u;let a=o.buildAutoCompile??!0;return!n.dev&&a&&(t.plugins=t.plugins??[],t.plugins.push({apply(e){e.hooks.beforeRun.tapPromise(`fluenti-compile`,async()=>{if(!p){p=!0;try{let{runCompile:e}=await import(`@fluenti/cli`);await e(i,o.parallelCompile?{parallel:!0}:void 0)}catch{}}})}})),f?f(t,n):t}}}function E(e,t){let n=e??{},r=n.rules??{},i=Object.keys(t.rules).filter(e=>e in r);return i.length>0&&console.warn(`[fluenti] Your turbopack.rules override Fluenti's loader for: ${i.join(`, `)}.\n Fluenti's t\`\` transform will NOT run on these file types.\n If this is intentional, you can suppress this warning with { devAutoCompile: false }.`),{...n,rules:{...t.rules,...r},resolveAlias:{...t.resolveAlias,...n.resolveAlias}}}var D='[fluenti] `withFluenti()` must be configured in next.config.ts before importing from "@fluenti/next".';function O(){throw Error(D)}var k=O,A=O,j=O,M=O,N=O,P=O,F=O,I=O,L=O;exports.DateTime=F,exports.I18nProvider=L,exports.NumberFormat=I,exports.Plural=N,exports.Select=P,exports.Trans=M,exports.getI18n=A,exports.setLocale=k,exports.t=j,exports.withFluenti=C;
128
160
  //# sourceMappingURL=index.cjs.map