@intlayer/svelte-compiler 8.3.0 → 8.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/svelte-intlayer-extract.cjs +2 -2
- package/dist/cjs/svelte-intlayer-extract.cjs.map +1 -1
- package/dist/esm/svelte-intlayer-extract.mjs +2 -2
- package/dist/esm/svelte-intlayer-extract.mjs.map +1 -1
- package/dist/types/svelte-intlayer-extract.d.ts.map +1 -1
- package/package.json +4 -4
- package/dist/cjs/config/dist/esm/_virtual/_rolldown/runtime.cjs +0 -2
- package/dist/cjs/config/dist/esm/_virtual/_rolldown/runtime.cjs.map +0 -1
- package/dist/cjs/config/dist/esm/defaultValues/build.cjs +0 -2
- package/dist/cjs/config/dist/esm/defaultValues/build.cjs.map +0 -1
- package/dist/cjs/config/dist/esm/defaultValues/compiler.cjs +0 -2
- package/dist/cjs/config/dist/esm/defaultValues/compiler.cjs.map +0 -1
- package/dist/cjs/config/dist/esm/defaultValues/content.cjs +0 -2
- package/dist/cjs/config/dist/esm/defaultValues/content.cjs.map +0 -1
- package/dist/cjs/config/dist/esm/defaultValues/dictionary.cjs +0 -2
- package/dist/cjs/config/dist/esm/defaultValues/dictionary.cjs.map +0 -1
- package/dist/cjs/config/dist/esm/defaultValues/editor.cjs +0 -2
- package/dist/cjs/config/dist/esm/defaultValues/editor.cjs.map +0 -1
- package/dist/cjs/config/dist/esm/defaultValues/index.cjs +0 -2
- package/dist/cjs/config/dist/esm/defaultValues/index.cjs.map +0 -1
- package/dist/cjs/config/dist/esm/defaultValues/internationalization.cjs +0 -2
- package/dist/cjs/config/dist/esm/defaultValues/internationalization.cjs.map +0 -1
- package/dist/cjs/config/dist/esm/defaultValues/log.cjs +0 -2
- package/dist/cjs/config/dist/esm/defaultValues/log.cjs.map +0 -1
- package/dist/cjs/config/dist/esm/defaultValues/routing.cjs +0 -2
- package/dist/cjs/config/dist/esm/defaultValues/routing.cjs.map +0 -1
- package/dist/cjs/config/dist/esm/defaultValues/system.cjs +0 -2
- package/dist/cjs/config/dist/esm/defaultValues/system.cjs.map +0 -1
- package/dist/cjs/config/dist/esm/logger.cjs +0 -2
- package/dist/cjs/config/dist/esm/logger.cjs.map +0 -1
- package/dist/esm/_virtual/_rolldown/runtime.mjs +0 -1
- package/dist/esm/config/dist/esm/_virtual/_rolldown/runtime.mjs +0 -2
- package/dist/esm/config/dist/esm/_virtual/_rolldown/runtime.mjs.map +0 -1
- package/dist/esm/config/dist/esm/defaultValues/build.mjs +0 -2
- package/dist/esm/config/dist/esm/defaultValues/build.mjs.map +0 -1
- package/dist/esm/config/dist/esm/defaultValues/compiler.mjs +0 -2
- package/dist/esm/config/dist/esm/defaultValues/compiler.mjs.map +0 -1
- package/dist/esm/config/dist/esm/defaultValues/content.mjs +0 -2
- package/dist/esm/config/dist/esm/defaultValues/content.mjs.map +0 -1
- package/dist/esm/config/dist/esm/defaultValues/dictionary.mjs +0 -2
- package/dist/esm/config/dist/esm/defaultValues/dictionary.mjs.map +0 -1
- package/dist/esm/config/dist/esm/defaultValues/editor.mjs +0 -2
- package/dist/esm/config/dist/esm/defaultValues/editor.mjs.map +0 -1
- package/dist/esm/config/dist/esm/defaultValues/index.mjs +0 -2
- package/dist/esm/config/dist/esm/defaultValues/index.mjs.map +0 -1
- package/dist/esm/config/dist/esm/defaultValues/internationalization.mjs +0 -2
- package/dist/esm/config/dist/esm/defaultValues/internationalization.mjs.map +0 -1
- package/dist/esm/config/dist/esm/defaultValues/log.mjs +0 -2
- package/dist/esm/config/dist/esm/defaultValues/log.mjs.map +0 -1
- package/dist/esm/config/dist/esm/defaultValues/routing.mjs +0 -2
- package/dist/esm/config/dist/esm/defaultValues/routing.mjs.map +0 -1
- package/dist/esm/config/dist/esm/defaultValues/system.mjs +0 -2
- package/dist/esm/config/dist/esm/defaultValues/system.mjs.map +0 -1
- package/dist/esm/config/dist/esm/logger.mjs +0 -2
- package/dist/esm/config/dist/esm/logger.mjs.map +0 -1
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./_virtual/_rolldown/runtime.cjs`);let t=require(`node:fs`),n=require(`@babel/core`),r=require(`@intlayer/config/client`),i=require(`magic-string`);i=e.__toESM(i);let a=require(`svelte/compiler`);const o=(e,t)=>{if(!e)return!1;if(!t||t.length===0)return!0;let n=e.replace(/\\/g,`/`);return t.some(e=>e.replace(/\\/g,`/`)===n)},
|
|
2
|
-
`)}\n`;if(
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./_virtual/_rolldown/runtime.cjs`);let t=require(`node:fs`),n=require(`@babel/core`),r=require(`@intlayer/config/client`),i=require(`magic-string`);i=e.__toESM(i);let a=require(`svelte/compiler`);const o=(e,t)=>{let r=null;try{let i=(0,n.parse)(e,{parserOpts:{sourceType:`module`,plugins:[`typescript`,`jsx`]}});if(!i)return null;(0,n.traverse)(i,{CallExpression(e){let i=e.node.callee;if(!n.types.isIdentifier(i)||i.name!==`useIntlayer`&&i.name!==`getIntlayer`)return;let a=e.parent;if(n.types.isVariableDeclarator(a)&&n.types.isObjectPattern(a.id)){let e=a.id.properties,i=e.filter(e=>n.types.isObjectProperty(e)&&n.types.isIdentifier(e.key)).map(e=>e.key.name),o=e[e.length-1];r={isDestructured:!0,variableName:`content`,existingDestructuredKeys:i,closingBraceAbsolutePos:t+(a.id.end-1),lastPropAbsoluteEnd:t+o.end}}else r={isDestructured:!1,variableName:n.types.isVariableDeclarator(a)&&n.types.isIdentifier(a.id)?a.id.name:`content`,existingDestructuredKeys:[],closingBraceAbsolutePos:-1,lastPropAbsoluteEnd:-1};e.stop()}})}catch{}return r},s=(e,t)=>{if(!e)return!1;if(!t||t.length===0)return!0;let n=e.replace(/\\/g,`/`);return t.some(e=>e.replace(/\\/g,`/`)===n)},c=(e,t,c={})=>{let{defaultLocale:l=r.DefaultValues.Internationalization.DEFAULT_LOCALE,packageName:u=`svelte-intlayer`,filesList:d,shouldExtract:f,onExtract:p,dictionaryKey:m,attributesToExtract:h=[],extractDictionaryKeyFromPath:g,generateKey:_}=c;if(!s(t,d)||!t.endsWith(`.svelte`))return null;let v=new i.default(e),y={},b=new Set,x=m??g?.(t)??``,S=[],C=/<script[^>]*>([\s\S]*?)<\/script>/.exec(e),w=!1,T=C?C[1]:``,E=C?o(T,C.index+C[0].indexOf(`>`)+1):null,D=E?.isDestructured??!1,O=E?.variableName??`content`,k;try{k=(0,a.parse)(e)}catch(e){return console.warn(`Svelte extraction: Failed to parse Svelte AST for ${t}`,e),null}let A=e=>e.type===`Text`||e.type===3,j=e=>e.type===`Attribute`||e.type===6,M=e=>e.type===`MustacheTag`||e.type===8||e.type===`ExpressionTag`,N=t=>{if(A(t)){let e=t.data??t.content??``;if(f?.(e)&&_){let n=_(e,b);b.add(n);let r=D?n:`$${O}.${n}`;S.push({start:t.start,end:t.end,replacement:`{${r}}`,key:n,value:e.replace(/\s+/g,` `).trim()})}}else if(j(t)&&h.includes(t.name)&&t.value&&t.value.length===1&&A(t.value[0])){let e=t.value[0].data??t.value[0].content??``;if(f?.(e)&&_){let n=_(e,b);b.add(n);let r=D?n:`$${O}.${n}`;S.push({start:t.start,end:t.end,replacement:`${t.name}={${r}}`,key:n,value:e.trim()})}}let n=t.children??t.fragment?.nodes??t.fragment?.children;if(n?.some(M)){let r=[],i=!1,a=!0;for(let t of n)if(A(t)){let e=t.data??t.content??``;e.trim().length>0&&(i=!0),r.push({type:`text`,value:e,originalExpr:``})}else if(M(t)){let n=e.slice(t.start+1,t.end-1).trim(),i=n.includes(`.`)?n.split(`.`).pop().replace(/[^\w$]/g,``):n;r.push({type:`var`,value:i,originalExpr:n})}else{a=!1;break}if(a&&i&&r.some(e=>e.type===`var`)){let e=``;for(let t of r)e+=t.type===`var`?`{{${t.value}}}`:t.value;let i=e.replace(/\s+/g,` `).trim();if(f?.(i)&&_){let e=_(i,b);b.add(e);let a=`{${D?e:`$${O}.${e}`}({ ${[...new Set(r.filter(e=>e.type===`var`).map(e=>`${e.value}: ${e.originalExpr}`))].join(`, `)} })}`,o=n[0],s=n[n.length-1];S.push({start:o.start,end:s.end,replacement:a,key:e,value:i}),t.attributes&&t.attributes.forEach(N);return}}}n&&n.forEach(N),t.attributes&&t.attributes.forEach(N)};if(k.html&&N(k.html),C){let e=C[0].indexOf(`>`)+1,r=C.index+e;try{let e=(0,n.parse)(T,{parserOpts:{sourceType:`module`,plugins:[`typescript`,`jsx`]}});e&&(0,n.traverse)(e,{StringLiteral(e){if(e.parentPath.isImportDeclaration()||e.parentPath.isExportDeclaration()||e.parentPath.isImportSpecifier()||e.parentPath.isObjectProperty()&&e.key===`key`)return;if(e.parentPath.isCallExpression()){let t=e.parentPath.node.callee;if(n.types.isMemberExpression(t)&&n.types.isIdentifier(t.object)&&t.object.name===`console`||n.types.isIdentifier(t)&&(t.name===`useIntlayer`||t.name===`t`)||t.type===`Import`||n.types.isIdentifier(t)&&t.name===`require`)return}let t=e.node.value;if(f?.(t)&&_){let n=_(t,b);if(b.add(n),w=!0,e.node.start!=null&&e.node.end!=null){let i=D?n:`get(${O}).${n}`;S.push({start:r+e.node.start,end:r+e.node.end,replacement:i,key:n,value:t.trim()})}}}})}catch(e){console.warn(`Svelte extraction: Failed to parse script content for ${t}`,e)}}if(S.length===0)return null;S.sort((e,t)=>t.start-e.start);for(let{start:e,end:t,replacement:n,key:r,value:i}of S)v.overwrite(e,t,n),y[r]=i;if(E?.isDestructured&&E.closingBraceAbsolutePos>=0){let e=Object.keys(y).filter(e=>!E.existingDestructuredKeys.includes(e));e.length>0&&v.appendLeft(E.lastPropAbsoluteEnd,`, ${e.join(`, `)}`)}let P=/import\s*{[^}]*useIntlayer[^}]*}\s*from\s*['"][^'"]+['"]/.test(T)||/import\s+useIntlayer\s+from\s*['"][^'"]+['"]/.test(T),F=/import\s*{[^}]*get[^}]*}\s*from\s*['"]svelte\/store['"]/.test(T),I=E!==null||/const\s+content\s*=\s*useIntlayer\s*\(/.test(T),L=P?``:`import { useIntlayer } from '${u}';`,R=w&&!D&&!F?`import { get } from 'svelte/store';`:``,z=I?``:`const content = useIntlayer('${x}');`,B=[L,R,z].filter(Boolean);if(B.length>0){let e=`\n ${B.join(`
|
|
2
|
+
`)}\n`;if(C){let t=C.index+C[0].indexOf(`>`)+1;v.appendLeft(t,e)}else v.prepend(`<script>\n ${L}\n ${w?`import { get } from 'svelte/store';`:``}\n ${z}\n<\/script>\n\n`)}return p&&p({dictionaryKey:x,filePath:t,content:y,locale:l}),{code:v.toString(),map:v.generateMap({source:t,includeContent:!0}),extracted:!0}},l=(e,n,r,i,a=!0)=>{let o=(0,t.readFileSync)(e,`utf-8`),s=null,l=c(o,e,{packageName:r,dictionaryKey:n,shouldExtract:i.shouldExtract,generateKey:i.generateKey,extractDictionaryKeyFromPath:i.extractDictionaryKeyFromPath,attributesToExtract:i.attributesToExtract,onExtract:e=>{s=e.content}});return l?(a&&(0,t.writeFileSync)(e,l.code),{extractedContent:s,code:l.code,map:l.map}):null};exports.intlayerSvelteExtract=c,exports.processSvelteFile=l,exports.shouldProcessFile=s;
|
|
3
3
|
//# sourceMappingURL=svelte-intlayer-extract.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"svelte-intlayer-extract.cjs","names":["DefaultValues","MagicString","t"],"sources":["../../src/svelte-intlayer-extract.ts"],"sourcesContent":["import { readFileSync, writeFileSync } from 'node:fs';\nimport { parse as babelParse, types as t, traverse } from '@babel/core';\nimport { DefaultValues } from '@intlayer/config/client';\nimport type { Locale } from '@intlayer/types/allLocales';\nimport MagicString from 'magic-string';\nimport { parse } from 'svelte/compiler';\n\nexport type ExtractedContent = Record<string, string>;\n\nexport type ExtractResult = {\n dictionaryKey: string;\n filePath: string;\n content: ExtractedContent;\n locale: Locale;\n};\n\nexport type ExtractPluginOptions = {\n defaultLocale?: Locale;\n packageName?: string;\n filesList?: string[];\n shouldExtract?: (text: string) => boolean;\n onExtract?: (result: ExtractResult) => void;\n dictionaryKey?: string;\n attributesToExtract?: readonly string[];\n extractDictionaryKeyFromPath?: (path: string) => string;\n generateKey?: (text: string, existingKeys: Set<string>) => string;\n};\n\ntype Replacement = {\n start: number;\n end: number;\n replacement: string;\n key: string;\n value: string;\n};\n\n/* ────────────────────────────────────────── helpers ─────────────────────── */\n\nexport const shouldProcessFile = (\n filename: string | undefined,\n filesList?: string[]\n): boolean => {\n if (!filename) return false;\n if (!filesList || filesList.length === 0) return true;\n\n const normalizedFilename = filename.replace(/\\\\/g, '/');\n return filesList.some((f) => {\n const normalizedF = f.replace(/\\\\/g, '/');\n return normalizedF === normalizedFilename;\n });\n};\n\n/* ────────────────────────────────────────── plugin ──────────────────────── */\n\nexport const intlayerSvelteExtract = (\n code: string,\n filename: string,\n options: ExtractPluginOptions = {}\n): { code: string; map?: unknown; extracted: boolean } | null => {\n const {\n defaultLocale = DefaultValues.Internationalization.DEFAULT_LOCALE,\n packageName = 'svelte-intlayer',\n filesList,\n shouldExtract,\n onExtract,\n dictionaryKey: dictionaryKeyOption,\n attributesToExtract = [],\n extractDictionaryKeyFromPath,\n generateKey,\n } = options;\n\n if (!shouldProcessFile(filename, filesList)) return null;\n if (!filename.endsWith('.svelte')) return null;\n\n const magic = new MagicString(code);\n const extractedContent: ExtractedContent = {};\n const existingKeys = new Set<string>();\n const dictionaryKey =\n dictionaryKeyOption ?? extractDictionaryKeyFromPath?.(filename) ?? '';\n const replacements: Replacement[] = [];\n\n let ast: any;\n try {\n ast = parse(code);\n } catch (e) {\n console.warn(\n `Svelte extraction: Failed to parse Svelte AST for ${filename}`,\n e\n );\n return null;\n }\n\n // Walk Svelte HTML AST.\n // Svelte 4 used numeric type constants; Svelte 5 uses string type names.\n // We check for both to remain compatible.\n const isTextNode = (node: any) => node.type === 'Text' || node.type === 3;\n const isAttributeNode = (node: any) =>\n node.type === 'Attribute' || node.type === 6;\n\n const walkSvelte = (node: any) => {\n if (isTextNode(node)) {\n const text = node.data ?? node.content ?? '';\n if (shouldExtract?.(text) && generateKey) {\n const key = generateKey(text, existingKeys);\n existingKeys.add(key);\n replacements.push({\n start: node.start,\n end: node.end,\n replacement: `{$content.${key}}`,\n key,\n value: text.replace(/\\s+/g, ' ').trim(),\n });\n }\n } else if (\n isAttributeNode(node) &&\n (attributesToExtract as readonly string[]).includes(node.name)\n ) {\n if (node.value && node.value.length === 1 && isTextNode(node.value[0])) {\n const text = node.value[0].data ?? node.value[0].content ?? '';\n if (shouldExtract?.(text) && generateKey) {\n const key = generateKey(text, existingKeys);\n existingKeys.add(key);\n replacements.push({\n start: node.start,\n end: node.end,\n replacement: `${node.name}={$content.${key}}`,\n key,\n value: text.trim(),\n });\n }\n }\n }\n\n const children =\n node.children ?? node.fragment?.nodes ?? node.fragment?.children;\n if (children) children.forEach(walkSvelte);\n if (node.attributes) node.attributes.forEach(walkSvelte);\n };\n\n if (ast.html) {\n walkSvelte(ast.html);\n }\n\n // Extract and walk Script using Babel\n const scriptRegex = /<script[^>]*>([\\s\\S]*?)<\\/script>/;\n const scriptMatch = scriptRegex.exec(code);\n let hasScriptExtraction = false;\n const scriptContent = scriptMatch ? scriptMatch[1] : '';\n\n if (scriptMatch) {\n const openTagEndIndex = scriptMatch[0].indexOf('>') + 1;\n const offset = scriptMatch.index + openTagEndIndex;\n\n try {\n const babelAst = babelParse(scriptContent, {\n parserOpts: {\n sourceType: 'module',\n plugins: ['typescript', 'jsx'],\n },\n });\n\n if (babelAst) {\n traverse(babelAst, {\n StringLiteral(path: any) {\n if (path.parentPath.isImportDeclaration()) return;\n if (path.parentPath.isExportDeclaration()) return;\n if (path.parentPath.isImportSpecifier()) return;\n if (path.parentPath.isObjectProperty() && path.key === 'key')\n return;\n\n if (path.parentPath.isCallExpression()) {\n const callee = path.parentPath.node.callee;\n if (\n t.isMemberExpression(callee) &&\n t.isIdentifier(callee.object) &&\n callee.object.name === 'console'\n )\n return;\n\n if (\n t.isIdentifier(callee) &&\n (callee.name === 'useIntlayer' || callee.name === 't')\n )\n return;\n\n if (callee.type === 'Import') return;\n if (t.isIdentifier(callee) && callee.name === 'require') return;\n }\n\n const text = path.node.value;\n if (shouldExtract?.(text) && generateKey) {\n const key = generateKey(text, existingKeys);\n existingKeys.add(key);\n hasScriptExtraction = true;\n\n if (path.node.start != null && path.node.end != null) {\n replacements.push({\n start: offset + path.node.start,\n end: offset + path.node.end,\n replacement: `get(content).${key}`,\n key,\n value: text.trim(),\n });\n }\n }\n },\n });\n }\n } catch (e) {\n console.warn(\n `Svelte extraction: Failed to parse script content for ${filename}`,\n e\n );\n }\n }\n\n // Abort if nothing was extracted\n if (replacements.length === 0) return null;\n\n // Apply Replacements in Reverse Order (prevents magic-string chunk errors)\n replacements.sort((a, b) => b.start - a.start);\n for (const { start, end, replacement, key, value } of replacements) {\n magic.overwrite(start, end, replacement);\n extractedContent[key] = value;\n }\n\n // Inject necessary imports and setup\n const hasUseIntlayerImport =\n /import\\s*{[^}]*useIntlayer[^}]*}\\s*from\\s*['\"][^'\"]+['\"]/.test(\n scriptContent\n ) || /import\\s+useIntlayer\\s+from\\s*['\"][^'\"]+['\"]/.test(scriptContent);\n\n const hasGetImport =\n /import\\s*{[^}]*get[^}]*}\\s*from\\s*['\"]svelte\\/store['\"]/.test(\n scriptContent\n );\n const hasContentDeclaration = /const\\s+content\\s*=\\s*useIntlayer\\s*\\(/.test(\n scriptContent\n );\n\n const importStmt = hasUseIntlayerImport\n ? ''\n : `import { useIntlayer } from '${packageName}';`;\n const getImportStmt =\n hasScriptExtraction && !hasGetImport\n ? `import { get } from 'svelte/store';`\n : '';\n const contentDecl = hasContentDeclaration\n ? ''\n : `const content = useIntlayer('${dictionaryKey}');`;\n\n const injectionParts = [importStmt, getImportStmt, contentDecl].filter(\n Boolean\n );\n\n if (injectionParts.length > 0) {\n const injection = `\\n ${injectionParts.join('\\n ')}\\n`;\n\n if (scriptMatch) {\n const scriptContentStart =\n scriptMatch.index + scriptMatch[0].indexOf('>') + 1;\n magic.appendLeft(scriptContentStart, injection);\n } else {\n magic.prepend(\n `<script>\\n ${importStmt}\\n ${hasScriptExtraction ? \"import { get } from 'svelte/store';\" : ''}\\n ${contentDecl}\\n</script>\\n\\n`\n );\n }\n }\n\n if (onExtract) {\n onExtract({\n dictionaryKey,\n filePath: filename,\n content: extractedContent,\n locale: defaultLocale,\n });\n }\n\n return {\n code: magic.toString(),\n map: magic.generateMap({ source: filename, includeContent: true }),\n extracted: true,\n };\n};\n\ntype Tools = {\n generateKey: (text: string, existingKeys: Set<string>) => string;\n shouldExtract: (text: string) => boolean;\n extractDictionaryKeyFromPath: (path: string) => string;\n attributesToExtract: readonly string[];\n extractTsContent: any;\n};\n\nexport const processSvelteFile = (\n filePath: string,\n _componentKey: string,\n packageName: string,\n tools: Tools,\n save: boolean = true\n): {\n extractedContent: Record<string, string>;\n code: string;\n map?: any;\n} | null => {\n const code = readFileSync(filePath, 'utf-8');\n let extractedContent: Record<string, string> | null = null;\n\n const result = intlayerSvelteExtract(code, filePath, {\n packageName,\n dictionaryKey: _componentKey,\n shouldExtract: tools.shouldExtract,\n generateKey: tools.generateKey,\n extractDictionaryKeyFromPath: tools.extractDictionaryKeyFromPath,\n attributesToExtract: tools.attributesToExtract,\n onExtract: (extractResult) => {\n extractedContent = extractResult.content;\n },\n });\n\n if (!result) return null;\n\n if (save) {\n writeFileSync(filePath, result.code);\n }\n\n return {\n extractedContent: extractedContent!,\n code: result.code,\n map: result.map,\n };\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"svelte-intlayer-extract.cjs","names":["t","DefaultValues","MagicString"],"sources":["../../src/svelte-intlayer-extract.ts"],"sourcesContent":["import { readFileSync, writeFileSync } from 'node:fs';\nimport { parse as babelParse, types as t, traverse } from '@babel/core';\nimport { DefaultValues } from '@intlayer/config/client';\nimport type { Locale } from '@intlayer/types/allLocales';\nimport MagicString from 'magic-string';\nimport { parse } from 'svelte/compiler';\n\ntype ExistingCallInfo = {\n isDestructured: boolean;\n existingDestructuredKeys: string[];\n /** The variable name used to store the call result (e.g. `t` in `const t = useIntlayer(...)`) */\n variableName: string;\n /** Absolute position of `}` in the full file — only valid when `isDestructured` */\n closingBraceAbsolutePos: number;\n /** Absolute position of end of last property — only valid when `isDestructured` */\n lastPropAbsoluteEnd: number;\n} | null;\n\n/**\n * Detects whether a script block already contains a `useIntlayer` /\n * `getIntlayer` call and whether its result is destructured.\n */\nconst detectExistingIntlayerCall = (\n scriptText: string,\n absoluteOffset: number\n): ExistingCallInfo => {\n let info: ExistingCallInfo = null;\n\n try {\n const ast = babelParse(scriptText, {\n parserOpts: { sourceType: 'module', plugins: ['typescript', 'jsx'] },\n });\n\n if (!ast) return null;\n\n traverse(ast, {\n CallExpression(path: any) {\n const callee = path.node.callee;\n\n if (\n !t.isIdentifier(callee) ||\n (callee.name !== 'useIntlayer' && callee.name !== 'getIntlayer')\n )\n return;\n\n const parent = path.parent;\n\n if (t.isVariableDeclarator(parent) && t.isObjectPattern(parent.id)) {\n const properties = parent.id.properties;\n const existingDestructuredKeys = properties\n .filter(\n (p: any): p is typeof t.objectProperty =>\n t.isObjectProperty(p) && t.isIdentifier(p.key)\n )\n .map((p: any) => (p.key as any).name as string);\n const lastProp = properties[properties.length - 1];\n\n info = {\n isDestructured: true,\n variableName: 'content',\n existingDestructuredKeys,\n closingBraceAbsolutePos: absoluteOffset + (parent.id.end! - 1),\n lastPropAbsoluteEnd: absoluteOffset + lastProp.end!,\n };\n } else {\n const variableName =\n t.isVariableDeclarator(parent) && t.isIdentifier(parent.id)\n ? parent.id.name\n : 'content';\n\n info = {\n isDestructured: false,\n variableName,\n existingDestructuredKeys: [],\n closingBraceAbsolutePos: -1,\n lastPropAbsoluteEnd: -1,\n };\n }\n\n path.stop();\n },\n });\n } catch {\n // Silently ignore parse failures — fall back to no-info\n }\n\n return info;\n};\n\nexport type ExtractedContent = Record<string, string>;\n\nexport type ExtractResult = {\n dictionaryKey: string;\n filePath: string;\n content: ExtractedContent;\n locale: Locale;\n};\n\nexport type ExtractPluginOptions = {\n defaultLocale?: Locale;\n packageName?: string;\n filesList?: string[];\n shouldExtract?: (text: string) => boolean;\n onExtract?: (result: ExtractResult) => void;\n dictionaryKey?: string;\n attributesToExtract?: readonly string[];\n extractDictionaryKeyFromPath?: (path: string) => string;\n generateKey?: (text: string, existingKeys: Set<string>) => string;\n};\n\ntype Replacement = {\n start: number;\n end: number;\n replacement: string;\n key: string;\n value: string;\n};\n\n/* ────────────────────────────────────────── helpers ─────────────────────── */\n\nexport const shouldProcessFile = (\n filename: string | undefined,\n filesList?: string[]\n): boolean => {\n if (!filename) return false;\n if (!filesList || filesList.length === 0) return true;\n\n const normalizedFilename = filename.replace(/\\\\/g, '/');\n return filesList.some((f) => {\n const normalizedF = f.replace(/\\\\/g, '/');\n return normalizedF === normalizedFilename;\n });\n};\n\n/* ────────────────────────────────────────── plugin ──────────────────────── */\n\nexport const intlayerSvelteExtract = (\n code: string,\n filename: string,\n options: ExtractPluginOptions = {}\n): { code: string; map?: unknown; extracted: boolean } | null => {\n const {\n defaultLocale = DefaultValues.Internationalization.DEFAULT_LOCALE,\n packageName = 'svelte-intlayer',\n filesList,\n shouldExtract,\n onExtract,\n dictionaryKey: dictionaryKeyOption,\n attributesToExtract = [],\n extractDictionaryKeyFromPath,\n generateKey,\n } = options;\n\n if (!shouldProcessFile(filename, filesList)) return null;\n if (!filename.endsWith('.svelte')) return null;\n\n const magic = new MagicString(code);\n const extractedContent: ExtractedContent = {};\n const existingKeys = new Set<string>();\n const dictionaryKey =\n dictionaryKeyOption ?? extractDictionaryKeyFromPath?.(filename) ?? '';\n const replacements: Replacement[] = [];\n\n // Extract and walk Script using Babel\n const scriptRegex = /<script[^>]*>([\\s\\S]*?)<\\/script>/;\n const scriptMatch = scriptRegex.exec(code);\n let hasScriptExtraction = false;\n const scriptContent = scriptMatch ? scriptMatch[1] : '';\n\n // Detect existing call BEFORE walking the template so the access pattern\n // (bare key vs. $content.key) can be chosen consistently.\n const existingCallInfo = scriptMatch\n ? detectExistingIntlayerCall(\n scriptContent,\n scriptMatch.index + scriptMatch[0].indexOf('>') + 1\n )\n : null;\n\n const isDestructured = existingCallInfo?.isDestructured ?? false;\n const varName = existingCallInfo?.variableName ?? 'content';\n\n let ast: any;\n try {\n ast = parse(code);\n } catch (e) {\n console.warn(\n `Svelte extraction: Failed to parse Svelte AST for ${filename}`,\n e\n );\n return null;\n }\n\n // Walk Svelte HTML AST.\n // Svelte 4 used numeric type constants; Svelte 5 uses string type names.\n // We check for both to remain compatible.\n const isTextNode = (node: any) => node.type === 'Text' || node.type === 3;\n const isAttributeNode = (node: any) =>\n node.type === 'Attribute' || node.type === 6;\n const isExpressionTagNode = (node: any): boolean =>\n node.type === 'MustacheTag' ||\n node.type === 8 || // Svelte 4 numeric\n node.type === 'ExpressionTag'; // Svelte 5\n\n const walkSvelte = (node: any) => {\n if (isTextNode(node)) {\n const text = node.data ?? node.content ?? '';\n if (shouldExtract?.(text) && generateKey) {\n const key = generateKey(text, existingKeys);\n existingKeys.add(key);\n // Destructured: each property is a plain value → `{key}`.\n // Otherwise use the reactive store subscription `{$content.key}`.\n const ref = isDestructured ? key : `$${varName}.${key}`;\n replacements.push({\n start: node.start,\n end: node.end,\n replacement: `{${ref}}`,\n key,\n value: text.replace(/\\s+/g, ' ').trim(),\n });\n }\n } else if (\n isAttributeNode(node) &&\n (attributesToExtract as readonly string[]).includes(node.name)\n ) {\n if (node.value && node.value.length === 1 && isTextNode(node.value[0])) {\n const text = node.value[0].data ?? node.value[0].content ?? '';\n if (shouldExtract?.(text) && generateKey) {\n const key = generateKey(text, existingKeys);\n existingKeys.add(key);\n const ref = isDestructured ? key : `$${varName}.${key}`;\n replacements.push({\n start: node.start,\n end: node.end,\n replacement: `${node.name}={${ref}}`,\n key,\n value: text.trim(),\n });\n }\n }\n }\n\n const children =\n node.children ?? node.fragment?.nodes ?? node.fragment?.children;\n\n // Try to handle mixed text + expression children as an insertion\n if (children?.some(isExpressionTagNode)) {\n const parts: {\n type: 'text' | 'var';\n value: string;\n originalExpr: string;\n }[] = [];\n let hasSignificantText = false;\n let isValid = true;\n\n for (const child of children) {\n if (isTextNode(child)) {\n const text = child.data ?? child.content ?? '';\n if (text.trim().length > 0) hasSignificantText = true;\n parts.push({ type: 'text', value: text, originalExpr: '' });\n } else if (isExpressionTagNode(child)) {\n // Source slice: skip the leading `{` and trailing `}`\n const exprCode = code.slice(child.start + 1, child.end - 1).trim();\n const varName = exprCode.includes('.')\n ? exprCode\n .split('.')\n .pop()!\n .replace(/[^\\w$]/g, '')\n : exprCode;\n parts.push({ type: 'var', value: varName, originalExpr: exprCode });\n } else {\n isValid = false;\n break;\n }\n }\n\n if (\n isValid &&\n hasSignificantText &&\n parts.some((p) => p.type === 'var')\n ) {\n let combined = '';\n for (const p of parts) {\n combined += p.type === 'var' ? `{{${p.value}}}` : p.value;\n }\n const cleanString = combined.replace(/\\s+/g, ' ').trim();\n\n if (shouldExtract?.(cleanString) && generateKey) {\n const key = generateKey(cleanString, existingKeys);\n existingKeys.add(key);\n const ref = isDestructured ? key : `$${varName}.${key}`;\n\n const uniqueVarPairs = [\n ...new Set(\n parts\n .filter((p) => p.type === 'var')\n .map((p) => `${p.value}: ${p.originalExpr}`)\n ),\n ];\n const varArgs = uniqueVarPairs.join(', ');\n const replacement = `{${ref}({ ${varArgs} })}`;\n\n const firstChild = children[0];\n const lastChild = children[children.length - 1];\n replacements.push({\n start: firstChild.start,\n end: lastChild.end,\n replacement,\n key,\n value: cleanString,\n });\n\n // Don't recurse into these children\n if (node.attributes) node.attributes.forEach(walkSvelte);\n return;\n }\n }\n }\n\n if (children) children.forEach(walkSvelte);\n if (node.attributes) node.attributes.forEach(walkSvelte);\n };\n\n if (ast.html) {\n walkSvelte(ast.html);\n }\n\n if (scriptMatch) {\n const openTagEndIndex = scriptMatch[0].indexOf('>') + 1;\n const offset = scriptMatch.index + openTagEndIndex;\n\n try {\n const babelAst = babelParse(scriptContent, {\n parserOpts: {\n sourceType: 'module',\n plugins: ['typescript', 'jsx'],\n },\n });\n\n if (babelAst) {\n traverse(babelAst, {\n StringLiteral(path: any) {\n if (path.parentPath.isImportDeclaration()) return;\n if (path.parentPath.isExportDeclaration()) return;\n if (path.parentPath.isImportSpecifier()) return;\n if (path.parentPath.isObjectProperty() && path.key === 'key')\n return;\n\n if (path.parentPath.isCallExpression()) {\n const callee = path.parentPath.node.callee;\n if (\n t.isMemberExpression(callee) &&\n t.isIdentifier(callee.object) &&\n callee.object.name === 'console'\n )\n return;\n\n if (\n t.isIdentifier(callee) &&\n (callee.name === 'useIntlayer' || callee.name === 't')\n )\n return;\n\n if (callee.type === 'Import') return;\n if (t.isIdentifier(callee) && callee.name === 'require') return;\n }\n\n const text = path.node.value;\n if (shouldExtract?.(text) && generateKey) {\n const key = generateKey(text, existingKeys);\n existingKeys.add(key);\n hasScriptExtraction = true;\n\n if (path.node.start != null && path.node.end != null) {\n // Destructured: each property is a plain value → access directly.\n // Otherwise use `get(content).key` to read the Svelte store.\n const ref = isDestructured ? key : `get(${varName}).${key}`;\n replacements.push({\n start: offset + path.node.start,\n end: offset + path.node.end,\n replacement: ref,\n key,\n value: text.trim(),\n });\n }\n }\n },\n });\n }\n } catch (error) {\n console.warn(\n `Svelte extraction: Failed to parse script content for ${filename}`,\n error\n );\n }\n }\n\n // Abort if nothing was extracted\n if (replacements.length === 0) return null;\n\n // Apply Replacements in Reverse Order (prevents magic-string chunk errors)\n replacements.sort((a, b) => b.start - a.start);\n for (const { start, end, replacement, key, value } of replacements) {\n magic.overwrite(start, end, replacement);\n extractedContent[key] = value;\n }\n\n // When the existing call is destructured, inject only the missing keys into\n // the ObjectPattern — no new `content` variable is needed.\n if (\n existingCallInfo?.isDestructured &&\n existingCallInfo.closingBraceAbsolutePos >= 0\n ) {\n const missingKeys = Object.keys(extractedContent).filter(\n (k) => !existingCallInfo.existingDestructuredKeys.includes(k)\n );\n\n if (missingKeys.length > 0) {\n // Insert right after the last property so the space/newline before `}`\n // is naturally preserved: `{ a }` → `{ a, b }`.\n magic.appendLeft(\n existingCallInfo.lastPropAbsoluteEnd,\n `, ${missingKeys.join(', ')}`\n );\n }\n }\n\n // Inject necessary imports and setup\n const hasUseIntlayerImport =\n /import\\s*{[^}]*useIntlayer[^}]*}\\s*from\\s*['\"][^'\"]+['\"]/.test(\n scriptContent\n ) || /import\\s+useIntlayer\\s+from\\s*['\"][^'\"]+['\"]/.test(scriptContent);\n\n const hasGetImport =\n /import\\s*{[^}]*get[^}]*}\\s*from\\s*['\"]svelte\\/store['\"]/.test(\n scriptContent\n );\n\n // An existing call (destructured or not) means no new declaration is needed.\n const hasContentDeclaration =\n existingCallInfo !== null ||\n /const\\s+content\\s*=\\s*useIntlayer\\s*\\(/.test(scriptContent);\n\n const importStmt = hasUseIntlayerImport\n ? ''\n : `import { useIntlayer } from '${packageName}';`;\n const getImportStmt =\n hasScriptExtraction && !isDestructured && !hasGetImport\n ? `import { get } from 'svelte/store';`\n : '';\n const contentDecl = hasContentDeclaration\n ? ''\n : `const content = useIntlayer('${dictionaryKey}');`;\n\n const injectionParts = [importStmt, getImportStmt, contentDecl].filter(\n Boolean\n );\n\n if (injectionParts.length > 0) {\n const injection = `\\n ${injectionParts.join('\\n ')}\\n`;\n\n if (scriptMatch) {\n const scriptContentStart =\n scriptMatch.index + scriptMatch[0].indexOf('>') + 1;\n magic.appendLeft(scriptContentStart, injection);\n } else {\n magic.prepend(\n `<script>\\n ${importStmt}\\n ${hasScriptExtraction ? \"import { get } from 'svelte/store';\" : ''}\\n ${contentDecl}\\n</script>\\n\\n`\n );\n }\n }\n\n if (onExtract) {\n onExtract({\n dictionaryKey,\n filePath: filename,\n content: extractedContent,\n locale: defaultLocale,\n });\n }\n\n return {\n code: magic.toString(),\n map: magic.generateMap({ source: filename, includeContent: true }),\n extracted: true,\n };\n};\n\ntype Tools = {\n generateKey: (text: string, existingKeys: Set<string>) => string;\n shouldExtract: (text: string) => boolean;\n extractDictionaryKeyFromPath: (path: string) => string;\n attributesToExtract: readonly string[];\n extractTsContent: any;\n};\n\nexport const processSvelteFile = (\n filePath: string,\n _componentKey: string,\n packageName: string,\n tools: Tools,\n save: boolean = true\n): {\n extractedContent: Record<string, string>;\n code: string;\n map?: any;\n} | null => {\n const code = readFileSync(filePath, 'utf-8');\n let extractedContent: Record<string, string> | null = null;\n\n const result = intlayerSvelteExtract(code, filePath, {\n packageName,\n dictionaryKey: _componentKey,\n shouldExtract: tools.shouldExtract,\n generateKey: tools.generateKey,\n extractDictionaryKeyFromPath: tools.extractDictionaryKeyFromPath,\n attributesToExtract: tools.attributesToExtract,\n onExtract: (extractResult) => {\n extractedContent = extractResult.content;\n },\n });\n\n if (!result) return null;\n\n if (save) {\n writeFileSync(filePath, result.code);\n }\n\n return {\n extractedContent: extractedContent!,\n code: result.code,\n map: result.map,\n };\n};\n"],"mappings":"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"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{readFileSync as e,writeFileSync as t}from"node:fs";import{parse as n,traverse as r,types as i}from"@babel/core";import{DefaultValues as a}from"@intlayer/config/client";import o from"magic-string";import{parse as s}from"svelte/compiler";const c=(e,t)=>{if(!e)return!1;if(!t||t.length===0)return!0;let n=e.replace(/\\/g,`/`);return t.some(e=>e.replace(/\\/g,`/`)===n)},
|
|
2
|
-
`)}\n`;if(
|
|
1
|
+
import{readFileSync as e,writeFileSync as t}from"node:fs";import{parse as n,traverse as r,types as i}from"@babel/core";import{DefaultValues as a}from"@intlayer/config/client";import o from"magic-string";import{parse as s}from"svelte/compiler";const c=(e,t)=>{let a=null;try{let o=n(e,{parserOpts:{sourceType:`module`,plugins:[`typescript`,`jsx`]}});if(!o)return null;r(o,{CallExpression(e){let n=e.node.callee;if(!i.isIdentifier(n)||n.name!==`useIntlayer`&&n.name!==`getIntlayer`)return;let r=e.parent;if(i.isVariableDeclarator(r)&&i.isObjectPattern(r.id)){let e=r.id.properties,n=e.filter(e=>i.isObjectProperty(e)&&i.isIdentifier(e.key)).map(e=>e.key.name),o=e[e.length-1];a={isDestructured:!0,variableName:`content`,existingDestructuredKeys:n,closingBraceAbsolutePos:t+(r.id.end-1),lastPropAbsoluteEnd:t+o.end}}else a={isDestructured:!1,variableName:i.isVariableDeclarator(r)&&i.isIdentifier(r.id)?r.id.name:`content`,existingDestructuredKeys:[],closingBraceAbsolutePos:-1,lastPropAbsoluteEnd:-1};e.stop()}})}catch{}return a},l=(e,t)=>{if(!e)return!1;if(!t||t.length===0)return!0;let n=e.replace(/\\/g,`/`);return t.some(e=>e.replace(/\\/g,`/`)===n)},u=(e,t,u={})=>{let{defaultLocale:d=a.Internationalization.DEFAULT_LOCALE,packageName:f=`svelte-intlayer`,filesList:p,shouldExtract:m,onExtract:h,dictionaryKey:g,attributesToExtract:_=[],extractDictionaryKeyFromPath:v,generateKey:y}=u;if(!l(t,p)||!t.endsWith(`.svelte`))return null;let b=new o(e),x={},S=new Set,C=g??v?.(t)??``,w=[],T=/<script[^>]*>([\s\S]*?)<\/script>/.exec(e),E=!1,D=T?T[1]:``,O=T?c(D,T.index+T[0].indexOf(`>`)+1):null,k=O?.isDestructured??!1,A=O?.variableName??`content`,j;try{j=s(e)}catch(e){return console.warn(`Svelte extraction: Failed to parse Svelte AST for ${t}`,e),null}let M=e=>e.type===`Text`||e.type===3,N=e=>e.type===`Attribute`||e.type===6,P=e=>e.type===`MustacheTag`||e.type===8||e.type===`ExpressionTag`,F=t=>{if(M(t)){let e=t.data??t.content??``;if(m?.(e)&&y){let n=y(e,S);S.add(n);let r=k?n:`$${A}.${n}`;w.push({start:t.start,end:t.end,replacement:`{${r}}`,key:n,value:e.replace(/\s+/g,` `).trim()})}}else if(N(t)&&_.includes(t.name)&&t.value&&t.value.length===1&&M(t.value[0])){let e=t.value[0].data??t.value[0].content??``;if(m?.(e)&&y){let n=y(e,S);S.add(n);let r=k?n:`$${A}.${n}`;w.push({start:t.start,end:t.end,replacement:`${t.name}={${r}}`,key:n,value:e.trim()})}}let n=t.children??t.fragment?.nodes??t.fragment?.children;if(n?.some(P)){let r=[],i=!1,a=!0;for(let t of n)if(M(t)){let e=t.data??t.content??``;e.trim().length>0&&(i=!0),r.push({type:`text`,value:e,originalExpr:``})}else if(P(t)){let n=e.slice(t.start+1,t.end-1).trim(),i=n.includes(`.`)?n.split(`.`).pop().replace(/[^\w$]/g,``):n;r.push({type:`var`,value:i,originalExpr:n})}else{a=!1;break}if(a&&i&&r.some(e=>e.type===`var`)){let e=``;for(let t of r)e+=t.type===`var`?`{{${t.value}}}`:t.value;let i=e.replace(/\s+/g,` `).trim();if(m?.(i)&&y){let e=y(i,S);S.add(e);let a=`{${k?e:`$${A}.${e}`}({ ${[...new Set(r.filter(e=>e.type===`var`).map(e=>`${e.value}: ${e.originalExpr}`))].join(`, `)} })}`,o=n[0],s=n[n.length-1];w.push({start:o.start,end:s.end,replacement:a,key:e,value:i}),t.attributes&&t.attributes.forEach(F);return}}}n&&n.forEach(F),t.attributes&&t.attributes.forEach(F)};if(j.html&&F(j.html),T){let e=T[0].indexOf(`>`)+1,a=T.index+e;try{let e=n(D,{parserOpts:{sourceType:`module`,plugins:[`typescript`,`jsx`]}});e&&r(e,{StringLiteral(e){if(e.parentPath.isImportDeclaration()||e.parentPath.isExportDeclaration()||e.parentPath.isImportSpecifier()||e.parentPath.isObjectProperty()&&e.key===`key`)return;if(e.parentPath.isCallExpression()){let t=e.parentPath.node.callee;if(i.isMemberExpression(t)&&i.isIdentifier(t.object)&&t.object.name===`console`||i.isIdentifier(t)&&(t.name===`useIntlayer`||t.name===`t`)||t.type===`Import`||i.isIdentifier(t)&&t.name===`require`)return}let t=e.node.value;if(m?.(t)&&y){let n=y(t,S);if(S.add(n),E=!0,e.node.start!=null&&e.node.end!=null){let r=k?n:`get(${A}).${n}`;w.push({start:a+e.node.start,end:a+e.node.end,replacement:r,key:n,value:t.trim()})}}}})}catch(e){console.warn(`Svelte extraction: Failed to parse script content for ${t}`,e)}}if(w.length===0)return null;w.sort((e,t)=>t.start-e.start);for(let{start:e,end:t,replacement:n,key:r,value:i}of w)b.overwrite(e,t,n),x[r]=i;if(O?.isDestructured&&O.closingBraceAbsolutePos>=0){let e=Object.keys(x).filter(e=>!O.existingDestructuredKeys.includes(e));e.length>0&&b.appendLeft(O.lastPropAbsoluteEnd,`, ${e.join(`, `)}`)}let I=/import\s*{[^}]*useIntlayer[^}]*}\s*from\s*['"][^'"]+['"]/.test(D)||/import\s+useIntlayer\s+from\s*['"][^'"]+['"]/.test(D),L=/import\s*{[^}]*get[^}]*}\s*from\s*['"]svelte\/store['"]/.test(D),R=O!==null||/const\s+content\s*=\s*useIntlayer\s*\(/.test(D),z=I?``:`import { useIntlayer } from '${f}';`,B=E&&!k&&!L?`import { get } from 'svelte/store';`:``,V=R?``:`const content = useIntlayer('${C}');`,H=[z,B,V].filter(Boolean);if(H.length>0){let e=`\n ${H.join(`
|
|
2
|
+
`)}\n`;if(T){let t=T.index+T[0].indexOf(`>`)+1;b.appendLeft(t,e)}else b.prepend(`<script>\n ${z}\n ${E?`import { get } from 'svelte/store';`:``}\n ${V}\n<\/script>\n\n`)}return h&&h({dictionaryKey:C,filePath:t,content:x,locale:d}),{code:b.toString(),map:b.generateMap({source:t,includeContent:!0}),extracted:!0}},d=(n,r,i,a,o=!0)=>{let s=e(n,`utf-8`),c=null,l=u(s,n,{packageName:i,dictionaryKey:r,shouldExtract:a.shouldExtract,generateKey:a.generateKey,extractDictionaryKeyFromPath:a.extractDictionaryKeyFromPath,attributesToExtract:a.attributesToExtract,onExtract:e=>{c=e.content}});return l?(o&&t(n,l.code),{extractedContent:c,code:l.code,map:l.map}):null};export{u as intlayerSvelteExtract,d as processSvelteFile,l as shouldProcessFile};
|
|
3
3
|
//# sourceMappingURL=svelte-intlayer-extract.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"svelte-intlayer-extract.mjs","names":["parse","babelParse","t"],"sources":["../../src/svelte-intlayer-extract.ts"],"sourcesContent":["import { readFileSync, writeFileSync } from 'node:fs';\nimport { parse as babelParse, types as t, traverse } from '@babel/core';\nimport { DefaultValues } from '@intlayer/config/client';\nimport type { Locale } from '@intlayer/types/allLocales';\nimport MagicString from 'magic-string';\nimport { parse } from 'svelte/compiler';\n\nexport type ExtractedContent = Record<string, string>;\n\nexport type ExtractResult = {\n dictionaryKey: string;\n filePath: string;\n content: ExtractedContent;\n locale: Locale;\n};\n\nexport type ExtractPluginOptions = {\n defaultLocale?: Locale;\n packageName?: string;\n filesList?: string[];\n shouldExtract?: (text: string) => boolean;\n onExtract?: (result: ExtractResult) => void;\n dictionaryKey?: string;\n attributesToExtract?: readonly string[];\n extractDictionaryKeyFromPath?: (path: string) => string;\n generateKey?: (text: string, existingKeys: Set<string>) => string;\n};\n\ntype Replacement = {\n start: number;\n end: number;\n replacement: string;\n key: string;\n value: string;\n};\n\n/* ────────────────────────────────────────── helpers ─────────────────────── */\n\nexport const shouldProcessFile = (\n filename: string | undefined,\n filesList?: string[]\n): boolean => {\n if (!filename) return false;\n if (!filesList || filesList.length === 0) return true;\n\n const normalizedFilename = filename.replace(/\\\\/g, '/');\n return filesList.some((f) => {\n const normalizedF = f.replace(/\\\\/g, '/');\n return normalizedF === normalizedFilename;\n });\n};\n\n/* ────────────────────────────────────────── plugin ──────────────────────── */\n\nexport const intlayerSvelteExtract = (\n code: string,\n filename: string,\n options: ExtractPluginOptions = {}\n): { code: string; map?: unknown; extracted: boolean } | null => {\n const {\n defaultLocale = DefaultValues.Internationalization.DEFAULT_LOCALE,\n packageName = 'svelte-intlayer',\n filesList,\n shouldExtract,\n onExtract,\n dictionaryKey: dictionaryKeyOption,\n attributesToExtract = [],\n extractDictionaryKeyFromPath,\n generateKey,\n } = options;\n\n if (!shouldProcessFile(filename, filesList)) return null;\n if (!filename.endsWith('.svelte')) return null;\n\n const magic = new MagicString(code);\n const extractedContent: ExtractedContent = {};\n const existingKeys = new Set<string>();\n const dictionaryKey =\n dictionaryKeyOption ?? extractDictionaryKeyFromPath?.(filename) ?? '';\n const replacements: Replacement[] = [];\n\n let ast: any;\n try {\n ast = parse(code);\n } catch (e) {\n console.warn(\n `Svelte extraction: Failed to parse Svelte AST for ${filename}`,\n e\n );\n return null;\n }\n\n // Walk Svelte HTML AST.\n // Svelte 4 used numeric type constants; Svelte 5 uses string type names.\n // We check for both to remain compatible.\n const isTextNode = (node: any) => node.type === 'Text' || node.type === 3;\n const isAttributeNode = (node: any) =>\n node.type === 'Attribute' || node.type === 6;\n\n const walkSvelte = (node: any) => {\n if (isTextNode(node)) {\n const text = node.data ?? node.content ?? '';\n if (shouldExtract?.(text) && generateKey) {\n const key = generateKey(text, existingKeys);\n existingKeys.add(key);\n replacements.push({\n start: node.start,\n end: node.end,\n replacement: `{$content.${key}}`,\n key,\n value: text.replace(/\\s+/g, ' ').trim(),\n });\n }\n } else if (\n isAttributeNode(node) &&\n (attributesToExtract as readonly string[]).includes(node.name)\n ) {\n if (node.value && node.value.length === 1 && isTextNode(node.value[0])) {\n const text = node.value[0].data ?? node.value[0].content ?? '';\n if (shouldExtract?.(text) && generateKey) {\n const key = generateKey(text, existingKeys);\n existingKeys.add(key);\n replacements.push({\n start: node.start,\n end: node.end,\n replacement: `${node.name}={$content.${key}}`,\n key,\n value: text.trim(),\n });\n }\n }\n }\n\n const children =\n node.children ?? node.fragment?.nodes ?? node.fragment?.children;\n if (children) children.forEach(walkSvelte);\n if (node.attributes) node.attributes.forEach(walkSvelte);\n };\n\n if (ast.html) {\n walkSvelte(ast.html);\n }\n\n // Extract and walk Script using Babel\n const scriptRegex = /<script[^>]*>([\\s\\S]*?)<\\/script>/;\n const scriptMatch = scriptRegex.exec(code);\n let hasScriptExtraction = false;\n const scriptContent = scriptMatch ? scriptMatch[1] : '';\n\n if (scriptMatch) {\n const openTagEndIndex = scriptMatch[0].indexOf('>') + 1;\n const offset = scriptMatch.index + openTagEndIndex;\n\n try {\n const babelAst = babelParse(scriptContent, {\n parserOpts: {\n sourceType: 'module',\n plugins: ['typescript', 'jsx'],\n },\n });\n\n if (babelAst) {\n traverse(babelAst, {\n StringLiteral(path: any) {\n if (path.parentPath.isImportDeclaration()) return;\n if (path.parentPath.isExportDeclaration()) return;\n if (path.parentPath.isImportSpecifier()) return;\n if (path.parentPath.isObjectProperty() && path.key === 'key')\n return;\n\n if (path.parentPath.isCallExpression()) {\n const callee = path.parentPath.node.callee;\n if (\n t.isMemberExpression(callee) &&\n t.isIdentifier(callee.object) &&\n callee.object.name === 'console'\n )\n return;\n\n if (\n t.isIdentifier(callee) &&\n (callee.name === 'useIntlayer' || callee.name === 't')\n )\n return;\n\n if (callee.type === 'Import') return;\n if (t.isIdentifier(callee) && callee.name === 'require') return;\n }\n\n const text = path.node.value;\n if (shouldExtract?.(text) && generateKey) {\n const key = generateKey(text, existingKeys);\n existingKeys.add(key);\n hasScriptExtraction = true;\n\n if (path.node.start != null && path.node.end != null) {\n replacements.push({\n start: offset + path.node.start,\n end: offset + path.node.end,\n replacement: `get(content).${key}`,\n key,\n value: text.trim(),\n });\n }\n }\n },\n });\n }\n } catch (e) {\n console.warn(\n `Svelte extraction: Failed to parse script content for ${filename}`,\n e\n );\n }\n }\n\n // Abort if nothing was extracted\n if (replacements.length === 0) return null;\n\n // Apply Replacements in Reverse Order (prevents magic-string chunk errors)\n replacements.sort((a, b) => b.start - a.start);\n for (const { start, end, replacement, key, value } of replacements) {\n magic.overwrite(start, end, replacement);\n extractedContent[key] = value;\n }\n\n // Inject necessary imports and setup\n const hasUseIntlayerImport =\n /import\\s*{[^}]*useIntlayer[^}]*}\\s*from\\s*['\"][^'\"]+['\"]/.test(\n scriptContent\n ) || /import\\s+useIntlayer\\s+from\\s*['\"][^'\"]+['\"]/.test(scriptContent);\n\n const hasGetImport =\n /import\\s*{[^}]*get[^}]*}\\s*from\\s*['\"]svelte\\/store['\"]/.test(\n scriptContent\n );\n const hasContentDeclaration = /const\\s+content\\s*=\\s*useIntlayer\\s*\\(/.test(\n scriptContent\n );\n\n const importStmt = hasUseIntlayerImport\n ? ''\n : `import { useIntlayer } from '${packageName}';`;\n const getImportStmt =\n hasScriptExtraction && !hasGetImport\n ? `import { get } from 'svelte/store';`\n : '';\n const contentDecl = hasContentDeclaration\n ? ''\n : `const content = useIntlayer('${dictionaryKey}');`;\n\n const injectionParts = [importStmt, getImportStmt, contentDecl].filter(\n Boolean\n );\n\n if (injectionParts.length > 0) {\n const injection = `\\n ${injectionParts.join('\\n ')}\\n`;\n\n if (scriptMatch) {\n const scriptContentStart =\n scriptMatch.index + scriptMatch[0].indexOf('>') + 1;\n magic.appendLeft(scriptContentStart, injection);\n } else {\n magic.prepend(\n `<script>\\n ${importStmt}\\n ${hasScriptExtraction ? \"import { get } from 'svelte/store';\" : ''}\\n ${contentDecl}\\n</script>\\n\\n`\n );\n }\n }\n\n if (onExtract) {\n onExtract({\n dictionaryKey,\n filePath: filename,\n content: extractedContent,\n locale: defaultLocale,\n });\n }\n\n return {\n code: magic.toString(),\n map: magic.generateMap({ source: filename, includeContent: true }),\n extracted: true,\n };\n};\n\ntype Tools = {\n generateKey: (text: string, existingKeys: Set<string>) => string;\n shouldExtract: (text: string) => boolean;\n extractDictionaryKeyFromPath: (path: string) => string;\n attributesToExtract: readonly string[];\n extractTsContent: any;\n};\n\nexport const processSvelteFile = (\n filePath: string,\n _componentKey: string,\n packageName: string,\n tools: Tools,\n save: boolean = true\n): {\n extractedContent: Record<string, string>;\n code: string;\n map?: any;\n} | null => {\n const code = readFileSync(filePath, 'utf-8');\n let extractedContent: Record<string, string> | null = null;\n\n const result = intlayerSvelteExtract(code, filePath, {\n packageName,\n dictionaryKey: _componentKey,\n shouldExtract: tools.shouldExtract,\n generateKey: tools.generateKey,\n extractDictionaryKeyFromPath: tools.extractDictionaryKeyFromPath,\n attributesToExtract: tools.attributesToExtract,\n onExtract: (extractResult) => {\n extractedContent = extractResult.content;\n },\n });\n\n if (!result) return null;\n\n if (save) {\n writeFileSync(filePath, result.code);\n }\n\n return {\n extractedContent: extractedContent!,\n code: result.code,\n map: result.map,\n };\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"svelte-intlayer-extract.mjs","names":["babelParse","t","parse"],"sources":["../../src/svelte-intlayer-extract.ts"],"sourcesContent":["import { readFileSync, writeFileSync } from 'node:fs';\nimport { parse as babelParse, types as t, traverse } from '@babel/core';\nimport { DefaultValues } from '@intlayer/config/client';\nimport type { Locale } from '@intlayer/types/allLocales';\nimport MagicString from 'magic-string';\nimport { parse } from 'svelte/compiler';\n\ntype ExistingCallInfo = {\n isDestructured: boolean;\n existingDestructuredKeys: string[];\n /** The variable name used to store the call result (e.g. `t` in `const t = useIntlayer(...)`) */\n variableName: string;\n /** Absolute position of `}` in the full file — only valid when `isDestructured` */\n closingBraceAbsolutePos: number;\n /** Absolute position of end of last property — only valid when `isDestructured` */\n lastPropAbsoluteEnd: number;\n} | null;\n\n/**\n * Detects whether a script block already contains a `useIntlayer` /\n * `getIntlayer` call and whether its result is destructured.\n */\nconst detectExistingIntlayerCall = (\n scriptText: string,\n absoluteOffset: number\n): ExistingCallInfo => {\n let info: ExistingCallInfo = null;\n\n try {\n const ast = babelParse(scriptText, {\n parserOpts: { sourceType: 'module', plugins: ['typescript', 'jsx'] },\n });\n\n if (!ast) return null;\n\n traverse(ast, {\n CallExpression(path: any) {\n const callee = path.node.callee;\n\n if (\n !t.isIdentifier(callee) ||\n (callee.name !== 'useIntlayer' && callee.name !== 'getIntlayer')\n )\n return;\n\n const parent = path.parent;\n\n if (t.isVariableDeclarator(parent) && t.isObjectPattern(parent.id)) {\n const properties = parent.id.properties;\n const existingDestructuredKeys = properties\n .filter(\n (p: any): p is typeof t.objectProperty =>\n t.isObjectProperty(p) && t.isIdentifier(p.key)\n )\n .map((p: any) => (p.key as any).name as string);\n const lastProp = properties[properties.length - 1];\n\n info = {\n isDestructured: true,\n variableName: 'content',\n existingDestructuredKeys,\n closingBraceAbsolutePos: absoluteOffset + (parent.id.end! - 1),\n lastPropAbsoluteEnd: absoluteOffset + lastProp.end!,\n };\n } else {\n const variableName =\n t.isVariableDeclarator(parent) && t.isIdentifier(parent.id)\n ? parent.id.name\n : 'content';\n\n info = {\n isDestructured: false,\n variableName,\n existingDestructuredKeys: [],\n closingBraceAbsolutePos: -1,\n lastPropAbsoluteEnd: -1,\n };\n }\n\n path.stop();\n },\n });\n } catch {\n // Silently ignore parse failures — fall back to no-info\n }\n\n return info;\n};\n\nexport type ExtractedContent = Record<string, string>;\n\nexport type ExtractResult = {\n dictionaryKey: string;\n filePath: string;\n content: ExtractedContent;\n locale: Locale;\n};\n\nexport type ExtractPluginOptions = {\n defaultLocale?: Locale;\n packageName?: string;\n filesList?: string[];\n shouldExtract?: (text: string) => boolean;\n onExtract?: (result: ExtractResult) => void;\n dictionaryKey?: string;\n attributesToExtract?: readonly string[];\n extractDictionaryKeyFromPath?: (path: string) => string;\n generateKey?: (text: string, existingKeys: Set<string>) => string;\n};\n\ntype Replacement = {\n start: number;\n end: number;\n replacement: string;\n key: string;\n value: string;\n};\n\n/* ────────────────────────────────────────── helpers ─────────────────────── */\n\nexport const shouldProcessFile = (\n filename: string | undefined,\n filesList?: string[]\n): boolean => {\n if (!filename) return false;\n if (!filesList || filesList.length === 0) return true;\n\n const normalizedFilename = filename.replace(/\\\\/g, '/');\n return filesList.some((f) => {\n const normalizedF = f.replace(/\\\\/g, '/');\n return normalizedF === normalizedFilename;\n });\n};\n\n/* ────────────────────────────────────────── plugin ──────────────────────── */\n\nexport const intlayerSvelteExtract = (\n code: string,\n filename: string,\n options: ExtractPluginOptions = {}\n): { code: string; map?: unknown; extracted: boolean } | null => {\n const {\n defaultLocale = DefaultValues.Internationalization.DEFAULT_LOCALE,\n packageName = 'svelte-intlayer',\n filesList,\n shouldExtract,\n onExtract,\n dictionaryKey: dictionaryKeyOption,\n attributesToExtract = [],\n extractDictionaryKeyFromPath,\n generateKey,\n } = options;\n\n if (!shouldProcessFile(filename, filesList)) return null;\n if (!filename.endsWith('.svelte')) return null;\n\n const magic = new MagicString(code);\n const extractedContent: ExtractedContent = {};\n const existingKeys = new Set<string>();\n const dictionaryKey =\n dictionaryKeyOption ?? extractDictionaryKeyFromPath?.(filename) ?? '';\n const replacements: Replacement[] = [];\n\n // Extract and walk Script using Babel\n const scriptRegex = /<script[^>]*>([\\s\\S]*?)<\\/script>/;\n const scriptMatch = scriptRegex.exec(code);\n let hasScriptExtraction = false;\n const scriptContent = scriptMatch ? scriptMatch[1] : '';\n\n // Detect existing call BEFORE walking the template so the access pattern\n // (bare key vs. $content.key) can be chosen consistently.\n const existingCallInfo = scriptMatch\n ? detectExistingIntlayerCall(\n scriptContent,\n scriptMatch.index + scriptMatch[0].indexOf('>') + 1\n )\n : null;\n\n const isDestructured = existingCallInfo?.isDestructured ?? false;\n const varName = existingCallInfo?.variableName ?? 'content';\n\n let ast: any;\n try {\n ast = parse(code);\n } catch (e) {\n console.warn(\n `Svelte extraction: Failed to parse Svelte AST for ${filename}`,\n e\n );\n return null;\n }\n\n // Walk Svelte HTML AST.\n // Svelte 4 used numeric type constants; Svelte 5 uses string type names.\n // We check for both to remain compatible.\n const isTextNode = (node: any) => node.type === 'Text' || node.type === 3;\n const isAttributeNode = (node: any) =>\n node.type === 'Attribute' || node.type === 6;\n const isExpressionTagNode = (node: any): boolean =>\n node.type === 'MustacheTag' ||\n node.type === 8 || // Svelte 4 numeric\n node.type === 'ExpressionTag'; // Svelte 5\n\n const walkSvelte = (node: any) => {\n if (isTextNode(node)) {\n const text = node.data ?? node.content ?? '';\n if (shouldExtract?.(text) && generateKey) {\n const key = generateKey(text, existingKeys);\n existingKeys.add(key);\n // Destructured: each property is a plain value → `{key}`.\n // Otherwise use the reactive store subscription `{$content.key}`.\n const ref = isDestructured ? key : `$${varName}.${key}`;\n replacements.push({\n start: node.start,\n end: node.end,\n replacement: `{${ref}}`,\n key,\n value: text.replace(/\\s+/g, ' ').trim(),\n });\n }\n } else if (\n isAttributeNode(node) &&\n (attributesToExtract as readonly string[]).includes(node.name)\n ) {\n if (node.value && node.value.length === 1 && isTextNode(node.value[0])) {\n const text = node.value[0].data ?? node.value[0].content ?? '';\n if (shouldExtract?.(text) && generateKey) {\n const key = generateKey(text, existingKeys);\n existingKeys.add(key);\n const ref = isDestructured ? key : `$${varName}.${key}`;\n replacements.push({\n start: node.start,\n end: node.end,\n replacement: `${node.name}={${ref}}`,\n key,\n value: text.trim(),\n });\n }\n }\n }\n\n const children =\n node.children ?? node.fragment?.nodes ?? node.fragment?.children;\n\n // Try to handle mixed text + expression children as an insertion\n if (children?.some(isExpressionTagNode)) {\n const parts: {\n type: 'text' | 'var';\n value: string;\n originalExpr: string;\n }[] = [];\n let hasSignificantText = false;\n let isValid = true;\n\n for (const child of children) {\n if (isTextNode(child)) {\n const text = child.data ?? child.content ?? '';\n if (text.trim().length > 0) hasSignificantText = true;\n parts.push({ type: 'text', value: text, originalExpr: '' });\n } else if (isExpressionTagNode(child)) {\n // Source slice: skip the leading `{` and trailing `}`\n const exprCode = code.slice(child.start + 1, child.end - 1).trim();\n const varName = exprCode.includes('.')\n ? exprCode\n .split('.')\n .pop()!\n .replace(/[^\\w$]/g, '')\n : exprCode;\n parts.push({ type: 'var', value: varName, originalExpr: exprCode });\n } else {\n isValid = false;\n break;\n }\n }\n\n if (\n isValid &&\n hasSignificantText &&\n parts.some((p) => p.type === 'var')\n ) {\n let combined = '';\n for (const p of parts) {\n combined += p.type === 'var' ? `{{${p.value}}}` : p.value;\n }\n const cleanString = combined.replace(/\\s+/g, ' ').trim();\n\n if (shouldExtract?.(cleanString) && generateKey) {\n const key = generateKey(cleanString, existingKeys);\n existingKeys.add(key);\n const ref = isDestructured ? key : `$${varName}.${key}`;\n\n const uniqueVarPairs = [\n ...new Set(\n parts\n .filter((p) => p.type === 'var')\n .map((p) => `${p.value}: ${p.originalExpr}`)\n ),\n ];\n const varArgs = uniqueVarPairs.join(', ');\n const replacement = `{${ref}({ ${varArgs} })}`;\n\n const firstChild = children[0];\n const lastChild = children[children.length - 1];\n replacements.push({\n start: firstChild.start,\n end: lastChild.end,\n replacement,\n key,\n value: cleanString,\n });\n\n // Don't recurse into these children\n if (node.attributes) node.attributes.forEach(walkSvelte);\n return;\n }\n }\n }\n\n if (children) children.forEach(walkSvelte);\n if (node.attributes) node.attributes.forEach(walkSvelte);\n };\n\n if (ast.html) {\n walkSvelte(ast.html);\n }\n\n if (scriptMatch) {\n const openTagEndIndex = scriptMatch[0].indexOf('>') + 1;\n const offset = scriptMatch.index + openTagEndIndex;\n\n try {\n const babelAst = babelParse(scriptContent, {\n parserOpts: {\n sourceType: 'module',\n plugins: ['typescript', 'jsx'],\n },\n });\n\n if (babelAst) {\n traverse(babelAst, {\n StringLiteral(path: any) {\n if (path.parentPath.isImportDeclaration()) return;\n if (path.parentPath.isExportDeclaration()) return;\n if (path.parentPath.isImportSpecifier()) return;\n if (path.parentPath.isObjectProperty() && path.key === 'key')\n return;\n\n if (path.parentPath.isCallExpression()) {\n const callee = path.parentPath.node.callee;\n if (\n t.isMemberExpression(callee) &&\n t.isIdentifier(callee.object) &&\n callee.object.name === 'console'\n )\n return;\n\n if (\n t.isIdentifier(callee) &&\n (callee.name === 'useIntlayer' || callee.name === 't')\n )\n return;\n\n if (callee.type === 'Import') return;\n if (t.isIdentifier(callee) && callee.name === 'require') return;\n }\n\n const text = path.node.value;\n if (shouldExtract?.(text) && generateKey) {\n const key = generateKey(text, existingKeys);\n existingKeys.add(key);\n hasScriptExtraction = true;\n\n if (path.node.start != null && path.node.end != null) {\n // Destructured: each property is a plain value → access directly.\n // Otherwise use `get(content).key` to read the Svelte store.\n const ref = isDestructured ? key : `get(${varName}).${key}`;\n replacements.push({\n start: offset + path.node.start,\n end: offset + path.node.end,\n replacement: ref,\n key,\n value: text.trim(),\n });\n }\n }\n },\n });\n }\n } catch (error) {\n console.warn(\n `Svelte extraction: Failed to parse script content for ${filename}`,\n error\n );\n }\n }\n\n // Abort if nothing was extracted\n if (replacements.length === 0) return null;\n\n // Apply Replacements in Reverse Order (prevents magic-string chunk errors)\n replacements.sort((a, b) => b.start - a.start);\n for (const { start, end, replacement, key, value } of replacements) {\n magic.overwrite(start, end, replacement);\n extractedContent[key] = value;\n }\n\n // When the existing call is destructured, inject only the missing keys into\n // the ObjectPattern — no new `content` variable is needed.\n if (\n existingCallInfo?.isDestructured &&\n existingCallInfo.closingBraceAbsolutePos >= 0\n ) {\n const missingKeys = Object.keys(extractedContent).filter(\n (k) => !existingCallInfo.existingDestructuredKeys.includes(k)\n );\n\n if (missingKeys.length > 0) {\n // Insert right after the last property so the space/newline before `}`\n // is naturally preserved: `{ a }` → `{ a, b }`.\n magic.appendLeft(\n existingCallInfo.lastPropAbsoluteEnd,\n `, ${missingKeys.join(', ')}`\n );\n }\n }\n\n // Inject necessary imports and setup\n const hasUseIntlayerImport =\n /import\\s*{[^}]*useIntlayer[^}]*}\\s*from\\s*['\"][^'\"]+['\"]/.test(\n scriptContent\n ) || /import\\s+useIntlayer\\s+from\\s*['\"][^'\"]+['\"]/.test(scriptContent);\n\n const hasGetImport =\n /import\\s*{[^}]*get[^}]*}\\s*from\\s*['\"]svelte\\/store['\"]/.test(\n scriptContent\n );\n\n // An existing call (destructured or not) means no new declaration is needed.\n const hasContentDeclaration =\n existingCallInfo !== null ||\n /const\\s+content\\s*=\\s*useIntlayer\\s*\\(/.test(scriptContent);\n\n const importStmt = hasUseIntlayerImport\n ? ''\n : `import { useIntlayer } from '${packageName}';`;\n const getImportStmt =\n hasScriptExtraction && !isDestructured && !hasGetImport\n ? `import { get } from 'svelte/store';`\n : '';\n const contentDecl = hasContentDeclaration\n ? ''\n : `const content = useIntlayer('${dictionaryKey}');`;\n\n const injectionParts = [importStmt, getImportStmt, contentDecl].filter(\n Boolean\n );\n\n if (injectionParts.length > 0) {\n const injection = `\\n ${injectionParts.join('\\n ')}\\n`;\n\n if (scriptMatch) {\n const scriptContentStart =\n scriptMatch.index + scriptMatch[0].indexOf('>') + 1;\n magic.appendLeft(scriptContentStart, injection);\n } else {\n magic.prepend(\n `<script>\\n ${importStmt}\\n ${hasScriptExtraction ? \"import { get } from 'svelte/store';\" : ''}\\n ${contentDecl}\\n</script>\\n\\n`\n );\n }\n }\n\n if (onExtract) {\n onExtract({\n dictionaryKey,\n filePath: filename,\n content: extractedContent,\n locale: defaultLocale,\n });\n }\n\n return {\n code: magic.toString(),\n map: magic.generateMap({ source: filename, includeContent: true }),\n extracted: true,\n };\n};\n\ntype Tools = {\n generateKey: (text: string, existingKeys: Set<string>) => string;\n shouldExtract: (text: string) => boolean;\n extractDictionaryKeyFromPath: (path: string) => string;\n attributesToExtract: readonly string[];\n extractTsContent: any;\n};\n\nexport const processSvelteFile = (\n filePath: string,\n _componentKey: string,\n packageName: string,\n tools: Tools,\n save: boolean = true\n): {\n extractedContent: Record<string, string>;\n code: string;\n map?: any;\n} | null => {\n const code = readFileSync(filePath, 'utf-8');\n let extractedContent: Record<string, string> | null = null;\n\n const result = intlayerSvelteExtract(code, filePath, {\n packageName,\n dictionaryKey: _componentKey,\n shouldExtract: tools.shouldExtract,\n generateKey: tools.generateKey,\n extractDictionaryKeyFromPath: tools.extractDictionaryKeyFromPath,\n attributesToExtract: tools.attributesToExtract,\n onExtract: (extractResult) => {\n extractedContent = extractResult.content;\n },\n });\n\n if (!result) return null;\n\n if (save) {\n writeFileSync(filePath, result.code);\n }\n\n return {\n extractedContent: extractedContent!,\n code: result.code,\n map: result.map,\n };\n};\n"],"mappings":"mPAsBA,MAAM,GACJ,EACA,IACqB,CACrB,IAAI,EAAyB,KAE7B,GAAI,CACF,IAAM,EAAMA,EAAW,EAAY,CACjC,WAAY,CAAE,WAAY,SAAU,QAAS,CAAC,aAAc,MAAM,CAAE,CACrE,CAAC,CAEF,GAAI,CAAC,EAAK,OAAO,KAEjB,EAAS,EAAK,CACZ,eAAe,EAAW,CACxB,IAAM,EAAS,EAAK,KAAK,OAEzB,GACE,CAACC,EAAE,aAAa,EAAO,EACtB,EAAO,OAAS,eAAiB,EAAO,OAAS,cAElD,OAEF,IAAM,EAAS,EAAK,OAEpB,GAAIA,EAAE,qBAAqB,EAAO,EAAIA,EAAE,gBAAgB,EAAO,GAAG,CAAE,CAClE,IAAM,EAAa,EAAO,GAAG,WACvB,EAA2B,EAC9B,OACE,GACCA,EAAE,iBAAiB,EAAE,EAAIA,EAAE,aAAa,EAAE,IAAI,CACjD,CACA,IAAK,GAAY,EAAE,IAAY,KAAe,CAC3C,EAAW,EAAW,EAAW,OAAS,GAEhD,EAAO,CACL,eAAgB,GAChB,aAAc,UACd,2BACA,wBAAyB,GAAkB,EAAO,GAAG,IAAO,GAC5D,oBAAqB,EAAiB,EAAS,IAChD,MAOD,EAAO,CACL,eAAgB,GAChB,aANAA,EAAE,qBAAqB,EAAO,EAAIA,EAAE,aAAa,EAAO,GAAG,CACvD,EAAO,GAAG,KACV,UAKJ,yBAA0B,EAAE,CAC5B,wBAAyB,GACzB,oBAAqB,GACtB,CAGH,EAAK,MAAM,EAEd,CAAC,MACI,EAIR,OAAO,GAkCI,GACX,EACA,IACY,CACZ,GAAI,CAAC,EAAU,MAAO,GACtB,GAAI,CAAC,GAAa,EAAU,SAAW,EAAG,MAAO,GAEjD,IAAM,EAAqB,EAAS,QAAQ,MAAO,IAAI,CACvD,OAAO,EAAU,KAAM,GACD,EAAE,QAAQ,MAAO,IAAI,GAClB,EACvB,EAKS,GACX,EACA,EACA,EAAgC,EAAE,GAC6B,CAC/D,GAAM,CACJ,gBAAgB,EAAc,qBAAqB,eACnD,cAAc,kBACd,YACA,gBACA,YACA,cAAe,EACf,sBAAsB,EAAE,CACxB,+BACA,eACE,EAGJ,GADI,CAAC,EAAkB,EAAU,EAAU,EACvC,CAAC,EAAS,SAAS,UAAU,CAAE,OAAO,KAE1C,IAAM,EAAQ,IAAI,EAAY,EAAK,CAC7B,EAAqC,EAAE,CACvC,EAAe,IAAI,IACnB,EACJ,GAAuB,IAA+B,EAAS,EAAI,GAC/D,EAA8B,EAAE,CAIhC,EADc,oCACY,KAAK,EAAK,CACtC,EAAsB,GACpB,EAAgB,EAAc,EAAY,GAAK,GAI/C,EAAmB,EACrB,EACE,EACA,EAAY,MAAQ,EAAY,GAAG,QAAQ,IAAI,CAAG,EACnD,CACD,KAEE,EAAiB,GAAkB,gBAAkB,GACrD,EAAU,GAAkB,cAAgB,UAE9C,EACJ,GAAI,CACF,EAAMC,EAAM,EAAK,OACV,EAAG,CAKV,OAJA,QAAQ,KACN,qDAAqD,IACrD,EACD,CACM,KAMT,IAAM,EAAc,GAAc,EAAK,OAAS,QAAU,EAAK,OAAS,EAClE,EAAmB,GACvB,EAAK,OAAS,aAAe,EAAK,OAAS,EACvC,EAAuB,GAC3B,EAAK,OAAS,eACd,EAAK,OAAS,GACd,EAAK,OAAS,gBAEV,EAAc,GAAc,CAChC,GAAI,EAAW,EAAK,CAAE,CACpB,IAAM,EAAO,EAAK,MAAQ,EAAK,SAAW,GAC1C,GAAI,IAAgB,EAAK,EAAI,EAAa,CACxC,IAAM,EAAM,EAAY,EAAM,EAAa,CAC3C,EAAa,IAAI,EAAI,CAGrB,IAAM,EAAM,EAAiB,EAAM,IAAI,EAAQ,GAAG,IAClD,EAAa,KAAK,CAChB,MAAO,EAAK,MACZ,IAAK,EAAK,IACV,YAAa,IAAI,EAAI,GACrB,MACA,MAAO,EAAK,QAAQ,OAAQ,IAAI,CAAC,MAAM,CACxC,CAAC,UAGJ,EAAgB,EAAK,EACpB,EAA0C,SAAS,EAAK,KAAK,EAE1D,EAAK,OAAS,EAAK,MAAM,SAAW,GAAK,EAAW,EAAK,MAAM,GAAG,CAAE,CACtE,IAAM,EAAO,EAAK,MAAM,GAAG,MAAQ,EAAK,MAAM,GAAG,SAAW,GAC5D,GAAI,IAAgB,EAAK,EAAI,EAAa,CACxC,IAAM,EAAM,EAAY,EAAM,EAAa,CAC3C,EAAa,IAAI,EAAI,CACrB,IAAM,EAAM,EAAiB,EAAM,IAAI,EAAQ,GAAG,IAClD,EAAa,KAAK,CAChB,MAAO,EAAK,MACZ,IAAK,EAAK,IACV,YAAa,GAAG,EAAK,KAAK,IAAI,EAAI,GAClC,MACA,MAAO,EAAK,MAAM,CACnB,CAAC,EAKR,IAAM,EACJ,EAAK,UAAY,EAAK,UAAU,OAAS,EAAK,UAAU,SAG1D,GAAI,GAAU,KAAK,EAAoB,CAAE,CACvC,IAAM,EAIA,EAAE,CACJ,EAAqB,GACrB,EAAU,GAEd,IAAK,IAAM,KAAS,EAClB,GAAI,EAAW,EAAM,CAAE,CACrB,IAAM,EAAO,EAAM,MAAQ,EAAM,SAAW,GACxC,EAAK,MAAM,CAAC,OAAS,IAAG,EAAqB,IACjD,EAAM,KAAK,CAAE,KAAM,OAAQ,MAAO,EAAM,aAAc,GAAI,CAAC,SAClD,EAAoB,EAAM,CAAE,CAErC,IAAM,EAAW,EAAK,MAAM,EAAM,MAAQ,EAAG,EAAM,IAAM,EAAE,CAAC,MAAM,CAC5D,EAAU,EAAS,SAAS,IAAI,CAClC,EACG,MAAM,IAAI,CACV,KAAK,CACL,QAAQ,UAAW,GAAG,CACzB,EACJ,EAAM,KAAK,CAAE,KAAM,MAAO,MAAO,EAAS,aAAc,EAAU,CAAC,KAC9D,CACL,EAAU,GACV,MAIJ,GACE,GACA,GACA,EAAM,KAAM,GAAM,EAAE,OAAS,MAAM,CACnC,CACA,IAAI,EAAW,GACf,IAAK,IAAM,KAAK,EACd,GAAY,EAAE,OAAS,MAAQ,KAAK,EAAE,MAAM,IAAM,EAAE,MAEtD,IAAM,EAAc,EAAS,QAAQ,OAAQ,IAAI,CAAC,MAAM,CAExD,GAAI,IAAgB,EAAY,EAAI,EAAa,CAC/C,IAAM,EAAM,EAAY,EAAa,EAAa,CAClD,EAAa,IAAI,EAAI,CAWrB,IAAM,EAAc,IAVR,EAAiB,EAAM,IAAI,EAAQ,GAAG,IAUtB,KARL,CACrB,GAAG,IAAI,IACL,EACG,OAAQ,GAAM,EAAE,OAAS,MAAM,CAC/B,IAAK,GAAM,GAAG,EAAE,MAAM,IAAI,EAAE,eAAe,CAC/C,CACF,CAC8B,KAAK,KAAK,CACA,MAEnC,EAAa,EAAS,GACtB,EAAY,EAAS,EAAS,OAAS,GAC7C,EAAa,KAAK,CAChB,MAAO,EAAW,MAClB,IAAK,EAAU,IACf,cACA,MACA,MAAO,EACR,CAAC,CAGE,EAAK,YAAY,EAAK,WAAW,QAAQ,EAAW,CACxD,SAKF,GAAU,EAAS,QAAQ,EAAW,CACtC,EAAK,YAAY,EAAK,WAAW,QAAQ,EAAW,EAO1D,GAJI,EAAI,MACN,EAAW,EAAI,KAAK,CAGlB,EAAa,CACf,IAAM,EAAkB,EAAY,GAAG,QAAQ,IAAI,CAAG,EAChD,EAAS,EAAY,MAAQ,EAEnC,GAAI,CACF,IAAM,EAAWF,EAAW,EAAe,CACzC,WAAY,CACV,WAAY,SACZ,QAAS,CAAC,aAAc,MAAM,CAC/B,CACF,CAAC,CAEE,GACF,EAAS,EAAU,CACjB,cAAc,EAAW,CAIvB,GAHI,EAAK,WAAW,qBAAqB,EACrC,EAAK,WAAW,qBAAqB,EACrC,EAAK,WAAW,mBAAmB,EACnC,EAAK,WAAW,kBAAkB,EAAI,EAAK,MAAQ,MACrD,OAEF,GAAI,EAAK,WAAW,kBAAkB,CAAE,CACtC,IAAM,EAAS,EAAK,WAAW,KAAK,OAepC,GAbEC,EAAE,mBAAmB,EAAO,EAC5BA,EAAE,aAAa,EAAO,OAAO,EAC7B,EAAO,OAAO,OAAS,WAKvBA,EAAE,aAAa,EAAO,GACrB,EAAO,OAAS,eAAiB,EAAO,OAAS,MAIhD,EAAO,OAAS,UAChBA,EAAE,aAAa,EAAO,EAAI,EAAO,OAAS,UAAW,OAG3D,IAAM,EAAO,EAAK,KAAK,MACvB,GAAI,IAAgB,EAAK,EAAI,EAAa,CACxC,IAAM,EAAM,EAAY,EAAM,EAAa,CAI3C,GAHA,EAAa,IAAI,EAAI,CACrB,EAAsB,GAElB,EAAK,KAAK,OAAS,MAAQ,EAAK,KAAK,KAAO,KAAM,CAGpD,IAAM,EAAM,EAAiB,EAAM,OAAO,EAAQ,IAAI,IACtD,EAAa,KAAK,CAChB,MAAO,EAAS,EAAK,KAAK,MAC1B,IAAK,EAAS,EAAK,KAAK,IACxB,YAAa,EACb,MACA,MAAO,EAAK,MAAM,CACnB,CAAC,IAIT,CAAC,OAEG,EAAO,CACd,QAAQ,KACN,yDAAyD,IACzD,EACD,EAKL,GAAI,EAAa,SAAW,EAAG,OAAO,KAGtC,EAAa,MAAM,EAAG,IAAM,EAAE,MAAQ,EAAE,MAAM,CAC9C,IAAK,GAAM,CAAE,QAAO,MAAK,cAAa,MAAK,WAAW,EACpD,EAAM,UAAU,EAAO,EAAK,EAAY,CACxC,EAAiB,GAAO,EAK1B,GACE,GAAkB,gBAClB,EAAiB,yBAA2B,EAC5C,CACA,IAAM,EAAc,OAAO,KAAK,EAAiB,CAAC,OAC/C,GAAM,CAAC,EAAiB,yBAAyB,SAAS,EAAE,CAC9D,CAEG,EAAY,OAAS,GAGvB,EAAM,WACJ,EAAiB,oBACjB,KAAK,EAAY,KAAK,KAAK,GAC5B,CAKL,IAAM,EACJ,2DAA2D,KACzD,EACD,EAAI,+CAA+C,KAAK,EAAc,CAEnE,EACJ,0DAA0D,KACxD,EACD,CAGG,EACJ,IAAqB,MACrB,yCAAyC,KAAK,EAAc,CAExD,EAAa,EACf,GACA,gCAAgC,EAAY,IAC1C,EACJ,GAAuB,CAAC,GAAkB,CAAC,EACvC,sCACA,GACA,EAAc,EAChB,GACA,gCAAgC,EAAc,KAE5C,EAAiB,CAAC,EAAY,EAAe,EAAY,CAAC,OAC9D,QACD,CAED,GAAI,EAAe,OAAS,EAAG,CAC7B,IAAM,EAAY,OAAO,EAAe,KAAK;IAAO,CAAC,IAErD,GAAI,EAAa,CACf,IAAM,EACJ,EAAY,MAAQ,EAAY,GAAG,QAAQ,IAAI,CAAG,EACpD,EAAM,WAAW,EAAoB,EAAU,MAE/C,EAAM,QACJ,eAAe,EAAW,MAAM,EAAsB,sCAAwC,GAAG,MAAM,EAAY,kBACpH,CAaL,OATI,GACF,EAAU,CACR,gBACA,SAAU,EACV,QAAS,EACT,OAAQ,EACT,CAAC,CAGG,CACL,KAAM,EAAM,UAAU,CACtB,IAAK,EAAM,YAAY,CAAE,OAAQ,EAAU,eAAgB,GAAM,CAAC,CAClE,UAAW,GACZ,EAWU,GACX,EACA,EACA,EACA,EACA,EAAgB,KAKN,CACV,IAAM,EAAO,EAAa,EAAU,QAAQ,CACxC,EAAkD,KAEhD,EAAS,EAAsB,EAAM,EAAU,CACnD,cACA,cAAe,EACf,cAAe,EAAM,cACrB,YAAa,EAAM,YACnB,6BAA8B,EAAM,6BACpC,oBAAqB,EAAM,oBAC3B,UAAY,GAAkB,CAC5B,EAAmB,EAAc,SAEpC,CAAC,CAQF,OANK,GAED,GACF,EAAc,EAAU,EAAO,KAAK,CAG/B,CACa,mBAClB,KAAM,EAAO,KACb,IAAK,EAAO,IACb,EAVmB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"svelte-intlayer-extract.d.ts","names":[],"sources":["../../src/svelte-intlayer-extract.ts"],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"svelte-intlayer-extract.d.ts","names":[],"sources":["../../src/svelte-intlayer-extract.ts"],"mappings":";;;KAyFY,gBAAA,GAAmB,MAAA;AAAA,KAEnB,aAAA;EACV,aAAA;EACA,QAAA;EACA,OAAA,EAAS,gBAAA;EACT,MAAA,EAAQ,MAAA;AAAA;AAAA,KAGE,oBAAA;EACV,aAAA,GAAgB,MAAA;EAChB,WAAA;EACA,SAAA;EACA,aAAA,IAAiB,IAAA;EACjB,SAAA,IAAa,MAAA,EAAQ,aAAA;EACrB,aAAA;EACA,mBAAA;EACA,4BAAA,IAAgC,IAAA;EAChC,WAAA,IAAe,IAAA,UAAc,YAAA,EAAc,GAAA;AAAA;AAAA,cAahC,iBAAA,GACX,QAAA,sBACA,SAAA;AAAA,cAcW,qBAAA,GACX,IAAA,UACA,QAAA,UACA,OAAA,GAAS,oBAAA;EACN,IAAA;EAAc,GAAA;EAAe,SAAA;AAAA;AAAA,KA2V7B,KAAA;EACH,WAAA,GAAc,IAAA,UAAc,YAAA,EAAc,GAAA;EAC1C,aAAA,GAAgB,IAAA;EAChB,4BAAA,GAA+B,IAAA;EAC/B,mBAAA;EACA,gBAAA;AAAA;AAAA,cAGW,iBAAA,GACX,QAAA,UACA,aAAA,UACA,WAAA,UACA,KAAA,EAAO,KAAA,EACP,IAAA;EAEA,gBAAA,EAAkB,MAAA;EAClB,IAAA;EACA,GAAA;AAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@intlayer/svelte-compiler",
|
|
3
|
-
"version": "8.3.
|
|
3
|
+
"version": "8.3.1",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "Vite-compatible compiler plugin for Svelte with Intlayer, providing HMR support, file transformation, and optimized dictionary loading for Svelte applications.",
|
|
6
6
|
"keywords": [
|
|
@@ -81,16 +81,16 @@
|
|
|
81
81
|
},
|
|
82
82
|
"dependencies": {
|
|
83
83
|
"@babel/core": "7.29.0",
|
|
84
|
-
"@intlayer/types": "8.3.
|
|
84
|
+
"@intlayer/types": "8.3.1",
|
|
85
85
|
"fast-glob": "3.3.3",
|
|
86
86
|
"magic-string": "0.30.21"
|
|
87
87
|
},
|
|
88
88
|
"devDependencies": {
|
|
89
|
+
"@intlayer/config": "8.3.1",
|
|
90
|
+
"@intlayer/types": "8.3.1",
|
|
89
91
|
"@types/babel__core": "7.20.5",
|
|
90
92
|
"@types/babel__generator": "7.27.0",
|
|
91
93
|
"@types/babel__traverse": "7.28.0",
|
|
92
|
-
"@intlayer/config": "8.3.0",
|
|
93
|
-
"@intlayer/types": "8.3.0",
|
|
94
94
|
"@types/node": "25.4.0",
|
|
95
95
|
"@utils/ts-config": "1.0.4",
|
|
96
96
|
"@utils/ts-config-types": "1.0.4",
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
var e=Object.defineProperty,t=(t,n)=>{let r={};for(var i in t)e(r,i,{get:t[i],enumerable:!0});return n||e(r,Symbol.toStringTag,{value:`Module`}),r};(e=>typeof require<`u`?require:typeof Proxy<`u`?new Proxy(e,{get:(e,t)=>(typeof require<`u`?require:e)[t]}):e)(function(e){if(typeof require<`u`)return require.apply(this,arguments);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.")}),exports.t=t;
|
|
2
|
-
//# sourceMappingURL=runtime.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.cjs","names":[],"sources":["../../../../../../../../config/dist/esm/_virtual/_rolldown/runtime.mjs"],"sourcesContent":["var e=Object.defineProperty,t=(t,n)=>{let r={};for(var i in t)e(r,i,{get:t[i],enumerable:!0});return n||e(r,Symbol.toStringTag,{value:`Module`}),r},n=(e=>typeof require<`u`?require:typeof Proxy<`u`?new Proxy(e,{get:(e,t)=>(typeof require<`u`?require:e)[t]}):e)(function(e){if(typeof require<`u`)return require.apply(this,arguments);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.\")});export{t as __exportAll,n as __require};"],"mappings":"AAAA,IAAI,EAAE,OAAO,eAAe,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,IAAI,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC,OAAO,GAAG,EAAE,EAAE,OAAO,YAAY,CAAC,MAAM,SAAS,CAAC,CAAC,IAAM,GAAG,OAAO,QAAQ,IAAI,QAAQ,OAAO,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC,KAAK,EAAE,KAAK,OAAO,QAAQ,IAAI,QAAQ,GAAG,GAAG,CAAC,CAAC,GAAG,SAAS,EAAE,CAAC,GAAG,OAAO,QAAQ,IAAI,OAAO,QAAQ,MAAM,KAAK,UAAU,CAAC,MAAM,MAAM,0BAA0B,EAAE,4JAA4J,EAAE"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
var e=require(`../_virtual/_rolldown/runtime.cjs`).t({BUILD_MODE:()=>t,CACHE:()=>!0,OPTIMIZE:()=>void 0,OUTPUT_FORMAT:()=>r,TRAVERSE_PATTERN:()=>n,TYPE_CHECKING:()=>!1});const t=`auto`,n=[`**/*.{tsx,ts,js,mjs,cjs,jsx,vue,svelte,svte}`,`!**/node_modules/**`,`!**/*.config.*`,`!**/*.test.*`,`!**/*.spec.*`,`!**/*.stories.*`,`!**/*.d.ts`,`!**/*.d.ts.map`],r=[`esm`,`cjs`];exports.t=e;
|
|
2
|
-
//# sourceMappingURL=build.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"build.cjs","names":["e"],"sources":["../../../../../../../config/dist/esm/defaultValues/build.mjs"],"sourcesContent":["import{__exportAll as e}from\"../_virtual/_rolldown/runtime.mjs\";var t=e({BUILD_MODE:()=>n,CACHE:()=>!0,OPTIMIZE:()=>void 0,OUTPUT_FORMAT:()=>a,TRAVERSE_PATTERN:()=>i,TYPE_CHECKING:()=>!1});const n=`auto`,r=void 0,i=[`**/*.{tsx,ts,js,mjs,cjs,jsx,vue,svelte,svte}`,`!**/node_modules/**`,`!**/*.config.*`,`!**/*.test.*`,`!**/*.spec.*`,`!**/*.stories.*`,`!**/*.d.ts`,`!**/*.d.ts.map`],a=[`esm`,`cjs`],o=!0,s=!1;export{n as BUILD_MODE,o as CACHE,r as OPTIMIZE,a as OUTPUT_FORMAT,i as TRAVERSE_PATTERN,s as TYPE_CHECKING,t as build_exports};\n//# sourceMappingURL=build.mjs.map"],"mappings":"AAAgE,IAAI,+CAAEA,EAAE,CAAC,eAAe,EAAE,UAAU,CAAC,EAAE,aAAa,IAAK,GAAE,kBAAkB,EAAE,qBAAqB,EAAE,kBAAkB,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,OAAgB,EAAE,CAAC,+CAA+C,sBAAsB,iBAAiB,eAAe,eAAe,kBAAkB,aAAa,iBAAiB,CAAC,EAAE,CAAC,MAAM,MAAM"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
var e=require(`../_virtual/_rolldown/runtime.cjs`).t({COMPILER_DICTIONARY_KEY_PREFIX:()=>t,COMPILER_ENABLED:()=>!0,COMPILER_NO_METADATA:()=>!1,COMPILER_OUTPUT:()=>n,COMPILER_SAVE_COMPONENTS:()=>!1});const t=`comp-`,n=e=>`/compiler/${e.key}.${e.extension.split(`.`)[1]}.json`;exports.t=e;
|
|
2
|
-
//# sourceMappingURL=compiler.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"compiler.cjs","names":["e"],"sources":["../../../../../../../config/dist/esm/defaultValues/compiler.mjs"],"sourcesContent":["import{__exportAll as e}from\"../_virtual/_rolldown/runtime.mjs\";var t=e({COMPILER_DICTIONARY_KEY_PREFIX:()=>r,COMPILER_ENABLED:()=>!0,COMPILER_NO_METADATA:()=>!1,COMPILER_OUTPUT:()=>i,COMPILER_SAVE_COMPONENTS:()=>!1});const n=!0,r=`comp-`,i=e=>`/compiler/${e.key}.${e.extension.split(`.`)[1]}.json`,a=!1,o=!1;export{r as COMPILER_DICTIONARY_KEY_PREFIX,n as COMPILER_ENABLED,a as COMPILER_NO_METADATA,i as COMPILER_OUTPUT,o as COMPILER_SAVE_COMPONENTS,t as compiler_exports};\n//# sourceMappingURL=compiler.mjs.map"],"mappings":"AAAgE,IAAI,+CAAEA,EAAE,CAAC,mCAAmC,EAAE,qBAAqB,CAAC,EAAE,yBAAyB,CAAC,EAAE,oBAAoB,EAAE,6BAA6B,CAAC,EAAE,CAAC,CAAC,MAAW,EAAE,QAAQ,EAAE,GAAG,aAAa,EAAE,IAAI,GAAG,EAAE,UAAU,MAAM,IAAI,CAAC,GAAG"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
var e=require(`../_virtual/_rolldown/runtime.cjs`).t({CODE_DIR:()=>i,CONTENT_DIR:()=>r,EXCLUDED_PATHS:()=>n,FILE_EXTENSIONS:()=>t,I18NEXT_DICTIONARIES_DIR:()=>a,REACT_INTL_MESSAGES_DIR:()=>o,WATCH:()=>!0});const t=[`.content.ts`,`.content.js`,`.content.cjs`,`.content.mjs`,`.content.json`,`.content.json5`,`.content.jsonc`,`.content.tsx`,`.content.jsx`],n=[`**/node_modules/**`,`**/dist/**`,`**/build/**`,`**/.intlayer/**`,`**/.next/**`,`**/.nuxt/**`,`**/.expo/**`,`**/.vercel/**`,`**/.turbo/**`,`**/.tanstack/**`],r=[`.`],i=[`.`],a=`i18next_resources`,o=`intl_messages`;exports.t=e;
|
|
2
|
-
//# sourceMappingURL=content.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"content.cjs","names":["e"],"sources":["../../../../../../../config/dist/esm/defaultValues/content.mjs"],"sourcesContent":["import{__exportAll as e}from\"../_virtual/_rolldown/runtime.mjs\";var t=e({CODE_DIR:()=>a,CONTENT_DIR:()=>i,EXCLUDED_PATHS:()=>r,FILE_EXTENSIONS:()=>n,I18NEXT_DICTIONARIES_DIR:()=>o,REACT_INTL_MESSAGES_DIR:()=>s,WATCH:()=>!0});const n=[`.content.ts`,`.content.js`,`.content.cjs`,`.content.mjs`,`.content.json`,`.content.json5`,`.content.jsonc`,`.content.tsx`,`.content.jsx`],r=[`**/node_modules/**`,`**/dist/**`,`**/build/**`,`**/.intlayer/**`,`**/.next/**`,`**/.nuxt/**`,`**/.expo/**`,`**/.vercel/**`,`**/.turbo/**`,`**/.tanstack/**`],i=[`.`],a=[`.`],o=`i18next_resources`,s=`intl_messages`,c=!0;export{a as CODE_DIR,i as CONTENT_DIR,r as EXCLUDED_PATHS,n as FILE_EXTENSIONS,o as I18NEXT_DICTIONARIES_DIR,s as REACT_INTL_MESSAGES_DIR,c as WATCH,t as content_exports};\n//# sourceMappingURL=content.mjs.map"],"mappings":"AAAgE,IAAI,+CAAEA,EAAE,CAAC,aAAa,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,6BAA6B,EAAE,4BAA4B,EAAE,UAAU,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,cAAc,cAAc,eAAe,eAAe,gBAAgB,iBAAiB,iBAAiB,eAAe,eAAe,CAAC,EAAE,CAAC,qBAAqB,aAAa,cAAc,kBAAkB,cAAc,cAAc,cAAc,gBAAgB,eAAe,kBAAkB,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,oBAAoB,EAAE"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dictionary.cjs","names":["e"],"sources":["../../../../../../../config/dist/esm/defaultValues/dictionary.mjs"],"sourcesContent":["import{__exportAll as e}from\"../_virtual/_rolldown/runtime.mjs\";var t=e({CONTENT_AUTO_TRANSFORMATION:()=>!1,FILL:()=>!0,IMPORT_MODE:()=>a,LOCATION:()=>r});const n=!0,r=`local`,i=!1,a=`static`;export{i as CONTENT_AUTO_TRANSFORMATION,n as FILL,a as IMPORT_MODE,r as LOCATION,t as dictionary_exports};\n//# sourceMappingURL=dictionary.mjs.map"],"mappings":"AAAgE,IAAI,+CAAEA,EAAE,CAAC,gCAAgC,CAAC,EAAE,SAAS,CAAC,EAAE,gBAAgB,EAAE,aAAa,EAAE,CAAC,CAAC,MAAW,EAAE,QAAa,EAAE"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
var e=require(`../_virtual/_rolldown/runtime.cjs`).t({APPLICATION_URL:()=>void 0,BACKEND_URL:()=>r,CMS_URL:()=>n,DICTIONARY_PRIORITY_STRATEGY:()=>a,EDITOR_URL:()=>t,IS_ENABLED:()=>!1,LIVE_SYNC:()=>!0,LIVE_SYNC_PORT:()=>o,PORT:()=>i});const t=`http://localhost:8000`,n=`https://app.intlayer.org`,r=`https://back.intlayer.org`,i=8e3,a=`local_first`,o=4e3;exports.t=e;
|
|
2
|
-
//# sourceMappingURL=editor.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"editor.cjs","names":["e"],"sources":["../../../../../../../config/dist/esm/defaultValues/editor.mjs"],"sourcesContent":["import{__exportAll as e}from\"../_virtual/_rolldown/runtime.mjs\";var t=e({APPLICATION_URL:()=>void 0,BACKEND_URL:()=>a,CMS_URL:()=>i,DICTIONARY_PRIORITY_STRATEGY:()=>l,EDITOR_URL:()=>r,IS_ENABLED:()=>!1,LIVE_SYNC:()=>!0,LIVE_SYNC_PORT:()=>u,PORT:()=>o});const n=void 0,r=`http://localhost:8000`,i=`https://app.intlayer.org`,a=`https://back.intlayer.org`,o=8e3,s=!1,c=!0,l=`local_first`,u=4e3;export{n as APPLICATION_URL,a as BACKEND_URL,i as CMS_URL,l as DICTIONARY_PRIORITY_STRATEGY,r as EDITOR_URL,s as IS_ENABLED,c as LIVE_SYNC,u as LIVE_SYNC_PORT,o as PORT,t as editor_exports};\n//# sourceMappingURL=editor.mjs.map"],"mappings":"AAAgE,IAAI,+CAAEA,EAAE,CAAC,oBAAoB,IAAK,GAAE,gBAAgB,EAAE,YAAY,EAAE,iCAAiC,EAAE,eAAe,EAAE,eAAe,CAAC,EAAE,cAAc,CAAC,EAAE,mBAAmB,EAAE,SAAS,EAAE,CAAC,CAAC,MAAe,EAAE,wBAAwB,EAAE,2BAA2B,EAAE,4BAA4B,EAAE,IAAc,EAAE,cAAc,EAAE"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const e=require(`../_virtual/_rolldown/runtime.cjs`),t=require(`./build.cjs`),n=require(`./compiler.cjs`),r=require(`./content.cjs`),i=require(`./dictionary.cjs`),a=require(`./editor.cjs`),o=require(`./internationalization.cjs`),s=require(`./log.cjs`),c=require(`./routing.cjs`),l=require(`./system.cjs`);var u=e.t({Build:()=>t.t,Compiler:()=>n.t,Content:()=>r.t,Dictionary:()=>i.t,Editor:()=>a.t,Internationalization:()=>o.n,Log:()=>s.n,Routing:()=>c.t,System:()=>l.t});exports.u=u;
|
|
2
|
-
//# sourceMappingURL=index.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","names":["e","t","n","r","i","a","o","s","c","l"],"sources":["../../../../../../../config/dist/esm/defaultValues/index.mjs"],"sourcesContent":["import{__exportAll as e}from\"../_virtual/_rolldown/runtime.mjs\";import{build_exports as t}from\"./build.mjs\";import{compiler_exports as n}from\"./compiler.mjs\";import{content_exports as r}from\"./content.mjs\";import{dictionary_exports as i}from\"./dictionary.mjs\";import{editor_exports as a}from\"./editor.mjs\";import{internationalization_exports as o}from\"./internationalization.mjs\";import{log_exports as s}from\"./log.mjs\";import{routing_exports as c}from\"./routing.mjs\";import{system_exports as l}from\"./system.mjs\";var u=e({Build:()=>t,Compiler:()=>n,Content:()=>r,Dictionary:()=>i,Editor:()=>a,Internationalization:()=>o,Log:()=>s,Routing:()=>c,System:()=>l});export{t as Build,n as Compiler,r as Content,i as Dictionary,a as Editor,o as Internationalization,s as Log,c as Routing,l as System,u as defaultValues_exports};\n//# sourceMappingURL=index.mjs.map"],"mappings":"iTAAkgB,IAAI,EAAEA,EAAAA,EAAE,CAAC,UAAUC,EAAAA,EAAE,aAAaC,EAAAA,EAAE,YAAYC,EAAAA,EAAE,eAAeC,EAAAA,EAAE,WAAWC,EAAAA,EAAE,yBAAyBC,EAAAA,EAAE,QAAQC,EAAAA,EAAE,YAAYC,EAAAA,EAAE,WAAWC,EAAAA,EAAE,CAAC"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const e=require(`../../../../_virtual/_rolldown/runtime.cjs`),t=require(`../_virtual/_rolldown/runtime.cjs`);let n=require(`@intlayer/types/locales`);n=e.__toESM(n);var r=t.t({DEFAULT_LOCALE:()=>o,LOCALES:()=>i,REQUIRED_LOCALES:()=>a,STRICT_MODE:()=>s});const i=[n.ENGLISH],a=[],o=n.ENGLISH,s=`inclusive`;exports.n=r;
|
|
2
|
-
//# sourceMappingURL=internationalization.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"internationalization.cjs","names":["e","t"],"sources":["../../../../../../../config/dist/esm/defaultValues/internationalization.mjs"],"sourcesContent":["import{__exportAll as e}from\"../_virtual/_rolldown/runtime.mjs\";import*as t from\"@intlayer/types/locales\";var n=e({DEFAULT_LOCALE:()=>a,LOCALES:()=>r,REQUIRED_LOCALES:()=>i,STRICT_MODE:()=>o});const r=[t.ENGLISH],i=[],a=t.ENGLISH,o=`inclusive`;export{a as DEFAULT_LOCALE,r as LOCALES,i as REQUIRED_LOCALES,o as STRICT_MODE,n as internationalization_exports};\n//# sourceMappingURL=internationalization.mjs.map"],"mappings":"qKAA0G,IAAI,EAAEA,EAAAA,EAAE,CAAC,mBAAmB,EAAE,YAAY,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAACC,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,EAAEA,EAAE,QAAQ,EAAE"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"log.cjs","names":["e","t"],"sources":["../../../../../../../config/dist/esm/defaultValues/log.mjs"],"sourcesContent":["import{__exportAll as e}from\"../_virtual/_rolldown/runtime.mjs\";import{ANSIColors as t}from\"../logger.mjs\";var n=e({MODE:()=>r,PREFIX:()=>i});const r=`default`,i=`${t.GREY_DARK}[intlayer] ${t.RESET}`;export{r as MODE,i as PREFIX,n as log_exports};\n//# sourceMappingURL=log.mjs.map"],"mappings":"iCAA2G,IAAI,+CAAEA,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,UAAU,EAAE,GAAGC,EAAAA,EAAE,UAAU,aAAaA,EAAAA,EAAE"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
var e=require(`../_virtual/_rolldown/runtime.cjs`).t({BASE_PATH:()=>``,COOKIE_NAME:()=>n,HEADER_NAME:()=>t,LOCALE_STORAGE_NAME:()=>r,ROUTING_MODE:()=>a,SERVER_SET_COOKIE:()=>i,STORAGE:()=>o});const t=`x-intlayer-locale`,n=`INTLAYER_LOCALE`,r=`INTLAYER_LOCALE`,i=`always`,a=`prefix-no-default`,o=[`cookie`,`header`];exports.t=e;
|
|
2
|
-
//# sourceMappingURL=routing.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"routing.cjs","names":["e"],"sources":["../../../../../../../config/dist/esm/defaultValues/routing.mjs"],"sourcesContent":["import{__exportAll as e}from\"../_virtual/_rolldown/runtime.mjs\";var t=e({BASE_PATH:()=>``,COOKIE_NAME:()=>r,HEADER_NAME:()=>n,LOCALE_STORAGE_NAME:()=>i,ROUTING_MODE:()=>s,SERVER_SET_COOKIE:()=>o,STORAGE:()=>c});const n=`x-intlayer-locale`,r=`INTLAYER_LOCALE`,i=`INTLAYER_LOCALE`,a=``,o=`always`,s=`prefix-no-default`,c=[`cookie`,`header`];export{a as BASE_PATH,r as COOKIE_NAME,n as HEADER_NAME,i as LOCALE_STORAGE_NAME,s as ROUTING_MODE,o as SERVER_SET_COOKIE,c as STORAGE,t as routing_exports};\n//# sourceMappingURL=routing.mjs.map"],"mappings":"AAAgE,IAAI,+CAAEA,EAAE,CAAC,cAAc,GAAG,gBAAgB,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,kBAAuB,EAAE,SAAS,EAAE,oBAAoB,EAAE,CAAC,SAAS,SAAS"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
var e=require(`../_virtual/_rolldown/runtime.cjs`).t({CACHE_DIR:()=>d,CONFIG_DIR:()=>u,DICTIONARIES_DIR:()=>n,DYNAMIC_DICTIONARIES_DIR:()=>o,FETCH_DICTIONARIES_DIR:()=>s,MAIN_DIR:()=>t,MASKS_DIR:()=>r,MODULE_AUGMENTATION_DIR:()=>l,REMOTE_DICTIONARIES_DIR:()=>i,TEMP_DIR:()=>f,TYPES_DIR:()=>c,UNMERGED_DICTIONARIES_DIR:()=>a});const t=`.intlayer/main`,n=`.intlayer/dictionary`,r=`.intlayer/mask`,i=`.intlayer/remote_dictionary`,a=`.intlayer/unmerged_dictionary`,o=`.intlayer/dynamic_dictionary`,s=`.intlayer/fetch_dictionary`,c=`.intlayer/types`,l=`.intlayer/types`,u=`.intlayer/config`,d=`.intlayer/cache`,f=`.intlayer/tmp`;exports.t=e;
|
|
2
|
-
//# sourceMappingURL=system.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"system.cjs","names":["e"],"sources":["../../../../../../../config/dist/esm/defaultValues/system.mjs"],"sourcesContent":["import{__exportAll as e}from\"../_virtual/_rolldown/runtime.mjs\";var t=e({CACHE_DIR:()=>f,CONFIG_DIR:()=>d,DICTIONARIES_DIR:()=>r,DYNAMIC_DICTIONARIES_DIR:()=>s,FETCH_DICTIONARIES_DIR:()=>c,MAIN_DIR:()=>n,MASKS_DIR:()=>i,MODULE_AUGMENTATION_DIR:()=>u,REMOTE_DICTIONARIES_DIR:()=>a,TEMP_DIR:()=>p,TYPES_DIR:()=>l,UNMERGED_DICTIONARIES_DIR:()=>o});const n=`.intlayer/main`,r=`.intlayer/dictionary`,i=`.intlayer/mask`,a=`.intlayer/remote_dictionary`,o=`.intlayer/unmerged_dictionary`,s=`.intlayer/dynamic_dictionary`,c=`.intlayer/fetch_dictionary`,l=`.intlayer/types`,u=`.intlayer/types`,d=`.intlayer/config`,f=`.intlayer/cache`,p=`.intlayer/tmp`;export{f as CACHE_DIR,d as CONFIG_DIR,r as DICTIONARIES_DIR,s as DYNAMIC_DICTIONARIES_DIR,c as FETCH_DICTIONARIES_DIR,n as MAIN_DIR,i as MASKS_DIR,u as MODULE_AUGMENTATION_DIR,a as REMOTE_DICTIONARIES_DIR,p as TEMP_DIR,l as TYPES_DIR,o as UNMERGED_DICTIONARIES_DIR,t as system_exports};\n//# sourceMappingURL=system.mjs.map"],"mappings":"AAAgE,IAAI,+CAAEA,EAAE,CAAC,cAAc,EAAE,eAAe,EAAE,qBAAqB,EAAE,6BAA6B,EAAE,2BAA2B,EAAE,aAAa,EAAE,cAAc,EAAE,4BAA4B,EAAE,4BAA4B,EAAE,aAAa,EAAE,cAAc,EAAE,8BAA8B,EAAE,CAAC,CAAC,MAAM,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,8BAA8B,EAAE,gCAAgC,EAAE,+BAA+B,EAAE,6BAA6B,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,kBAAkB,EAAE"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
let e=function(e){return e.RESET=`\x1B[0m`,e.GREY=`\x1B[90m`,e.GREY_DARK=`\x1B[38;5;239m`,e.GREY_LIGHT=`\x1B[38;5;252m`,e.BLUE=`\x1B[34m`,e.RED=`\x1B[31m`,e.GREEN=`\x1B[32m`,e.YELLOW=`\x1B[38;5;226m`,e.MAGENTA=`\x1B[35m`,e.BEIGE=`\x1B[38;5;3m`,e.ORANGE=`\x1B[38;5;208m`,e.CYAN=`\x1B[36m`,e.WHITE=`\x1B[37m`,e.BOLD=`\x1B[1m`,e}({});const t=(t,n,r)=>n?`${n}${t}${r?typeof r==`boolean`?e.RESET:r:e.RESET}`:t;t(`✗`,e.RED),t(`✓`,e.GREEN),t(`⏲`,e.BLUE),exports.i=e;
|
|
2
|
-
//# sourceMappingURL=logger.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"logger.cjs","names":[],"sources":["../../../../../../config/dist/esm/logger.mjs"],"sourcesContent":["let e;const t=t=>{e=t},n=t=>e===void 0?t:e,r=(e,t)=>{let r=t?.isVerbose??!1,i=t?.config?.mode??`default`,a=t?.level??`info`,o=n(t?.config?.prefix),s=t?.config?.log??console.log,c=t?.config?.info??console.info,l=t?.config?.warn??console.warn,u=t?.config?.error??console.error,d=t?.config?.debug??console.debug;if(i===`disabled`||r&&i!==`verbose`)return;let f=o?[o,...[e].flat()]:[e].flat();if(a===`debug`)return d(...f);if(a===`info`)return c(...f);if(a===`warn`)return l(...f);if(a===`error`)return u(...f);s(...f)};let i=function(e){return e.RESET=`\\x1B[0m`,e.GREY=`\\x1B[90m`,e.GREY_DARK=`\\x1B[38;5;239m`,e.GREY_LIGHT=`\\x1B[38;5;252m`,e.BLUE=`\\x1B[34m`,e.RED=`\\x1B[31m`,e.GREEN=`\\x1B[32m`,e.YELLOW=`\\x1B[38;5;226m`,e.MAGENTA=`\\x1B[35m`,e.BEIGE=`\\x1B[38;5;3m`,e.ORANGE=`\\x1B[38;5;208m`,e.CYAN=`\\x1B[36m`,e.WHITE=`\\x1B[37m`,e.BOLD=`\\x1B[1m`,e}({});const a=[`⠋`,`⠙`,`⠹`,`⠸`,`⠼`,`⠴`,`⠦`,`⠧`,`⠇`,`⠏`],o=(e,t)=>(n,i)=>r(n,{...i??{},config:{...e?.log,...t?.config,...i?.config??{}}}),s=(e,t,n)=>t?`${t}${e}${n?typeof n==`boolean`?i.RESET:n:i.RESET}`:e,c=(e,t=i.GREEN,n=i.RESET)=>[e].flat().map(e=>s(e,t,n)).join(`, `),l=(e,t=i.BEIGE,n=i.RESET)=>[e].flat().map(e=>s(e,t,n)).join(`, `),u=(e,t=i.GREY,n=i.RESET)=>[e].flat().map(e=>s(e,t,n)).join(`, `),d=(e,t={zero:i.BLUE,one:i.BLUE,two:i.BLUE,few:i.BLUE,many:i.BLUE,other:i.BLUE})=>{if(e===0){let n=t.zero??i.GREEN;return s(e.toString(),n)}let n=t[new Intl.PluralRules(`en`).select(Number(e))];return s(e.toString(),n)},f=e=>e.replace(/\\x1b\\[[0-9;]*m/g,``),p=e=>{let t=0;return typeof e==`number`&&(t=e),typeof e==`string`&&(t=e.length),Array.isArray(e)&&e.every(e=>typeof e==`string`)&&(t=Math.max(...e.map(e=>e.length))),Array.isArray(e)&&e.every(e=>typeof e==`number`)&&(t=Math.max(...e)),Math.max(t,0)},m={colSize:0,minSize:0,maxSize:1/0,pad:`right`,padChar:`0`},h=(e,t)=>[e].flat().map(e=>{let{colSize:n,minSize:r,maxSize:i,pad:a}={...m,...t??{}},o=p(n),s=Math.max(r,Math.min(i,o-f(e).length));return a===`left`?`${` `.repeat(s)}${e}`:`${e}${` `.repeat(s)}`}).join(``),g=s(`✗`,i.RED),_=s(`✓`,i.GREEN),v=s(`⏲`,i.BLUE);export{i as ANSIColors,v as clock,h as colon,s as colorize,l as colorizeKey,c as colorizeLocales,d as colorizeNumber,u as colorizePath,o as getAppLogger,n as getPrefix,r as logger,f as removeColor,t as setPrefix,a as spinnerFrames,_ as v,g as x};\n//# sourceMappingURL=logger.mjs.map"],"mappings":"AAAogB,IAAI,EAAE,SAAS,EAAE,CAAC,MAAO,GAAE,MAAM,UAAU,EAAE,KAAK,WAAW,EAAE,UAAU,iBAAiB,EAAE,WAAW,iBAAiB,EAAE,KAAK,WAAW,EAAE,IAAI,WAAW,EAAE,MAAM,WAAW,EAAE,OAAO,iBAAiB,EAAE,QAAQ,WAAW,EAAE,MAAM,eAAe,EAAE,OAAO,iBAAiB,EAAE,KAAK,WAAW,EAAE,MAAM,WAAW,EAAE,KAAK,UAAU,GAAG,EAAE,CAAC,CAAC,MAAmI,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,IAAI,IAAI,EAAE,OAAO,GAAG,UAAU,EAAE,MAAM,EAAE,EAAE,QAAQ,EAA88B,EAAE,IAAI,EAAE,IAAI,CAAG,EAAE,IAAI,EAAE,MAAM,CAAG,EAAE,IAAI,EAAE,KAAK"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e=(e=>typeof require<`u`?require:typeof Proxy<`u`?new Proxy(e,{get:(e,t)=>(typeof require<`u`?require:e)[t]}):e)(function(e){if(typeof require<`u`)return require.apply(this,arguments);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.")});export{e as __require};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{__require as e}from"../../../../../_virtual/_rolldown/runtime.mjs";var t=Object.defineProperty,n=(e,n)=>{let r={};for(var i in e)t(r,i,{get:e[i],enumerable:!0});return n||t(r,Symbol.toStringTag,{value:`Module`}),r};(t=>typeof e<`u`?e:typeof Proxy<`u`?new Proxy(t,{get:(t,n)=>(typeof e<`u`?e:t)[n]}):t)(function(t){if(typeof e<`u`)return e.apply(this,arguments);throw Error('Calling `require` for "'+t+"\" in an environment that doesn't expose the `require` function. See https://rolldown.rs/in-depth/bundling-cjs#require-external-modules for more details.")});export{n as t};
|
|
2
|
-
//# sourceMappingURL=runtime.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.mjs","names":[],"sources":["../../../../../../../../config/dist/esm/_virtual/_rolldown/runtime.mjs"],"sourcesContent":["var e=Object.defineProperty,t=(t,n)=>{let r={};for(var i in t)e(r,i,{get:t[i],enumerable:!0});return n||e(r,Symbol.toStringTag,{value:`Module`}),r},n=(e=>typeof require<`u`?require:typeof Proxy<`u`?new Proxy(e,{get:(e,t)=>(typeof require<`u`?require:e)[t]}):e)(function(e){if(typeof require<`u`)return require.apply(this,arguments);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.\")});export{t as __exportAll,n as __require};"],"mappings":"0EAAA,IAAI,EAAE,OAAO,eAAe,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,IAAI,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC,OAAO,GAAG,EAAE,EAAE,OAAO,YAAY,CAAC,MAAM,SAAS,CAAC,CAAC,IAAM,GAAG,OAAA,EAAe,IAAA,EAAY,OAAO,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC,KAAK,EAAE,KAAK,OAAA,EAAe,IAAA,EAAY,GAAG,GAAG,CAAC,CAAC,GAAG,SAAS,EAAE,CAAC,GAAG,OAAA,EAAe,IAAI,OAAA,EAAe,MAAM,KAAK,UAAU,CAAC,MAAM,MAAM,0BAA0B,EAAE,4JAA4J,EAAE"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{t as e}from"../_virtual/_rolldown/runtime.mjs";var t=e({BUILD_MODE:()=>n,CACHE:()=>!0,OPTIMIZE:()=>void 0,OUTPUT_FORMAT:()=>i,TRAVERSE_PATTERN:()=>r,TYPE_CHECKING:()=>!1});const n=`auto`,r=[`**/*.{tsx,ts,js,mjs,cjs,jsx,vue,svelte,svte}`,`!**/node_modules/**`,`!**/*.config.*`,`!**/*.test.*`,`!**/*.spec.*`,`!**/*.stories.*`,`!**/*.d.ts`,`!**/*.d.ts.map`],i=[`esm`,`cjs`];export{t};
|
|
2
|
-
//# sourceMappingURL=build.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"build.mjs","names":["e"],"sources":["../../../../../../../config/dist/esm/defaultValues/build.mjs"],"sourcesContent":["import{__exportAll as e}from\"../_virtual/_rolldown/runtime.mjs\";var t=e({BUILD_MODE:()=>n,CACHE:()=>!0,OPTIMIZE:()=>void 0,OUTPUT_FORMAT:()=>a,TRAVERSE_PATTERN:()=>i,TYPE_CHECKING:()=>!1});const n=`auto`,r=void 0,i=[`**/*.{tsx,ts,js,mjs,cjs,jsx,vue,svelte,svte}`,`!**/node_modules/**`,`!**/*.config.*`,`!**/*.test.*`,`!**/*.spec.*`,`!**/*.stories.*`,`!**/*.d.ts`,`!**/*.d.ts.map`],a=[`esm`,`cjs`],o=!0,s=!1;export{n as BUILD_MODE,o as CACHE,r as OPTIMIZE,a as OUTPUT_FORMAT,i as TRAVERSE_PATTERN,s as TYPE_CHECKING,t as build_exports};\n//# sourceMappingURL=build.mjs.map"],"mappings":"sDAAgE,IAAI,EAAEA,EAAE,CAAC,eAAe,EAAE,UAAU,CAAC,EAAE,aAAa,IAAK,GAAE,kBAAkB,EAAE,qBAAqB,EAAE,kBAAkB,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,OAAgB,EAAE,CAAC,+CAA+C,sBAAsB,iBAAiB,eAAe,eAAe,kBAAkB,aAAa,iBAAiB,CAAC,EAAE,CAAC,MAAM,MAAM"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{t as e}from"../_virtual/_rolldown/runtime.mjs";var t=e({COMPILER_DICTIONARY_KEY_PREFIX:()=>n,COMPILER_ENABLED:()=>!0,COMPILER_NO_METADATA:()=>!1,COMPILER_OUTPUT:()=>r,COMPILER_SAVE_COMPONENTS:()=>!1});const n=`comp-`,r=e=>`/compiler/${e.key}.${e.extension.split(`.`)[1]}.json`;export{t};
|
|
2
|
-
//# sourceMappingURL=compiler.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"compiler.mjs","names":["e"],"sources":["../../../../../../../config/dist/esm/defaultValues/compiler.mjs"],"sourcesContent":["import{__exportAll as e}from\"../_virtual/_rolldown/runtime.mjs\";var t=e({COMPILER_DICTIONARY_KEY_PREFIX:()=>r,COMPILER_ENABLED:()=>!0,COMPILER_NO_METADATA:()=>!1,COMPILER_OUTPUT:()=>i,COMPILER_SAVE_COMPONENTS:()=>!1});const n=!0,r=`comp-`,i=e=>`/compiler/${e.key}.${e.extension.split(`.`)[1]}.json`,a=!1,o=!1;export{r as COMPILER_DICTIONARY_KEY_PREFIX,n as COMPILER_ENABLED,a as COMPILER_NO_METADATA,i as COMPILER_OUTPUT,o as COMPILER_SAVE_COMPONENTS,t as compiler_exports};\n//# sourceMappingURL=compiler.mjs.map"],"mappings":"sDAAgE,IAAI,EAAEA,EAAE,CAAC,mCAAmC,EAAE,qBAAqB,CAAC,EAAE,yBAAyB,CAAC,EAAE,oBAAoB,EAAE,6BAA6B,CAAC,EAAE,CAAC,CAAC,MAAW,EAAE,QAAQ,EAAE,GAAG,aAAa,EAAE,IAAI,GAAG,EAAE,UAAU,MAAM,IAAI,CAAC,GAAG"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{t as e}from"../_virtual/_rolldown/runtime.mjs";var t=e({CODE_DIR:()=>a,CONTENT_DIR:()=>i,EXCLUDED_PATHS:()=>r,FILE_EXTENSIONS:()=>n,I18NEXT_DICTIONARIES_DIR:()=>o,REACT_INTL_MESSAGES_DIR:()=>s,WATCH:()=>!0});const n=[`.content.ts`,`.content.js`,`.content.cjs`,`.content.mjs`,`.content.json`,`.content.json5`,`.content.jsonc`,`.content.tsx`,`.content.jsx`],r=[`**/node_modules/**`,`**/dist/**`,`**/build/**`,`**/.intlayer/**`,`**/.next/**`,`**/.nuxt/**`,`**/.expo/**`,`**/.vercel/**`,`**/.turbo/**`,`**/.tanstack/**`],i=[`.`],a=[`.`],o=`i18next_resources`,s=`intl_messages`;export{t};
|
|
2
|
-
//# sourceMappingURL=content.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"content.mjs","names":["e"],"sources":["../../../../../../../config/dist/esm/defaultValues/content.mjs"],"sourcesContent":["import{__exportAll as e}from\"../_virtual/_rolldown/runtime.mjs\";var t=e({CODE_DIR:()=>a,CONTENT_DIR:()=>i,EXCLUDED_PATHS:()=>r,FILE_EXTENSIONS:()=>n,I18NEXT_DICTIONARIES_DIR:()=>o,REACT_INTL_MESSAGES_DIR:()=>s,WATCH:()=>!0});const n=[`.content.ts`,`.content.js`,`.content.cjs`,`.content.mjs`,`.content.json`,`.content.json5`,`.content.jsonc`,`.content.tsx`,`.content.jsx`],r=[`**/node_modules/**`,`**/dist/**`,`**/build/**`,`**/.intlayer/**`,`**/.next/**`,`**/.nuxt/**`,`**/.expo/**`,`**/.vercel/**`,`**/.turbo/**`,`**/.tanstack/**`],i=[`.`],a=[`.`],o=`i18next_resources`,s=`intl_messages`,c=!0;export{a as CODE_DIR,i as CONTENT_DIR,r as EXCLUDED_PATHS,n as FILE_EXTENSIONS,o as I18NEXT_DICTIONARIES_DIR,s as REACT_INTL_MESSAGES_DIR,c as WATCH,t as content_exports};\n//# sourceMappingURL=content.mjs.map"],"mappings":"sDAAgE,IAAI,EAAEA,EAAE,CAAC,aAAa,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,6BAA6B,EAAE,4BAA4B,EAAE,UAAU,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,cAAc,cAAc,eAAe,eAAe,gBAAgB,iBAAiB,iBAAiB,eAAe,eAAe,CAAC,EAAE,CAAC,qBAAqB,aAAa,cAAc,kBAAkB,cAAc,cAAc,cAAc,gBAAgB,eAAe,kBAAkB,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,oBAAoB,EAAE"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dictionary.mjs","names":["e"],"sources":["../../../../../../../config/dist/esm/defaultValues/dictionary.mjs"],"sourcesContent":["import{__exportAll as e}from\"../_virtual/_rolldown/runtime.mjs\";var t=e({CONTENT_AUTO_TRANSFORMATION:()=>!1,FILL:()=>!0,IMPORT_MODE:()=>a,LOCATION:()=>r});const n=!0,r=`local`,i=!1,a=`static`;export{i as CONTENT_AUTO_TRANSFORMATION,n as FILL,a as IMPORT_MODE,r as LOCATION,t as dictionary_exports};\n//# sourceMappingURL=dictionary.mjs.map"],"mappings":"sDAAgE,IAAI,EAAEA,EAAE,CAAC,gCAAgC,CAAC,EAAE,SAAS,CAAC,EAAE,gBAAgB,EAAE,aAAa,EAAE,CAAC,CAAC,MAAW,EAAE,QAAa,EAAE"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{t as e}from"../_virtual/_rolldown/runtime.mjs";var t=e({APPLICATION_URL:()=>void 0,BACKEND_URL:()=>i,CMS_URL:()=>r,DICTIONARY_PRIORITY_STRATEGY:()=>o,EDITOR_URL:()=>n,IS_ENABLED:()=>!1,LIVE_SYNC:()=>!0,LIVE_SYNC_PORT:()=>s,PORT:()=>a});const n=`http://localhost:8000`,r=`https://app.intlayer.org`,i=`https://back.intlayer.org`,a=8e3,o=`local_first`,s=4e3;export{t};
|
|
2
|
-
//# sourceMappingURL=editor.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"editor.mjs","names":["e"],"sources":["../../../../../../../config/dist/esm/defaultValues/editor.mjs"],"sourcesContent":["import{__exportAll as e}from\"../_virtual/_rolldown/runtime.mjs\";var t=e({APPLICATION_URL:()=>void 0,BACKEND_URL:()=>a,CMS_URL:()=>i,DICTIONARY_PRIORITY_STRATEGY:()=>l,EDITOR_URL:()=>r,IS_ENABLED:()=>!1,LIVE_SYNC:()=>!0,LIVE_SYNC_PORT:()=>u,PORT:()=>o});const n=void 0,r=`http://localhost:8000`,i=`https://app.intlayer.org`,a=`https://back.intlayer.org`,o=8e3,s=!1,c=!0,l=`local_first`,u=4e3;export{n as APPLICATION_URL,a as BACKEND_URL,i as CMS_URL,l as DICTIONARY_PRIORITY_STRATEGY,r as EDITOR_URL,s as IS_ENABLED,c as LIVE_SYNC,u as LIVE_SYNC_PORT,o as PORT,t as editor_exports};\n//# sourceMappingURL=editor.mjs.map"],"mappings":"sDAAgE,IAAI,EAAEA,EAAE,CAAC,oBAAoB,IAAK,GAAE,gBAAgB,EAAE,YAAY,EAAE,iCAAiC,EAAE,eAAe,EAAE,eAAe,CAAC,EAAE,cAAc,CAAC,EAAE,mBAAmB,EAAE,SAAS,EAAE,CAAC,CAAC,MAAe,EAAE,wBAAwB,EAAE,2BAA2B,EAAE,4BAA4B,EAAE,IAAc,EAAE,cAAc,EAAE"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{t as e}from"../_virtual/_rolldown/runtime.mjs";import{t}from"./build.mjs";import{t as n}from"./compiler.mjs";import{t as r}from"./content.mjs";import{t as i}from"./dictionary.mjs";import{t as a}from"./editor.mjs";import{n as o}from"./internationalization.mjs";import{n as s}from"./log.mjs";import{t as c}from"./routing.mjs";import{t as l}from"./system.mjs";var u=e({Build:()=>t,Compiler:()=>n,Content:()=>r,Dictionary:()=>i,Editor:()=>a,Internationalization:()=>o,Log:()=>s,Routing:()=>c,System:()=>l});export{u};
|
|
2
|
-
//# sourceMappingURL=index.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","names":["e","t","n","r","i","a","o","s","c","l"],"sources":["../../../../../../../config/dist/esm/defaultValues/index.mjs"],"sourcesContent":["import{__exportAll as e}from\"../_virtual/_rolldown/runtime.mjs\";import{build_exports as t}from\"./build.mjs\";import{compiler_exports as n}from\"./compiler.mjs\";import{content_exports as r}from\"./content.mjs\";import{dictionary_exports as i}from\"./dictionary.mjs\";import{editor_exports as a}from\"./editor.mjs\";import{internationalization_exports as o}from\"./internationalization.mjs\";import{log_exports as s}from\"./log.mjs\";import{routing_exports as c}from\"./routing.mjs\";import{system_exports as l}from\"./system.mjs\";var u=e({Build:()=>t,Compiler:()=>n,Content:()=>r,Dictionary:()=>i,Editor:()=>a,Internationalization:()=>o,Log:()=>s,Routing:()=>c,System:()=>l});export{t as Build,n as Compiler,r as Content,i as Dictionary,a as Editor,o as Internationalization,s as Log,c as Routing,l as System,u as defaultValues_exports};\n//# sourceMappingURL=index.mjs.map"],"mappings":"4WAAkgB,IAAI,EAAEA,EAAE,CAAC,UAAUC,EAAE,aAAaC,EAAE,YAAYC,EAAE,eAAeC,EAAE,WAAWC,EAAE,yBAAyBC,EAAE,QAAQC,EAAE,YAAYC,EAAE,WAAWC,EAAE,CAAC"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{t as e}from"../_virtual/_rolldown/runtime.mjs";import*as t from"@intlayer/types/locales";var n=e({DEFAULT_LOCALE:()=>a,LOCALES:()=>r,REQUIRED_LOCALES:()=>i,STRICT_MODE:()=>o});const r=[t.ENGLISH],i=[],a=t.ENGLISH,o=`inclusive`;export{n};
|
|
2
|
-
//# sourceMappingURL=internationalization.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"internationalization.mjs","names":["e"],"sources":["../../../../../../../config/dist/esm/defaultValues/internationalization.mjs"],"sourcesContent":["import{__exportAll as e}from\"../_virtual/_rolldown/runtime.mjs\";import*as t from\"@intlayer/types/locales\";var n=e({DEFAULT_LOCALE:()=>a,LOCALES:()=>r,REQUIRED_LOCALES:()=>i,STRICT_MODE:()=>o});const r=[t.ENGLISH],i=[],a=t.ENGLISH,o=`inclusive`;export{a as DEFAULT_LOCALE,r as LOCALES,i as REQUIRED_LOCALES,o as STRICT_MODE,n as internationalization_exports};\n//# sourceMappingURL=internationalization.mjs.map"],"mappings":"gGAA0G,IAAI,EAAEA,EAAE,CAAC,mBAAmB,EAAE,YAAY,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"log.mjs","names":["e","t"],"sources":["../../../../../../../config/dist/esm/defaultValues/log.mjs"],"sourcesContent":["import{__exportAll as e}from\"../_virtual/_rolldown/runtime.mjs\";import{ANSIColors as t}from\"../logger.mjs\";var n=e({MODE:()=>r,PREFIX:()=>i});const r=`default`,i=`${t.GREY_DARK}[intlayer] ${t.RESET}`;export{r as MODE,i as PREFIX,n as log_exports};\n//# sourceMappingURL=log.mjs.map"],"mappings":"mFAA2G,IAAI,EAAEA,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,UAAU,EAAE,GAAGC,EAAE,UAAU,aAAaA,EAAE"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{t as e}from"../_virtual/_rolldown/runtime.mjs";var t=e({BASE_PATH:()=>``,COOKIE_NAME:()=>r,HEADER_NAME:()=>n,LOCALE_STORAGE_NAME:()=>i,ROUTING_MODE:()=>o,SERVER_SET_COOKIE:()=>a,STORAGE:()=>s});const n=`x-intlayer-locale`,r=`INTLAYER_LOCALE`,i=`INTLAYER_LOCALE`,a=`always`,o=`prefix-no-default`,s=[`cookie`,`header`];export{t};
|
|
2
|
-
//# sourceMappingURL=routing.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"routing.mjs","names":["e"],"sources":["../../../../../../../config/dist/esm/defaultValues/routing.mjs"],"sourcesContent":["import{__exportAll as e}from\"../_virtual/_rolldown/runtime.mjs\";var t=e({BASE_PATH:()=>``,COOKIE_NAME:()=>r,HEADER_NAME:()=>n,LOCALE_STORAGE_NAME:()=>i,ROUTING_MODE:()=>s,SERVER_SET_COOKIE:()=>o,STORAGE:()=>c});const n=`x-intlayer-locale`,r=`INTLAYER_LOCALE`,i=`INTLAYER_LOCALE`,a=``,o=`always`,s=`prefix-no-default`,c=[`cookie`,`header`];export{a as BASE_PATH,r as COOKIE_NAME,n as HEADER_NAME,i as LOCALE_STORAGE_NAME,s as ROUTING_MODE,o as SERVER_SET_COOKIE,c as STORAGE,t as routing_exports};\n//# sourceMappingURL=routing.mjs.map"],"mappings":"sDAAgE,IAAI,EAAEA,EAAE,CAAC,cAAc,GAAG,gBAAgB,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,kBAAuB,EAAE,SAAS,EAAE,oBAAoB,EAAE,CAAC,SAAS,SAAS"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{t as e}from"../_virtual/_rolldown/runtime.mjs";var t=e({CACHE_DIR:()=>f,CONFIG_DIR:()=>d,DICTIONARIES_DIR:()=>r,DYNAMIC_DICTIONARIES_DIR:()=>s,FETCH_DICTIONARIES_DIR:()=>c,MAIN_DIR:()=>n,MASKS_DIR:()=>i,MODULE_AUGMENTATION_DIR:()=>u,REMOTE_DICTIONARIES_DIR:()=>a,TEMP_DIR:()=>p,TYPES_DIR:()=>l,UNMERGED_DICTIONARIES_DIR:()=>o});const n=`.intlayer/main`,r=`.intlayer/dictionary`,i=`.intlayer/mask`,a=`.intlayer/remote_dictionary`,o=`.intlayer/unmerged_dictionary`,s=`.intlayer/dynamic_dictionary`,c=`.intlayer/fetch_dictionary`,l=`.intlayer/types`,u=`.intlayer/types`,d=`.intlayer/config`,f=`.intlayer/cache`,p=`.intlayer/tmp`;export{t};
|
|
2
|
-
//# sourceMappingURL=system.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"system.mjs","names":["e"],"sources":["../../../../../../../config/dist/esm/defaultValues/system.mjs"],"sourcesContent":["import{__exportAll as e}from\"../_virtual/_rolldown/runtime.mjs\";var t=e({CACHE_DIR:()=>f,CONFIG_DIR:()=>d,DICTIONARIES_DIR:()=>r,DYNAMIC_DICTIONARIES_DIR:()=>s,FETCH_DICTIONARIES_DIR:()=>c,MAIN_DIR:()=>n,MASKS_DIR:()=>i,MODULE_AUGMENTATION_DIR:()=>u,REMOTE_DICTIONARIES_DIR:()=>a,TEMP_DIR:()=>p,TYPES_DIR:()=>l,UNMERGED_DICTIONARIES_DIR:()=>o});const n=`.intlayer/main`,r=`.intlayer/dictionary`,i=`.intlayer/mask`,a=`.intlayer/remote_dictionary`,o=`.intlayer/unmerged_dictionary`,s=`.intlayer/dynamic_dictionary`,c=`.intlayer/fetch_dictionary`,l=`.intlayer/types`,u=`.intlayer/types`,d=`.intlayer/config`,f=`.intlayer/cache`,p=`.intlayer/tmp`;export{f as CACHE_DIR,d as CONFIG_DIR,r as DICTIONARIES_DIR,s as DYNAMIC_DICTIONARIES_DIR,c as FETCH_DICTIONARIES_DIR,n as MAIN_DIR,i as MASKS_DIR,u as MODULE_AUGMENTATION_DIR,a as REMOTE_DICTIONARIES_DIR,p as TEMP_DIR,l as TYPES_DIR,o as UNMERGED_DICTIONARIES_DIR,t as system_exports};\n//# sourceMappingURL=system.mjs.map"],"mappings":"sDAAgE,IAAI,EAAEA,EAAE,CAAC,cAAc,EAAE,eAAe,EAAE,qBAAqB,EAAE,6BAA6B,EAAE,2BAA2B,EAAE,aAAa,EAAE,cAAc,EAAE,4BAA4B,EAAE,4BAA4B,EAAE,aAAa,EAAE,cAAc,EAAE,8BAA8B,EAAE,CAAC,CAAC,MAAM,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,8BAA8B,EAAE,gCAAgC,EAAE,+BAA+B,EAAE,6BAA6B,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,kBAAkB,EAAE"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
let e=function(e){return e.RESET=`\x1B[0m`,e.GREY=`\x1B[90m`,e.GREY_DARK=`\x1B[38;5;239m`,e.GREY_LIGHT=`\x1B[38;5;252m`,e.BLUE=`\x1B[34m`,e.RED=`\x1B[31m`,e.GREEN=`\x1B[32m`,e.YELLOW=`\x1B[38;5;226m`,e.MAGENTA=`\x1B[35m`,e.BEIGE=`\x1B[38;5;3m`,e.ORANGE=`\x1B[38;5;208m`,e.CYAN=`\x1B[36m`,e.WHITE=`\x1B[37m`,e.BOLD=`\x1B[1m`,e}({});const t=(t,n,r)=>n?`${n}${t}${r?typeof r==`boolean`?e.RESET:r:e.RESET}`:t;t(`✗`,e.RED),t(`✓`,e.GREEN),t(`⏲`,e.BLUE);export{e as i};
|
|
2
|
-
//# sourceMappingURL=logger.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"logger.mjs","names":[],"sources":["../../../../../../config/dist/esm/logger.mjs"],"sourcesContent":["let e;const t=t=>{e=t},n=t=>e===void 0?t:e,r=(e,t)=>{let r=t?.isVerbose??!1,i=t?.config?.mode??`default`,a=t?.level??`info`,o=n(t?.config?.prefix),s=t?.config?.log??console.log,c=t?.config?.info??console.info,l=t?.config?.warn??console.warn,u=t?.config?.error??console.error,d=t?.config?.debug??console.debug;if(i===`disabled`||r&&i!==`verbose`)return;let f=o?[o,...[e].flat()]:[e].flat();if(a===`debug`)return d(...f);if(a===`info`)return c(...f);if(a===`warn`)return l(...f);if(a===`error`)return u(...f);s(...f)};let i=function(e){return e.RESET=`\\x1B[0m`,e.GREY=`\\x1B[90m`,e.GREY_DARK=`\\x1B[38;5;239m`,e.GREY_LIGHT=`\\x1B[38;5;252m`,e.BLUE=`\\x1B[34m`,e.RED=`\\x1B[31m`,e.GREEN=`\\x1B[32m`,e.YELLOW=`\\x1B[38;5;226m`,e.MAGENTA=`\\x1B[35m`,e.BEIGE=`\\x1B[38;5;3m`,e.ORANGE=`\\x1B[38;5;208m`,e.CYAN=`\\x1B[36m`,e.WHITE=`\\x1B[37m`,e.BOLD=`\\x1B[1m`,e}({});const a=[`⠋`,`⠙`,`⠹`,`⠸`,`⠼`,`⠴`,`⠦`,`⠧`,`⠇`,`⠏`],o=(e,t)=>(n,i)=>r(n,{...i??{},config:{...e?.log,...t?.config,...i?.config??{}}}),s=(e,t,n)=>t?`${t}${e}${n?typeof n==`boolean`?i.RESET:n:i.RESET}`:e,c=(e,t=i.GREEN,n=i.RESET)=>[e].flat().map(e=>s(e,t,n)).join(`, `),l=(e,t=i.BEIGE,n=i.RESET)=>[e].flat().map(e=>s(e,t,n)).join(`, `),u=(e,t=i.GREY,n=i.RESET)=>[e].flat().map(e=>s(e,t,n)).join(`, `),d=(e,t={zero:i.BLUE,one:i.BLUE,two:i.BLUE,few:i.BLUE,many:i.BLUE,other:i.BLUE})=>{if(e===0){let n=t.zero??i.GREEN;return s(e.toString(),n)}let n=t[new Intl.PluralRules(`en`).select(Number(e))];return s(e.toString(),n)},f=e=>e.replace(/\\x1b\\[[0-9;]*m/g,``),p=e=>{let t=0;return typeof e==`number`&&(t=e),typeof e==`string`&&(t=e.length),Array.isArray(e)&&e.every(e=>typeof e==`string`)&&(t=Math.max(...e.map(e=>e.length))),Array.isArray(e)&&e.every(e=>typeof e==`number`)&&(t=Math.max(...e)),Math.max(t,0)},m={colSize:0,minSize:0,maxSize:1/0,pad:`right`,padChar:`0`},h=(e,t)=>[e].flat().map(e=>{let{colSize:n,minSize:r,maxSize:i,pad:a}={...m,...t??{}},o=p(n),s=Math.max(r,Math.min(i,o-f(e).length));return a===`left`?`${` `.repeat(s)}${e}`:`${e}${` `.repeat(s)}`}).join(``),g=s(`✗`,i.RED),_=s(`✓`,i.GREEN),v=s(`⏲`,i.BLUE);export{i as ANSIColors,v as clock,h as colon,s as colorize,l as colorizeKey,c as colorizeLocales,d as colorizeNumber,u as colorizePath,o as getAppLogger,n as getPrefix,r as logger,f as removeColor,t as setPrefix,a as spinnerFrames,_ as v,g as x};\n//# sourceMappingURL=logger.mjs.map"],"mappings":"AAAogB,IAAI,EAAE,SAAS,EAAE,CAAC,MAAO,GAAE,MAAM,UAAU,EAAE,KAAK,WAAW,EAAE,UAAU,iBAAiB,EAAE,WAAW,iBAAiB,EAAE,KAAK,WAAW,EAAE,IAAI,WAAW,EAAE,MAAM,WAAW,EAAE,OAAO,iBAAiB,EAAE,QAAQ,WAAW,EAAE,MAAM,eAAe,EAAE,OAAO,iBAAiB,EAAE,KAAK,WAAW,EAAE,MAAM,WAAW,EAAE,KAAK,UAAU,GAAG,EAAE,CAAC,CAAC,MAAmI,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,IAAI,IAAI,EAAE,OAAO,GAAG,UAAU,EAAE,MAAM,EAAE,EAAE,QAAQ,EAA88B,EAAE,IAAI,EAAE,IAAI,CAAG,EAAE,IAAI,EAAE,MAAM,CAAG,EAAE,IAAI,EAAE,KAAK"}
|