next-auto-i18n 0.2.0 → 0.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/DOCUMENTATION.md +63 -8
- package/README.md +9 -5
- package/dist/cli/index.js +15 -7
- package/dist/cli/index.js.map +1 -1
- package/dist/injector/index.d.ts +14 -5
- package/dist/injector/index.d.ts.map +1 -1
- package/dist/injector/index.js +32 -17
- package/dist/injector/index.js.map +1 -1
- package/dist/injector/locale-structure-injector.d.ts +13 -0
- package/dist/injector/locale-structure-injector.d.ts.map +1 -0
- package/dist/injector/locale-structure-injector.js +156 -0
- package/dist/injector/locale-structure-injector.js.map +1 -0
- package/dist/injector/middleware-injector.d.ts.map +1 -1
- package/dist/injector/middleware-injector.js +47 -5
- package/dist/injector/middleware-injector.js.map +1 -1
- package/dist/injector/request-injector.d.ts +9 -0
- package/dist/injector/request-injector.d.ts.map +1 -0
- package/dist/injector/request-injector.js +37 -0
- package/dist/injector/request-injector.js.map +1 -0
- package/dist/injector/switcher-injector.d.ts +4 -0
- package/dist/injector/switcher-injector.d.ts.map +1 -1
- package/dist/injector/switcher-injector.js +7 -28
- package/dist/injector/switcher-injector.js.map +1 -1
- package/dist/scanner/filters.d.ts.map +1 -1
- package/dist/scanner/filters.js +19 -0
- package/dist/scanner/filters.js.map +1 -1
- package/dist/scanner/index.d.ts +2 -0
- package/dist/scanner/index.d.ts.map +1 -1
- package/dist/scanner/index.js +41 -4
- package/dist/scanner/index.js.map +1 -1
- package/dist/utils/deps.d.ts.map +1 -1
- package/dist/utils/deps.js +5 -3
- package/dist/utils/deps.js.map +1 -1
- package/package.json +1 -1
package/DOCUMENTATION.md
CHANGED
|
@@ -117,12 +117,19 @@ npx next-auto-i18n init
|
|
|
117
117
|
▸ Rewriting components
|
|
118
118
|
✓ 47 replacements in 12 files
|
|
119
119
|
|
|
120
|
+
▸ Checking dependencies
|
|
121
|
+
✓ next-intl installed
|
|
122
|
+
|
|
123
|
+
▸ Rewriting components
|
|
124
|
+
✓ 47 replacements in 12 files
|
|
125
|
+
|
|
120
126
|
▸ Configuring Next.js
|
|
121
|
-
✓ layout.tsx configured
|
|
122
127
|
✓ next.config configured
|
|
123
128
|
✓ middleware.ts created
|
|
124
129
|
✓ i18n/routing.ts created
|
|
125
|
-
✓
|
|
130
|
+
✓ i18n/request.ts created
|
|
131
|
+
✓ LanguageSwitcher created
|
|
132
|
+
✓ app/[locale]/ structured
|
|
126
133
|
|
|
127
134
|
✓ Internationalization configured successfully!
|
|
128
135
|
Languages: fr → en, es
|
|
@@ -346,17 +353,54 @@ npx next-auto-i18n init
|
|
|
346
353
|
▼
|
|
347
354
|
┌──────────────────────────────────────┐
|
|
348
355
|
│ 7. Next.js Config Injection │
|
|
349
|
-
│ • layout.tsx → NextIntlClientProvider │
|
|
350
356
|
│ • next.config → createNextIntlPlugin │
|
|
351
|
-
│ • middleware.ts
|
|
352
|
-
│ • i18n/routing.ts → locale
|
|
353
|
-
│ •
|
|
357
|
+
│ • middleware.ts or proxy.ts │
|
|
358
|
+
│ • i18n/routing.ts → locale list │
|
|
359
|
+
│ • i18n/request.ts → Server Components │
|
|
360
|
+
│ • LanguageSwitcher.tsx → widget │
|
|
361
|
+
│ • app/[locale]/layout.tsx → provider │
|
|
362
|
+
│ • app/[locale]/page.tsx (moved) │
|
|
363
|
+
│ • app/layout.tsx → HTML shell │
|
|
354
364
|
└──────────────────────────────────────┘
|
|
355
365
|
│
|
|
356
366
|
▼
|
|
357
367
|
✓ i18n-ready site with language switcher
|
|
358
368
|
```
|
|
359
369
|
|
|
370
|
+
### Generated Project Structure
|
|
371
|
+
|
|
372
|
+
After running `next-auto-i18n init`, your project will have this structure:
|
|
373
|
+
|
|
374
|
+
```
|
|
375
|
+
your-project/
|
|
376
|
+
├── app/
|
|
377
|
+
│ ├── layout.tsx ← Simplified to HTML shell (<html><body>{children}</body></html>)
|
|
378
|
+
│ ├── globals.css ← Untouched
|
|
379
|
+
│ └── [locale]/
|
|
380
|
+
│ ├── layout.tsx ← NEW — NextIntlClientProvider + LanguageSwitcher
|
|
381
|
+
│ └── page.tsx ← Moved from app/page.tsx
|
|
382
|
+
│
|
|
383
|
+
├── components/
|
|
384
|
+
│ └── LanguageSwitcher.tsx ← NEW — floating language switcher widget
|
|
385
|
+
│
|
|
386
|
+
├── i18n/
|
|
387
|
+
│ ├── routing.ts ← NEW — locale definitions
|
|
388
|
+
│ └── request.ts ← NEW — Server Component config (getRequestConfig)
|
|
389
|
+
│
|
|
390
|
+
├── messages/
|
|
391
|
+
│ ├── fr.json ← NEW — source language keys
|
|
392
|
+
│ ├── en.json ← NEW — translated
|
|
393
|
+
│ └── es.json ← NEW — translated
|
|
394
|
+
│
|
|
395
|
+
├── middleware.ts ← NEW — i18n routing (proxy.ts on Next.js >= 16)
|
|
396
|
+
├── next.config.ts ← Modified — wrapped with createNextIntlPlugin
|
|
397
|
+
└── auto-i18n.config.json ← NEW — tool configuration
|
|
398
|
+
```
|
|
399
|
+
|
|
400
|
+
All modified files have a `.backup` copy created automatically before any change.
|
|
401
|
+
|
|
402
|
+
---
|
|
403
|
+
|
|
360
404
|
### AST Scanning
|
|
361
405
|
|
|
362
406
|
The scanner uses [ts-morph](https://ts-morph.com/) to parse TypeScript/JSX via AST (Abstract Syntax Tree). This means it understands your code structure, not just raw text.
|
|
@@ -736,10 +780,16 @@ next-auto-i18n/
|
|
|
736
780
|
│ ├── generator/ # Key generation + JSON file creation
|
|
737
781
|
│ ├── translator/ # DeepL API client + translation orchestration
|
|
738
782
|
│ ├── rewriter/ # JSX/attribute rewriting via AST
|
|
739
|
-
│ ├── injector/ # Next.js config injection
|
|
783
|
+
│ ├── injector/ # Next.js config injection:
|
|
784
|
+
│ │ ├── config-injector.ts # next.config wrapping
|
|
785
|
+
│ │ ├── middleware-injector.ts # middleware.ts / proxy.ts
|
|
786
|
+
│ │ ├── routing-injector.ts # i18n/routing.ts
|
|
787
|
+
│ │ ├── request-injector.ts # i18n/request.ts
|
|
788
|
+
│ │ ├── switcher-injector.ts # LanguageSwitcher component
|
|
789
|
+
│ │ ├── locale-structure-injector.ts # app/[locale]/ structure
|
|
790
|
+
│ │ └── layout-injector.ts # layout utilities
|
|
740
791
|
│ └── utils/ # Config, env, logger, dependency utilities
|
|
741
792
|
├── tests/ # Vitest test suites (298 tests)
|
|
742
|
-
├── auto-i18n-specs.md # Project specifications
|
|
743
793
|
└── DOCUMENTATION.md # This file
|
|
744
794
|
```
|
|
745
795
|
|
|
@@ -783,6 +833,11 @@ The test suite covers all modules:
|
|
|
783
833
|
- [x] `next-auto-i18n missing` — report untranslated keys
|
|
784
834
|
- [x] Floating language switcher widget (auto-injected, customizable)
|
|
785
835
|
- [x] Automatic `next-intl` dependency installation
|
|
836
|
+
- [x] `app/[locale]/` structure auto-creation (required by next-intl App Router)
|
|
837
|
+
- [x] `i18n/request.ts` generation (required for Server Components)
|
|
838
|
+
- [x] Dynamic `<html lang>` attribute
|
|
839
|
+
- [x] Next.js 16 `proxy.ts` detection
|
|
840
|
+
- [x] Scan scope limited to Next.js conventional directories
|
|
786
841
|
- [ ] `--watch` mode — auto-sync on file changes
|
|
787
842
|
- [ ] Support for Vite + React (without Next.js)
|
|
788
843
|
- [ ] Custom key naming strategies
|
package/README.md
CHANGED
|
@@ -47,7 +47,9 @@ Et en quelques secondes :
|
|
|
47
47
|
- Traduit automatiquement vers chaque langue cible
|
|
48
48
|
- Installe `next-intl` automatiquement si absent
|
|
49
49
|
- Remplace les strings en dur par `t("cle")`
|
|
50
|
-
- Configure `
|
|
50
|
+
- Configure `next.config`, `middleware.ts` (ou `proxy.ts` sur Next.js 16+)
|
|
51
|
+
- Genere `i18n/routing.ts` + `i18n/request.ts` (requis pour les Server Components)
|
|
52
|
+
- Cree la structure `app/[locale]/` requise par le App Router next-intl
|
|
51
53
|
- Injecte un **Language Switcher flottant** (personnalisable) pour changer de langue
|
|
52
54
|
|
|
53
55
|
## Commandes
|
|
@@ -148,15 +150,17 @@ Chaque string devient une cle i18n normalisee :
|
|
|
148
150
|
|
|
149
151
|
### 5. Injection config Next.js
|
|
150
152
|
|
|
151
|
-
- `layout.tsx` : ajoute `NextIntlClientProvider` + `getMessages()`
|
|
152
153
|
- `next.config` : wrappe avec `createNextIntlPlugin`
|
|
153
|
-
- `middleware.ts` :
|
|
154
|
+
- `middleware.ts` / `proxy.ts` : routing i18n (proxy.ts si Next.js >= 16)
|
|
154
155
|
- `i18n/routing.ts` : definit les locales
|
|
155
|
-
- `
|
|
156
|
+
- `i18n/request.ts` : configuration `getRequestConfig` pour les Server Components
|
|
157
|
+
- `app/[locale]/layout.tsx` : cree avec `NextIntlClientProvider` + `LanguageSwitcher`
|
|
158
|
+
- `app/[locale]/page.tsx` : la page existante est deplacee ici
|
|
159
|
+
- `app/layout.tsx` : simplifie en HTML shell (`<html><body>{children}</body></html>`)
|
|
156
160
|
|
|
157
161
|
### 6. Language Switcher
|
|
158
162
|
|
|
159
|
-
Un composant flottant est automatiquement genere et
|
|
163
|
+
Un composant flottant est automatiquement genere dans `components/LanguageSwitcher.tsx` et inclus dans `app/[locale]/layout.tsx` (dans le provider). Personnalisable via `SWITCHER_CONFIG` : position, theme (light/dark), couleur d'accent, offset.
|
|
160
164
|
|
|
161
165
|
## Securite
|
|
162
166
|
|
package/dist/cli/index.js
CHANGED
|
@@ -54,7 +54,9 @@ program
|
|
|
54
54
|
logger.success(`${CONFIG_FILENAME} créé`);
|
|
55
55
|
// 2. Scan
|
|
56
56
|
logger.step('Scan du projet');
|
|
57
|
-
const strings = await scanProject(projectRoot
|
|
57
|
+
const strings = await scanProject(projectRoot, {
|
|
58
|
+
ignorePatterns: config.ignore,
|
|
59
|
+
});
|
|
58
60
|
logger.success(`${strings.length} strings trouvées`);
|
|
59
61
|
if (strings.length === 0) {
|
|
60
62
|
logger.warn('Aucune string traduisible trouvée — arrêt');
|
|
@@ -133,10 +135,6 @@ program
|
|
|
133
135
|
defaultLocale: sourceLocale,
|
|
134
136
|
silent: true,
|
|
135
137
|
});
|
|
136
|
-
if (injResult.layout.ok)
|
|
137
|
-
logger.success('layout.tsx configuré');
|
|
138
|
-
else if (injResult.layout.error)
|
|
139
|
-
logger.warn(`layout.tsx — ${injResult.layout.error}`);
|
|
140
138
|
if (injResult.config.ok)
|
|
141
139
|
logger.success('next.config configuré');
|
|
142
140
|
else if (injResult.config.error)
|
|
@@ -149,10 +147,18 @@ program
|
|
|
149
147
|
}
|
|
150
148
|
if (injResult.routing.ok)
|
|
151
149
|
logger.success('i18n/routing.ts créé');
|
|
150
|
+
if (injResult.request.ok)
|
|
151
|
+
logger.success('i18n/request.ts créé');
|
|
152
|
+
else if (injResult.request.error)
|
|
153
|
+
logger.warn(`i18n/request.ts — ${injResult.request.error}`);
|
|
152
154
|
if (injResult.switcher.ok)
|
|
153
|
-
logger.success('LanguageSwitcher
|
|
155
|
+
logger.success('LanguageSwitcher créé');
|
|
154
156
|
else if (injResult.switcher.error)
|
|
155
157
|
logger.warn(`LanguageSwitcher — ${injResult.switcher.error}`);
|
|
158
|
+
if (injResult.localeStructure.ok)
|
|
159
|
+
logger.success('app/[locale]/ structuré');
|
|
160
|
+
else if (injResult.localeStructure.error)
|
|
161
|
+
logger.warn(`app/[locale]/ — ${injResult.localeStructure.error}`);
|
|
156
162
|
// Terminé
|
|
157
163
|
logger.blank();
|
|
158
164
|
logger.success('Internationalisation configurée avec succès !');
|
|
@@ -179,7 +185,9 @@ program
|
|
|
179
185
|
}
|
|
180
186
|
// Re-scan
|
|
181
187
|
logger.step('Scan du projet');
|
|
182
|
-
const strings = await scanProject(projectRoot
|
|
188
|
+
const strings = await scanProject(projectRoot, {
|
|
189
|
+
ignorePatterns: config.ignore,
|
|
190
|
+
});
|
|
183
191
|
logger.success(`${strings.length} strings trouvées`);
|
|
184
192
|
if (strings.length === 0) {
|
|
185
193
|
logger.warn('Aucune string trouvée');
|
package/dist/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
|
package/dist/injector/index.d.ts
CHANGED
|
@@ -2,12 +2,16 @@ export { injectLayout } from './layout-injector.js';
|
|
|
2
2
|
export { injectNextConfig } from './config-injector.js';
|
|
3
3
|
export { injectMiddleware } from './middleware-injector.js';
|
|
4
4
|
export { injectRouting } from './routing-injector.js';
|
|
5
|
+
export { injectRequest } from './request-injector.js';
|
|
5
6
|
export { injectLanguageSwitcher } from './switcher-injector.js';
|
|
7
|
+
export { injectLocaleStructure } from './locale-structure-injector.js';
|
|
6
8
|
export type { LayoutInjectorResult } from './layout-injector.js';
|
|
7
9
|
export type { ConfigInjectorResult } from './config-injector.js';
|
|
8
10
|
export type { MiddlewareInjectorResult } from './middleware-injector.js';
|
|
9
11
|
export type { RoutingInjectorResult, RoutingConfig } from './routing-injector.js';
|
|
12
|
+
export type { RequestInjectorResult } from './request-injector.js';
|
|
10
13
|
export type { SwitcherInjectorResult } from './switcher-injector.js';
|
|
14
|
+
export type { LocaleStructureResult } from './locale-structure-injector.js';
|
|
11
15
|
export interface InjectOptions {
|
|
12
16
|
/** Racine du projet Next.js cible. */
|
|
13
17
|
projectRoot: string;
|
|
@@ -19,11 +23,6 @@ export interface InjectOptions {
|
|
|
19
23
|
silent?: boolean;
|
|
20
24
|
}
|
|
21
25
|
export interface InjectAllResult {
|
|
22
|
-
layout: {
|
|
23
|
-
ok: boolean;
|
|
24
|
-
skipped: boolean;
|
|
25
|
-
error?: string;
|
|
26
|
-
};
|
|
27
26
|
config: {
|
|
28
27
|
ok: boolean;
|
|
29
28
|
skipped: boolean;
|
|
@@ -40,11 +39,21 @@ export interface InjectAllResult {
|
|
|
40
39
|
skipped: boolean;
|
|
41
40
|
error?: string;
|
|
42
41
|
};
|
|
42
|
+
request: {
|
|
43
|
+
ok: boolean;
|
|
44
|
+
skipped: boolean;
|
|
45
|
+
error?: string;
|
|
46
|
+
};
|
|
43
47
|
switcher: {
|
|
44
48
|
ok: boolean;
|
|
45
49
|
skipped: boolean;
|
|
46
50
|
error?: string;
|
|
47
51
|
};
|
|
52
|
+
localeStructure: {
|
|
53
|
+
ok: boolean;
|
|
54
|
+
skipped: boolean;
|
|
55
|
+
error?: string;
|
|
56
|
+
};
|
|
48
57
|
}
|
|
49
58
|
export declare function injectAll(options: InjectOptions): Promise<InjectAllResult>;
|
|
50
59
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/injector/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/injector/index.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAEvE,YAAY,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AACjE,YAAY,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AACjE,YAAY,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AACzE,YAAY,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAClF,YAAY,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AACnE,YAAY,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AACrE,YAAY,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAE5E,MAAM,WAAW,aAAa;IAC5B,sCAAsC;IACtC,WAAW,EAAE,MAAM,CAAC;IACpB,kDAAkD;IAClD,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,2CAA2C;IAC3C,aAAa,EAAE,MAAM,CAAC;IACtB,kCAAkC;IAClC,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1D,UAAU,EAAE;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAChF,OAAO,EAAE;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3D,OAAO,EAAE;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3D,QAAQ,EAAE;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5D,eAAe,EAAE;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACpE;AAED,wBAAsB,SAAS,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,eAAe,CAAC,CAwEhF"}
|
package/dist/injector/index.js
CHANGED
|
@@ -1,34 +1,27 @@
|
|
|
1
|
-
import { injectLayout } from './layout-injector.js';
|
|
2
1
|
import { injectNextConfig } from './config-injector.js';
|
|
3
2
|
import { injectMiddleware } from './middleware-injector.js';
|
|
4
3
|
import { injectRouting } from './routing-injector.js';
|
|
4
|
+
import { injectRequest } from './request-injector.js';
|
|
5
5
|
import { injectLanguageSwitcher } from './switcher-injector.js';
|
|
6
|
+
import { injectLocaleStructure } from './locale-structure-injector.js';
|
|
6
7
|
export { injectLayout } from './layout-injector.js';
|
|
7
8
|
export { injectNextConfig } from './config-injector.js';
|
|
8
9
|
export { injectMiddleware } from './middleware-injector.js';
|
|
9
10
|
export { injectRouting } from './routing-injector.js';
|
|
11
|
+
export { injectRequest } from './request-injector.js';
|
|
10
12
|
export { injectLanguageSwitcher } from './switcher-injector.js';
|
|
13
|
+
export { injectLocaleStructure } from './locale-structure-injector.js';
|
|
11
14
|
export async function injectAll(options) {
|
|
12
15
|
const { projectRoot, locales, defaultLocale, silent = false } = options;
|
|
13
16
|
const result = {
|
|
14
|
-
layout: { ok: false, skipped: false },
|
|
15
17
|
config: { ok: false, skipped: false },
|
|
16
18
|
middleware: { ok: false, skipped: false },
|
|
17
19
|
routing: { ok: false, skipped: false },
|
|
20
|
+
request: { ok: false, skipped: false },
|
|
18
21
|
switcher: { ok: false, skipped: false },
|
|
22
|
+
localeStructure: { ok: false, skipped: false },
|
|
19
23
|
};
|
|
20
|
-
// 1.
|
|
21
|
-
try {
|
|
22
|
-
const r = await injectLayout(projectRoot, { silent });
|
|
23
|
-
result.layout = { ok: true, skipped: r.skipped };
|
|
24
|
-
}
|
|
25
|
-
catch (err) {
|
|
26
|
-
const error = err instanceof Error ? err.message : String(err);
|
|
27
|
-
if (!silent)
|
|
28
|
-
console.error(` ✗ layout.tsx — ${error}`);
|
|
29
|
-
result.layout = { ok: false, skipped: false, error };
|
|
30
|
-
}
|
|
31
|
-
// 2. Next config
|
|
24
|
+
// 1. Next config (createNextIntlPlugin)
|
|
32
25
|
try {
|
|
33
26
|
const r = await injectNextConfig(projectRoot, { silent });
|
|
34
27
|
result.config = { ok: true, skipped: r.skipped };
|
|
@@ -39,7 +32,7 @@ export async function injectAll(options) {
|
|
|
39
32
|
console.error(` ✗ next.config — ${error}`);
|
|
40
33
|
result.config = { ok: false, skipped: false, error };
|
|
41
34
|
}
|
|
42
|
-
//
|
|
35
|
+
// 2. Middleware
|
|
43
36
|
try {
|
|
44
37
|
const r = await injectMiddleware(projectRoot, { silent });
|
|
45
38
|
result.middleware = { ok: true, skipped: r.skipped, warning: r.warning };
|
|
@@ -50,7 +43,7 @@ export async function injectAll(options) {
|
|
|
50
43
|
console.error(` ✗ middleware.ts — ${error}`);
|
|
51
44
|
result.middleware = { ok: false, skipped: false, error };
|
|
52
45
|
}
|
|
53
|
-
//
|
|
46
|
+
// 3. Routing (i18n/routing.ts)
|
|
54
47
|
try {
|
|
55
48
|
const r = await injectRouting(projectRoot, { locales, defaultLocale }, { silent });
|
|
56
49
|
result.routing = { ok: true, skipped: r.skipped };
|
|
@@ -61,7 +54,18 @@ export async function injectAll(options) {
|
|
|
61
54
|
console.error(` ✗ i18n/routing.ts — ${error}`);
|
|
62
55
|
result.routing = { ok: false, skipped: false, error };
|
|
63
56
|
}
|
|
64
|
-
//
|
|
57
|
+
// 4. Request config (i18n/request.ts) — requis pour les Server Components
|
|
58
|
+
try {
|
|
59
|
+
const r = await injectRequest(projectRoot, { silent });
|
|
60
|
+
result.request = { ok: true, skipped: r.skipped };
|
|
61
|
+
}
|
|
62
|
+
catch (err) {
|
|
63
|
+
const error = err instanceof Error ? err.message : String(err);
|
|
64
|
+
if (!silent)
|
|
65
|
+
console.error(` ✗ i18n/request.ts — ${error}`);
|
|
66
|
+
result.request = { ok: false, skipped: false, error };
|
|
67
|
+
}
|
|
68
|
+
// 5. Language Switcher component
|
|
65
69
|
try {
|
|
66
70
|
const r = await injectLanguageSwitcher(projectRoot, { silent });
|
|
67
71
|
result.switcher = { ok: true, skipped: r.skipped };
|
|
@@ -72,6 +76,17 @@ export async function injectAll(options) {
|
|
|
72
76
|
console.error(` ✗ LanguageSwitcher — ${error}`);
|
|
73
77
|
result.switcher = { ok: false, skipped: false, error };
|
|
74
78
|
}
|
|
79
|
+
// 6. Locale structure (app/[locale]/, root layout, locale layout)
|
|
80
|
+
try {
|
|
81
|
+
const r = await injectLocaleStructure(projectRoot, locales, defaultLocale, { silent });
|
|
82
|
+
result.localeStructure = { ok: true, skipped: r.skipped };
|
|
83
|
+
}
|
|
84
|
+
catch (err) {
|
|
85
|
+
const error = err instanceof Error ? err.message : String(err);
|
|
86
|
+
if (!silent)
|
|
87
|
+
console.error(` ✗ app/[locale]/ — ${error}`);
|
|
88
|
+
result.localeStructure = { ok: false, skipped: false, error };
|
|
89
|
+
}
|
|
75
90
|
return result;
|
|
76
91
|
}
|
|
77
92
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/injector/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/injector/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export interface LocaleStructureResult {
|
|
2
|
+
modified: boolean;
|
|
3
|
+
skipped: boolean;
|
|
4
|
+
movedFiles: string[];
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Crée la structure `app/[locale]/`, déplace les pages
|
|
8
|
+
* et génère un `[locale]/layout.tsx` avec le provider.
|
|
9
|
+
*/
|
|
10
|
+
export declare function injectLocaleStructure(projectRoot: string, locales: string[], defaultLocale: string, options?: {
|
|
11
|
+
silent?: boolean;
|
|
12
|
+
}): Promise<LocaleStructureResult>;
|
|
13
|
+
//# sourceMappingURL=locale-structure-injector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"locale-structure-injector.d.ts","sourceRoot":"","sources":["../../src/injector/locale-structure-injector.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAeD;;;GAGG;AACH,wBAAsB,qBAAqB,CACzC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EAAE,EACjB,aAAa,EAAE,MAAM,EACrB,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAO,GACjC,OAAO,CAAC,qBAAqB,CAAC,CAwDhC"}
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
import { readdir, rename, mkdir, writeFile, access, readFile, copyFile } from 'fs/promises';
|
|
2
|
+
import { join } from 'path';
|
|
3
|
+
import { findLayoutFile } from './layout-injector.js';
|
|
4
|
+
/** Fichiers/dossiers qui restent à la racine de app/ et ne sont PAS déplacés. */
|
|
5
|
+
const ROOT_ONLY = new Set([
|
|
6
|
+
'layout.tsx', 'layout.jsx', 'layout.js',
|
|
7
|
+
'globals.css', 'global.css',
|
|
8
|
+
'favicon.ico', 'icon.tsx', 'icon.jsx',
|
|
9
|
+
'apple-icon.tsx', 'apple-icon.jsx',
|
|
10
|
+
'opengraph-image.tsx', 'opengraph-image.jsx',
|
|
11
|
+
'robots.ts', 'robots.txt',
|
|
12
|
+
'sitemap.ts', 'sitemap.xml',
|
|
13
|
+
'manifest.ts', 'manifest.json',
|
|
14
|
+
'not-found.tsx', 'not-found.jsx',
|
|
15
|
+
]);
|
|
16
|
+
/**
|
|
17
|
+
* Crée la structure `app/[locale]/`, déplace les pages
|
|
18
|
+
* et génère un `[locale]/layout.tsx` avec le provider.
|
|
19
|
+
*/
|
|
20
|
+
export async function injectLocaleStructure(projectRoot, locales, defaultLocale, options = {}) {
|
|
21
|
+
const layoutPath = await findLayoutFile(projectRoot);
|
|
22
|
+
if (!layoutPath) {
|
|
23
|
+
throw new Error("layout.tsx introuvable — impossible de restructurer app/");
|
|
24
|
+
}
|
|
25
|
+
const useSrc = layoutPath.includes(join('src', 'app'));
|
|
26
|
+
const appDir = useSrc
|
|
27
|
+
? join(projectRoot, 'src', 'app')
|
|
28
|
+
: join(projectRoot, 'app');
|
|
29
|
+
const localeDir = join(appDir, '[locale]');
|
|
30
|
+
// Si le dossier [locale] existe déjà, on skip
|
|
31
|
+
try {
|
|
32
|
+
await access(localeDir);
|
|
33
|
+
if (!options.silent)
|
|
34
|
+
console.log(` — ${localeDir} — déjà présent`);
|
|
35
|
+
return { modified: false, skipped: true, movedFiles: [] };
|
|
36
|
+
}
|
|
37
|
+
catch {
|
|
38
|
+
/* n'existe pas → on le crée */
|
|
39
|
+
}
|
|
40
|
+
await mkdir(localeDir, { recursive: true });
|
|
41
|
+
// Lister les entrées dans app/
|
|
42
|
+
const entries = await readdir(appDir, { withFileTypes: true });
|
|
43
|
+
const movedFiles = [];
|
|
44
|
+
for (const entry of entries) {
|
|
45
|
+
// Ne pas déplacer le dossier [locale] lui-même
|
|
46
|
+
if (entry.name === '[locale]')
|
|
47
|
+
continue;
|
|
48
|
+
// Ne pas déplacer les fichiers qui doivent rester à la racine
|
|
49
|
+
if (ROOT_ONLY.has(entry.name))
|
|
50
|
+
continue;
|
|
51
|
+
const src = join(appDir, entry.name);
|
|
52
|
+
const dest = join(localeDir, entry.name);
|
|
53
|
+
await rename(src, dest);
|
|
54
|
+
movedFiles.push(entry.name);
|
|
55
|
+
}
|
|
56
|
+
// Générer app/[locale]/layout.tsx avec le provider
|
|
57
|
+
const localeLayoutPath = join(localeDir, 'layout.tsx');
|
|
58
|
+
const routingImportPath = useSrc ? '../../i18n/routing' : '../../i18n/routing';
|
|
59
|
+
const switcherImportPath = useSrc ? '../../components/LanguageSwitcher' : '../../components/LanguageSwitcher';
|
|
60
|
+
await writeFile(localeLayoutPath, buildLocaleLayout(routingImportPath, switcherImportPath), 'utf-8');
|
|
61
|
+
// Simplifier le root layout : HTML shell pur
|
|
62
|
+
await rewriteRootLayout(layoutPath);
|
|
63
|
+
if (!options.silent) {
|
|
64
|
+
console.log(` ✓ app/[locale]/ créé — ${movedFiles.length} entrée(s) déplacée(s)`);
|
|
65
|
+
}
|
|
66
|
+
return { modified: true, skipped: false, movedFiles };
|
|
67
|
+
}
|
|
68
|
+
function buildLocaleLayout(routingImportPath, switcherImportPath) {
|
|
69
|
+
return `import { NextIntlClientProvider } from 'next-intl';
|
|
70
|
+
import { getMessages } from 'next-intl/server';
|
|
71
|
+
import { notFound } from 'next/navigation';
|
|
72
|
+
import { routing } from '${routingImportPath}';
|
|
73
|
+
import { LanguageSwitcher } from '${switcherImportPath}';
|
|
74
|
+
|
|
75
|
+
export default async function LocaleLayout({
|
|
76
|
+
children,
|
|
77
|
+
params,
|
|
78
|
+
}: {
|
|
79
|
+
children: React.ReactNode;
|
|
80
|
+
params: Promise<{ locale: string }>;
|
|
81
|
+
}) {
|
|
82
|
+
const { locale } = await params;
|
|
83
|
+
|
|
84
|
+
if (!routing.locales.includes(locale as any)) {
|
|
85
|
+
notFound();
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
const messages = await getMessages();
|
|
89
|
+
|
|
90
|
+
return (
|
|
91
|
+
<NextIntlClientProvider messages={messages}>
|
|
92
|
+
{children}
|
|
93
|
+
<LanguageSwitcher />
|
|
94
|
+
</NextIntlClientProvider>
|
|
95
|
+
);
|
|
96
|
+
}
|
|
97
|
+
`;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Réécrit le root layout pour en faire un HTML shell minimal.
|
|
101
|
+
* Préserve les imports CSS/fonts existants.
|
|
102
|
+
*/
|
|
103
|
+
async function rewriteRootLayout(layoutPath) {
|
|
104
|
+
await copyFile(layoutPath, `${layoutPath}.backup`);
|
|
105
|
+
const content = await readFile(layoutPath, 'utf-8');
|
|
106
|
+
// Extraire les imports CSS/fonts existants (ex: import './globals.css')
|
|
107
|
+
const cssImports = [];
|
|
108
|
+
const fontImports = [];
|
|
109
|
+
const otherImports = [];
|
|
110
|
+
for (const line of content.split('\n')) {
|
|
111
|
+
const trimmed = line.trim();
|
|
112
|
+
if (/^import\s+['"]\..*\.css['"]/.test(trimmed) || /^import\s+['"]\.\/globals/.test(trimmed)) {
|
|
113
|
+
cssImports.push(trimmed);
|
|
114
|
+
}
|
|
115
|
+
else if (/from\s+['"]next\/font/.test(trimmed) || /from\s+['"]@next\/font/.test(trimmed)) {
|
|
116
|
+
fontImports.push(trimmed);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
// Extraire les déclarations de font (ex: const inter = Inter({ ... }))
|
|
120
|
+
const fontDeclRegex = /^const\s+\w+\s*=\s*\w+\(\{[^}]*\}\);?\s*$/gm;
|
|
121
|
+
const fontDecls = [];
|
|
122
|
+
let match;
|
|
123
|
+
while ((match = fontDeclRegex.exec(content)) !== null) {
|
|
124
|
+
fontDecls.push(match[0]);
|
|
125
|
+
}
|
|
126
|
+
// Extraire l'ouverture complète du tag <body> (attributs préservés verbatim)
|
|
127
|
+
// On capture tout entre <body et le premier > non imbriqué dans {}
|
|
128
|
+
let bodyTag = '<body>';
|
|
129
|
+
const bodyTagMatch = content.match(/<body[^>]*>/);
|
|
130
|
+
if (bodyTagMatch) {
|
|
131
|
+
bodyTag = bodyTagMatch[0];
|
|
132
|
+
}
|
|
133
|
+
// Construire le nouveau root layout
|
|
134
|
+
const imports = [
|
|
135
|
+
...cssImports,
|
|
136
|
+
...fontImports,
|
|
137
|
+
].filter(Boolean);
|
|
138
|
+
const importsStr = imports.length > 0 ? imports.join('\n') + '\n\n' : '';
|
|
139
|
+
const fontDeclsStr = fontDecls.length > 0 ? fontDecls.join('\n') + '\n\n' : '';
|
|
140
|
+
const newContent = `${importsStr}${fontDeclsStr}export default function RootLayout({
|
|
141
|
+
children,
|
|
142
|
+
}: {
|
|
143
|
+
children: React.ReactNode;
|
|
144
|
+
}) {
|
|
145
|
+
return (
|
|
146
|
+
<html>
|
|
147
|
+
${bodyTag}
|
|
148
|
+
{children}
|
|
149
|
+
</body>
|
|
150
|
+
</html>
|
|
151
|
+
);
|
|
152
|
+
}
|
|
153
|
+
`;
|
|
154
|
+
await writeFile(layoutPath, newContent, 'utf-8');
|
|
155
|
+
}
|
|
156
|
+
//# sourceMappingURL=locale-structure-injector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"locale-structure-injector.js","sourceRoot":"","sources":["../../src/injector/locale-structure-injector.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"middleware-injector.d.ts","sourceRoot":"","sources":["../../src/injector/middleware-injector.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;
|
|
1
|
+
{"version":3,"file":"middleware-injector.d.ts","sourceRoot":"","sources":["../../src/injector/middleware-injector.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAsCD,wBAAsB,gBAAgB,CACpC,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAO,GACjC,OAAO,CAAC,wBAAwB,CAAC,CAmCnC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { writeFile, access } from 'fs/promises';
|
|
1
|
+
import { writeFile, readFile, access } from 'fs/promises';
|
|
2
2
|
import { join } from 'path';
|
|
3
3
|
const MIDDLEWARE_CONTENT = `import createMiddleware from 'next-intl/middleware';
|
|
4
4
|
import { routing } from './i18n/routing';
|
|
@@ -9,12 +9,42 @@ export const config = {
|
|
|
9
9
|
matcher: ['/((?!api|_next|_vercel|.*\\\\..*).*)'],
|
|
10
10
|
};
|
|
11
11
|
`;
|
|
12
|
+
const PROXY_CONTENT = `import createMiddleware from 'next-intl/middleware';
|
|
13
|
+
import { routing } from './i18n/routing';
|
|
14
|
+
|
|
15
|
+
export default createMiddleware(routing);
|
|
16
|
+
|
|
17
|
+
export const config = {
|
|
18
|
+
matcher: ['/((?!api|_next|_vercel|.*\\\\..*).*)'],
|
|
19
|
+
};
|
|
20
|
+
`;
|
|
21
|
+
/**
|
|
22
|
+
* Détecte la version majeure de Next.js installée dans le projet.
|
|
23
|
+
* Retourne null si non trouvée.
|
|
24
|
+
*/
|
|
25
|
+
async function detectNextMajorVersion(projectRoot) {
|
|
26
|
+
try {
|
|
27
|
+
const pkgPath = join(projectRoot, 'node_modules', 'next', 'package.json');
|
|
28
|
+
const raw = await readFile(pkgPath, 'utf-8');
|
|
29
|
+
const pkg = JSON.parse(raw);
|
|
30
|
+
const major = parseInt(pkg.version?.split('.')[0], 10);
|
|
31
|
+
return isNaN(major) ? null : major;
|
|
32
|
+
}
|
|
33
|
+
catch {
|
|
34
|
+
return null;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
12
37
|
export async function injectMiddleware(projectRoot, options = {}) {
|
|
13
|
-
const
|
|
38
|
+
const nextVersion = await detectNextMajorVersion(projectRoot);
|
|
39
|
+
const useProxy = nextVersion !== null && nextVersion >= 16;
|
|
40
|
+
const fileName = useProxy ? 'proxy.ts' : 'middleware.ts';
|
|
41
|
+
const content = useProxy ? PROXY_CONTENT : MIDDLEWARE_CONTENT;
|
|
42
|
+
const filePath = join(projectRoot, fileName);
|
|
43
|
+
// Vérifier aussi l'ancien nom si on passe à proxy
|
|
44
|
+
const altPath = join(projectRoot, useProxy ? 'middleware.ts' : 'proxy.ts');
|
|
14
45
|
try {
|
|
15
46
|
await access(filePath);
|
|
16
|
-
|
|
17
|
-
const warning = `middleware.ts existe déjà — configuration manuelle requise`;
|
|
47
|
+
const warning = `${fileName} existe déjà — configuration manuelle requise`;
|
|
18
48
|
if (!options.silent)
|
|
19
49
|
console.log(` ⚠ ${filePath} — ${warning}`);
|
|
20
50
|
return { modified: false, skipped: true, filePath, warning };
|
|
@@ -22,7 +52,19 @@ export async function injectMiddleware(projectRoot, options = {}) {
|
|
|
22
52
|
catch {
|
|
23
53
|
/* fichier absent → on le crée */
|
|
24
54
|
}
|
|
25
|
-
|
|
55
|
+
// Vérifier si l'alternative existe déjà
|
|
56
|
+
try {
|
|
57
|
+
await access(altPath);
|
|
58
|
+
const altName = useProxy ? 'middleware.ts' : 'proxy.ts';
|
|
59
|
+
const warning = `${altName} existe déjà — ${fileName} non créé`;
|
|
60
|
+
if (!options.silent)
|
|
61
|
+
console.log(` ⚠ ${warning}`);
|
|
62
|
+
return { modified: false, skipped: true, filePath: altPath, warning };
|
|
63
|
+
}
|
|
64
|
+
catch {
|
|
65
|
+
/* pas d'alternative non plus */
|
|
66
|
+
}
|
|
67
|
+
await writeFile(filePath, content, 'utf-8');
|
|
26
68
|
if (!options.silent)
|
|
27
69
|
console.log(` ✓ ${filePath} — créé`);
|
|
28
70
|
return { modified: true, skipped: false, filePath };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"middleware-injector.js","sourceRoot":"","sources":["../../src/injector/middleware-injector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"middleware-injector.js","sourceRoot":"","sources":["../../src/injector/middleware-injector.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export interface RequestInjectorResult {
|
|
2
|
+
modified: boolean;
|
|
3
|
+
skipped: boolean;
|
|
4
|
+
filePath: string;
|
|
5
|
+
}
|
|
6
|
+
export declare function injectRequest(projectRoot: string, options?: {
|
|
7
|
+
silent?: boolean;
|
|
8
|
+
}): Promise<RequestInjectorResult>;
|
|
9
|
+
//# sourceMappingURL=request-injector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"request-injector.d.ts","sourceRoot":"","sources":["../../src/injector/request-injector.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAmBD,wBAAsB,aAAa,CACjC,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAO,GACjC,OAAO,CAAC,qBAAqB,CAAC,CAiBhC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { writeFile, mkdir, access } from 'fs/promises';
|
|
2
|
+
import { join } from 'path';
|
|
3
|
+
function buildRequestContent() {
|
|
4
|
+
return `import { getRequestConfig } from 'next-intl/server';
|
|
5
|
+
import { routing } from './routing';
|
|
6
|
+
|
|
7
|
+
export default getRequestConfig(async ({ requestLocale }) => {
|
|
8
|
+
let locale = await requestLocale;
|
|
9
|
+
if (!locale || !routing.locales.includes(locale as any)) {
|
|
10
|
+
locale = routing.defaultLocale;
|
|
11
|
+
}
|
|
12
|
+
return {
|
|
13
|
+
locale,
|
|
14
|
+
messages: (await import(\`../messages/\${locale}.json\`)).default,
|
|
15
|
+
};
|
|
16
|
+
});
|
|
17
|
+
`;
|
|
18
|
+
}
|
|
19
|
+
export async function injectRequest(projectRoot, options = {}) {
|
|
20
|
+
const i18nDir = join(projectRoot, 'i18n');
|
|
21
|
+
const filePath = join(i18nDir, 'request.ts');
|
|
22
|
+
try {
|
|
23
|
+
await access(filePath);
|
|
24
|
+
if (!options.silent)
|
|
25
|
+
console.log(` — ${filePath} — déjà présent`);
|
|
26
|
+
return { modified: false, skipped: true, filePath };
|
|
27
|
+
}
|
|
28
|
+
catch {
|
|
29
|
+
/* fichier absent → on le crée */
|
|
30
|
+
}
|
|
31
|
+
await mkdir(i18nDir, { recursive: true });
|
|
32
|
+
await writeFile(filePath, buildRequestContent(), 'utf-8');
|
|
33
|
+
if (!options.silent)
|
|
34
|
+
console.log(` ✓ ${filePath} — créé`);
|
|
35
|
+
return { modified: true, skipped: false, filePath };
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=request-injector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"request-injector.js","sourceRoot":"","sources":["../../src/injector/request-injector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAQ5B,SAAS,mBAAmB;IAC1B,OAAO;;;;;;;;;;;;;CAaR,CAAC;AACF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,WAAmB,EACnB,UAAgC,EAAE;IAElC,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IAC1C,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IAE7C,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC;QACvB,IAAI,CAAC,OAAO,CAAC,MAAM;YAAE,OAAO,CAAC,GAAG,CAAC,OAAO,QAAQ,iBAAiB,CAAC,CAAC;QACnE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IACtD,CAAC;IAAC,MAAM,CAAC;QACP,iCAAiC;IACnC,CAAC;IAED,MAAM,KAAK,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1C,MAAM,SAAS,CAAC,QAAQ,EAAE,mBAAmB,EAAE,EAAE,OAAO,CAAC,CAAC;IAE1D,IAAI,CAAC,OAAO,CAAC,MAAM;QAAE,OAAO,CAAC,GAAG,CAAC,OAAO,QAAQ,SAAS,CAAC,CAAC;IAC3D,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;AACtD,CAAC"}
|
|
@@ -3,6 +3,10 @@ export interface SwitcherInjectorResult {
|
|
|
3
3
|
skipped: boolean;
|
|
4
4
|
filePath: string;
|
|
5
5
|
}
|
|
6
|
+
/**
|
|
7
|
+
* Génère le composant LanguageSwitcher.tsx dans le projet cible.
|
|
8
|
+
* L'import dans le layout est géré par locale-structure-injector.
|
|
9
|
+
*/
|
|
6
10
|
export declare function injectLanguageSwitcher(projectRoot: string, options?: {
|
|
7
11
|
silent?: boolean;
|
|
8
12
|
}): Promise<SwitcherInjectorResult>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"switcher-injector.d.ts","sourceRoot":"","sources":["../../src/injector/switcher-injector.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;
|
|
1
|
+
{"version":3,"file":"switcher-injector.d.ts","sourceRoot":"","sources":["../../src/injector/switcher-injector.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AA6RD;;;GAGG;AACH,wBAAsB,sBAAsB,CAC1C,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAO,GACjC,OAAO,CAAC,sBAAsB,CAAC,CAiCjC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { writeFile,
|
|
1
|
+
import { writeFile, mkdir, access } from 'fs/promises';
|
|
2
2
|
import { join } from 'path';
|
|
3
3
|
import { findLayoutFile } from './layout-injector.js';
|
|
4
4
|
/* ------------------------------------------------------------------ */
|
|
@@ -68,7 +68,7 @@ export function LanguageSwitcher() {
|
|
|
68
68
|
const pathname = usePathname();
|
|
69
69
|
const router = useRouter();
|
|
70
70
|
|
|
71
|
-
const locales = routing.locales as string[];
|
|
71
|
+
const locales = [...routing.locales] as string[];
|
|
72
72
|
const segments = pathname.split('/');
|
|
73
73
|
const currentLocale = locales.includes(segments[1])
|
|
74
74
|
? segments[1]
|
|
@@ -279,31 +279,12 @@ export function LanguageSwitcher() {
|
|
|
279
279
|
`;
|
|
280
280
|
}
|
|
281
281
|
/* ------------------------------------------------------------------ */
|
|
282
|
-
/* Layout injection (add <LanguageSwitcher /> + import) */
|
|
283
|
-
/* ------------------------------------------------------------------ */
|
|
284
|
-
async function injectSwitcherIntoLayout(layoutPath, useSrc) {
|
|
285
|
-
let content = await readFile(layoutPath, 'utf-8');
|
|
286
|
-
// Already present?
|
|
287
|
-
if (content.includes('LanguageSwitcher'))
|
|
288
|
-
return false;
|
|
289
|
-
// 1. Add import after the last existing import statement
|
|
290
|
-
const importLine = `import { LanguageSwitcher } from '../components/LanguageSwitcher';\n`;
|
|
291
|
-
const lastImportIdx = content.lastIndexOf('\nimport ');
|
|
292
|
-
if (lastImportIdx !== -1) {
|
|
293
|
-
const endOfLine = content.indexOf('\n', lastImportIdx + 1);
|
|
294
|
-
content = content.slice(0, endOfLine + 1) + importLine + content.slice(endOfLine + 1);
|
|
295
|
-
}
|
|
296
|
-
else {
|
|
297
|
-
content = importLine + content;
|
|
298
|
-
}
|
|
299
|
-
// 2. Insert <LanguageSwitcher /> before </body>
|
|
300
|
-
content = content.replace('</body>', ' <LanguageSwitcher />\n </body>');
|
|
301
|
-
await writeFile(layoutPath, content, 'utf-8');
|
|
302
|
-
return true;
|
|
303
|
-
}
|
|
304
|
-
/* ------------------------------------------------------------------ */
|
|
305
282
|
/* Public API */
|
|
306
283
|
/* ------------------------------------------------------------------ */
|
|
284
|
+
/**
|
|
285
|
+
* Génère le composant LanguageSwitcher.tsx dans le projet cible.
|
|
286
|
+
* L'import dans le layout est géré par locale-structure-injector.
|
|
287
|
+
*/
|
|
307
288
|
export async function injectLanguageSwitcher(projectRoot, options = {}) {
|
|
308
289
|
// Detect project structure via layout location
|
|
309
290
|
const layoutPath = await findLayoutFile(projectRoot);
|
|
@@ -330,10 +311,8 @@ export async function injectLanguageSwitcher(projectRoot, options = {}) {
|
|
|
330
311
|
const routingImportPath = useSrc ? '../../i18n/routing' : '../i18n/routing';
|
|
331
312
|
// Write the component file
|
|
332
313
|
await writeFile(switcherPath, buildSwitcherComponent(routingImportPath), 'utf-8');
|
|
333
|
-
// Inject into layout
|
|
334
|
-
await injectSwitcherIntoLayout(layoutPath, useSrc);
|
|
335
314
|
if (!options.silent)
|
|
336
|
-
console.log(` ✓ ${switcherPath} —
|
|
315
|
+
console.log(` ✓ ${switcherPath} — créé`);
|
|
337
316
|
return { modified: true, skipped: false, filePath: switcherPath };
|
|
338
317
|
}
|
|
339
318
|
//# sourceMappingURL=switcher-injector.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"switcher-injector.js","sourceRoot":"","sources":["../../src/injector/switcher-injector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,
|
|
1
|
+
{"version":3,"file":"switcher-injector.js","sourceRoot":"","sources":["../../src/injector/switcher-injector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAQtD,wEAAwE;AACxE,yEAAyE;AACzE,wEAAwE;AAExE,SAAS,sBAAsB,CAAC,iBAAyB;IACvD,OAAO;;;2BAGkB,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4Q3C,CAAC;AACF,CAAC;AAED,wEAAwE;AACxE,yEAAyE;AACzE,wEAAwE;AAExE;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,WAAmB,EACnB,UAAgC,EAAE;IAElC,+CAA+C;IAC/C,MAAM,UAAU,GAAG,MAAM,cAAc,CAAC,WAAW,CAAC,CAAC;IACrD,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAC;IACzF,CAAC;IAED,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;IAC5D,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;IAEhE,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IAClD,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,EAAE,sBAAsB,CAAC,CAAC;IAEjE,yBAAyB;IACzB,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,YAAY,CAAC,CAAC;QAC3B,IAAI,CAAC,OAAO,CAAC,MAAM;YAAE,OAAO,CAAC,GAAG,CAAC,OAAO,YAAY,iBAAiB,CAAC,CAAC;QACvE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC;IACpE,CAAC;IAAC,MAAM,CAAC;QACP,6BAA6B;IAC/B,CAAC;IAED,yCAAyC;IACzC,MAAM,KAAK,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAEhD,+CAA+C;IAC/C,MAAM,iBAAiB,GAAG,MAAM,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,iBAAiB,CAAC;IAE5E,2BAA2B;IAC3B,MAAM,SAAS,CAAC,YAAY,EAAE,sBAAsB,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAC,CAAC;IAElF,IAAI,CAAC,OAAO,CAAC,MAAM;QAAE,OAAO,CAAC,GAAG,CAAC,OAAO,YAAY,SAAS,CAAC,CAAC;IAC/D,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC;AACpE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filters.d.ts","sourceRoot":"","sources":["../../src/scanner/filters.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;CAChC;
|
|
1
|
+
{"version":3,"file":"filters.d.ts","sourceRoot":"","sources":["../../src/scanner/filters.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;CAChC;AA2ID;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAuB5E"}
|
package/dist/scanner/filters.js
CHANGED
|
@@ -61,6 +61,21 @@ const TECHNICAL_KEYWORDS = new Set([
|
|
|
61
61
|
]);
|
|
62
62
|
/** "42", "-7", "3.14" */
|
|
63
63
|
const NUMERIC_RE = /^-?\d+(\.\d+)?$/;
|
|
64
|
+
/**
|
|
65
|
+
* Nombre avec préfixe/suffixe simple (currency, %, +).
|
|
66
|
+
* Ex: "29€", "1500+", "$99", "50%", "3×", "100k", "€29"
|
|
67
|
+
*/
|
|
68
|
+
const NUMERIC_WITH_AFFIX_RE = /^[€$£¥₩₹฿]?\s*\d[\d\s.,]*\s*[€$£¥₩₹฿%+×xkKmMbB]*[+]?$|^[€$£¥₩₹฿]\s*\d[\d\s.,]*$/;
|
|
69
|
+
/**
|
|
70
|
+
* String composée uniquement d'emojis, symboles ou ponctuation (aucune lettre ni chiffre).
|
|
71
|
+
* Ex: "🏋️", "🥊", "✓", "★", "→"
|
|
72
|
+
*/
|
|
73
|
+
function isSymbolOrEmojiOnly(value) {
|
|
74
|
+
if (!value.trim())
|
|
75
|
+
return false;
|
|
76
|
+
const stripped = value.replace(/[\p{Emoji_Presentation}\p{Extended_Pictographic}\p{Symbol}\s]/gu, '');
|
|
77
|
+
return stripped.length === 0;
|
|
78
|
+
}
|
|
64
79
|
/** "16px", "2rem", "100vh", "0.5s" */
|
|
65
80
|
const CSS_VALUE_RE = /^-?\d+(\.\d+)?(px|em|rem|vh|vw|vmin|vmax|pt|cm|mm|in|pc|ex|ch|%|s|ms)$/;
|
|
66
81
|
/** "#fff", "#ffffff", "#ffffffff" */
|
|
@@ -131,6 +146,10 @@ export function shouldIgnore(value, options) {
|
|
|
131
146
|
return true;
|
|
132
147
|
if (ENV_VAR_RE.test(trimmed))
|
|
133
148
|
return true;
|
|
149
|
+
if (NUMERIC_WITH_AFFIX_RE.test(trimmed))
|
|
150
|
+
return true;
|
|
151
|
+
if (isSymbolOrEmojiOnly(trimmed))
|
|
152
|
+
return true;
|
|
134
153
|
if (TECHNICAL_KEYWORDS.has(trimmed))
|
|
135
154
|
return true;
|
|
136
155
|
if (isCamelCaseIdentifier(trimmed))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filters.js","sourceRoot":"","sources":["../../src/scanner/filters.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"filters.js","sourceRoot":"","sources":["../../src/scanner/filters.ts"],"names":[],"mappings":"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"}
|
package/dist/scanner/index.d.ts
CHANGED
|
@@ -4,6 +4,8 @@ export type { ExtractedString, StringType } from './string-extractor.js';
|
|
|
4
4
|
export interface ScanOptions {
|
|
5
5
|
ignoreDirs?: string[];
|
|
6
6
|
ignoreFiles?: string[];
|
|
7
|
+
/** Glob patterns à ignorer (ex: '**\/*.test.*') */
|
|
8
|
+
ignorePatterns?: string[];
|
|
7
9
|
filter?: FilterOptions;
|
|
8
10
|
}
|
|
9
11
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/scanner/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAkB,KAAK,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7E,OAAO,EAAgB,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AAEhE,YAAY,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/scanner/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAkB,KAAK,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7E,OAAO,EAAgB,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AAEhE,YAAY,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAoCzE,MAAM,WAAW,WAAW;IAC1B,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,mDAAmD;IACnD,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,MAAM,CAAC,EAAE,aAAa,CAAC;CACxB;AA+DD;;;;;GAKG;AACH,wBAAsB,WAAW,CAC/B,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,WAAgB,GACxB,OAAO,CAAC,eAAe,EAAE,CAAC,CAgB5B"}
|
package/dist/scanner/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { readdir } from 'fs/promises';
|
|
2
|
-
import { join, extname } from 'path';
|
|
2
|
+
import { join, extname, relative } from 'path';
|
|
3
3
|
import { parseFile } from './ast-parser.js';
|
|
4
4
|
import { extractStrings } from './string-extractor.js';
|
|
5
5
|
import { shouldIgnore } from './filters.js';
|
|
@@ -7,6 +7,12 @@ const SCANNABLE_EXTENSIONS = new Set(['.tsx', '.jsx', '.ts', '.js', '.mjs']);
|
|
|
7
7
|
const DEFAULT_IGNORE_DIRS = new Set([
|
|
8
8
|
'node_modules', '.next', '.git', 'dist', 'build', 'out',
|
|
9
9
|
'.turbo', '.cache', 'coverage', '.vercel', 'public',
|
|
10
|
+
'i18n', 'messages',
|
|
11
|
+
]);
|
|
12
|
+
/** Fichiers générés par next-auto-i18n — jamais scannés ni réécrits. */
|
|
13
|
+
const GENERATED_FILES = new Set([
|
|
14
|
+
'LanguageSwitcher.tsx',
|
|
15
|
+
'LanguageSwitcher.jsx',
|
|
10
16
|
]);
|
|
11
17
|
const CONFIG_FILE_NAMES = new Set([
|
|
12
18
|
'next.config.ts', 'next.config.js', 'next.config.mjs',
|
|
@@ -19,11 +25,31 @@ const CONFIG_FILE_NAMES = new Set([
|
|
|
19
25
|
'.eslintrc.js', 'babel.config.js',
|
|
20
26
|
'prettier.config.js', 'prettier.config.ts',
|
|
21
27
|
]);
|
|
28
|
+
/**
|
|
29
|
+
* Dossiers Next.js conventionnels contenant des composants.
|
|
30
|
+
* Les fichiers en dehors de ces dossiers (ex: scripts .mjs à la racine) sont ignorés.
|
|
31
|
+
*/
|
|
32
|
+
const NEXT_APP_DIRS = new Set([
|
|
33
|
+
'app', 'src', 'pages', 'components', 'lib', 'hooks', 'utils',
|
|
34
|
+
]);
|
|
35
|
+
/**
|
|
36
|
+
* Convertit un glob pattern simple en RegExp.
|
|
37
|
+
* Supporte uniquement ** et * (couvre les cas courants).
|
|
38
|
+
*/
|
|
39
|
+
function globToRegex(pattern) {
|
|
40
|
+
const escaped = pattern
|
|
41
|
+
.replace(/[.+^${}()|[\]\\]/g, '\\$&')
|
|
42
|
+
.replace(/\*\*/g, '{{GLOBSTAR}}')
|
|
43
|
+
.replace(/\*/g, '[^/]*')
|
|
44
|
+
.replace(/\{\{GLOBSTAR\}\}/g, '.*');
|
|
45
|
+
return new RegExp(`^${escaped}$`);
|
|
46
|
+
}
|
|
22
47
|
async function collectFiles(rootDir, options) {
|
|
23
48
|
const ignoreDirs = new Set([...DEFAULT_IGNORE_DIRS, ...(options.ignoreDirs ?? [])]);
|
|
24
49
|
const ignoreFiles = new Set(options.ignoreFiles ?? []);
|
|
50
|
+
const ignoreRegexes = (options.ignorePatterns ?? []).map(globToRegex);
|
|
25
51
|
const files = [];
|
|
26
|
-
async function walk(dir) {
|
|
52
|
+
async function walk(dir, depth) {
|
|
27
53
|
let entries;
|
|
28
54
|
try {
|
|
29
55
|
entries = await readdir(dir, { withFileTypes: true });
|
|
@@ -36,7 +62,10 @@ async function collectFiles(rootDir, options) {
|
|
|
36
62
|
continue;
|
|
37
63
|
const fullPath = join(dir, entry.name);
|
|
38
64
|
if (entry.isDirectory()) {
|
|
39
|
-
|
|
65
|
+
// À la racine du projet, ne descendre que dans les dossiers Next.js conventionnels
|
|
66
|
+
if (depth === 0 && !NEXT_APP_DIRS.has(entry.name))
|
|
67
|
+
continue;
|
|
68
|
+
await walk(fullPath, depth + 1);
|
|
40
69
|
continue;
|
|
41
70
|
}
|
|
42
71
|
if (!entry.isFile())
|
|
@@ -47,14 +76,22 @@ async function collectFiles(rootDir, options) {
|
|
|
47
76
|
continue;
|
|
48
77
|
if (ignoreFiles.has(entry.name))
|
|
49
78
|
continue;
|
|
79
|
+
if (GENERATED_FILES.has(entry.name))
|
|
80
|
+
continue;
|
|
50
81
|
if (entry.name.includes('.test.') || entry.name.includes('.spec.'))
|
|
51
82
|
continue;
|
|
52
83
|
if (entry.name.startsWith('.'))
|
|
53
84
|
continue;
|
|
85
|
+
// Vérifier les glob patterns (chemin relatif depuis la racine)
|
|
86
|
+
if (ignoreRegexes.length > 0) {
|
|
87
|
+
const relPath = relative(rootDir, fullPath).replace(/\\/g, '/');
|
|
88
|
+
if (ignoreRegexes.some(re => re.test(relPath) || re.test(entry.name)))
|
|
89
|
+
continue;
|
|
90
|
+
}
|
|
54
91
|
files.push(fullPath);
|
|
55
92
|
}
|
|
56
93
|
}
|
|
57
|
-
await walk(rootDir);
|
|
94
|
+
await walk(rootDir, 0);
|
|
58
95
|
return files;
|
|
59
96
|
}
|
|
60
97
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/scanner/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/scanner/index.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/deps.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deps.d.ts","sourceRoot":"","sources":["../../src/utils/deps.ts"],"names":[],"mappings":"AAOA,KAAK,cAAc,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;AAE9C;;;GAGG;AACH,wBAAsB,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAiBvF;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAUnG;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"deps.d.ts","sourceRoot":"","sources":["../../src/utils/deps.ts"],"names":[],"mappings":"AAOA,KAAK,cAAc,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;AAE9C;;;GAGG;AACH,wBAAsB,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAiBvF;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAUnG;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC,CAaf"}
|
package/dist/utils/deps.js
CHANGED
|
@@ -44,10 +44,12 @@ export async function isPackageInstalled(projectRoot, packageName) {
|
|
|
44
44
|
*/
|
|
45
45
|
export async function installPackage(projectRoot, packageName) {
|
|
46
46
|
const pm = await detectPackageManager(projectRoot);
|
|
47
|
+
// Sur Windows, les exécutables npm/yarn/pnpm sont des scripts .cmd
|
|
48
|
+
const isWin = process.platform === 'win32';
|
|
47
49
|
const commands = {
|
|
48
|
-
npm: ['npm', ['install', packageName]],
|
|
49
|
-
yarn: ['yarn', ['add', packageName]],
|
|
50
|
-
pnpm: ['pnpm', ['add', packageName]],
|
|
50
|
+
npm: [isWin ? 'npm.cmd' : 'npm', ['install', packageName]],
|
|
51
|
+
yarn: [isWin ? 'yarn.cmd' : 'yarn', ['add', packageName]],
|
|
52
|
+
pnpm: [isWin ? 'pnpm.cmd' : 'pnpm', ['add', packageName]],
|
|
51
53
|
};
|
|
52
54
|
const [cmd, args] = commands[pm];
|
|
53
55
|
await execFileAsync(cmd, args, { cwd: projectRoot });
|
package/dist/utils/deps.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deps.js","sourceRoot":"","sources":["../../src/utils/deps.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAEjC,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;AAI1C;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,WAAmB;IAC5D,MAAM,MAAM,GAA+B;QACzC,CAAC,gBAAgB,EAAE,MAAM,CAAC;QAC1B,CAAC,WAAW,EAAE,MAAM,CAAC;QACrB,CAAC,mBAAmB,EAAE,KAAK,CAAC;KAC7B,CAAC;IAEF,KAAK,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,MAAM,EAAE,CAAC;QACpC,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC;YAC1C,OAAO,EAAE,CAAC;QACZ,CAAC;QAAC,MAAM,CAAC;YACP,+BAA+B;QACjC,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,WAAmB,EAAE,WAAmB;IAC/E,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;QAClD,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;QACjD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;QACzD,MAAM,IAAI,GAAG,EAAE,GAAG,GAAG,CAAC,YAAY,EAAE,GAAG,GAAG,CAAC,eAAe,EAAE,CAAC;QAC7D,OAAO,WAAW,IAAI,IAAI,CAAC;IAC7B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,WAAmB,EACnB,WAAmB;IAEnB,MAAM,EAAE,GAAG,MAAM,oBAAoB,CAAC,WAAW,CAAC,CAAC;IAEnD,MAAM,QAAQ,GAA+C;QAC3D,GAAG,
|
|
1
|
+
{"version":3,"file":"deps.js","sourceRoot":"","sources":["../../src/utils/deps.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAEjC,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;AAI1C;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,WAAmB;IAC5D,MAAM,MAAM,GAA+B;QACzC,CAAC,gBAAgB,EAAE,MAAM,CAAC;QAC1B,CAAC,WAAW,EAAE,MAAM,CAAC;QACrB,CAAC,mBAAmB,EAAE,KAAK,CAAC;KAC7B,CAAC;IAEF,KAAK,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,MAAM,EAAE,CAAC;QACpC,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC;YAC1C,OAAO,EAAE,CAAC;QACZ,CAAC;QAAC,MAAM,CAAC;YACP,+BAA+B;QACjC,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,WAAmB,EAAE,WAAmB;IAC/E,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;QAClD,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;QACjD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;QACzD,MAAM,IAAI,GAAG,EAAE,GAAG,GAAG,CAAC,YAAY,EAAE,GAAG,GAAG,CAAC,eAAe,EAAE,CAAC;QAC7D,OAAO,WAAW,IAAI,IAAI,CAAC;IAC7B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,WAAmB,EACnB,WAAmB;IAEnB,MAAM,EAAE,GAAG,MAAM,oBAAoB,CAAC,WAAW,CAAC,CAAC;IAEnD,mEAAmE;IACnE,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC;IAC3C,MAAM,QAAQ,GAA+C;QAC3D,GAAG,EAAG,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAE,CAAC,CAAC,KAAK,EAAG,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;QAC7D,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QACzD,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;KAC1D,CAAC;IAEF,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACjC,MAAM,aAAa,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,CAAC;AACvD,CAAC"}
|