intlayer 8.9.6 → 8.9.8
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/cli/script.cjs.map +1 -1
- package/dist/cjs/routing/index.cjs.map +1 -1
- package/dist/esm/cli/script.mjs.map +1 -1
- package/dist/esm/routing/index.mjs.map +1 -1
- package/dist/types/index.d.ts +5 -6
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/routing/index.d.ts.map +1 -1
- package/package.json +5 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"script.cjs","names":[],"sources":["../../../src/cli/script.ts"],"sourcesContent":["#!/usr/bin/env node\nimport { setAPI } from '@intlayer/cli';\n\nsetAPI();\n"],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"script.cjs","names":[],"sources":["../../../src/cli/script.ts"],"sourcesContent":["#!/usr/bin/env node\nimport { setAPI } from '@intlayer/cli';\n\nsetAPI();\n"],"mappings":";;;;;0BAGO"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","names":[],"sources":["../../../src/routing/index.ts"],"sourcesContent":["import type {\n RewriteObject,\n RewriteRule,\n RewriteRules,\n} from '@intlayer/types/config';\nimport type { StrictModeLocaleMap } from '@intlayer/types/module_augmentation';\n\nconst buildRules = (\n rules: Record<string, StrictModeLocaleMap<string>>,\n processor: (pattern: string) => string\n): RewriteRules => ({\n rules: Object.entries(rules).map(([canonical, localized]) => ({\n canonical: processor(canonical),\n localized: Object.fromEntries(\n Object.entries(localized).map(([locale, pattern]) => [\n locale,\n pattern ? processor(pattern) : pattern,\n ])\n ) as StrictModeLocaleMap<string>,\n })) as RewriteRule[],\n});\n\nconst cleanPath = (pattern: string) =>\n pattern.startsWith('/') ? pattern : `/${pattern}`;\n\n/**\n * Standardizes pattern to :param syntax.\n * Supports:\n * - Next.js/SvelteKit/Nuxt: [slug], [...slug], [[slug]]\n * - TanStack Router: $slug\n * - Solid Router: *slug\n * - React/Vue Router: :slug, *\n */\nconst normalizePattern = (pattern: string, framework?: string) => {\n let normalized = pattern;\n\n if (framework === 'nextjs') {\n normalized = normalized\n .replace(/\\[\\[\\.\\.\\.([^\\]]+)\\]\\]/g, ':$1*') // [[...slug]] -> :slug* (0+)\n .replace(/\\[\\.\\.\\.([^\\]]+)\\]/g, ':$1+') // [...slug] -> :slug+ (1+)\n .replace(/\\[([^\\]]+)\\]/g, ':$1'); // [slug] -> :slug (1)\n } else if (framework === 'sveltekit') {\n normalized = normalized\n .replace(/\\[\\.\\.\\.([^\\]]+)\\]/g, ':$1*') // [...path] -> :path* (0+)\n .replace(/\\[\\[([^\\]]+)\\]\\]/g, ':$1?') // [[optional]] -> :optional? (0-1)\n .replace(/\\[([^\\]]+)\\]/g, ':$1'); // [slug] -> :slug (1)\n } else if (framework === 'nuxt') {\n normalized = normalized\n .replace(/\\[\\.\\.\\.([^\\]]+)\\]/g, ':$1*') // [...slug] -> :slug* (0+)\n .replace(/\\[([^\\]]+)\\]/g, ':$1'); // [slug] -> :slug (1)\n } else {\n // Default / Generic (React Router, Vue Router, Solid Router, TanStack Router)\n normalized = normalized\n .replace(/\\$([^/]+)/g, ':$1') // TanStack $slug -> :slug\n .replace(/\\*([^/]+)/g, ':$1*') // Solid *slug -> :slug*\n .replace(/:([^/]+)\\?/g, ':$1?') // Vue Router/React Router :slug? -> :slug?\n .replace(/\\*/g, ':path*'); // React Router * -> :path*\n }\n\n return normalized;\n};\n\n/**\n * Removes locale markers from the pattern.\n */\nconst stripLocale = (pattern: string) =>\n pattern\n .replace(/\\/?(:locale|\\[locale\\]|\\$locale)\\/?/g, '/')\n .replace(/\\/+/g, '/')\n .replace(/\\/$/, '') || '/';\n\n/**\n * Factory to create formatters that populate 'url' and a specific proxy key.\n */\nconst createFormatter =\n (proxyKey: 'nextjs' | 'vite', framework?: string) =>\n <T extends string = string>(\n rules: Record<T, Partial<StrictModeLocaleMap<string>>>\n ): RewriteObject => {\n const normalize = (pattern: string) => normalizePattern(pattern, framework);\n const strip = (pattern: string) => stripLocale(normalize(pattern));\n\n return {\n url: buildRules(rules as any, (pattern) => cleanPath(strip(pattern))),\n [proxyKey]: buildRules(rules as any, (pattern) =>\n cleanPath(normalize(pattern))\n ),\n } as RewriteObject;\n };\n\n/**\n * Formatter for Next.js style rewrites.\n * Patterns use Next.js dynamic routing syntax:\n * - Slug: `[slug]`\n * - Catch-all: `[...slug]` (1+)\n * - Optional catch-all: `[[...slug]]` (0+)\n * - Locale: `[locale]`\n */\nexport const nextjsRewrite = createFormatter('nextjs', 'nextjs');\n\n/**\n * Formatter for SvelteKit style rewrites.\n * Patterns use SvelteKit dynamic routing syntax:\n * - Slug: `[slug]`\n * - Catch-all: `[...slug]` (0+)\n * - Locale: `[locale]`\n */\nexport const svelteKitRewrite = createFormatter('vite', 'sveltekit');\n\n/**\n * Formatter for React Router style rewrites.\n * Patterns use React Router dynamic routing syntax:\n * - Slug: `:slug`\n * - Optional slug: `:slug?`\n * - Catch-all: `*`\n * - Locale: `:locale`\n */\nexport const reactRouterRewrite = createFormatter('vite');\n\n/**\n * Formatter for Vue style rewrites.\n * Patterns use Vue Router 4 dynamic routing syntax:\n * - Slug: `:slug`\n * - Optional slug: `:slug?`\n * - Catch-all: `:slug*` or `:slug+`\n * - Locale: `:locale`\n */\nexport const vueRouterRewrite = createFormatter('vite');\n\n/**\n * Formatter for Solid Router style rewrites.\n * Patterns use Solid Router dynamic routing syntax:\n * - Slug: `:slug`\n * - Catch-all: `*slug`\n * - Locale: `:locale`\n */\nexport const solidRouterRewrite = createFormatter('vite');\n\n/**\n * Formatter for Nuxt style rewrites.\n * Patterns use Nuxt 3 dynamic routing syntax:\n * - Slug: `[slug]`\n * - Catch-all: `[...slug]` (0+)\n * - Locale: `[locale]`\n */\nexport const nuxtRewrite = createFormatter('vite', 'nuxt');\n\n/**\n * Formatter for TanStack Router style rewrites.\n * Patterns use TanStack Router dynamic routing syntax:\n * - Slug: `$slug`\n * - Catch-all: `*`\n * - Locale: `$locale`\n */\nexport const tanstackRouterRewrite = createFormatter('vite');\n\n/**\n * Generic formatter for Vite-based projects.\n * Supports most dynamic routing syntaxes and normalizes them for the Vite proxy.\n */\nexport const viteRewrite = createFormatter('vite');\n"],"mappings":";;;AAOA,MAAM,cACJ,OACA,eACkB,EAClB,OAAO,OAAO,QAAQ,
|
|
1
|
+
{"version":3,"file":"index.cjs","names":[],"sources":["../../../src/routing/index.ts"],"sourcesContent":["import type {\n RewriteObject,\n RewriteRule,\n RewriteRules,\n} from '@intlayer/types/config';\nimport type { StrictModeLocaleMap } from '@intlayer/types/module_augmentation';\n\nconst buildRules = (\n rules: Record<string, StrictModeLocaleMap<string>>,\n processor: (pattern: string) => string\n): RewriteRules => ({\n rules: Object.entries(rules).map(([canonical, localized]) => ({\n canonical: processor(canonical),\n localized: Object.fromEntries(\n Object.entries(localized).map(([locale, pattern]) => [\n locale,\n pattern ? processor(pattern) : pattern,\n ])\n ) as StrictModeLocaleMap<string>,\n })) as RewriteRule[],\n});\n\nconst cleanPath = (pattern: string) =>\n pattern.startsWith('/') ? pattern : `/${pattern}`;\n\n/**\n * Standardizes pattern to :param syntax.\n * Supports:\n * - Next.js/SvelteKit/Nuxt: [slug], [...slug], [[slug]]\n * - TanStack Router: $slug\n * - Solid Router: *slug\n * - React/Vue Router: :slug, *\n */\nconst normalizePattern = (pattern: string, framework?: string) => {\n let normalized = pattern;\n\n if (framework === 'nextjs') {\n normalized = normalized\n .replace(/\\[\\[\\.\\.\\.([^\\]]+)\\]\\]/g, ':$1*') // [[...slug]] -> :slug* (0+)\n .replace(/\\[\\.\\.\\.([^\\]]+)\\]/g, ':$1+') // [...slug] -> :slug+ (1+)\n .replace(/\\[([^\\]]+)\\]/g, ':$1'); // [slug] -> :slug (1)\n } else if (framework === 'sveltekit') {\n normalized = normalized\n .replace(/\\[\\.\\.\\.([^\\]]+)\\]/g, ':$1*') // [...path] -> :path* (0+)\n .replace(/\\[\\[([^\\]]+)\\]\\]/g, ':$1?') // [[optional]] -> :optional? (0-1)\n .replace(/\\[([^\\]]+)\\]/g, ':$1'); // [slug] -> :slug (1)\n } else if (framework === 'nuxt') {\n normalized = normalized\n .replace(/\\[\\.\\.\\.([^\\]]+)\\]/g, ':$1*') // [...slug] -> :slug* (0+)\n .replace(/\\[([^\\]]+)\\]/g, ':$1'); // [slug] -> :slug (1)\n } else {\n // Default / Generic (React Router, Vue Router, Solid Router, TanStack Router)\n normalized = normalized\n .replace(/\\$([^/]+)/g, ':$1') // TanStack $slug -> :slug\n .replace(/\\*([^/]+)/g, ':$1*') // Solid *slug -> :slug*\n .replace(/:([^/]+)\\?/g, ':$1?') // Vue Router/React Router :slug? -> :slug?\n .replace(/\\*/g, ':path*'); // React Router * -> :path*\n }\n\n return normalized;\n};\n\n/**\n * Removes locale markers from the pattern.\n */\nconst stripLocale = (pattern: string) =>\n pattern\n .replace(/\\/?(:locale|\\[locale\\]|\\$locale)\\/?/g, '/')\n .replace(/\\/+/g, '/')\n .replace(/\\/$/, '') || '/';\n\n/**\n * Factory to create formatters that populate 'url' and a specific proxy key.\n */\nconst createFormatter =\n (proxyKey: 'nextjs' | 'vite', framework?: string) =>\n <T extends string = string>(\n rules: Record<T, Partial<StrictModeLocaleMap<string>>>\n ): RewriteObject => {\n const normalize = (pattern: string) => normalizePattern(pattern, framework);\n const strip = (pattern: string) => stripLocale(normalize(pattern));\n\n return {\n url: buildRules(rules as any, (pattern) => cleanPath(strip(pattern))),\n [proxyKey]: buildRules(rules as any, (pattern) =>\n cleanPath(normalize(pattern))\n ),\n } as RewriteObject;\n };\n\n/**\n * Formatter for Next.js style rewrites.\n * Patterns use Next.js dynamic routing syntax:\n * - Slug: `[slug]`\n * - Catch-all: `[...slug]` (1+)\n * - Optional catch-all: `[[...slug]]` (0+)\n * - Locale: `[locale]`\n */\nexport const nextjsRewrite = createFormatter('nextjs', 'nextjs');\n\n/**\n * Formatter for SvelteKit style rewrites.\n * Patterns use SvelteKit dynamic routing syntax:\n * - Slug: `[slug]`\n * - Catch-all: `[...slug]` (0+)\n * - Locale: `[locale]`\n */\nexport const svelteKitRewrite = createFormatter('vite', 'sveltekit');\n\n/**\n * Formatter for React Router style rewrites.\n * Patterns use React Router dynamic routing syntax:\n * - Slug: `:slug`\n * - Optional slug: `:slug?`\n * - Catch-all: `*`\n * - Locale: `:locale`\n */\nexport const reactRouterRewrite = createFormatter('vite');\n\n/**\n * Formatter for Vue style rewrites.\n * Patterns use Vue Router 4 dynamic routing syntax:\n * - Slug: `:slug`\n * - Optional slug: `:slug?`\n * - Catch-all: `:slug*` or `:slug+`\n * - Locale: `:locale`\n */\nexport const vueRouterRewrite = createFormatter('vite');\n\n/**\n * Formatter for Solid Router style rewrites.\n * Patterns use Solid Router dynamic routing syntax:\n * - Slug: `:slug`\n * - Catch-all: `*slug`\n * - Locale: `:locale`\n */\nexport const solidRouterRewrite = createFormatter('vite');\n\n/**\n * Formatter for Nuxt style rewrites.\n * Patterns use Nuxt 3 dynamic routing syntax:\n * - Slug: `[slug]`\n * - Catch-all: `[...slug]` (0+)\n * - Locale: `[locale]`\n */\nexport const nuxtRewrite = createFormatter('vite', 'nuxt');\n\n/**\n * Formatter for TanStack Router style rewrites.\n * Patterns use TanStack Router dynamic routing syntax:\n * - Slug: `$slug`\n * - Catch-all: `*`\n * - Locale: `$locale`\n */\nexport const tanstackRouterRewrite = createFormatter('vite');\n\n/**\n * Generic formatter for Vite-based projects.\n * Supports most dynamic routing syntaxes and normalizes them for the Vite proxy.\n */\nexport const viteRewrite = createFormatter('vite');\n"],"mappings":";;;AAOA,MAAM,cACJ,OACA,eACkB,EAClB,OAAO,OAAO,QAAQ,KAAK,EAAE,KAAK,CAAC,WAAW,gBAAgB;CAC5D,WAAW,UAAU,SAAS;CAC9B,WAAW,OAAO,YAChB,OAAO,QAAQ,SAAS,EAAE,KAAK,CAAC,QAAQ,aAAa,CACnD,QACA,UAAU,UAAU,OAAO,IAAI,OACjC,CAAC,CACH;AACF,EAAE,EACJ;AAEA,MAAM,aAAa,YACjB,QAAQ,WAAW,GAAG,IAAI,UAAU,IAAI;;;;;;;;;AAU1C,MAAM,oBAAoB,SAAiB,cAAuB;CAChE,IAAI,aAAa;CAEjB,IAAI,cAAc,UAAU;EAC1B,aAAa,WACV,QAAQ,2BAA2B,MAAM,EACzC,QAAQ,uBAAuB,MAAM,EACrC,QAAQ,iBAAiB,KAAK;CACnC,OAAO,IAAI,cAAc,aAAa;EACpC,aAAa,WACV,QAAQ,uBAAuB,MAAM,EACrC,QAAQ,qBAAqB,MAAM,EACnC,QAAQ,iBAAiB,KAAK;CACnC,OAAO,IAAI,cAAc,QAAQ;EAC/B,aAAa,WACV,QAAQ,uBAAuB,MAAM,EACrC,QAAQ,iBAAiB,KAAK;CACnC,OAAO;EAEL,aAAa,WACV,QAAQ,cAAc,KAAK,EAC3B,QAAQ,cAAc,MAAM,EAC5B,QAAQ,eAAe,MAAM,EAC7B,QAAQ,OAAO,QAAQ;CAC5B;CAEA,OAAO;AACT;;;;AAKA,MAAM,eAAe,YACnB,QACG,QAAQ,wCAAwC,GAAG,EACnD,QAAQ,QAAQ,GAAG,EACnB,QAAQ,OAAO,EAAE,KAAK;;;;AAK3B,MAAM,mBACH,UAA6B,eAE5B,UACkB;CAClB,MAAM,aAAa,YAAoB,iBAAiB,SAAS,SAAS;CAC1E,MAAM,SAAS,YAAoB,YAAY,UAAU,OAAO,CAAC;CAEjE,OAAO;EACL,KAAK,WAAW,QAAe,YAAY,UAAU,MAAM,OAAO,CAAC,CAAC;GACnE,WAAW,WAAW,QAAe,YACpC,UAAU,UAAU,OAAO,CAAC,CAC9B;CACF;AACF;;;;;;;;;AAUF,MAAa,gBAAgB,gBAAgB,UAAU,QAAQ;;;;;;;;AAS/D,MAAa,mBAAmB,gBAAgB,QAAQ,WAAW;;;;;;;;;AAUnE,MAAa,qBAAqB,gBAAgB,MAAM;;;;;;;;;AAUxD,MAAa,mBAAmB,gBAAgB,MAAM;;;;;;;;AAStD,MAAa,qBAAqB,gBAAgB,MAAM;;;;;;;;AASxD,MAAa,cAAc,gBAAgB,QAAQ,MAAM;;;;;;;;AASzD,MAAa,wBAAwB,gBAAgB,MAAM;;;;;AAM3D,MAAa,cAAc,gBAAgB,MAAM"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"script.mjs","names":[],"sources":["../../../src/cli/script.ts"],"sourcesContent":["#!/usr/bin/env node\nimport { setAPI } from '@intlayer/cli';\n\nsetAPI();\n"],"mappings":";;;;AAGA,
|
|
1
|
+
{"version":3,"file":"script.mjs","names":[],"sources":["../../../src/cli/script.ts"],"sourcesContent":["#!/usr/bin/env node\nimport { setAPI } from '@intlayer/cli';\n\nsetAPI();\n"],"mappings":";;;;AAGA,OAAO"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","names":[],"sources":["../../../src/routing/index.ts"],"sourcesContent":["import type {\n RewriteObject,\n RewriteRule,\n RewriteRules,\n} from '@intlayer/types/config';\nimport type { StrictModeLocaleMap } from '@intlayer/types/module_augmentation';\n\nconst buildRules = (\n rules: Record<string, StrictModeLocaleMap<string>>,\n processor: (pattern: string) => string\n): RewriteRules => ({\n rules: Object.entries(rules).map(([canonical, localized]) => ({\n canonical: processor(canonical),\n localized: Object.fromEntries(\n Object.entries(localized).map(([locale, pattern]) => [\n locale,\n pattern ? processor(pattern) : pattern,\n ])\n ) as StrictModeLocaleMap<string>,\n })) as RewriteRule[],\n});\n\nconst cleanPath = (pattern: string) =>\n pattern.startsWith('/') ? pattern : `/${pattern}`;\n\n/**\n * Standardizes pattern to :param syntax.\n * Supports:\n * - Next.js/SvelteKit/Nuxt: [slug], [...slug], [[slug]]\n * - TanStack Router: $slug\n * - Solid Router: *slug\n * - React/Vue Router: :slug, *\n */\nconst normalizePattern = (pattern: string, framework?: string) => {\n let normalized = pattern;\n\n if (framework === 'nextjs') {\n normalized = normalized\n .replace(/\\[\\[\\.\\.\\.([^\\]]+)\\]\\]/g, ':$1*') // [[...slug]] -> :slug* (0+)\n .replace(/\\[\\.\\.\\.([^\\]]+)\\]/g, ':$1+') // [...slug] -> :slug+ (1+)\n .replace(/\\[([^\\]]+)\\]/g, ':$1'); // [slug] -> :slug (1)\n } else if (framework === 'sveltekit') {\n normalized = normalized\n .replace(/\\[\\.\\.\\.([^\\]]+)\\]/g, ':$1*') // [...path] -> :path* (0+)\n .replace(/\\[\\[([^\\]]+)\\]\\]/g, ':$1?') // [[optional]] -> :optional? (0-1)\n .replace(/\\[([^\\]]+)\\]/g, ':$1'); // [slug] -> :slug (1)\n } else if (framework === 'nuxt') {\n normalized = normalized\n .replace(/\\[\\.\\.\\.([^\\]]+)\\]/g, ':$1*') // [...slug] -> :slug* (0+)\n .replace(/\\[([^\\]]+)\\]/g, ':$1'); // [slug] -> :slug (1)\n } else {\n // Default / Generic (React Router, Vue Router, Solid Router, TanStack Router)\n normalized = normalized\n .replace(/\\$([^/]+)/g, ':$1') // TanStack $slug -> :slug\n .replace(/\\*([^/]+)/g, ':$1*') // Solid *slug -> :slug*\n .replace(/:([^/]+)\\?/g, ':$1?') // Vue Router/React Router :slug? -> :slug?\n .replace(/\\*/g, ':path*'); // React Router * -> :path*\n }\n\n return normalized;\n};\n\n/**\n * Removes locale markers from the pattern.\n */\nconst stripLocale = (pattern: string) =>\n pattern\n .replace(/\\/?(:locale|\\[locale\\]|\\$locale)\\/?/g, '/')\n .replace(/\\/+/g, '/')\n .replace(/\\/$/, '') || '/';\n\n/**\n * Factory to create formatters that populate 'url' and a specific proxy key.\n */\nconst createFormatter =\n (proxyKey: 'nextjs' | 'vite', framework?: string) =>\n <T extends string = string>(\n rules: Record<T, Partial<StrictModeLocaleMap<string>>>\n ): RewriteObject => {\n const normalize = (pattern: string) => normalizePattern(pattern, framework);\n const strip = (pattern: string) => stripLocale(normalize(pattern));\n\n return {\n url: buildRules(rules as any, (pattern) => cleanPath(strip(pattern))),\n [proxyKey]: buildRules(rules as any, (pattern) =>\n cleanPath(normalize(pattern))\n ),\n } as RewriteObject;\n };\n\n/**\n * Formatter for Next.js style rewrites.\n * Patterns use Next.js dynamic routing syntax:\n * - Slug: `[slug]`\n * - Catch-all: `[...slug]` (1+)\n * - Optional catch-all: `[[...slug]]` (0+)\n * - Locale: `[locale]`\n */\nexport const nextjsRewrite = createFormatter('nextjs', 'nextjs');\n\n/**\n * Formatter for SvelteKit style rewrites.\n * Patterns use SvelteKit dynamic routing syntax:\n * - Slug: `[slug]`\n * - Catch-all: `[...slug]` (0+)\n * - Locale: `[locale]`\n */\nexport const svelteKitRewrite = createFormatter('vite', 'sveltekit');\n\n/**\n * Formatter for React Router style rewrites.\n * Patterns use React Router dynamic routing syntax:\n * - Slug: `:slug`\n * - Optional slug: `:slug?`\n * - Catch-all: `*`\n * - Locale: `:locale`\n */\nexport const reactRouterRewrite = createFormatter('vite');\n\n/**\n * Formatter for Vue style rewrites.\n * Patterns use Vue Router 4 dynamic routing syntax:\n * - Slug: `:slug`\n * - Optional slug: `:slug?`\n * - Catch-all: `:slug*` or `:slug+`\n * - Locale: `:locale`\n */\nexport const vueRouterRewrite = createFormatter('vite');\n\n/**\n * Formatter for Solid Router style rewrites.\n * Patterns use Solid Router dynamic routing syntax:\n * - Slug: `:slug`\n * - Catch-all: `*slug`\n * - Locale: `:locale`\n */\nexport const solidRouterRewrite = createFormatter('vite');\n\n/**\n * Formatter for Nuxt style rewrites.\n * Patterns use Nuxt 3 dynamic routing syntax:\n * - Slug: `[slug]`\n * - Catch-all: `[...slug]` (0+)\n * - Locale: `[locale]`\n */\nexport const nuxtRewrite = createFormatter('vite', 'nuxt');\n\n/**\n * Formatter for TanStack Router style rewrites.\n * Patterns use TanStack Router dynamic routing syntax:\n * - Slug: `$slug`\n * - Catch-all: `*`\n * - Locale: `$locale`\n */\nexport const tanstackRouterRewrite = createFormatter('vite');\n\n/**\n * Generic formatter for Vite-based projects.\n * Supports most dynamic routing syntaxes and normalizes them for the Vite proxy.\n */\nexport const viteRewrite = createFormatter('vite');\n"],"mappings":";AAOA,MAAM,cACJ,OACA,eACkB,EAClB,OAAO,OAAO,QAAQ,
|
|
1
|
+
{"version":3,"file":"index.mjs","names":[],"sources":["../../../src/routing/index.ts"],"sourcesContent":["import type {\n RewriteObject,\n RewriteRule,\n RewriteRules,\n} from '@intlayer/types/config';\nimport type { StrictModeLocaleMap } from '@intlayer/types/module_augmentation';\n\nconst buildRules = (\n rules: Record<string, StrictModeLocaleMap<string>>,\n processor: (pattern: string) => string\n): RewriteRules => ({\n rules: Object.entries(rules).map(([canonical, localized]) => ({\n canonical: processor(canonical),\n localized: Object.fromEntries(\n Object.entries(localized).map(([locale, pattern]) => [\n locale,\n pattern ? processor(pattern) : pattern,\n ])\n ) as StrictModeLocaleMap<string>,\n })) as RewriteRule[],\n});\n\nconst cleanPath = (pattern: string) =>\n pattern.startsWith('/') ? pattern : `/${pattern}`;\n\n/**\n * Standardizes pattern to :param syntax.\n * Supports:\n * - Next.js/SvelteKit/Nuxt: [slug], [...slug], [[slug]]\n * - TanStack Router: $slug\n * - Solid Router: *slug\n * - React/Vue Router: :slug, *\n */\nconst normalizePattern = (pattern: string, framework?: string) => {\n let normalized = pattern;\n\n if (framework === 'nextjs') {\n normalized = normalized\n .replace(/\\[\\[\\.\\.\\.([^\\]]+)\\]\\]/g, ':$1*') // [[...slug]] -> :slug* (0+)\n .replace(/\\[\\.\\.\\.([^\\]]+)\\]/g, ':$1+') // [...slug] -> :slug+ (1+)\n .replace(/\\[([^\\]]+)\\]/g, ':$1'); // [slug] -> :slug (1)\n } else if (framework === 'sveltekit') {\n normalized = normalized\n .replace(/\\[\\.\\.\\.([^\\]]+)\\]/g, ':$1*') // [...path] -> :path* (0+)\n .replace(/\\[\\[([^\\]]+)\\]\\]/g, ':$1?') // [[optional]] -> :optional? (0-1)\n .replace(/\\[([^\\]]+)\\]/g, ':$1'); // [slug] -> :slug (1)\n } else if (framework === 'nuxt') {\n normalized = normalized\n .replace(/\\[\\.\\.\\.([^\\]]+)\\]/g, ':$1*') // [...slug] -> :slug* (0+)\n .replace(/\\[([^\\]]+)\\]/g, ':$1'); // [slug] -> :slug (1)\n } else {\n // Default / Generic (React Router, Vue Router, Solid Router, TanStack Router)\n normalized = normalized\n .replace(/\\$([^/]+)/g, ':$1') // TanStack $slug -> :slug\n .replace(/\\*([^/]+)/g, ':$1*') // Solid *slug -> :slug*\n .replace(/:([^/]+)\\?/g, ':$1?') // Vue Router/React Router :slug? -> :slug?\n .replace(/\\*/g, ':path*'); // React Router * -> :path*\n }\n\n return normalized;\n};\n\n/**\n * Removes locale markers from the pattern.\n */\nconst stripLocale = (pattern: string) =>\n pattern\n .replace(/\\/?(:locale|\\[locale\\]|\\$locale)\\/?/g, '/')\n .replace(/\\/+/g, '/')\n .replace(/\\/$/, '') || '/';\n\n/**\n * Factory to create formatters that populate 'url' and a specific proxy key.\n */\nconst createFormatter =\n (proxyKey: 'nextjs' | 'vite', framework?: string) =>\n <T extends string = string>(\n rules: Record<T, Partial<StrictModeLocaleMap<string>>>\n ): RewriteObject => {\n const normalize = (pattern: string) => normalizePattern(pattern, framework);\n const strip = (pattern: string) => stripLocale(normalize(pattern));\n\n return {\n url: buildRules(rules as any, (pattern) => cleanPath(strip(pattern))),\n [proxyKey]: buildRules(rules as any, (pattern) =>\n cleanPath(normalize(pattern))\n ),\n } as RewriteObject;\n };\n\n/**\n * Formatter for Next.js style rewrites.\n * Patterns use Next.js dynamic routing syntax:\n * - Slug: `[slug]`\n * - Catch-all: `[...slug]` (1+)\n * - Optional catch-all: `[[...slug]]` (0+)\n * - Locale: `[locale]`\n */\nexport const nextjsRewrite = createFormatter('nextjs', 'nextjs');\n\n/**\n * Formatter for SvelteKit style rewrites.\n * Patterns use SvelteKit dynamic routing syntax:\n * - Slug: `[slug]`\n * - Catch-all: `[...slug]` (0+)\n * - Locale: `[locale]`\n */\nexport const svelteKitRewrite = createFormatter('vite', 'sveltekit');\n\n/**\n * Formatter for React Router style rewrites.\n * Patterns use React Router dynamic routing syntax:\n * - Slug: `:slug`\n * - Optional slug: `:slug?`\n * - Catch-all: `*`\n * - Locale: `:locale`\n */\nexport const reactRouterRewrite = createFormatter('vite');\n\n/**\n * Formatter for Vue style rewrites.\n * Patterns use Vue Router 4 dynamic routing syntax:\n * - Slug: `:slug`\n * - Optional slug: `:slug?`\n * - Catch-all: `:slug*` or `:slug+`\n * - Locale: `:locale`\n */\nexport const vueRouterRewrite = createFormatter('vite');\n\n/**\n * Formatter for Solid Router style rewrites.\n * Patterns use Solid Router dynamic routing syntax:\n * - Slug: `:slug`\n * - Catch-all: `*slug`\n * - Locale: `:locale`\n */\nexport const solidRouterRewrite = createFormatter('vite');\n\n/**\n * Formatter for Nuxt style rewrites.\n * Patterns use Nuxt 3 dynamic routing syntax:\n * - Slug: `[slug]`\n * - Catch-all: `[...slug]` (0+)\n * - Locale: `[locale]`\n */\nexport const nuxtRewrite = createFormatter('vite', 'nuxt');\n\n/**\n * Formatter for TanStack Router style rewrites.\n * Patterns use TanStack Router dynamic routing syntax:\n * - Slug: `$slug`\n * - Catch-all: `*`\n * - Locale: `$locale`\n */\nexport const tanstackRouterRewrite = createFormatter('vite');\n\n/**\n * Generic formatter for Vite-based projects.\n * Supports most dynamic routing syntaxes and normalizes them for the Vite proxy.\n */\nexport const viteRewrite = createFormatter('vite');\n"],"mappings":";AAOA,MAAM,cACJ,OACA,eACkB,EAClB,OAAO,OAAO,QAAQ,KAAK,EAAE,KAAK,CAAC,WAAW,gBAAgB;CAC5D,WAAW,UAAU,SAAS;CAC9B,WAAW,OAAO,YAChB,OAAO,QAAQ,SAAS,EAAE,KAAK,CAAC,QAAQ,aAAa,CACnD,QACA,UAAU,UAAU,OAAO,IAAI,OACjC,CAAC,CACH;AACF,EAAE,EACJ;AAEA,MAAM,aAAa,YACjB,QAAQ,WAAW,GAAG,IAAI,UAAU,IAAI;;;;;;;;;AAU1C,MAAM,oBAAoB,SAAiB,cAAuB;CAChE,IAAI,aAAa;CAEjB,IAAI,cAAc,UAAU;EAC1B,aAAa,WACV,QAAQ,2BAA2B,MAAM,EACzC,QAAQ,uBAAuB,MAAM,EACrC,QAAQ,iBAAiB,KAAK;CACnC,OAAO,IAAI,cAAc,aAAa;EACpC,aAAa,WACV,QAAQ,uBAAuB,MAAM,EACrC,QAAQ,qBAAqB,MAAM,EACnC,QAAQ,iBAAiB,KAAK;CACnC,OAAO,IAAI,cAAc,QAAQ;EAC/B,aAAa,WACV,QAAQ,uBAAuB,MAAM,EACrC,QAAQ,iBAAiB,KAAK;CACnC,OAAO;EAEL,aAAa,WACV,QAAQ,cAAc,KAAK,EAC3B,QAAQ,cAAc,MAAM,EAC5B,QAAQ,eAAe,MAAM,EAC7B,QAAQ,OAAO,QAAQ;CAC5B;CAEA,OAAO;AACT;;;;AAKA,MAAM,eAAe,YACnB,QACG,QAAQ,wCAAwC,GAAG,EACnD,QAAQ,QAAQ,GAAG,EACnB,QAAQ,OAAO,EAAE,KAAK;;;;AAK3B,MAAM,mBACH,UAA6B,eAE5B,UACkB;CAClB,MAAM,aAAa,YAAoB,iBAAiB,SAAS,SAAS;CAC1E,MAAM,SAAS,YAAoB,YAAY,UAAU,OAAO,CAAC;CAEjE,OAAO;EACL,KAAK,WAAW,QAAe,YAAY,UAAU,MAAM,OAAO,CAAC,CAAC;GACnE,WAAW,WAAW,QAAe,YACpC,UAAU,UAAU,OAAO,CAAC,CAC9B;CACF;AACF;;;;;;;;;AAUF,MAAa,gBAAgB,gBAAgB,UAAU,QAAQ;;;;;;;;AAS/D,MAAa,mBAAmB,gBAAgB,QAAQ,WAAW;;;;;;;;;AAUnE,MAAa,qBAAqB,gBAAgB,MAAM;;;;;;;;;AAUxD,MAAa,mBAAmB,gBAAgB,MAAM;;;;;;;;AAStD,MAAa,qBAAqB,gBAAgB,MAAM;;;;;;;;AASxD,MAAa,cAAc,gBAAgB,QAAQ,MAAM;;;;;;;;AASzD,MAAa,wBAAwB,gBAAgB,MAAM;;;;;AAM3D,MAAa,cAAc,gBAAgB,MAAM"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import * as _$_intlayer_types0 from "@intlayer/types";
|
|
2
1
|
import { CustomIntlayerConfig as IntlayerConfig } from "@intlayer/types/config";
|
|
3
2
|
import { ContentNode, Dictionary as Dictionary$1 } from "@intlayer/types/dictionary";
|
|
4
3
|
import { DeclaredLocales, LocalesValues, RequiredLocales, SchemaKeys, StrictModeLocaleMap } from "@intlayer/types/module_augmentation";
|
|
@@ -35,23 +34,23 @@ type DeclarationContent<T = undefined, SchemaKey extends SchemaKeys | undefined
|
|
|
35
34
|
/**
|
|
36
35
|
* Returns the configuration of Intlayer.
|
|
37
36
|
*/
|
|
38
|
-
declare const getConfiguration: () =>
|
|
37
|
+
declare const getConfiguration: () => import("@intlayer/types").IntlayerConfig;
|
|
39
38
|
/**
|
|
40
39
|
* The locales defined in the configuration.
|
|
41
40
|
*/
|
|
42
|
-
declare const locales:
|
|
41
|
+
declare const locales: import("@intlayer/types").Locale[];
|
|
43
42
|
/**
|
|
44
43
|
* The required locales defined in the configuration.
|
|
45
44
|
*/
|
|
46
|
-
declare const requiredLocales:
|
|
45
|
+
declare const requiredLocales: import("@intlayer/types").Locale[];
|
|
47
46
|
/**
|
|
48
47
|
* The default locale defined in the configuration.
|
|
49
48
|
*/
|
|
50
|
-
declare const defaultLocale:
|
|
49
|
+
declare const defaultLocale: import("@intlayer/types").Locale;
|
|
51
50
|
/**
|
|
52
51
|
* The editor configuration defined in the configuration.
|
|
53
52
|
*/
|
|
54
|
-
declare const editor:
|
|
53
|
+
declare const editor: import("@intlayer/types").EditorConfig;
|
|
55
54
|
interface __DictionaryRegistry {}
|
|
56
55
|
interface __DeclaredLocalesRegistry {}
|
|
57
56
|
interface __RequiredLocalesRegistry {}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","names":[],"sources":["../../src/index.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":[],"sources":["../../src/index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;KAiBK,UAAA,kCAEe,UAAA,4BAChB,YAAA,CAAe,CAAA,EAAG,SAAA;;;;;;KAOjB,kBAAA,kCAEe,UAAA,4BAChB,UAAA,CAAW,CAAA,EAAG,SAAA;;;;cAmBZ,gBAAA,kCAAgB,cAAsB;AA7Bb;;;AAAA,cAkCzB,OAAA,4BAAO,MAAA;;;;cAKP,eAAA,4BAAe,MAAA;;;;cAKf,aAAA,4BAAa,MAAmD;;;;cAKhE,MAAA,4BAAM,YAAuB;AAAA,UAgGlB,oBAAA;AAAA,UACA,yBAAA;AAAA,UACA,yBAAA;AAAA,UACA,gBAAA;AAAA,UACA,oBAAA;AAAA,UACA,gBAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","names":[],"sources":["../../../src/routing/index.ts"],"mappings":";;;;;;AAkGA;;;;;;cAAa,aAAA,8BAtBM,KAAA,EACR,MAAA,CAAO,CAAA,EAAG,OAAA,CAAQ,mBAAA,eACxB,aAAA;;;;;;;;cA6BQ,gBAAA,8BA/BM,KAAA,EACR,MAAA,CAAO,CAAA,EAAG,OAAA,CAAQ,mBAAA,eACxB,aAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":[],"sources":["../../../src/routing/index.ts"],"mappings":";;;;;;AAkGA;;;;;;cAAa,aAAA,8BAtBM,KAAA,EACR,MAAA,CAAO,CAAA,EAAG,OAAA,CAAQ,mBAAA,eACxB,aAAA;;;;;;;;cA6BQ,gBAAA,8BA/BM,KAAA,EACR,MAAA,CAAO,CAAA,EAAG,OAAA,CAAQ,mBAAA,eACxB,aAAA;;;;AAoB2D;AAShE;;;;cAUa,kBAAA,8BAzCM,KAAA,EACR,MAAA,CAAO,CAAA,EAAG,OAAA,CAAQ,mBAAA,eACxB,aAAA;;;;;;;;;cAiDQ,gBAAA,8BAnDM,KAAA,EACR,MAAA,CAAO,CAAA,EAAG,OAAA,CAAQ,mBAAA,eACxB,aAAA;;;;;AA6B+D;AAUpE;;cAmBa,kBAAA,8BA5DM,KAAA,EACR,MAAA,CAAO,CAAA,EAAG,OAAA,CAAQ,mBAAA,eACxB,aAAA;;;;;;;;cAmEQ,WAAA,8BArEM,KAAA,EACR,MAAA,CAAO,CAAA,EAAG,OAAA,CAAQ,mBAAA,eACxB,aAAA;;;;;;;;cA4EQ,qBAAA,8BA9EM,KAAA,EACR,MAAA,CAAO,CAAA,EAAG,OAAA,CAAQ,mBAAA,eACxB,aAAA;AAiDL;;;;AAAA,cAiCa,WAAA,8BApFM,KAAA,EACR,MAAA,CAAO,CAAA,EAAG,OAAA,CAAQ,mBAAA,eACxB,aAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "intlayer",
|
|
3
|
-
"version": "8.9.
|
|
3
|
+
"version": "8.9.8",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "Manage internationalization i18n in a simple way, through TypeScript, declaration file, declare your multilingual content every where in your code.",
|
|
6
6
|
"keywords": [
|
|
@@ -95,10 +95,10 @@
|
|
|
95
95
|
"typecheck": "tsc --noEmit --project tsconfig.types.json"
|
|
96
96
|
},
|
|
97
97
|
"dependencies": {
|
|
98
|
-
"@intlayer/cli": "8.9.
|
|
99
|
-
"@intlayer/config": "8.9.
|
|
100
|
-
"@intlayer/core": "8.9.
|
|
101
|
-
"@intlayer/types": "8.9.
|
|
98
|
+
"@intlayer/cli": "8.9.8",
|
|
99
|
+
"@intlayer/config": "8.9.8",
|
|
100
|
+
"@intlayer/core": "8.9.8",
|
|
101
|
+
"@intlayer/types": "8.9.8"
|
|
102
102
|
},
|
|
103
103
|
"devDependencies": {
|
|
104
104
|
"@types/node": "25.8.0",
|