@intlayer/engine 9.5.6 → 9.5.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.
Files changed (63) hide show
  1. package/dist/assets/installSkills/skills/angular.md +19 -68
  2. package/dist/assets/installSkills/skills/astro.md +38 -4
  3. package/dist/assets/installSkills/skills/backend.md +113 -0
  4. package/dist/assets/installSkills/skills/cli.md +29 -25
  5. package/dist/assets/installSkills/skills/compat.md +87 -0
  6. package/dist/assets/installSkills/skills/compiler.md +14 -4
  7. package/dist/assets/installSkills/skills/config.md +15 -5
  8. package/dist/assets/installSkills/skills/content.md +80 -6
  9. package/dist/assets/installSkills/skills/dev-tools.md +82 -0
  10. package/dist/assets/installSkills/skills/lit.md +115 -0
  11. package/dist/assets/installSkills/skills/markdown.md +96 -0
  12. package/dist/assets/installSkills/skills/next-js.md +21 -38
  13. package/dist/assets/installSkills/skills/preact.md +18 -0
  14. package/dist/assets/installSkills/skills/react.md +21 -4
  15. package/dist/assets/installSkills/skills/remix.md +95 -0
  16. package/dist/assets/installSkills/skills/remote-content.md +1 -1
  17. package/dist/assets/installSkills/skills/solid.md +21 -1
  18. package/dist/assets/installSkills/skills/svelte.md +22 -1
  19. package/dist/assets/installSkills/skills/usage.md +28 -0
  20. package/dist/assets/installSkills/skills/vanilla.md +108 -0
  21. package/dist/assets/installSkills/skills/vue.md +22 -0
  22. package/dist/cjs/cli.cjs +2 -0
  23. package/dist/cjs/init/index.cjs +305 -300
  24. package/dist/cjs/init/index.cjs.map +1 -1
  25. package/dist/cjs/init/upgradeIntlayerPackages.cjs +60 -0
  26. package/dist/cjs/init/upgradeIntlayerPackages.cjs.map +1 -0
  27. package/dist/cjs/init/utils/index.cjs +13 -4
  28. package/dist/cjs/init/utils/intlayerDependencies.cjs +119 -0
  29. package/dist/cjs/init/utils/intlayerDependencies.cjs.map +1 -0
  30. package/dist/cjs/init/utils/packageManager.cjs +145 -94
  31. package/dist/cjs/init/utils/packageManager.cjs.map +1 -1
  32. package/dist/cjs/installSkills/index.cjs +110 -19
  33. package/dist/cjs/installSkills/index.cjs.map +1 -1
  34. package/dist/cjs/utils/runOnce.cjs +66 -15
  35. package/dist/cjs/utils/runOnce.cjs.map +1 -1
  36. package/dist/esm/cli.mjs +2 -1
  37. package/dist/esm/init/index.mjs +306 -301
  38. package/dist/esm/init/index.mjs.map +1 -1
  39. package/dist/esm/init/upgradeIntlayerPackages.mjs +57 -0
  40. package/dist/esm/init/upgradeIntlayerPackages.mjs.map +1 -0
  41. package/dist/esm/init/utils/index.mjs +3 -2
  42. package/dist/esm/init/utils/intlayerDependencies.mjs +110 -0
  43. package/dist/esm/init/utils/intlayerDependencies.mjs.map +1 -0
  44. package/dist/esm/init/utils/packageManager.mjs +143 -93
  45. package/dist/esm/init/utils/packageManager.mjs.map +1 -1
  46. package/dist/esm/installSkills/index.mjs +110 -19
  47. package/dist/esm/installSkills/index.mjs.map +1 -1
  48. package/dist/esm/utils/runOnce.mjs +67 -16
  49. package/dist/esm/utils/runOnce.mjs.map +1 -1
  50. package/dist/types/cli.d.ts +2 -1
  51. package/dist/types/init/index.d.ts +9 -6
  52. package/dist/types/init/index.d.ts.map +1 -1
  53. package/dist/types/init/upgradeIntlayerPackages.d.ts +26 -0
  54. package/dist/types/init/upgradeIntlayerPackages.d.ts.map +1 -0
  55. package/dist/types/init/utils/index.d.ts +3 -2
  56. package/dist/types/init/utils/intlayerDependencies.d.ts +66 -0
  57. package/dist/types/init/utils/intlayerDependencies.d.ts.map +1 -0
  58. package/dist/types/init/utils/packageManager.d.ts +44 -19
  59. package/dist/types/init/utils/packageManager.d.ts.map +1 -1
  60. package/dist/types/installSkills/index.d.ts +16 -3
  61. package/dist/types/installSkills/index.d.ts.map +1 -1
  62. package/dist/types/utils/runOnce.d.ts.map +1 -1
  63. package/package.json +7 -7
