react-intlayer 9.6.0 → 9.7.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/dist/cjs/editor/useEditor.cjs +9 -1
- package/dist/cjs/editor/useEditor.cjs.map +1 -1
- package/dist/cjs/server/format/useIntl.cjs +1 -2
- package/dist/cjs/server/format/useIntl.cjs.map +1 -1
- package/dist/esm/editor/useEditor.mjs +9 -1
- package/dist/esm/editor/useEditor.mjs.map +1 -1
- package/dist/esm/server/format/useIntl.mjs +1 -2
- package/dist/esm/server/format/useIntl.mjs.map +1 -1
- package/dist/types/server/format/useIntl.d.ts.map +1 -1
- package/package.json +7 -7
|
@@ -12,16 +12,24 @@ let _intlayer_editor_isEnabled = require("@intlayer/editor/isEnabled");
|
|
|
12
12
|
* the editor always knows which locale the app is displaying.
|
|
13
13
|
*/
|
|
14
14
|
const useEditor = () => {
|
|
15
|
-
const { locale } = (0, react.useContext)(require_client_IntlayerProvider.IntlayerClientContext) ?? {};
|
|
15
|
+
const { locale, setLocale } = (0, react.useContext)(require_client_IntlayerProvider.IntlayerClientContext) ?? {};
|
|
16
16
|
const managerRef = (0, react.useRef)(null);
|
|
17
|
+
const setLocaleRef = (0, react.useRef)(setLocale);
|
|
18
|
+
setLocaleRef.current = setLocale;
|
|
17
19
|
(0, react.useEffect)(() => {
|
|
18
20
|
if (process.env.INTLAYER_EDITOR_ENABLED === "false" || !_intlayer_editor_isEnabled.isEnabled) return;
|
|
21
|
+
let unsubscribeLocaleRequest = null;
|
|
22
|
+
let isStopped = false;
|
|
19
23
|
import("@intlayer/editor").then(({ initEditorClient }) => {
|
|
24
|
+
if (isStopped) return;
|
|
20
25
|
const manager = initEditorClient();
|
|
21
26
|
managerRef.current = manager;
|
|
22
27
|
if (locale) manager.currentLocale.set(locale);
|
|
28
|
+
unsubscribeLocaleRequest = manager.onLocaleChangeRequested((requestedLocale) => setLocaleRef.current?.(requestedLocale));
|
|
23
29
|
}).catch(() => {});
|
|
24
30
|
return () => {
|
|
31
|
+
isStopped = true;
|
|
32
|
+
unsubscribeLocaleRequest?.();
|
|
25
33
|
managerRef.current = null;
|
|
26
34
|
import("@intlayer/editor").then(({ stopEditorClient }) => {
|
|
27
35
|
stopEditorClient();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useEditor.cjs","names":["useContext","IntlayerClientContext","useRef","isEnabled"],"sources":["../../../src/editor/useEditor.tsx"],"sourcesContent":["'use client';\n\nimport type { EditorStateManager } from '@intlayer/editor';\nimport { isEnabled } from '@intlayer/editor/isEnabled';\nimport type { Locale } from '@intlayer/types/allLocales';\nimport { useContext, useEffect, useRef } from 'react';\nimport { IntlayerClientContext } from '../client/IntlayerProvider';\n\n/**\n * Initializes the Intlayer editor client singleton when the editor is enabled.\n * Syncs the current locale from the Intlayer context into the editor manager so\n * the editor always knows which locale the app is displaying.\n */\nexport const useEditor = () => {\n const { locale } = useContext(IntlayerClientContext) ?? {};\n const managerRef = useRef<EditorStateManager | null>(null);\n\n useEffect(() => {\n if (process.env.INTLAYER_EDITOR_ENABLED === 'false' || !isEnabled) return;\n\n import('@intlayer/editor')\n .then(({ initEditorClient }) => {\n const manager = initEditorClient();\n managerRef.current = manager;\n\n if (locale) manager.currentLocale.set(locale as Locale);\n })\n .catch(() => {});\n\n return () => {\n managerRef.current = null;\n import('@intlayer/editor')\n .then(({ stopEditorClient }) => {\n stopEditorClient();\n })\n .catch(() => {});\n };\n }, []);\n\n useEffect(() => {\n if (!locale || !managerRef.current) return;\n\n managerRef.current.currentLocale.set(locale as Locale);\n }, [locale]);\n};\n"],"mappings":";;;;;;;;;;;;;AAaA,MAAa,kBAAkB;CAC7B,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"useEditor.cjs","names":["useContext","IntlayerClientContext","useRef","isEnabled"],"sources":["../../../src/editor/useEditor.tsx"],"sourcesContent":["'use client';\n\nimport type { EditorStateManager } from '@intlayer/editor';\nimport { isEnabled } from '@intlayer/editor/isEnabled';\nimport type { Locale } from '@intlayer/types/allLocales';\nimport { useContext, useEffect, useRef } from 'react';\nimport { IntlayerClientContext } from '../client/IntlayerProvider';\n\n/**\n * Initializes the Intlayer editor client singleton when the editor is enabled.\n * Syncs the current locale from the Intlayer context into the editor manager so\n * the editor always knows which locale the app is displaying.\n */\nexport const useEditor = () => {\n const { locale, setLocale } = useContext(IntlayerClientContext) ?? {};\n const managerRef = useRef<EditorStateManager | null>(null);\n // Read through a ref: the subscription outlives the render that created it\n const setLocaleRef = useRef(setLocale);\n setLocaleRef.current = setLocale;\n\n useEffect(() => {\n if (process.env.INTLAYER_EDITOR_ENABLED === 'false' || !isEnabled) return;\n\n let unsubscribeLocaleRequest: (() => void) | null = null;\n let isStopped = false;\n\n import('@intlayer/editor')\n .then(({ initEditorClient }) => {\n if (isStopped) return;\n\n const manager = initEditorClient();\n managerRef.current = manager;\n\n if (locale) manager.currentLocale.set(locale as Locale);\n\n unsubscribeLocaleRequest = manager.onLocaleChangeRequested(\n (requestedLocale) => setLocaleRef.current?.(requestedLocale)\n );\n })\n .catch(() => {});\n\n return () => {\n isStopped = true;\n unsubscribeLocaleRequest?.();\n managerRef.current = null;\n import('@intlayer/editor')\n .then(({ stopEditorClient }) => {\n stopEditorClient();\n })\n .catch(() => {});\n };\n }, []);\n\n useEffect(() => {\n if (!locale || !managerRef.current) return;\n\n managerRef.current.currentLocale.set(locale as Locale);\n }, [locale]);\n};\n"],"mappings":";;;;;;;;;;;;;AAaA,MAAa,kBAAkB;CAC7B,MAAM,EAAE,QAAQ,kBAAcA,kBAAWC,qDAAqB,KAAK,CAAC;CACpE,MAAM,iBAAaC,cAAkC,IAAI;CAEzD,MAAM,mBAAeA,cAAO,SAAS;CACrC,aAAa,UAAU;CAEvB,2BAAgB;EACd,IAAI,QAAQ,IAAI,4BAA4B,WAAW,CAACC,sCAAW;EAEnE,IAAI,2BAAgD;EACpD,IAAI,YAAY;EAEhB,OAAO,mBAAmB,CACvB,MAAM,EAAE,uBAAuB;GAC9B,IAAI,WAAW;GAEf,MAAM,UAAU,iBAAiB;GACjC,WAAW,UAAU;GAErB,IAAI,QAAQ,QAAQ,cAAc,IAAI,MAAgB;GAEtD,2BAA2B,QAAQ,yBAChC,oBAAoB,aAAa,UAAU,eAAe,CAC7D;EACF,CAAC,CAAC,CACD,YAAY,CAAC,CAAC;EAEjB,aAAa;GACX,YAAY;GACZ,2BAA2B;GAC3B,WAAW,UAAU;GACrB,OAAO,mBAAmB,CACvB,MAAM,EAAE,uBAAuB;IAC9B,iBAAiB;GACnB,CAAC,CAAC,CACD,YAAY,CAAC,CAAC;EACnB;CACF,GAAG,CAAC,CAAC;CAEL,2BAAgB;EACd,IAAI,CAAC,UAAU,CAAC,WAAW,SAAS;EAEpC,WAAW,QAAQ,cAAc,IAAI,MAAgB;CACvD,GAAG,CAAC,MAAM,CAAC;AACb"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
2
2
|
const require_server_serverContext = require('../serverContext.cjs');
|
|
3
3
|
const require_server_IntlayerServerProvider = require('../IntlayerServerProvider.cjs');
|
|
4
|
-
let _intlayer_config_built = require("@intlayer/config/built");
|
|
5
4
|
let _intlayer_core_formatters = require("@intlayer/core/formatters");
|
|
6
5
|
|
|
7
6
|
//#region src/server/format/useIntl.ts
|
|
@@ -35,7 +34,7 @@ let _intlayer_core_formatters = require("@intlayer/core/formatters");
|
|
|
35
34
|
*/
|
|
36
35
|
const useIntl = (locale) => {
|
|
37
36
|
const currentLocale = require_server_serverContext.getServerContext(require_server_IntlayerServerProvider.IntlayerServerContext);
|
|
38
|
-
return (0, _intlayer_core_formatters.bindIntl)(locale ?? currentLocale
|
|
37
|
+
return (0, _intlayer_core_formatters.bindIntl)(locale ?? currentLocale);
|
|
39
38
|
};
|
|
40
39
|
|
|
41
40
|
//#endregion
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useIntl.cjs","names":["getServerContext","IntlayerServerContext","bindIntl"
|
|
1
|
+
{"version":3,"file":"useIntl.cjs","names":["getServerContext","IntlayerServerContext","bindIntl"],"sources":["../../../../src/server/format/useIntl.ts"],"sourcesContent":["import { bindIntl, type WrappedIntl } from '@intlayer/core/formatters';\nimport type { LocalesValues } from '@intlayer/types/module_augmentation';\nimport { IntlayerServerContext } from '../IntlayerServerProvider';\nimport { getServerContext } from '../serverContext';\n\n/**\n * React client hook that provides a locale-bound `Intl` object.\n *\n * It acts exactly like the native `Intl` object, but acts as a proxy to:\n * 1. Inject the current locale automatically if none is provided.\n * 2. Use the performance-optimized `CachedIntl` under the hood.\n *\n * @example\n * ```tsx\n * const intl = useIntl(); // uses context locale\n *\n * // Standard API, but no need to pass 'en-US' as the first argument\n * const formatted = new intl.NumberFormat({\n * style: 'currency',\n * currency: 'USD'\n * }).format(123.45);\n * ```\n *\n * @example\n * ```tsx\n * const intl = useIntl();\n *\n * // You can still override the locale if needed\n * const date = new intl.DateTimeFormat({ locale: 'fr-FR' }).format(new Date());\n * // or\n * const date2 = new intl.DateTimeFormat('fr-FR').format(new Date());\n * ```\n */\nexport const useIntl = (locale?: LocalesValues): WrappedIntl => {\n const currentLocale = getServerContext<LocalesValues>(IntlayerServerContext);\n\n return bindIntl(locale ?? currentLocale);\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiCA,MAAa,WAAW,WAAwC;CAC9D,MAAM,gBAAgBA,8CAAgCC,2DAAqB;CAE3E,WAAOC,oCAAS,UAAU,aAAa;AACzC"}
|
|
@@ -11,16 +11,24 @@ import { isEnabled } from "@intlayer/editor/isEnabled";
|
|
|
11
11
|
* the editor always knows which locale the app is displaying.
|
|
12
12
|
*/
|
|
13
13
|
const useEditor = () => {
|
|
14
|
-
const { locale } = useContext(IntlayerClientContext) ?? {};
|
|
14
|
+
const { locale, setLocale } = useContext(IntlayerClientContext) ?? {};
|
|
15
15
|
const managerRef = useRef(null);
|
|
16
|
+
const setLocaleRef = useRef(setLocale);
|
|
17
|
+
setLocaleRef.current = setLocale;
|
|
16
18
|
useEffect(() => {
|
|
17
19
|
if (process.env.INTLAYER_EDITOR_ENABLED === "false" || !isEnabled) return;
|
|
20
|
+
let unsubscribeLocaleRequest = null;
|
|
21
|
+
let isStopped = false;
|
|
18
22
|
import("@intlayer/editor").then(({ initEditorClient }) => {
|
|
23
|
+
if (isStopped) return;
|
|
19
24
|
const manager = initEditorClient();
|
|
20
25
|
managerRef.current = manager;
|
|
21
26
|
if (locale) manager.currentLocale.set(locale);
|
|
27
|
+
unsubscribeLocaleRequest = manager.onLocaleChangeRequested((requestedLocale) => setLocaleRef.current?.(requestedLocale));
|
|
22
28
|
}).catch(() => {});
|
|
23
29
|
return () => {
|
|
30
|
+
isStopped = true;
|
|
31
|
+
unsubscribeLocaleRequest?.();
|
|
24
32
|
managerRef.current = null;
|
|
25
33
|
import("@intlayer/editor").then(({ stopEditorClient }) => {
|
|
26
34
|
stopEditorClient();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useEditor.mjs","names":[],"sources":["../../../src/editor/useEditor.tsx"],"sourcesContent":["'use client';\n\nimport type { EditorStateManager } from '@intlayer/editor';\nimport { isEnabled } from '@intlayer/editor/isEnabled';\nimport type { Locale } from '@intlayer/types/allLocales';\nimport { useContext, useEffect, useRef } from 'react';\nimport { IntlayerClientContext } from '../client/IntlayerProvider';\n\n/**\n * Initializes the Intlayer editor client singleton when the editor is enabled.\n * Syncs the current locale from the Intlayer context into the editor manager so\n * the editor always knows which locale the app is displaying.\n */\nexport const useEditor = () => {\n const { locale } = useContext(IntlayerClientContext) ?? {};\n const managerRef = useRef<EditorStateManager | null>(null);\n\n useEffect(() => {\n if (process.env.INTLAYER_EDITOR_ENABLED === 'false' || !isEnabled) return;\n\n import('@intlayer/editor')\n .then(({ initEditorClient }) => {\n const manager = initEditorClient();\n managerRef.current = manager;\n\n if (locale) manager.currentLocale.set(locale as Locale);\n })\n .catch(() => {});\n\n return () => {\n managerRef.current = null;\n import('@intlayer/editor')\n .then(({ stopEditorClient }) => {\n stopEditorClient();\n })\n .catch(() => {});\n };\n }, []);\n\n useEffect(() => {\n if (!locale || !managerRef.current) return;\n\n managerRef.current.currentLocale.set(locale as Locale);\n }, [locale]);\n};\n"],"mappings":";;;;;;;;;;;;AAaA,MAAa,kBAAkB;CAC7B,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"useEditor.mjs","names":[],"sources":["../../../src/editor/useEditor.tsx"],"sourcesContent":["'use client';\n\nimport type { EditorStateManager } from '@intlayer/editor';\nimport { isEnabled } from '@intlayer/editor/isEnabled';\nimport type { Locale } from '@intlayer/types/allLocales';\nimport { useContext, useEffect, useRef } from 'react';\nimport { IntlayerClientContext } from '../client/IntlayerProvider';\n\n/**\n * Initializes the Intlayer editor client singleton when the editor is enabled.\n * Syncs the current locale from the Intlayer context into the editor manager so\n * the editor always knows which locale the app is displaying.\n */\nexport const useEditor = () => {\n const { locale, setLocale } = useContext(IntlayerClientContext) ?? {};\n const managerRef = useRef<EditorStateManager | null>(null);\n // Read through a ref: the subscription outlives the render that created it\n const setLocaleRef = useRef(setLocale);\n setLocaleRef.current = setLocale;\n\n useEffect(() => {\n if (process.env.INTLAYER_EDITOR_ENABLED === 'false' || !isEnabled) return;\n\n let unsubscribeLocaleRequest: (() => void) | null = null;\n let isStopped = false;\n\n import('@intlayer/editor')\n .then(({ initEditorClient }) => {\n if (isStopped) return;\n\n const manager = initEditorClient();\n managerRef.current = manager;\n\n if (locale) manager.currentLocale.set(locale as Locale);\n\n unsubscribeLocaleRequest = manager.onLocaleChangeRequested(\n (requestedLocale) => setLocaleRef.current?.(requestedLocale)\n );\n })\n .catch(() => {});\n\n return () => {\n isStopped = true;\n unsubscribeLocaleRequest?.();\n managerRef.current = null;\n import('@intlayer/editor')\n .then(({ stopEditorClient }) => {\n stopEditorClient();\n })\n .catch(() => {});\n };\n }, []);\n\n useEffect(() => {\n if (!locale || !managerRef.current) return;\n\n managerRef.current.currentLocale.set(locale as Locale);\n }, [locale]);\n};\n"],"mappings":";;;;;;;;;;;;AAaA,MAAa,kBAAkB;CAC7B,MAAM,EAAE,QAAQ,cAAc,WAAW,qBAAqB,KAAK,CAAC;CACpE,MAAM,aAAa,OAAkC,IAAI;CAEzD,MAAM,eAAe,OAAO,SAAS;CACrC,aAAa,UAAU;CAEvB,gBAAgB;EACd,IAAI,QAAQ,IAAI,4BAA4B,WAAW,CAAC,WAAW;EAEnE,IAAI,2BAAgD;EACpD,IAAI,YAAY;EAEhB,OAAO,mBAAmB,CACvB,MAAM,EAAE,uBAAuB;GAC9B,IAAI,WAAW;GAEf,MAAM,UAAU,iBAAiB;GACjC,WAAW,UAAU;GAErB,IAAI,QAAQ,QAAQ,cAAc,IAAI,MAAgB;GAEtD,2BAA2B,QAAQ,yBAChC,oBAAoB,aAAa,UAAU,eAAe,CAC7D;EACF,CAAC,CAAC,CACD,YAAY,CAAC,CAAC;EAEjB,aAAa;GACX,YAAY;GACZ,2BAA2B;GAC3B,WAAW,UAAU;GACrB,OAAO,mBAAmB,CACvB,MAAM,EAAE,uBAAuB;IAC9B,iBAAiB;GACnB,CAAC,CAAC,CACD,YAAY,CAAC,CAAC;EACnB;CACF,GAAG,CAAC,CAAC;CAEL,gBAAgB;EACd,IAAI,CAAC,UAAU,CAAC,WAAW,SAAS;EAEpC,WAAW,QAAQ,cAAc,IAAI,MAAgB;CACvD,GAAG,CAAC,MAAM,CAAC;AACb"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { getServerContext } from "../serverContext.mjs";
|
|
2
2
|
import { IntlayerServerContext } from "../IntlayerServerProvider.mjs";
|
|
3
|
-
import { internationalization } from "@intlayer/config/built";
|
|
4
3
|
import { bindIntl } from "@intlayer/core/formatters";
|
|
5
4
|
|
|
6
5
|
//#region src/server/format/useIntl.ts
|
|
@@ -34,7 +33,7 @@ import { bindIntl } from "@intlayer/core/formatters";
|
|
|
34
33
|
*/
|
|
35
34
|
const useIntl = (locale) => {
|
|
36
35
|
const currentLocale = getServerContext(IntlayerServerContext);
|
|
37
|
-
return bindIntl(locale ?? currentLocale
|
|
36
|
+
return bindIntl(locale ?? currentLocale);
|
|
38
37
|
};
|
|
39
38
|
|
|
40
39
|
//#endregion
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useIntl.mjs","names":[],"sources":["../../../../src/server/format/useIntl.ts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"useIntl.mjs","names":[],"sources":["../../../../src/server/format/useIntl.ts"],"sourcesContent":["import { bindIntl, type WrappedIntl } from '@intlayer/core/formatters';\nimport type { LocalesValues } from '@intlayer/types/module_augmentation';\nimport { IntlayerServerContext } from '../IntlayerServerProvider';\nimport { getServerContext } from '../serverContext';\n\n/**\n * React client hook that provides a locale-bound `Intl` object.\n *\n * It acts exactly like the native `Intl` object, but acts as a proxy to:\n * 1. Inject the current locale automatically if none is provided.\n * 2. Use the performance-optimized `CachedIntl` under the hood.\n *\n * @example\n * ```tsx\n * const intl = useIntl(); // uses context locale\n *\n * // Standard API, but no need to pass 'en-US' as the first argument\n * const formatted = new intl.NumberFormat({\n * style: 'currency',\n * currency: 'USD'\n * }).format(123.45);\n * ```\n *\n * @example\n * ```tsx\n * const intl = useIntl();\n *\n * // You can still override the locale if needed\n * const date = new intl.DateTimeFormat({ locale: 'fr-FR' }).format(new Date());\n * // or\n * const date2 = new intl.DateTimeFormat('fr-FR').format(new Date());\n * ```\n */\nexport const useIntl = (locale?: LocalesValues): WrappedIntl => {\n const currentLocale = getServerContext<LocalesValues>(IntlayerServerContext);\n\n return bindIntl(locale ?? currentLocale);\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiCA,MAAa,WAAW,WAAwC;CAC9D,MAAM,gBAAgB,iBAAgC,qBAAqB;CAE3E,OAAO,SAAS,UAAU,aAAa;AACzC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useIntl.d.ts","names":[],"sources":["../../../../src/server/format/useIntl.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"useIntl.d.ts","names":[],"sources":["../../../../src/server/format/useIntl.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBAiCa,UAAO,SAAa,kBAAgB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-intlayer",
|
|
3
|
-
"version": "9.
|
|
3
|
+
"version": "9.7.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "Easily internationalize i18n your React applications with type-safe multilingual content management.",
|
|
6
6
|
"keywords": [
|
|
@@ -133,17 +133,17 @@
|
|
|
133
133
|
"typecheck": "tsc --noEmit --project tsconfig.types.json"
|
|
134
134
|
},
|
|
135
135
|
"dependencies": {
|
|
136
|
-
"@intlayer/api": "9.
|
|
136
|
+
"@intlayer/api": "9.7.0",
|
|
137
137
|
"@intlayer/config": "9.6.0",
|
|
138
|
-
"@intlayer/core": "9.
|
|
138
|
+
"@intlayer/core": "9.7.0",
|
|
139
139
|
"@intlayer/dictionaries-entry": "9.6.0",
|
|
140
|
-
"@intlayer/editor": "9.
|
|
141
|
-
"@intlayer/types": "9.
|
|
140
|
+
"@intlayer/editor": "9.7.0",
|
|
141
|
+
"@intlayer/types": "9.7.0"
|
|
142
142
|
},
|
|
143
143
|
"devDependencies": {
|
|
144
144
|
"@craco/types": "7.1.0",
|
|
145
145
|
"@testing-library/react": "16.3.3",
|
|
146
|
-
"@types/node": "^
|
|
146
|
+
"@types/node": "^26",
|
|
147
147
|
"@types/react": ">=16.0.0",
|
|
148
148
|
"@types/react-dom": ">=16.0.0",
|
|
149
149
|
"@utils/ts-config": "1.0.4",
|
|
@@ -159,7 +159,7 @@
|
|
|
159
159
|
"react-dom": ">=16.0.0"
|
|
160
160
|
},
|
|
161
161
|
"optionalDependencies": {
|
|
162
|
-
"@intlayer/analytics": "9.
|
|
162
|
+
"@intlayer/analytics": "9.7.0"
|
|
163
163
|
},
|
|
164
164
|
"engines": {
|
|
165
165
|
"node": ">=14.18"
|