@intlayer/config 9.3.2 → 9.4.0-canary.0
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/README.md +1 -1
- package/dist/cjs/configFile/buildBrowserConfiguration.cjs +13 -6
- package/dist/cjs/configFile/buildBrowserConfiguration.cjs.map +1 -1
- package/dist/cjs/configFile/buildConfigurationFields.cjs +31 -1
- package/dist/cjs/configFile/buildConfigurationFields.cjs.map +1 -1
- package/dist/cjs/defaultValues/analytics.cjs +3 -2
- package/dist/cjs/defaultValues/analytics.cjs.map +1 -1
- package/dist/cjs/defaultValues/build.cjs +4 -0
- package/dist/cjs/defaultValues/build.cjs.map +1 -1
- package/dist/cjs/defaultValues/dictionary.cjs +41 -0
- package/dist/cjs/defaultValues/dictionary.cjs.map +1 -1
- package/dist/cjs/defaultValues/index.cjs +6 -0
- package/dist/cjs/dictionaryPreload.cjs +149 -0
- package/dist/cjs/dictionaryPreload.cjs.map +1 -0
- package/dist/cjs/envVars/envVars.cjs.map +1 -1
- package/dist/cjs/utils/index.cjs +2 -0
- package/dist/cjs/utils/isPackageInstalled.cjs +39 -0
- package/dist/cjs/utils/isPackageInstalled.cjs.map +1 -0
- package/dist/esm/configFile/buildBrowserConfiguration.mjs +13 -6
- package/dist/esm/configFile/buildBrowserConfiguration.mjs.map +1 -1
- package/dist/esm/configFile/buildConfigurationFields.mjs +32 -2
- package/dist/esm/configFile/buildConfigurationFields.mjs.map +1 -1
- package/dist/esm/defaultValues/analytics.mjs +3 -2
- package/dist/esm/defaultValues/analytics.mjs.map +1 -1
- package/dist/esm/defaultValues/build.mjs +3 -1
- package/dist/esm/defaultValues/build.mjs.map +1 -1
- package/dist/esm/defaultValues/dictionary.mjs +38 -1
- package/dist/esm/defaultValues/dictionary.mjs.map +1 -1
- package/dist/esm/defaultValues/index.mjs +3 -3
- package/dist/esm/dictionaryPreload.mjs +144 -0
- package/dist/esm/dictionaryPreload.mjs.map +1 -0
- package/dist/esm/envVars/envVars.mjs.map +1 -1
- package/dist/esm/utils/index.mjs +2 -1
- package/dist/esm/utils/isPackageInstalled.mjs +38 -0
- package/dist/esm/utils/isPackageInstalled.mjs.map +1 -0
- package/dist/types/configFile/buildBrowserConfiguration.d.ts +11 -4
- package/dist/types/configFile/buildBrowserConfiguration.d.ts.map +1 -1
- package/dist/types/configFile/buildConfigurationFields.d.ts.map +1 -1
- package/dist/types/defaultValues/analytics.d.ts +3 -2
- package/dist/types/defaultValues/analytics.d.ts.map +1 -1
- package/dist/types/defaultValues/build.d.ts +3 -1
- package/dist/types/defaultValues/build.d.ts.map +1 -1
- package/dist/types/defaultValues/dictionary.d.ts +38 -1
- package/dist/types/defaultValues/dictionary.d.ts.map +1 -1
- package/dist/types/defaultValues/index.d.ts +3 -3
- package/dist/types/dictionaryPreload.d.ts +79 -0
- package/dist/types/dictionaryPreload.d.ts.map +1 -0
- package/dist/types/utils/index.d.ts +2 -1
- package/dist/types/utils/isPackageInstalled.d.ts +23 -0
- package/dist/types/utils/isPackageInstalled.d.ts.map +1 -0
- package/package.json +8 -3
|
@@ -7,6 +7,8 @@ declare const CACHE = true;
|
|
|
7
7
|
declare const TYPE_CHECKING = false;
|
|
8
8
|
declare const MINIFY = false;
|
|
9
9
|
declare const PURGE = false;
|
|
10
|
+
declare const CHUNK_GROUPING = true;
|
|
11
|
+
declare const DICTIONARIES_PRELOAD = true;
|
|
10
12
|
//#endregion
|
|
11
|
-
export { BUILD_MODE, CACHE, MINIFY, OPTIMIZE, OUTPUT_FORMAT, PURGE, TRAVERSE_PATTERN, TYPE_CHECKING };
|
|
13
|
+
export { BUILD_MODE, CACHE, CHUNK_GROUPING, DICTIONARIES_PRELOAD, MINIFY, OPTIMIZE, OUTPUT_FORMAT, PURGE, TRAVERSE_PATTERN, TYPE_CHECKING };
|
|
12
14
|
//# sourceMappingURL=build.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build.d.ts","names":[],"sources":["../../../src/defaultValues/build.ts"],"mappings":";cAAa;cAEA;cAEA;cA0BA;cAEA;cAEA;cAEA;cAEA"}
|
|
1
|
+
{"version":3,"file":"build.d.ts","names":[],"sources":["../../../src/defaultValues/build.ts"],"mappings":";cAAa;cAEA;cAEA;cA0BA;cAEA;cAEA;cAEA;cAEA;cAEA;cAEA"}
|
|
@@ -4,6 +4,43 @@ declare const FILL = true;
|
|
|
4
4
|
declare const LOCATION: DictionaryLocation;
|
|
5
5
|
declare const CONTENT_AUTO_TRANSFORMATION = false;
|
|
6
6
|
declare const IMPORT_MODE = "static";
|
|
7
|
+
/**
|
|
8
|
+
* Directory the per-locale JSON chunks of `importMode: 'dynamic'` are written
|
|
9
|
+
* under, relative to `system.dynamicDictionariesDir`.
|
|
10
|
+
*
|
|
11
|
+
* Plain dictionaries land at `<subdir>/<key>/<locale>.json`, qualified ones
|
|
12
|
+
* (collections, variants) nest one directory per dimension in between. The
|
|
13
|
+
* static first segment is required by Turbopack, and build-tool plugins match
|
|
14
|
+
* module ids against this layout — hence the shared constant rather than a
|
|
15
|
+
* literal repeated on both sides.
|
|
16
|
+
*/
|
|
17
|
+
declare const DYNAMIC_DICTIONARIES_JSON_SUBDIR = "json";
|
|
18
|
+
/**
|
|
19
|
+
* Marker property carrying the ordered qualifier dimensions on a dynamic loader
|
|
20
|
+
* map. Its presence distinguishes a qualified group loader map (a nested tree
|
|
21
|
+
* of chunks) from a plain dynamic loader map (one chunk per `locale`). Prefixed
|
|
22
|
+
* and unlikely to collide with a real locale code.
|
|
23
|
+
*/
|
|
24
|
+
declare const QUALIFIER_DYNAMIC_TYPES_KEY = "__intlayerQualifierTypes";
|
|
25
|
+
/**
|
|
26
|
+
* Marker property carrying the dictionary a generated dynamic entry point
|
|
27
|
+
* already resolved for the browsing locale, before any component rendered.
|
|
28
|
+
*
|
|
29
|
+
* Build-tool plugins prepend a top-level `await` to those entry points, so the
|
|
30
|
+
* chunk that statically imports one only finishes evaluating once the awaited
|
|
31
|
+
* locale chunk has landed. A read during render then finds the content in place
|
|
32
|
+
* instead of suspending.
|
|
33
|
+
*/
|
|
34
|
+
declare const PRELOADED_DYNAMIC_KEY = "__intlayerPreloaded";
|
|
35
|
+
/**
|
|
36
|
+
* Name of the local binding a generated dynamic entry point holds its loader
|
|
37
|
+
* map in, before exporting it as default.
|
|
38
|
+
*
|
|
39
|
+
* The preload preamble is appended to that generated source and mutates the
|
|
40
|
+
* binding, so the code generator and the build plugins have to agree on the
|
|
41
|
+
* name — hence the shared constant rather than a literal repeated in both.
|
|
42
|
+
*/
|
|
43
|
+
declare const DYNAMIC_ENTRY_LOADER_MAP_IDENTIFIER = "content";
|
|
7
44
|
//#endregion
|
|
8
|
-
export { CONTENT_AUTO_TRANSFORMATION, FILL, IMPORT_MODE, LOCATION };
|
|
45
|
+
export { CONTENT_AUTO_TRANSFORMATION, DYNAMIC_DICTIONARIES_JSON_SUBDIR, DYNAMIC_ENTRY_LOADER_MAP_IDENTIFIER, FILL, IMPORT_MODE, LOCATION, PRELOADED_DYNAMIC_KEY, QUALIFIER_DYNAMIC_TYPES_KEY };
|
|
9
46
|
//# sourceMappingURL=dictionary.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dictionary.d.ts","names":[],"sources":["../../../src/defaultValues/dictionary.ts"],"mappings":";;cAEa;cACA,UAAU;cACV;cACA"}
|
|
1
|
+
{"version":3,"file":"dictionary.d.ts","names":[],"sources":["../../../src/defaultValues/dictionary.ts"],"mappings":";;cAEa;cACA,UAAU;cACV;cACA;;;;;;;;;;;cAYA;;;;;;;cAQA;;;;;;;;;;cAWA;;;;;;;;;cAUA"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { ANALYTICS_ENABLED, ANALYTICS_FLUSH_INTERVAL, ANALYTICS_SAMPLE_RATE } from "./analytics.js";
|
|
2
|
-
import { BUILD_MODE, CACHE, MINIFY, OPTIMIZE, OUTPUT_FORMAT, PURGE, TRAVERSE_PATTERN, TYPE_CHECKING } from "./build.js";
|
|
2
|
+
import { BUILD_MODE, CACHE, CHUNK_GROUPING, DICTIONARIES_PRELOAD, MINIFY, OPTIMIZE, OUTPUT_FORMAT, PURGE, TRAVERSE_PATTERN, TYPE_CHECKING } from "./build.js";
|
|
3
3
|
import { COMPILER_DICTIONARY_KEY_PREFIX, COMPILER_ENABLED, COMPILER_NO_METADATA, COMPILER_SAVE_COMPONENTS } from "./compiler.js";
|
|
4
4
|
import { CODE_DIR, CONTENT_DIR, EXCLUDED_PATHS, FILE_EXTENSIONS, I18NEXT_DICTIONARIES_DIR, REACT_INTL_MESSAGES_DIR, WATCH } from "./content.js";
|
|
5
|
-
import { CONTENT_AUTO_TRANSFORMATION, FILL, IMPORT_MODE, LOCATION } from "./dictionary.js";
|
|
5
|
+
import { CONTENT_AUTO_TRANSFORMATION, DYNAMIC_DICTIONARIES_JSON_SUBDIR, DYNAMIC_ENTRY_LOADER_MAP_IDENTIFIER, FILL, IMPORT_MODE, LOCATION, PRELOADED_DYNAMIC_KEY, QUALIFIER_DYNAMIC_TYPES_KEY } from "./dictionary.js";
|
|
6
6
|
import { APPLICATION_URL, BACKEND_URL, CMS_URL, DICTIONARY_PRIORITY_STRATEGY, EDITOR_URL, IS_ENABLED, LIVE_SYNC, LIVE_SYNC_PORT, PORT } from "./editor.js";
|
|
7
7
|
import { DEFAULT_LOCALE, LOCALES, REQUIRED_LOCALES, STRICT_MODE } from "./internationalization.js";
|
|
8
8
|
import { MODE, PREFIX } from "./log.js";
|
|
9
9
|
import { BASE_PATH, COOKIE_NAME, ENABLE_PROXY, HEADER_NAME, LOCALE_STORAGE_NAME, ROUTING_MODE, SERVER_SET_COOKIE, STORAGE } from "./routing.js";
|
|
10
10
|
import { CACHE_DIR, CONFIG_DIR, DICTIONARIES_DIR, DYNAMIC_DICTIONARIES_DIR, FETCH_DICTIONARIES_DIR, MAIN_DIR, MASKS_DIR, MODULE_AUGMENTATION_DIR, REMOTE_DICTIONARIES_DIR, TEMP_DIR, TYPES_DIR, UNMERGED_DICTIONARIES_DIR } from "./system.js";
|
|
11
|
-
export { ANALYTICS_ENABLED, ANALYTICS_FLUSH_INTERVAL, ANALYTICS_SAMPLE_RATE, APPLICATION_URL, BACKEND_URL, BASE_PATH, BUILD_MODE, CACHE, CACHE_DIR, CMS_URL, CODE_DIR, COMPILER_DICTIONARY_KEY_PREFIX, COMPILER_ENABLED, COMPILER_NO_METADATA, COMPILER_SAVE_COMPONENTS, CONFIG_DIR, CONTENT_AUTO_TRANSFORMATION, CONTENT_DIR, COOKIE_NAME, DEFAULT_LOCALE, DICTIONARIES_DIR, DICTIONARY_PRIORITY_STRATEGY, DYNAMIC_DICTIONARIES_DIR, EDITOR_URL, ENABLE_PROXY, EXCLUDED_PATHS, FETCH_DICTIONARIES_DIR, FILE_EXTENSIONS, FILL, HEADER_NAME, I18NEXT_DICTIONARIES_DIR, IMPORT_MODE, IS_ENABLED, LIVE_SYNC, LIVE_SYNC_PORT, LOCALES, LOCALE_STORAGE_NAME, LOCATION, MAIN_DIR, MASKS_DIR, MINIFY, MODE, MODULE_AUGMENTATION_DIR, OPTIMIZE, OUTPUT_FORMAT, PORT, PREFIX, PURGE, REACT_INTL_MESSAGES_DIR, REMOTE_DICTIONARIES_DIR, REQUIRED_LOCALES, ROUTING_MODE, SERVER_SET_COOKIE, STORAGE, STRICT_MODE, TEMP_DIR, TRAVERSE_PATTERN, TYPES_DIR, TYPE_CHECKING, UNMERGED_DICTIONARIES_DIR, WATCH };
|
|
11
|
+
export { ANALYTICS_ENABLED, ANALYTICS_FLUSH_INTERVAL, ANALYTICS_SAMPLE_RATE, APPLICATION_URL, BACKEND_URL, BASE_PATH, BUILD_MODE, CACHE, CACHE_DIR, CHUNK_GROUPING, CMS_URL, CODE_DIR, COMPILER_DICTIONARY_KEY_PREFIX, COMPILER_ENABLED, COMPILER_NO_METADATA, COMPILER_SAVE_COMPONENTS, CONFIG_DIR, CONTENT_AUTO_TRANSFORMATION, CONTENT_DIR, COOKIE_NAME, DEFAULT_LOCALE, DICTIONARIES_DIR, DICTIONARIES_PRELOAD, DICTIONARY_PRIORITY_STRATEGY, DYNAMIC_DICTIONARIES_DIR, DYNAMIC_DICTIONARIES_JSON_SUBDIR, DYNAMIC_ENTRY_LOADER_MAP_IDENTIFIER, EDITOR_URL, ENABLE_PROXY, EXCLUDED_PATHS, FETCH_DICTIONARIES_DIR, FILE_EXTENSIONS, FILL, HEADER_NAME, I18NEXT_DICTIONARIES_DIR, IMPORT_MODE, IS_ENABLED, LIVE_SYNC, LIVE_SYNC_PORT, LOCALES, LOCALE_STORAGE_NAME, LOCATION, MAIN_DIR, MASKS_DIR, MINIFY, MODE, MODULE_AUGMENTATION_DIR, OPTIMIZE, OUTPUT_FORMAT, PORT, PREFIX, PRELOADED_DYNAMIC_KEY, PURGE, QUALIFIER_DYNAMIC_TYPES_KEY, REACT_INTL_MESSAGES_DIR, REMOTE_DICTIONARIES_DIR, REQUIRED_LOCALES, ROUTING_MODE, SERVER_SET_COOKIE, STORAGE, STRICT_MODE, TEMP_DIR, TRAVERSE_PATTERN, TYPES_DIR, TYPE_CHECKING, UNMERGED_DICTIONARIES_DIR, WATCH };
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
//#region src/dictionaryPreload.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* Matches a generated dynamic entry point, whose layout is
|
|
4
|
+
* `<dynamicDictionariesDir>/<key>.mjs`. The per-locale JSON chunks it imports
|
|
5
|
+
* live one directory deeper, under `json/`, and are deliberately excluded.
|
|
6
|
+
*/
|
|
7
|
+
declare const DYNAMIC_ENTRY_PATTERN: RegExp;
|
|
8
|
+
/**
|
|
9
|
+
* Builds a filter matching only the generated dynamic entry points, for
|
|
10
|
+
* bundlers whose load hook is selected by a regular expression over the raw
|
|
11
|
+
* file path (esbuild).
|
|
12
|
+
*
|
|
13
|
+
* A hook registered on every `.mjs` would call back into JavaScript for each
|
|
14
|
+
* such file in the build, `node_modules` included, so the filter is anchored on
|
|
15
|
+
* the dictionaries directory name. It matches both path separators because
|
|
16
|
+
* esbuild tests the platform path, which is backslash-separated on Windows —
|
|
17
|
+
* the directory name itself never contains one.
|
|
18
|
+
*
|
|
19
|
+
* The name alone is not proof of location, so the callback must still confirm
|
|
20
|
+
* the full path lies inside `dynamicDictionariesDir`.
|
|
21
|
+
*
|
|
22
|
+
* @param dynamicDictionariesDir - Absolute dictionaries root, any separator.
|
|
23
|
+
*/
|
|
24
|
+
declare const createDynamicEntryFilter: (dynamicDictionariesDir: string) => RegExp;
|
|
25
|
+
/**
|
|
26
|
+
* Specifier of the module the injected preamble reads the locale from, as the
|
|
27
|
+
* bundler plugins are expected to resolve it.
|
|
28
|
+
*
|
|
29
|
+
* Never emitted as-is: a generated entry point lives in the *application's*
|
|
30
|
+
* `.intlayer` directory, and an application depends on `intlayer` and its
|
|
31
|
+
* framework binding — not on `@intlayer/core` — so a bare specifier would
|
|
32
|
+
* resolve from a directory where the package is absent, or, worse, silently
|
|
33
|
+
* hit an unrelated copy hoisted higher up the tree.
|
|
34
|
+
*/
|
|
35
|
+
declare const PRELOAD_MODULE_SPECIFIER = "@intlayer/core/localization";
|
|
36
|
+
/**
|
|
37
|
+
* Resolves {@link PRELOAD_MODULE_SPECIFIER} to an absolute id the injected
|
|
38
|
+
* preamble can import, from a package that actually depends on it.
|
|
39
|
+
*
|
|
40
|
+
* Deliberately not `require.resolve(PRELOAD_MODULE_SPECIFIER)`: that applies
|
|
41
|
+
* the `require` condition and lands on the package's CommonJS build, which the
|
|
42
|
+
* preamble would then pull into a *browser* bundle behind a CommonJS interop
|
|
43
|
+
* wrapper — a second copy of the module alongside the ESM one the application
|
|
44
|
+
* already imports, each with its own memoized locale. The manifest is resolved
|
|
45
|
+
* instead (a condition-free subpath) and its `import` entry read directly.
|
|
46
|
+
*
|
|
47
|
+
* @param requireFn - `require`, or `createRequire(import.meta.url)`, from the
|
|
48
|
+
* plugin package.
|
|
49
|
+
* @returns Absolute path to the ESM build, falling back to whatever the
|
|
50
|
+
* standard resolution yields if the package ever stops publishing one.
|
|
51
|
+
*/
|
|
52
|
+
declare const resolvePreloadModuleId: (requireFn: NodeRequire) => string;
|
|
53
|
+
/** Why a generated entry point was left untransformed. */
|
|
54
|
+
type PreloadSkipReason = 'qualified' | 'unrecognized-shape';
|
|
55
|
+
type PreloadTransformResult = {
|
|
56
|
+
code: string;
|
|
57
|
+
skipped?: undefined;
|
|
58
|
+
} | {
|
|
59
|
+
code?: undefined;
|
|
60
|
+
skipped: PreloadSkipReason;
|
|
61
|
+
};
|
|
62
|
+
/**
|
|
63
|
+
* Adds the browsing-locale preload to a generated dynamic entry point.
|
|
64
|
+
*
|
|
65
|
+
* Bundler-agnostic on purpose: the Vite plugin and the esbuild plugin apply the
|
|
66
|
+
* identical transform, and keeping one implementation means the emitted shape
|
|
67
|
+
* cannot drift between them. The caller decides *which* modules to hand over
|
|
68
|
+
* (the id is matched against the dynamic dictionaries directory) and how to
|
|
69
|
+
* report a skip.
|
|
70
|
+
*
|
|
71
|
+
* @param code - Source of the generated `<key>.mjs` entry point.
|
|
72
|
+
* @param preloadModuleId - Specifier the preamble imports the locale resolver
|
|
73
|
+
* from, already resolved against the plugin package.
|
|
74
|
+
* @returns The transformed source, or the reason it was left alone.
|
|
75
|
+
*/
|
|
76
|
+
declare const addDynamicEntryPreload: (code: string, preloadModuleId: string) => PreloadTransformResult;
|
|
77
|
+
//#endregion
|
|
78
|
+
export { DYNAMIC_ENTRY_PATTERN, PRELOAD_MODULE_SPECIFIER, PreloadSkipReason, PreloadTransformResult, addDynamicEntryPreload, createDynamicEntryFilter, resolvePreloadModuleId };
|
|
79
|
+
//# sourceMappingURL=dictionaryPreload.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dictionaryPreload.d.ts","names":[],"sources":["../../src/dictionaryPreload.ts"],"mappings":";;;;;;cAYa,uBAAqB;;;;;;;;;;;;;;;;;cAsBrB,2BAAwB,mCAElC;;;;;;;;;;;cAmBU;;;;;;;;;;;;;;;;;cA2BA,yBAAsB,WAAe;;KAuEtC;KAEA;EACN;EAAc;;EACd;EAAkB,SAAS;;;;;;;;;;;;;;;;cAgBpB,yBAAsB,cACrB,4BAEX"}
|
|
@@ -18,7 +18,8 @@ import { getExtension } from "./getExtension.js";
|
|
|
18
18
|
import { getPackageJsonPath } from "./getPackageJsonPath.js";
|
|
19
19
|
import { getStorageAttributes } from "./getStorageAttributes.js";
|
|
20
20
|
import { PluginNodeType, getUnusedNodeTypes, getUnusedNodeTypesAsync, getUsedNodeTypes, getUsedNodeTypesAsync } from "./getUsedNodeTypes.js";
|
|
21
|
+
import { isPackageInstalled } from "./isPackageInstalled.js";
|
|
21
22
|
import { parseFilePathPattern, parseStringPattern } from "./parseFilePathPattern.js";
|
|
22
23
|
import { assertPathWithin } from "./pathSecurity.js";
|
|
23
24
|
import { RetryManagerOptions, retryManager } from "./retryManager.js";
|
|
24
|
-
export { BUILT_CONFIG_KEYS, BuiltConfigKey, CacheKey, GetAliasOptions, PluginNodeType, RetryManagerOptions, WindowsWithIntlayer, assertPathWithin, cacheDisk, cacheMemory, camelCaseToKebabCase, camelCaseToSentence, clearAllCache, clearCache, clearDiskCacheMemory, clearModuleCache, compareVersions, computeKeyId, configESMxCJSRequire, extractErrorMessage, getAlias, getCache, getExtension, getHasDictionarySelector, getPackageJsonPath, getProjectRequire, getStorageAttributes, getUnusedNodeTypes, getUnusedNodeTypesAsync, getUsedNodeTypes, getUsedNodeTypesAsync, isESModule, kebabCaseToCamelCase, logStack, normalizePath, parseFilePathPattern, parseStringPattern, retryManager, setCache, setIntlayerIdentifier, stableStringify, toLowerCamelCase };
|
|
25
|
+
export { BUILT_CONFIG_KEYS, BuiltConfigKey, CacheKey, GetAliasOptions, PluginNodeType, RetryManagerOptions, WindowsWithIntlayer, assertPathWithin, cacheDisk, cacheMemory, camelCaseToKebabCase, camelCaseToSentence, clearAllCache, clearCache, clearDiskCacheMemory, clearModuleCache, compareVersions, computeKeyId, configESMxCJSRequire, extractErrorMessage, getAlias, getCache, getExtension, getHasDictionarySelector, getPackageJsonPath, getProjectRequire, getStorageAttributes, getUnusedNodeTypes, getUnusedNodeTypesAsync, getUsedNodeTypes, getUsedNodeTypesAsync, isESModule, isPackageInstalled, kebabCaseToCamelCase, logStack, normalizePath, parseFilePathPattern, parseStringPattern, retryManager, setCache, setIntlayerIdentifier, stableStringify, toLowerCamelCase };
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
//#region src/utils/isPackageInstalled.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* Checks whether a package can be resolved from the user project.
|
|
4
|
+
*
|
|
5
|
+
* Used to detect optional companion packages (e.g. `@intlayer/analytics`)
|
|
6
|
+
* whose mere presence in the dependency tree opts the project into a feature.
|
|
7
|
+
*
|
|
8
|
+
* Resolution is attempted on the package manifest first, so packages that
|
|
9
|
+
* expose no root entry point — or whose entry point cannot be loaded in the
|
|
10
|
+
* current module format — are still detected.
|
|
11
|
+
*
|
|
12
|
+
* Note: resolution starts at the project root, so a package installed only as
|
|
13
|
+
* a transitive dependency may stay invisible under strict package managers
|
|
14
|
+
* (pnpm). Callers should treat a `false` result as a default, not as a veto.
|
|
15
|
+
*
|
|
16
|
+
* @param packageName - Name of the package to look up, e.g. `'@intlayer/analytics'`.
|
|
17
|
+
* @param baseDir - Directory the resolution starts from. Defaults to the current working directory.
|
|
18
|
+
* @returns `true` when the package is installed in the project, `false` otherwise.
|
|
19
|
+
*/
|
|
20
|
+
declare const isPackageInstalled: (packageName: string, baseDir?: string) => boolean;
|
|
21
|
+
//#endregion
|
|
22
|
+
export { isPackageInstalled };
|
|
23
|
+
//# sourceMappingURL=isPackageInstalled.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isPackageInstalled.d.ts","names":[],"sources":["../../../src/utils/isPackageInstalled.ts"],"mappings":";;;;;;;;;;;;;;;;;;;cAoBa,qBAAkB,qBACV"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@intlayer/config",
|
|
3
|
-
"version": "9.
|
|
3
|
+
"version": "9.4.0-canary.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "Retrieve Intlayer configurations and manage environment variables for both server-side and client-side environments.",
|
|
6
6
|
"keywords": [
|
|
@@ -97,6 +97,11 @@
|
|
|
97
97
|
"require": "./dist/cjs/defaultValues/index.cjs",
|
|
98
98
|
"import": "./dist/esm/defaultValues/index.mjs"
|
|
99
99
|
},
|
|
100
|
+
"./dictionaryPreload": {
|
|
101
|
+
"types": "./dist/types/dictionaryPreload.d.ts",
|
|
102
|
+
"require": "./dist/cjs/dictionaryPreload.cjs",
|
|
103
|
+
"import": "./dist/esm/dictionaryPreload.mjs"
|
|
104
|
+
},
|
|
100
105
|
"./bundle": {
|
|
101
106
|
"types": "./dist/types/bundle/index.d.ts",
|
|
102
107
|
"require": "./dist/cjs/bundle/index.cjs",
|
|
@@ -172,7 +177,7 @@
|
|
|
172
177
|
"typecheck": "tsc --noEmit --project tsconfig.types.json"
|
|
173
178
|
},
|
|
174
179
|
"dependencies": {
|
|
175
|
-
"@intlayer/types": "9.
|
|
180
|
+
"@intlayer/types": "9.4.0-canary.0",
|
|
176
181
|
"defu": "6.1.7",
|
|
177
182
|
"dotenv": "17.4.2",
|
|
178
183
|
"esbuild": "0.28.2",
|
|
@@ -187,7 +192,7 @@
|
|
|
187
192
|
"rimraf": "6.1.3",
|
|
188
193
|
"tsdown": "0.22.14",
|
|
189
194
|
"typescript": "7.0.2",
|
|
190
|
-
"vitest": "4.1.
|
|
195
|
+
"vitest": "4.1.11"
|
|
191
196
|
},
|
|
192
197
|
"peerDependencies": {
|
|
193
198
|
"react": ">=16.0.0"
|