@@ -69,6 +69,8 @@ export type IntlayerPackageAnalysis = {
69
69
  packagesToInstall: string[];
70
70
  /** Intlayer dev packages that are referenced but not yet installed. */
71
71
  devPackagesToInstall: string[];
72
+ /** Compat packages in dependencies that got replaced and should be moved to devDependencies. */
73
+ packagesToMoveToDev: string[];
72
74
  /**
73
75
  * syncJSON plugin configuration to inject when a compat i18n library is
74
76
  * detected. Undefined when no compat library is present or format is not
@@ -84,9 +86,16 @@ export type IntlayerPackageAnalysis = {
84
86
  };
85
87
  /**
86
88
  * Detects the package manager in use by checking for lock files in the
87
- * project root. Falls back to npm when no lock file is found.
89
+ * project root, then the `packageManager` field of its `package.json`. Falls
90
+ * back to npm when neither is found.
88
91
  */
89
92
  export declare const detectPackageManager: (rootDir: string) => PackageManager;
93
+ /**
94
+ * Walks up from `startDir` to the nearest directory holding a lock file — the
95
+ * workspace root an install must run from. Stops at the repository root
96
+ * (`.git`) and returns `null` when no lock file is found.
97
+ */
98
+ export declare const findLockFileDir: (startDir: string) => string | null;
90
99
  /**
91
100
  * Analyzes existing project dependencies to determine which intlayer packages
92
101
  * are missing and what syncJSON configuration to inject when compat i18n
@@ -100,6 +109,16 @@ export type DetectMissingPackagesOptions = {
100
109
  * dependency the lingui compat setup uses.
101
110
  */
102
111
  linguiCatalogFormat?: 'po' | 'json' | null;
112
+ /**
113
+ * The project's runtime dependencies (from `package.json` `dependencies`).
114
+ * When provided, compat packages found here that are replaced by `@intlayer/*`
115
+ * are reported in `packagesToMoveToDev`.
116
+ */
117
+ dependencies?: Record<string, string>;
118
+ /**
119
+ * The project's development dependencies (from `package.json` `devDependencies`).
120
+ */
121
+ devDependencies?: Record<string, string>;
103
122
  };
104
123
  /** An existing i18n library Intlayer ships a compat adapter for. */
