@intlayer/engine 9.5.9 → 9.5.10
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.cjs +7 -0
- package/dist/cjs/docReview/reviewReport.cjs.map +1 -1
- package/dist/cjs/init/cms.cjs +35 -0
- package/dist/cjs/init/cms.cjs.map +1 -1
- package/dist/cjs/init/documentationRouter.cjs +141 -0
- package/dist/cjs/init/documentationRouter.cjs.map +1 -0
- package/dist/cjs/init/frameworkSetup/backend/index.cjs +138 -0
- package/dist/cjs/init/frameworkSetup/backend/index.cjs.map +1 -0
- package/dist/cjs/init/frameworkSetup/backend/transforms.cjs +223 -0
- package/dist/cjs/init/frameworkSetup/backend/transforms.cjs.map +1 -0
- package/dist/cjs/init/frameworkSetup/index.cjs +9 -3
- package/dist/cjs/init/frameworkSetup/index.cjs.map +1 -1
- package/dist/cjs/init/frameworkSetup/localeRouting.cjs +13 -0
- package/dist/cjs/init/frameworkSetup/localeRouting.cjs.map +1 -0
- package/dist/cjs/init/frameworkSetup/nextAppRouter/index.cjs +34 -7
- package/dist/cjs/init/frameworkSetup/nextAppRouter/index.cjs.map +1 -1
- package/dist/cjs/init/frameworkSetup/nextAppRouter/templates.cjs +56 -0
- package/dist/cjs/init/frameworkSetup/nextAppRouter/templates.cjs.map +1 -1
- package/dist/cjs/init/frameworkSetup/nextAppRouter/transforms.cjs +2 -2
- package/dist/cjs/init/frameworkSetup/nextAppRouter/transforms.cjs.map +1 -1
- package/dist/cjs/init/frameworkSetup/tanstackStart/index.cjs +32 -3
- package/dist/cjs/init/frameworkSetup/tanstackStart/index.cjs.map +1 -1
- package/dist/cjs/init/frameworkSetup/tanstackStart/templates.cjs +58 -0
- package/dist/cjs/init/frameworkSetup/tanstackStart/templates.cjs.map +1 -1
- package/dist/cjs/init/frameworkSetup/tanstackStart/transforms.cjs +94 -14
- package/dist/cjs/init/frameworkSetup/tanstackStart/transforms.cjs.map +1 -1
- package/dist/cjs/init/index.cjs +46 -159
- package/dist/cjs/init/index.cjs.map +1 -1
- package/dist/cjs/init/utils/configManipulation.cjs +39 -0
- package/dist/cjs/init/utils/configManipulation.cjs.map +1 -1
- package/dist/cjs/init/utils/index.cjs +10 -0
- package/dist/cjs/init/utils/lintConfig.cjs +52 -0
- package/dist/cjs/init/utils/lintConfig.cjs.map +1 -0
- package/dist/cjs/init/utils/packageManager.cjs +62 -13
- package/dist/cjs/init/utils/packageManager.cjs.map +1 -1
- package/dist/cjs/init/utils/urlRoutingFramework.cjs +41 -0
- package/dist/cjs/init/utils/urlRoutingFramework.cjs.map +1 -0
- package/dist/cjs/initConfig/index.cjs +4 -1
- package/dist/cjs/initConfig/index.cjs.map +1 -1
- package/dist/cjs/loadDictionaries/logTypeScriptErrors.cjs +104 -43
- package/dist/cjs/loadDictionaries/logTypeScriptErrors.cjs.map +1 -1
- package/dist/esm/cli.mjs +5 -3
- package/dist/esm/docReview/reviewReport.mjs.map +1 -1
- package/dist/esm/init/cms.mjs +35 -2
- package/dist/esm/init/cms.mjs.map +1 -1
- package/dist/esm/init/documentationRouter.mjs +139 -0
- package/dist/esm/init/documentationRouter.mjs.map +1 -0
- package/dist/esm/init/frameworkSetup/backend/index.mjs +130 -0
- package/dist/esm/init/frameworkSetup/backend/index.mjs.map +1 -0
- package/dist/esm/init/frameworkSetup/backend/transforms.mjs +216 -0
- package/dist/esm/init/frameworkSetup/backend/transforms.mjs.map +1 -0
- package/dist/esm/init/frameworkSetup/index.mjs +9 -3
- package/dist/esm/init/frameworkSetup/index.mjs.map +1 -1
- package/dist/esm/init/frameworkSetup/localeRouting.mjs +12 -0
- package/dist/esm/init/frameworkSetup/localeRouting.mjs.map +1 -0
- package/dist/esm/init/frameworkSetup/nextAppRouter/index.mjs +36 -9
- package/dist/esm/init/frameworkSetup/nextAppRouter/index.mjs.map +1 -1
- package/dist/esm/init/frameworkSetup/nextAppRouter/templates.mjs +54 -1
- package/dist/esm/init/frameworkSetup/nextAppRouter/templates.mjs.map +1 -1
- package/dist/esm/init/frameworkSetup/nextAppRouter/transforms.mjs +2 -2
- package/dist/esm/init/frameworkSetup/nextAppRouter/transforms.mjs.map +1 -1
- package/dist/esm/init/frameworkSetup/tanstackStart/index.mjs +35 -6
- package/dist/esm/init/frameworkSetup/tanstackStart/index.mjs.map +1 -1
- package/dist/esm/init/frameworkSetup/tanstackStart/templates.mjs +56 -1
- package/dist/esm/init/frameworkSetup/tanstackStart/templates.mjs.map +1 -1
- package/dist/esm/init/frameworkSetup/tanstackStart/transforms.mjs +94 -15
- package/dist/esm/init/frameworkSetup/tanstackStart/transforms.mjs.map +1 -1
- package/dist/esm/init/index.mjs +42 -158
- package/dist/esm/init/index.mjs.map +1 -1
- package/dist/esm/init/utils/configManipulation.mjs +38 -1
- package/dist/esm/init/utils/configManipulation.mjs.map +1 -1
- package/dist/esm/init/utils/index.mjs +5 -3
- package/dist/esm/init/utils/lintConfig.mjs +50 -0
- package/dist/esm/init/utils/lintConfig.mjs.map +1 -0
- package/dist/esm/init/utils/packageManager.mjs +60 -14
- package/dist/esm/init/utils/packageManager.mjs.map +1 -1
- package/dist/esm/init/utils/urlRoutingFramework.mjs +40 -0
- package/dist/esm/init/utils/urlRoutingFramework.mjs.map +1 -0
- package/dist/esm/initConfig/index.mjs +4 -1
- package/dist/esm/initConfig/index.mjs.map +1 -1
- package/dist/esm/loadDictionaries/logTypeScriptErrors.mjs +105 -44
- package/dist/esm/loadDictionaries/logTypeScriptErrors.mjs.map +1 -1
- package/dist/types/cli.d.ts +5 -3
- package/dist/types/docReview/reviewReport.d.ts.map +1 -1
- package/dist/types/formatDictionary.d.ts +2 -2
- package/dist/types/init/cms.d.ts +11 -0
- package/dist/types/init/cms.d.ts.map +1 -1
- package/dist/types/init/documentationRouter.d.ts +64 -0
- package/dist/types/init/documentationRouter.d.ts.map +1 -0
- package/dist/types/init/frameworkSetup/backend/index.d.ts +16 -0
- package/dist/types/init/frameworkSetup/backend/index.d.ts.map +1 -0
- package/dist/types/init/frameworkSetup/backend/transforms.d.ts +37 -0
- package/dist/types/init/frameworkSetup/backend/transforms.d.ts.map +1 -0
- package/dist/types/init/frameworkSetup/index.d.ts.map +1 -1
- package/dist/types/init/frameworkSetup/localeRouting.d.ts +11 -0
- package/dist/types/init/frameworkSetup/localeRouting.d.ts.map +1 -0
- package/dist/types/init/frameworkSetup/nextAppRouter/index.d.ts +5 -5
- package/dist/types/init/frameworkSetup/nextAppRouter/index.d.ts.map +1 -1
- package/dist/types/init/frameworkSetup/nextAppRouter/templates.d.ts +12 -0
- package/dist/types/init/frameworkSetup/nextAppRouter/templates.d.ts.map +1 -1
- package/dist/types/init/frameworkSetup/nextAppRouter/transforms.d.ts +10 -1
- package/dist/types/init/frameworkSetup/nextAppRouter/transforms.d.ts.map +1 -1
- package/dist/types/init/frameworkSetup/tanstackStart/index.d.ts +3 -2
- package/dist/types/init/frameworkSetup/tanstackStart/index.d.ts.map +1 -1
- package/dist/types/init/frameworkSetup/tanstackStart/templates.d.ts +10 -0
- package/dist/types/init/frameworkSetup/tanstackStart/templates.d.ts.map +1 -1
- package/dist/types/init/frameworkSetup/tanstackStart/transforms.d.ts +12 -0
- package/dist/types/init/frameworkSetup/tanstackStart/transforms.d.ts.map +1 -1
- package/dist/types/init/frameworkSetup/types.d.ts +6 -0
- package/dist/types/init/frameworkSetup/types.d.ts.map +1 -1
- package/dist/types/init/index.d.ts +15 -1
- package/dist/types/init/index.d.ts.map +1 -1
- package/dist/types/init/utils/configManipulation.d.ts +14 -0
- package/dist/types/init/utils/configManipulation.d.ts.map +1 -1
- package/dist/types/init/utils/index.d.ts +5 -3
- package/dist/types/init/utils/lintConfig.d.ts +28 -0
- package/dist/types/init/utils/lintConfig.d.ts.map +1 -0
- package/dist/types/init/utils/packageManager.d.ts +29 -6
- package/dist/types/init/utils/packageManager.d.ts.map +1 -1
- package/dist/types/init/utils/urlRoutingFramework.d.ts +9 -0
- package/dist/types/init/utils/urlRoutingFramework.d.ts.map +1 -0
- package/dist/types/initConfig/index.d.ts +3 -1
- package/dist/types/initConfig/index.d.ts.map +1 -1
- package/dist/types/loadDictionaries/logTypeScriptErrors.d.ts +4 -0
- package/dist/types/loadDictionaries/logTypeScriptErrors.d.ts.map +1 -1
- package/package.json +8 -8
package/dist/cjs/init/index.cjs
CHANGED
|
@@ -4,146 +4,27 @@ const require_init_utils_configManipulation = require('./utils/configManipulatio
|
|
|
4
4
|
const require_init_utils_fileSystem = require('./utils/fileSystem.cjs');
|
|
5
5
|
const require_init_cms = require('./cms.cjs');
|
|
6
6
|
const require_initConfig_index = require('../initConfig/index.cjs');
|
|
7
|
+
const require_init_documentationRouter = require('./documentationRouter.cjs');
|
|
7
8
|
const require_init_frameworkSetup_index = require('./frameworkSetup/index.cjs');
|
|
8
9
|
const require_init_utils_devScript = require('./utils/devScript.cjs');
|
|
9
10
|
const require_init_utils_packageManager = require('./utils/packageManager.cjs');
|
|
10
11
|
const require_init_utils_githubActions = require('./utils/githubActions.cjs');
|
|
11
12
|
const require_init_utils_jsonParser = require('./utils/jsonParser.cjs');
|
|
13
|
+
const require_init_utils_lintConfig = require('./utils/lintConfig.cjs');
|
|
12
14
|
const require_init_utils_nextCompilerBabel = require('./utils/nextCompilerBabel.cjs');
|
|
13
15
|
const require_init_utils_tsConfig = require('./utils/tsConfig.cjs');
|
|
16
|
+
const require_init_utils_urlRoutingFramework = require('./utils/urlRoutingFramework.cjs');
|
|
14
17
|
const require_init_upgradeIntlayerPackages = require('./upgradeIntlayerPackages.cjs');
|
|
15
18
|
let node_path = require("node:path");
|
|
16
19
|
let _intlayer_config_colors = require("@intlayer/config/colors");
|
|
17
20
|
_intlayer_config_colors = require_runtime.__toESM(_intlayer_config_colors);
|
|
18
21
|
let _intlayer_config_logger = require("@intlayer/config/logger");
|
|
19
22
|
let _intlayer_config_node = require("@intlayer/config/node");
|
|
23
|
+
let _intlayer_config_defaultValues = require("@intlayer/config/defaultValues");
|
|
20
24
|
let _intlayer_config_utils = require("@intlayer/config/utils");
|
|
21
25
|
|
|
22
26
|
//#region src/init/index.ts
|
|
23
27
|
/**
|
|
24
|
-
* Documentation URL Constants
|
|
25
|
-
*/
|
|
26
|
-
const DocumentationRouter = {
|
|
27
|
-
NextJS: "https://intlayer.org/doc/environment/nextjs.md",
|
|
28
|
-
NextJS_15: "https://intlayer.org/doc/environment/nextjs/15.md",
|
|
29
|
-
NextJS_14: "https://intlayer.org/doc/environment/nextjs/14.md",
|
|
30
|
-
CRA: "https://intlayer.org/doc/environment/create-react-app.md",
|
|
31
|
-
Astro: "https://intlayer.org/doc/environment/astro.md",
|
|
32
|
-
ViteAndReact: "https://intlayer.org/doc/environment/vite-and-react.md",
|
|
33
|
-
ViteAndReact_ReactRouterV7: "https://intlayer.org/doc/environment/vite-and-react/react-router-v7.md",
|
|
34
|
-
ViteAndVue: "https://intlayer.org/doc/environment/vite-and-vue.md",
|
|
35
|
-
ViteAndSolid: "https://intlayer.org/doc/environment/vite-and-solid.md",
|
|
36
|
-
ViteAndSvelte: "https://intlayer.org/doc/environment/vite-and-svelte.md",
|
|
37
|
-
ViteAndPreact: "https://intlayer.org/doc/environment/vite-and-preact.md",
|
|
38
|
-
ViteAndLit: "https://intlayer.org/doc/environment/vite-and-lit.md",
|
|
39
|
-
ViteAndVanilla: "https://intlayer.org/doc/environment/vite-and-vanilla.md",
|
|
40
|
-
Vanilla: "https://intlayer.org/doc/environment/vanilla.md",
|
|
41
|
-
TanStackRouter: "https://intlayer.org/doc/environment/tanstack-start.md",
|
|
42
|
-
TanStackRouterAndSolid: "https://intlayer.org/doc/environment/tanstack-start/solid.md",
|
|
43
|
-
SolidStart: "https://intlayer.org/doc/environment/solid-start.md",
|
|
44
|
-
Analog: "https://intlayer.org/doc/environment/analog.md",
|
|
45
|
-
Remix: "https://intlayer.org/doc/environment/remix-3.md",
|
|
46
|
-
NuxtAndVue: "https://intlayer.org/doc/environment/nuxt-and-vue.md",
|
|
47
|
-
Angular: "https://intlayer.org/doc/environment/angular.md",
|
|
48
|
-
SvelteKit: "https://intlayer.org/doc/environment/sveltekit.md",
|
|
49
|
-
ReactNativeAndExpo: "https://intlayer.org/doc/environment/react-native-and-expo.md",
|
|
50
|
-
Lynx: "https://intlayer.org/doc/environment/lynx-and-react.md",
|
|
51
|
-
Express: "https://intlayer.org/doc/environment/express.md",
|
|
52
|
-
NestJS: "https://intlayer.org/doc/environment/nest.md",
|
|
53
|
-
Fastify: "https://intlayer.org/doc/environment/fastify.md",
|
|
54
|
-
Hono: "https://intlayer.org/doc/environment/hono.md",
|
|
55
|
-
AdonisJS: "https://intlayer.org/doc/environment/adonisjs.md",
|
|
56
|
-
Elysia: "https://intlayer.org/doc/environment/elysia.md",
|
|
57
|
-
Default: "https://intlayer.org/doc/get-started",
|
|
58
|
-
LSP: "https://intlayer.org/doc/lsp.md",
|
|
59
|
-
ESLint: "https://intlayer.org/doc/eslint.md",
|
|
60
|
-
NextIntl: "https://intlayer.org/blog/intlayer-with-next-intl.md",
|
|
61
|
-
ReactI18Next: "https://intlayer.org/blog/intlayer-with-react-i18next.md",
|
|
62
|
-
ReactIntl: "https://intlayer.org/blog/intlayer-with-react-intl.md",
|
|
63
|
-
NextI18Next: "https://intlayer.org/blog/intlayer-with-next-i18next.md",
|
|
64
|
-
VueI18n: "https://intlayer.org/blog/intlayer-with-vue-i18n.md"
|
|
65
|
-
};
|
|
66
|
-
/**
|
|
67
|
-
* The Intlayer lint setup, as `intlayer init` writes it into `.oxlintrc.json`.
|
|
68
|
-
*
|
|
69
|
-
* Declared locally on purpose: `@intlayer/engine` is installed by every Intlayer
|
|
70
|
-
* user, so it must not depend on a lint plugin to write a handful of strings
|
|
71
|
-
* into a JSON file. oxlint resolves a plugin's *rules* but not its shipped
|
|
72
|
-
* *configs*, so the preset cannot be referenced by name there either.
|
|
73
|
-
*
|
|
74
|
-
* Mirrors the `recommended` preset of `eslint-plugin-intlayer`; keep in sync
|
|
75
|
-
* when a rule is enabled by default there.
|
|
76
|
-
*/
|
|
77
|
-
const LINT_PLUGIN_PACKAGE_NAME = "eslint-plugin-intlayer";
|
|
78
|
-
/** Intlayer's generated output — never source, never worth linting. */
|
|
79
|
-
const GENERATED_OUTPUT_GLOBS = ["**/.intlayer/**"];
|
|
80
|
-
/** Rules of the `recommended` preset, prefixed by the plugin namespace. */
|
|
81
|
-
const getRecommendedRules = () => ({
|
|
82
|
-
"intlayer/no-raw-text": "warn",
|
|
83
|
-
"intlayer/static-dictionary-key": "error",
|
|
84
|
-
"intlayer/no-dynamic-field-access": "error"
|
|
85
|
-
});
|
|
86
|
-
/**
|
|
87
|
-
* Helper: Detects the environment and returns the doc URL
|
|
88
|
-
*/
|
|
89
|
-
const getDocumentationUrl = (packageJson) => {
|
|
90
|
-
const deps = {
|
|
91
|
-
...packageJson.dependencies,
|
|
92
|
-
...packageJson.devDependencies
|
|
93
|
-
};
|
|
94
|
-
/**
|
|
95
|
-
* Helper to check if a version string matches a specific major version
|
|
96
|
-
* Matches: "15", "^15.0.0", "~15.2", "15.0.0-beta"
|
|
97
|
-
*/
|
|
98
|
-
const isVersion = (versionString, major) => {
|
|
99
|
-
if (!versionString || typeof versionString !== "string") return false;
|
|
100
|
-
return new RegExp(`^[\\^~]?${major}(?:\\.|$)`).test(versionString);
|
|
101
|
-
};
|
|
102
|
-
if (deps["@lynx-js/react"] || deps["@lynx-js/core"]) return DocumentationRouter.Lynx;
|
|
103
|
-
if (deps["react-native"] || deps.expo) return DocumentationRouter.ReactNativeAndExpo;
|
|
104
|
-
if (deps.next) {
|
|
105
|
-
const version = deps.next;
|
|
106
|
-
if (isVersion(version, 14)) return DocumentationRouter.NextJS_14;
|
|
107
|
-
if (isVersion(version, 15)) return DocumentationRouter.NextJS_15;
|
|
108
|
-
return DocumentationRouter.NextJS;
|
|
109
|
-
}
|
|
110
|
-
if (deps.nuxt) return DocumentationRouter.NuxtAndVue;
|
|
111
|
-
if (deps.astro) return DocumentationRouter.Astro;
|
|
112
|
-
if (deps["@sveltejs/kit"]) return DocumentationRouter.SvelteKit;
|
|
113
|
-
if (deps["@analogjs/platform"]) return DocumentationRouter.Analog;
|
|
114
|
-
if (deps["@solidjs/start"]) return DocumentationRouter.SolidStart;
|
|
115
|
-
if (deps.remix || deps["remix-intlayer"]) return DocumentationRouter.Remix;
|
|
116
|
-
if (deps["@tanstack/react-router"]) return DocumentationRouter.TanStackRouter;
|
|
117
|
-
if (deps["@tanstack/solid-router"]) return DocumentationRouter.TanStackRouterAndSolid;
|
|
118
|
-
const reactRouterVersion = deps["react-router"];
|
|
119
|
-
if (typeof reactRouterVersion === "string" && (deps["@react-router/fs-routes"] || isVersion(reactRouterVersion, 7))) return DocumentationRouter.ViteAndReact_ReactRouterV7;
|
|
120
|
-
if (deps.vite) {
|
|
121
|
-
if (deps.vue) return DocumentationRouter.ViteAndVue;
|
|
122
|
-
if (deps["solid-js"]) return DocumentationRouter.ViteAndSolid;
|
|
123
|
-
if (deps.svelte) return DocumentationRouter.ViteAndSvelte;
|
|
124
|
-
if (deps.preact) return DocumentationRouter.ViteAndPreact;
|
|
125
|
-
if (deps.lit) return DocumentationRouter.ViteAndLit;
|
|
126
|
-
if (deps["vanilla-intlayer"]) return DocumentationRouter.ViteAndVanilla;
|
|
127
|
-
return DocumentationRouter.ViteAndReact;
|
|
128
|
-
}
|
|
129
|
-
if (deps["react-scripts"]) return DocumentationRouter.CRA;
|
|
130
|
-
if (deps["@angular/core"]) return DocumentationRouter.Angular;
|
|
131
|
-
if (deps.lit) return DocumentationRouter.ViteAndLit;
|
|
132
|
-
if (deps["vanilla-intlayer"]) return DocumentationRouter.Vanilla;
|
|
133
|
-
if (deps["@nestjs/core"]) return DocumentationRouter.NestJS;
|
|
134
|
-
if (deps["@adonisjs/core"]) return DocumentationRouter.AdonisJS;
|
|
135
|
-
if (deps.elysia) return DocumentationRouter.Elysia;
|
|
136
|
-
if (deps.hono) return DocumentationRouter.Hono;
|
|
137
|
-
if (deps.express) return DocumentationRouter.Express;
|
|
138
|
-
if (deps.fastify) return DocumentationRouter.Fastify;
|
|
139
|
-
if (deps["next-intl"]) return DocumentationRouter.NextIntl;
|
|
140
|
-
if (deps["react-i18next"] || deps.i18next) return DocumentationRouter.ReactI18Next;
|
|
141
|
-
if (deps["react-intl"]) return DocumentationRouter.ReactIntl;
|
|
142
|
-
if (deps["next-i18next"]) return DocumentationRouter.NextI18Next;
|
|
143
|
-
if (deps["vue-i18n"]) return DocumentationRouter.VueI18n;
|
|
144
|
-
return DocumentationRouter.Default;
|
|
145
|
-
};
|
|
146
|
-
/**
|
|
147
28
|
* Resolves the default dev-server URL of the detected framework, used as the
|
|
148
29
|
* `editor.applicationURL` of the generated configuration file. Frameworks that
|
|
149
30
|
* embed Vite (Astro, SvelteKit, …) are checked before the bare Vite fallback so
|
|
@@ -177,7 +58,7 @@ const initIntlayer = async (rootDir, options) => {
|
|
|
177
58
|
(0, _intlayer_config_logger.logger)(`${_intlayer_config_logger.x} Could not parse ${(0, _intlayer_config_logger.colorizePath)("package.json")}.`, { level: "error" });
|
|
178
59
|
process.exit(1);
|
|
179
60
|
}
|
|
180
|
-
const guideUrl = getDocumentationUrl(packageJson);
|
|
61
|
+
const guideUrl = require_init_documentationRouter.getDocumentationUrl(packageJson);
|
|
181
62
|
const allDeps = {
|
|
182
63
|
...packageJson.dependencies ?? {},
|
|
183
64
|
...packageJson.devDependencies ?? {}
|
|
@@ -193,11 +74,14 @@ const initIntlayer = async (rootDir, options) => {
|
|
|
193
74
|
const linguiPresent = Boolean(allDeps["@lingui/core"] || allDeps["@lingui/react"] || allDeps["@intlayer/lingui"]);
|
|
194
75
|
const linguiCatalog = linguiPresent ? await require_init_utils_fileSystem.detectLinguiCatalogPattern(rootDir) : null;
|
|
195
76
|
const linguiCatalogFormat = linguiCatalog?.format ?? (linguiPresent ? "po" : null);
|
|
196
|
-
const { packagesToInstall, devPackagesToInstall, compatSyncConfig, compatVitePluginConfig } = require_init_utils_packageManager.detectMissingIntlayerPackages(allDeps, {
|
|
77
|
+
const { packagesToInstall, devPackagesToInstall, compatSyncConfig, compatVitePluginConfig, pendingCompatAdapters } = require_init_utils_packageManager.detectMissingIntlayerPackages(allDeps, {
|
|
197
78
|
linguiCatalogFormat,
|
|
198
79
|
dependencies: packageJson.dependencies,
|
|
199
80
|
devDependencies: packageJson.devDependencies
|
|
200
81
|
});
|
|
82
|
+
/** Whether the compat adapter for a library is not released yet. */
|
|
83
|
+
const isCompatAdapterPending = (adapterPackage) => pendingCompatAdapters.includes(adapterPackage);
|
|
84
|
+
if (pendingCompatAdapters.length > 0) (0, _intlayer_config_logger.logger)(`${_intlayer_config_logger.x} No released Intlayer adapter yet for ${pendingCompatAdapters.map((adapterPackage) => (0, _intlayer_config_logger.colorize)(adapterPackage, _intlayer_config_colors.MAGENTA)).join(", ")} — keeping your current i18n library and only syncing its catalogs with Intlayer.`, { level: "warn" });
|
|
201
85
|
const wantsJsonNamespaces = options?.contentStrategy === "json-namespaces" && !compatSyncConfig;
|
|
202
86
|
if (wantsJsonNamespaces && !allDeps["@intlayer/sync-json-plugin"] && !devPackagesToInstall.includes("@intlayer/sync-json-plugin")) devPackagesToInstall.push("@intlayer/sync-json-plugin");
|
|
203
87
|
if (!options?.noInstallPackages) {
|
|
@@ -223,7 +107,7 @@ const initIntlayer = async (rootDir, options) => {
|
|
|
223
107
|
await require_init_upgradeIntlayerPackages.upgradeIntlayerPackages(rootDir);
|
|
224
108
|
}
|
|
225
109
|
const gitignorePath = ".gitignore";
|
|
226
|
-
if (!options?.noGitignore && await require_init_utils_fileSystem.exists(rootDir, gitignorePath)) {
|
|
110
|
+
if (!options?.noGitignore && !options?.noFrameworkSetup && await require_init_utils_fileSystem.exists(rootDir, gitignorePath)) {
|
|
227
111
|
const gitignoreContent = await require_init_utils_fileSystem.readFileFromRoot(rootDir, gitignorePath);
|
|
228
112
|
if (!gitignoreContent.includes("intlayer")) {
|
|
229
113
|
const newContent = `${gitignoreContent}\n# Intlayer\n.intlayer\n`;
|
|
@@ -289,39 +173,25 @@ const initIntlayer = async (rootDir, options) => {
|
|
|
289
173
|
} catch {
|
|
290
174
|
(0, _intlayer_config_logger.logger)(`${_intlayer_config_logger.x} Could not update ${(0, _intlayer_config_logger.colorizePath)(settingsJsonPath)}. You may need to add the LSP settings manually.`, { level: "warn" });
|
|
291
175
|
}
|
|
176
|
+
if (!options?.noEslint && require_init_utils_packageManager.hasLegacyEslint(allDeps)) (0, _intlayer_config_logger.logger)(`${_intlayer_config_logger.x} ${(0, _intlayer_config_logger.colorize)(require_init_utils_lintConfig.LINT_PLUGIN_PACKAGE_NAME, _intlayer_config_colors.MAGENTA)} needs ESLint ${9}+ (flat config) — skipped the Intlayer lint rules. Upgrade ESLint to enable them: ${(0, _intlayer_config_logger.colorizePath)(require_init_documentationRouter.DocumentationRouter.ESLint)}`, { level: "warn" });
|
|
292
177
|
if (!options?.noEslint && require_init_utils_packageManager.hasLintTooling(allDeps)) {
|
|
293
178
|
const oxlintConfigPath = ".oxlintrc.json";
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
oxlintConfig.
|
|
298
|
-
oxlintConfig
|
|
299
|
-
oxlintConfig.ignorePatterns ??= [];
|
|
300
|
-
let oxlintUpdated = false;
|
|
301
|
-
for (const glob of GENERATED_OUTPUT_GLOBS) if (!oxlintConfig.ignorePatterns.includes(glob)) {
|
|
302
|
-
oxlintConfig.ignorePatterns.push(glob);
|
|
303
|
-
oxlintUpdated = true;
|
|
304
|
-
}
|
|
305
|
-
if (!oxlintConfig.jsPlugins.includes(LINT_PLUGIN_PACKAGE_NAME)) {
|
|
306
|
-
oxlintConfig.jsPlugins.push(LINT_PLUGIN_PACKAGE_NAME);
|
|
307
|
-
oxlintUpdated = true;
|
|
308
|
-
}
|
|
309
|
-
for (const [ruleName, severity] of Object.entries(getRecommendedRules())) if (!oxlintConfig.rules[ruleName]) {
|
|
310
|
-
oxlintConfig.rules[ruleName] = severity;
|
|
311
|
-
oxlintUpdated = true;
|
|
312
|
-
}
|
|
313
|
-
if (oxlintUpdated) {
|
|
179
|
+
const hasOxlintConfig = await require_init_utils_fileSystem.exists(rootDir, oxlintConfigPath);
|
|
180
|
+
const shouldCreateOxlintConfig = !hasOxlintConfig && Boolean(allDeps.oxlint) && !allDeps.eslint;
|
|
181
|
+
if (hasOxlintConfig || shouldCreateOxlintConfig) try {
|
|
182
|
+
const oxlintConfig = hasOxlintConfig ? require_init_utils_jsonParser.parseJSONWithComments(await require_init_utils_fileSystem.readFileFromRoot(rootDir, oxlintConfigPath)) : {};
|
|
183
|
+
if (require_init_utils_lintConfig.addIntlayerRulesToOxlintConfig(oxlintConfig)) {
|
|
314
184
|
await require_init_utils_fileSystem.writeFileToRoot(rootDir, oxlintConfigPath, JSON.stringify(oxlintConfig, null, 2));
|
|
315
|
-
(0, _intlayer_config_logger.logger)(`${_intlayer_config_logger.v} Added the Intlayer lint rules to ${(0, _intlayer_config_logger.colorizePath)(oxlintConfigPath)}`);
|
|
185
|
+
(0, _intlayer_config_logger.logger)(`${_intlayer_config_logger.v} ${hasOxlintConfig ? "Added the Intlayer lint rules to" : "Created"} ${(0, _intlayer_config_logger.colorizePath)(oxlintConfigPath)}`);
|
|
316
186
|
} else (0, _intlayer_config_logger.logger)(`${_intlayer_config_logger.v} ${(0, _intlayer_config_logger.colorizePath)(oxlintConfigPath)} already includes the Intlayer lint rules`);
|
|
317
187
|
} catch {
|
|
318
|
-
(0, _intlayer_config_logger.logger)(`${_intlayer_config_logger.x} Could not update ${(0, _intlayer_config_logger.colorizePath)(oxlintConfigPath)}. You may need to add ${(0, _intlayer_config_logger.colorize)(LINT_PLUGIN_PACKAGE_NAME, _intlayer_config_colors.MAGENTA)} manually.`, { level: "warn" });
|
|
188
|
+
(0, _intlayer_config_logger.logger)(`${_intlayer_config_logger.x} Could not update ${(0, _intlayer_config_logger.colorizePath)(oxlintConfigPath)}. You may need to add ${(0, _intlayer_config_logger.colorize)(require_init_utils_lintConfig.LINT_PLUGIN_PACKAGE_NAME, _intlayer_config_colors.MAGENTA)} manually.`, { level: "warn" });
|
|
319
189
|
}
|
|
320
190
|
else (0, _intlayer_config_logger.logger)([
|
|
321
191
|
(0, _intlayer_config_logger.colorize)("Intlayer lint rules →", _intlayer_config_colors.MAGENTA),
|
|
322
|
-
(0, _intlayer_config_logger.colorize)(`Add ${LINT_PLUGIN_PACKAGE_NAME} to your ESLint flat config to catch hardcoded text and dynamic calls the compiler cannot optimize:`, _intlayer_config_colors.GREY_LIGHT),
|
|
323
|
-
(0, _intlayer_config_logger.colorize)(` import intlayer from '${LINT_PLUGIN_PACKAGE_NAME}';\n export default [...intlayer.configs.recommended];`, _intlayer_config_colors.GREY_LIGHT),
|
|
324
|
-
(0, _intlayer_config_logger.colorizePath)(DocumentationRouter.ESLint)
|
|
192
|
+
(0, _intlayer_config_logger.colorize)(`Add the ${require_init_utils_lintConfig.LINT_PLUGIN_PACKAGE_NAME} preset to the array your ESLint flat config exports, to catch hardcoded text and dynamic calls the compiler cannot optimize:`, _intlayer_config_colors.GREY_LIGHT),
|
|
193
|
+
(0, _intlayer_config_logger.colorize)(` import intlayer from '${require_init_utils_lintConfig.LINT_PLUGIN_PACKAGE_NAME}';\n\n export default [\n // ...your existing config\n ...intlayer.configs.recommended,\n ];`, _intlayer_config_colors.GREY_LIGHT),
|
|
194
|
+
(0, _intlayer_config_logger.colorizePath)(require_init_documentationRouter.DocumentationRouter.ESLint)
|
|
325
195
|
]);
|
|
326
196
|
}
|
|
327
197
|
if (!options?.noFrameworkSetup) {
|
|
@@ -348,7 +218,7 @@ const initIntlayer = async (rootDir, options) => {
|
|
|
348
218
|
}
|
|
349
219
|
const format = hasTsConfig ? "intlayer.config.ts" : "intlayer.config.mjs";
|
|
350
220
|
const detectedPattern = await require_init_utils_fileSystem.detectJsonLocalePattern(rootDir);
|
|
351
|
-
await require_initConfig_index.initConfig(format, rootDir, {
|
|
221
|
+
const isConfigCreated = await require_initConfig_index.initConfig(format, rootDir, {
|
|
352
222
|
locales: detectedPattern?.locales,
|
|
353
223
|
applicationURL: getDefaultApplicationURL(allDeps)
|
|
354
224
|
});
|
|
@@ -383,7 +253,14 @@ const initIntlayer = async (rootDir, options) => {
|
|
|
383
253
|
break;
|
|
384
254
|
}
|
|
385
255
|
}
|
|
386
|
-
|
|
256
|
+
const hasUrlRouting = require_init_utils_urlRoutingFramework.hasUrlRoutingFramework(allDeps);
|
|
257
|
+
const hasCompatI18nLibrary = require_init_utils_packageManager.detectCompatI18nLibraries(allDeps).length > 0;
|
|
258
|
+
const shouldApplyDefaultRouting = isConfigCreated && options?.routingMode === void 0 && !hasCompatI18nLibrary;
|
|
259
|
+
if (shouldApplyDefaultRouting && !hasUrlRouting) await require_init_cms.setRoutingStorageOnlyInConfig(rootDir);
|
|
260
|
+
const routingMode = options?.routingMode ?? (shouldApplyDefaultRouting && hasUrlRouting ? _intlayer_config_defaultValues.ROUTING_MODE : void 0);
|
|
261
|
+
const enableProxy = options?.enableProxy ?? (shouldApplyDefaultRouting && hasUrlRouting ? true : void 0);
|
|
262
|
+
if (routingMode) await require_init_cms.setRoutingModeInConfig(rootDir, routingMode);
|
|
263
|
+
if (enableProxy !== void 0) await require_init_cms.setEnableProxyInConfig(rootDir, enableProxy);
|
|
387
264
|
let hasAliasConfiguration = false;
|
|
388
265
|
for (const file of [
|
|
389
266
|
"vite.config.ts",
|
|
@@ -436,7 +313,8 @@ const initIntlayer = async (rootDir, options) => {
|
|
|
436
313
|
await require_init_utils_fileSystem.writeFileToRoot(rootDir, file, updatedContent);
|
|
437
314
|
(0, _intlayer_config_logger.logger)(`${_intlayer_config_logger.v} Updated ${(0, _intlayer_config_logger.colorizePath)(file)} to include Intlayer next-intl compat plugin`);
|
|
438
315
|
} else (0, _intlayer_config_logger.logger)(`${_intlayer_config_logger.v} ${(0, _intlayer_config_logger.colorizePath)(file)} already includes @intlayer/next-intl/plugin`);
|
|
439
|
-
} else if (
|
|
316
|
+
} else if (isCompatAdapterPending("@intlayer/next-translate")) (0, _intlayer_config_logger.logger)(`${_intlayer_config_logger.v} Kept ${(0, _intlayer_config_logger.colorizePath)(file)} untouched (next-translate stays in charge)`);
|
|
317
|
+
else if (allDeps["next-translate"] || allDeps["@intlayer/next-translate"]) {
|
|
440
318
|
if (!content.includes("@intlayer/next-translate")) {
|
|
441
319
|
const updatedContent = require_init_utils_configManipulation.updateNextConfigForNextTranslate(content, extension);
|
|
442
320
|
await require_init_utils_fileSystem.writeFileToRoot(rootDir, file, updatedContent);
|
|
@@ -476,7 +354,8 @@ const initIntlayer = async (rootDir, options) => {
|
|
|
476
354
|
for (const file of ["nuxt.config.js", "nuxt.config.ts"]) if (await require_init_utils_fileSystem.exists(rootDir, file)) {
|
|
477
355
|
hasAliasConfiguration = true;
|
|
478
356
|
const content = await require_init_utils_fileSystem.readFileFromRoot(rootDir, file);
|
|
479
|
-
if (
|
|
357
|
+
if (isCompatAdapterPending("@intlayer/nuxtjs-i18n")) (0, _intlayer_config_logger.logger)(`${_intlayer_config_logger.v} Kept ${(0, _intlayer_config_logger.colorizePath)(file)} untouched (@nuxtjs/i18n stays in charge)`);
|
|
358
|
+
else if (allDeps["@nuxtjs/i18n"]) {
|
|
480
359
|
if (!content.includes("@intlayer/nuxtjs-i18n")) {
|
|
481
360
|
const updatedContent = require_init_utils_configManipulation.updateNuxtConfigForNuxtjsI18n(content);
|
|
482
361
|
await require_init_utils_fileSystem.writeFileToRoot(rootDir, file, updatedContent);
|
|
@@ -511,7 +390,7 @@ const initIntlayer = async (rootDir, options) => {
|
|
|
511
390
|
if (updatedContent !== content) {
|
|
512
391
|
await require_init_utils_fileSystem.writeFileToRoot(rootDir, metroConfigFile, updatedContent);
|
|
513
392
|
(0, _intlayer_config_logger.logger)(`${_intlayer_config_logger.v} Updated ${(0, _intlayer_config_logger.colorizePath)(metroConfigFile)} to include the Intlayer Metro plugin`);
|
|
514
|
-
} else (0, _intlayer_config_logger.logger)(`${_intlayer_config_logger.x} Could not automatically update ${(0, _intlayer_config_logger.colorizePath)(metroConfigFile)}. Wrap your exported config with ${(0, _intlayer_config_logger.colorize)("configMetroIntlayer", _intlayer_config_colors.MAGENTA)}: ${(0, _intlayer_config_logger.colorizePath)(DocumentationRouter.ReactNativeAndExpo)}`, { level: "warn" });
|
|
393
|
+
} else (0, _intlayer_config_logger.logger)(`${_intlayer_config_logger.x} Could not automatically update ${(0, _intlayer_config_logger.colorizePath)(metroConfigFile)}. Wrap your exported config with ${(0, _intlayer_config_logger.colorize)("configMetroIntlayer", _intlayer_config_colors.MAGENTA)}: ${(0, _intlayer_config_logger.colorizePath)(require_init_documentationRouter.DocumentationRouter.ReactNativeAndExpo)}`, { level: "warn" });
|
|
515
394
|
}
|
|
516
395
|
} else {
|
|
517
396
|
const newMetroConfigFile = "metro.config.js";
|
|
@@ -610,27 +489,35 @@ const initIntlayer = async (rootDir, options) => {
|
|
|
610
489
|
const hasCompatLibrary = Boolean(compatSyncConfig || compatVitePluginConfig);
|
|
611
490
|
if (hasCompatLibrary) (0, _intlayer_config_logger.logger)(`${_intlayer_config_logger.v} Compat i18n library detected — keeping the app structure untouched (no route restructure, no provider injection)`);
|
|
612
491
|
if (!hasCompatLibrary) try {
|
|
613
|
-
const
|
|
492
|
+
const { routing } = (0, _intlayer_config_node.getConfiguration)({ baseDir: rootDir });
|
|
614
493
|
await require_init_frameworkSetup_index.setupFramework({
|
|
615
494
|
rootDir,
|
|
616
495
|
allDeps,
|
|
617
496
|
packageManager,
|
|
618
497
|
useTypeScript: hasTsConfig,
|
|
619
|
-
routingMode
|
|
498
|
+
routingMode: routingMode ?? routing.mode,
|
|
499
|
+
enableProxy: enableProxy ?? routing.enableProxy !== false
|
|
620
500
|
});
|
|
621
501
|
} catch {
|
|
622
502
|
(0, _intlayer_config_logger.logger)(`${_intlayer_config_logger.x} Framework-specific scaffolding failed. Your existing files were left untouched; follow the documentation to finish the setup.`, { level: "warn" });
|
|
623
503
|
}
|
|
624
504
|
}
|
|
505
|
+
if (!options?.skipFinalMessage) logInitSuccessMessage(guideUrl);
|
|
506
|
+
return { guideUrl };
|
|
507
|
+
};
|
|
508
|
+
const logInitSuccessMessage = (guideUrl) => {
|
|
625
509
|
(0, _intlayer_config_logger.logger)(`${_intlayer_config_logger.v} ${(0, _intlayer_config_logger.colorize)("Intlayer init setup complete.", _intlayer_config_colors.GREEN)}`);
|
|
626
510
|
(0, _intlayer_config_logger.logger)([
|
|
627
511
|
(0, _intlayer_config_logger.colorize)("Next →", _intlayer_config_colors.MAGENTA),
|
|
628
|
-
(0, _intlayer_config_logger.colorize)(
|
|
512
|
+
(0, _intlayer_config_logger.colorize)("Follow the instructions in the documentation to complete the setup:", _intlayer_config_colors.GREY_LIGHT),
|
|
629
513
|
(0, _intlayer_config_logger.colorizePath)(guideUrl)
|
|
630
514
|
]);
|
|
631
515
|
};
|
|
632
516
|
|
|
633
517
|
//#endregion
|
|
518
|
+
exports.DocumentationRouter = require_init_documentationRouter.DocumentationRouter;
|
|
634
519
|
exports.getDefaultApplicationURL = getDefaultApplicationURL;
|
|
520
|
+
exports.getDocumentationUrl = require_init_documentationRouter.getDocumentationUrl;
|
|
635
521
|
exports.initIntlayer = initIntlayer;
|
|
522
|
+
exports.logInitSuccessMessage = logInitSuccessMessage;
|
|
636
523
|
//# sourceMappingURL=index.cjs.map
|