105
124
  export type CompatI18nLibrary = {
@@ -111,6 +130,11 @@ export type CompatI18nLibrary = {
111
130
  * recognized.
112
131
  */
113
132
  packages: readonly string[];
133
+ /**
134
+ * Upstream third-party packages replaced by Intlayer compat adapters at runtime,
135
+ * mapped to their adapter package name.
136
+ */
137
+ replacements: Record<string, string>;
114
138
  };
115
139
  /**
116
140
  * Existing i18n libraries Intlayer can adapt, keyed by the dependencies that
@@ -119,6 +143,19 @@ export type CompatI18nLibrary = {
119
143
  * detection will wire up on its own once its package is in `package.json`.
120
144
  */
121
145
  export declare const COMPAT_I18N_LIBRARIES: readonly CompatI18nLibrary[];
146
+ /**
147
+ * Maps third-party i18n libraries to the Intlayer compat adapter that replaces
148
+ * them at runtime, derived from {@link COMPAT_I18N_LIBRARIES}.
149
+ */
150
+ export declare const COMPAT_PACKAGE_REPLACEMENTS: Record<string, string>;
151
+ /**
152
+ * When a project uses a compat i18n package (such as `next-intl`) that gets
153
+ * replaced by an `@intlayer/*` adapter (e.g. `@intlayer/next-intl`), moves the
154
+ * original package from `dependencies` to `devDependencies` in `package.json`.
155
+ *
156
+ * Returns the list of package names that were moved.
157
+ */
158
+ export declare const moveCompatPackagesToDevDependencies: (packageJson: Record<string, any>) => string[];
122
159
  /**
123
160
  * Returns the labels of the compat i18n libraries present in `dependencies`.
124
161
  *
@@ -153,7 +190,8 @@ export declare const installPackages: (rootDir: string, packages: string[], pack
153
190
  * Matches the core `intlayer` package, every scoped `@intlayer/*` package
154
191
  * (including compat adapters such as `@intlayer/next-intl`) and the framework
155
192
  * runtime integrations that follow the `<framework>-intlayer` convention
156
- * (e.g. `next-intlayer`, `react-intlayer`, `express-intlayer`).
193
+ * (e.g. `next-intlayer`, `react-intlayer`, `express-intlayer`), as well as the
194
+ * `intlayer-*` packages (e.g. `intlayer-editor`).
157
195
  */
158
196
  export declare const isIntlayerPackageName: (packageName: string) => boolean;
159
197
  /**
@@ -165,23 +203,10 @@ export declare const isIntlayerPackageName: (packageName: string) => boolean;
165
203
  */
166
204
  export declare const normalizeVersion: (version?: string) => string | null;
167
205
  /**
168
- * Reads the installed version of a package from its `package.json` inside the
169
- * project's `node_modules`. Returns `null` when the package is not installed or
170
- * its manifest cannot be read.
171
- */
172
- export declare const getInstalledPackageVersion: (rootDir: string, packageName: string) => string | null;
173
- /**
174
- * Returns the Intlayer packages from `dependencies` whose installed version is
175
- * behind `targetVersion` (compared on `major.minor.patch`). Packages that are
176
- * not installed yet are ignored — those are handled by
177
- * {@link detectMissingIntlayerPackages}.
178
- */
179
- export declare const detectOutdatedIntlayerPackages: (rootDir: string, dependencies: Record<string, string>, targetVersion: string) => string[];
180
- /**
181
- * Upgrades the given packages to `targetVersion` synchronously, preserving the
182
- * dependency type via the `isDev` flag. Throws if the install process exits
183
- * with a non-zero code.
206
+ * Runs the package manager install command synchronously, so edited
207
+ * `package.json` ranges are resolved and the lock file updated. Throws if the
208
+ * install process exits with a non-zero code.
184
209
  */
185
- export declare const upgradePackages: (rootDir: string, packages: string[], packageManager: PackageManager, targetVersion: string, isDev?: boolean) => void;
210
+ export declare const runPackageInstall: (rootDir: string, packageManager: PackageManager) => void;
186
211
  //#endregion
187
212
  //# sourceMappingURL=packageManager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"packageManager.d.ts","names":[],"sources":["../../../../src/init/utils/packageManager.ts"],"mappings":";;YAMY;;;;;YAMA;;;;;;;EAOV;;;;;EAKA;;;;;EAKA;;;;;;;;;;;;;;;EAeA;;;;;;;YAQU;;EAEV;;EAEA;;;;;;;;EAQA;;IAEE;;IAEA;;;;YAKQ;;EAEV;;EAEA;;;;;;EAMA,kBAAkB;;;;;;EAMlB,wBAAwB;;;;;;qBAOb,uBAAoB,oBAAsB;;;;;;;YA2C3C;;;;;;EAMV;;;YAIU;;EAEV;;;;;;EAMA;;;;;;;;qBASW,gCAAgC;;;;;;;;;;qBA0EhC,4BAAyB,cACtB;;;;;;;;;;;;qBAiBH,iBAAc,cAAkB;qBAGhC,gCAA6B,iBACvB,wBAAsB,UAC9B,iCACR;;;;;qBAiVU,kBAAe,iBACX,oBACG,gBACF,gBAAc;;;;;;;;;qBAenB,wBAAqB;;;;;;;;qBAYrB,mBAAgB;;;;;;qBAWhB,6BAA0B,iBACtB;;;;;;;qBAwBJ,iCAA8B,iBAC1B,cACD,wBAAsB;;;;;;qBAuBzB,kBAAe,iBACX,oBACG,gBACF,gBAAc,uBACT"}
1
+ {"version":3,"file":"packageManager.d.ts","names":[],"sources":["../../../../src/init/utils/packageManager.ts"],"mappings":";;YAKY;;;;;YAMA;;;;;;;EAOV;;;;;EAKA;;;;;EAKA;;;;;;;;;;;;;;;EAeA;;;;;;;YAQU;;EAEV;;EAEA;;;;;;;;EAQA;;IAEE;;IAEA;;;;YAKQ;;EAEV;;EAEA;;EAEA;;;;;;EAMA,kBAAkB;;;;;;EAMlB,wBAAwB;;;;;;;qBA8Cb,uBAAoB,oBAAsB;;;;;;qBAY1C,kBAAe;;;;;;;YA2ChB;;;;;;EAMV;;;;;;EAMA,eAAe;;;;EAIf,kBAAkB;;;YAIR;;EAEV;;;;;;EAMA;;;;;EAKA,cAAc;;;;;;;;qBASH,gCAAgC;;;;;qBA+GhC,6BAA6B;;;;;;;;qBAc7B,sCAAmC,aACjC;;;;;;;;;;qBA8BF,4BAAyB,cACtB;;;;;;;;;;;;qBAiBH,iBAAc,cAAkB;qBAGhC,gCAA6B,iBACvB,wBAAsB,UAC9B,iCACR;;;;;qBA4VU,kBAAe,iBACX,oBACG,gBACF,gBAAc;;;;;;;;;;qBAgBnB,wBAAqB;;;;;;;;qBAarB,mBAAgB;;;;;;qBAahB,oBAAiB,iBACb,gBACC"}
@@ -5,22 +5,35 @@
5
5
  export declare const SKILLS_METADATA: {
6
6
  readonly Config: 'Intlayer configuration documentation';
7
7
  readonly Content: 'Reference for all Intlayer content node types (t, enu, etc.)';
8
+ readonly Markdown: 'Markdown / rich text content: md(), MDX components, MarkdownProvider, SSR';
8
9
  readonly Usage: 'How to use Intlayer in your project';
9
10
  readonly CLI: 'Intlayer CLI commands and usage';
10
11
  readonly Compiler: 'Intlayer Compiler setup and usage for automatic content extraction without .content files';
11
12
  readonly RemoteContent: 'How to use Intlayer with Remote/CMS/Server-side content';
13
+ readonly DevTools: 'ESLint, LSP, VS Code & Chrome extensions, MCP server and CI/CD';
14
+ readonly Compat: 'Migrate from i18next, next-intl, react-intl, vue-i18n, Lingui… keeping their API';
12
15
  readonly NextJS: 'Next.js-specific usage (Server & Client components)';
13
16
  readonly React: 'React-specific syntax and hooks usage';
14
17
  readonly Vue: 'Vue-specific composables and syntax';
15
18
  readonly Svelte: 'Svelte-specific stores and syntax';
16
19
  readonly Angular: 'Angular-specific syntax and Injectable Function usage';
17
20
  readonly Preact: 'Preact-specific syntax and hooks usage';
18
- readonly Solid: 'Integrates Intlayer internationalization with SolidJS components. Use when the user asks to "setup SolidJS i18n", use the "useIntlayer" hook in Solid, or manage locales in a SolidJS application.';
19
- readonly Astro: 'Astro-specific usage and getIntlayer';
21
+ readonly Solid: 'Solid-specific syntax and hooks usage';
22
+ readonly Astro: 'Astro-specific usage, middleware and islands';
23
+ readonly Lit: 'Lit-specific ReactiveController usage (useIntlayer, useLocale)';
24
+ readonly Vanilla: 'Framework-less JavaScript usage (vanilla-intlayer)';
25
+ readonly Remix: 'Remix 3 router middleware and request-scoped hooks';
26
+ readonly Backend: 'Server-side usage for Express, Fastify, Hono, NestJS, AdonisJS and Elysia';
20
27
  };
21
28
  export type Skill = keyof typeof SKILLS_METADATA;
22
29
  export declare const SKILLS: Skill[];
23
- export declare const getInitialSkills: (deps: Record<string, string>) => (keyof typeof SKILLS_METADATA)[];
30
+ /**
31
+ * Resolves the skills to preselect from the project's installed packages.
32
+ *
33
+ * @param dependencies - Merged `dependencies` and `devDependencies` of `package.json`.
34
+ * @returns The base skills plus every framework skill whose packages are installed.
35
+ */
36
+ export declare const getInitialSkills: (dependencies: Record<string, string>) => Skill[];
24
37
  export interface PlatformMetadata {
25
38
  label: string;
26
39
  dir: string;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../../../src/installSkills/index.ts"],"mappings":";;;;qBASa;WACX;WACA;WACA;WACA;WACA;WAEA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WAEA;;YAGU,qBAAqB;qBAEpB,QAAyC;qBAEzC,mBAAgB,MACrB,yCACS;iBAoBA;EACf;EACA;EACA;;;;;qBAMW,oBAAoB,eAAe;YA6JpC,wBAAwB;qBAEvB,WAA+C;;;;;qBA8G/C,gBAAa,qBACL,UACT,UAAQ,QACV,YACP"}
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../../../src/installSkills/index.ts"],"mappings":";;;;qBASa;WACX;WACA;WACA;WAEA;WACA;WACA;WAEA;WACA;WACA;WAEA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;;YAIU,qBAAqB;qBAEpB,QAAyC;;;;;;;qBAoFzC,mBAAgB,cACb,2BACb;iBAUc;EACf;EACA;EACA;;;;;qBAMW,oBAAoB,eAAe;YA6JpC,wBAAwB;qBAEvB,WAA+C;;;;;qBA8G/C,gBAAa,qBACL,UACT,UAAQ,QACV,YACP"}
@@ -1 +1 @@
1
- {"version":3,"file":"runOnce.d.ts","names":[],"sources":["../../../src/utils/runOnce.ts"],"mappings":";;;;YA4BY;;;;;;;EAOV,iBAAiB;;KAGd;;;;EAIH,0BAA0B;;;;;;EAM1B;;;;;;EAMA;;;;;;;EAOA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBAwKW,UAAO,0BACM,WACb,SAAS,0BAA0B,eAAa,UACjD,mBAAc"}
1
+ {"version":3,"file":"runOnce.d.ts","names":[],"sources":["../../../src/utils/runOnce.ts"],"mappings":";;;;YAmCY;;;;;;;EAOV,iBAAiB;;KAGd;;;;EAIH,0BAA0B;;;;;;EAM1B;;;;;;EAMA;;;;;;;EAOA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBAmPW,UAAO,0BACM,WACb,SAAS,0BAA0B,eAAa,UACjD,mBAAc"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@intlayer/engine",
3
- "version": "9.5.6",
3
+ "version": "9.5.8",
4
4
  "private": false,
5
5
  "description": "Scans and builds Intlayer declaration files into dictionaries based on Intlayer configuration.",
6
6
  "keywords": [
@@ -142,11 +142,11 @@
142
142
  "typecheck": "tsc --noEmit --project tsconfig.types.json"
143
143
  },
144
144
  "dependencies": {
145
- "@intlayer/api": "9.5.6",
146
- "@intlayer/config": "9.5.6",
147
- "@intlayer/core": "9.5.6",
148
- "@intlayer/dictionaries-entry": "9.5.6",
149
- "@intlayer/types": "9.5.6",
145
+ "@intlayer/api": "9.5.8",
146
+ "@intlayer/config": "9.5.8",
147
+ "@intlayer/core": "9.5.8",
148
+ "@intlayer/dictionaries-entry": "9.5.8",
149
+ "@intlayer/types": "9.5.8",
150
150
  "@parcel/watcher": "2.6.0",
151
151
  "defu": "6.1.7",
152
152
  "fast-glob": "3.3.3",
@@ -166,7 +166,7 @@
166
166
  "zod": "4.6.5"
167
167
  },
168
168
  "peerDependencies": {
169
- "@intlayer/babel": "9.5.6"
169
+ "@intlayer/babel": "9.5.8"
170
170
  },
171
171
  "peerDependenciesMeta": {
172
172
  "@intlayer/babel": {