```
Targets can be defined in the `package.json` or `projects.json`. Learn more [in the docs](https://nx.dev/core-features/run-tasks).
-
-## Want better Editor Integration?
-
-Have a look at the [Nx Console extensions](https://nx.dev/nx-console). It provides autocomplete support, a UI for exploring and running tasks & generators, and more! Available for VSCode, IntelliJ and comes with a LSP for Vim users.
-
-## Ready to deploy?
-
-Just run `nx build demoapp` to build the application. The build artifacts will be stored in the `dist/` directory, ready to be deployed.
-
-## Set up CI!
-
-Nx comes with local caching already built-in (check your `nx.json`). On CI you might want to go a step further.
-
-- [Set up remote caching](https://nx.dev/core-features/share-your-cache)
-- [Set up task distribution across multiple machines](https://nx.dev/core-features/distribute-task-execution)
-- [Learn more how to setup CI](https://nx.dev/recipes/ci)
-
-## Connect with us!
-
-- [Join the community](https://nx.dev/community)
-- [Subscribe to the Nx Youtube Channel](https://www.youtube.com/@nxdevtools)
-- [Follow us on Twitter](https://twitter.com/nxdevtools)
diff --git a/apps/oeth/project.json b/apps/oeth/project.json
index 5ad31d160..4b26f005f 100644
--- a/apps/oeth/project.json
+++ b/apps/oeth/project.json
@@ -67,6 +67,18 @@
"options": {
"lintFilePatterns": ["apps/oeth/**/*.{ts,tsx,js,jsx}"]
}
+ },
+ "i18n-extract": {
+ "executor": "nx:run-commands",
+ "options": {
+ "command": "pnpm formatjs extract '{apps/oeth,libs/defi/oeth}/**/!(*.d).{ts,tsx}' --out-file apps/oeth/src/lang/en.json --id-interpolation-pattern '[sha512:contenthash:base64:6]'"
+ }
+ },
+ "i18n-compile": {
+ "executor": "nx:run-commands",
+ "options": {
+ "command": "pnpm formatjs compile 'apps/oeth/src/lang/en.json' --out-file apps/oeth/src/lang/enUS.json"
+ }
}
},
"tags": []
diff --git a/apps/oeth/src/lang/en.json b/apps/oeth/src/lang/en.json
new file mode 100644
index 000000000..2654cb997
--- /dev/null
+++ b/apps/oeth/src/lang/en.json
@@ -0,0 +1,8 @@
+{
+ "xomxyH": {
+ "defaultMessage": "Welcome to DefiOeth!"
+ },
+ "y6cogA": {
+ "defaultMessage": "test OEth"
+ }
+}
diff --git a/apps/oeth/src/lang/enUS.json b/apps/oeth/src/lang/enUS.json
new file mode 100644
index 000000000..688bdab96
--- /dev/null
+++ b/apps/oeth/src/lang/enUS.json
@@ -0,0 +1,4 @@
+{
+ "xomxyH": "Welcome to DefiOeth!",
+ "y6cogA": "test OEth"
+}
\ No newline at end of file
diff --git a/apps/oeth/src/lang/index.ts b/apps/oeth/src/lang/index.ts
new file mode 100644
index 000000000..b46ee3f17
--- /dev/null
+++ b/apps/oeth/src/lang/index.ts
@@ -0,0 +1,3 @@
+import * as en from './enUS.json';
+
+export { en };
diff --git a/apps/oeth/src/main.tsx b/apps/oeth/src/main.tsx
index 3d036d30c..1898e9b7f 100644
--- a/apps/oeth/src/main.tsx
+++ b/apps/oeth/src/main.tsx
@@ -5,21 +5,27 @@ import { OethRoot } from './views/root';
import { QueryClientProvider } from '@tanstack/react-query';
import { queryClient } from '@origin/shared/data-access';
import { theme } from '@origin/shared/theme';
-import { CssBaseline, Experimental_CssVarsProvider as CssVarsProvider } from '@mui/material';
-
+import {
+ CssBaseline,
+ Experimental_CssVarsProvider as CssVarsProvider,
+} from '@mui/material';
+import { IntlProvider } from 'react-intl';
+import { en } from './lang';
const root = ReactDOM.createRoot(
document.getElementById('root') as HTMLElement
);
root.render(
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
);
diff --git a/apps/oeth/src/views/root/index.tsx b/apps/oeth/src/views/root/index.tsx
index c567f95f7..517bdaba2 100644
--- a/apps/oeth/src/views/root/index.tsx
+++ b/apps/oeth/src/views/root/index.tsx
@@ -1,8 +1,13 @@
// placeholder component until we actually start migration
-import {DefiOeth} from '@origin/defi/oeth';
+import { DefiOeth } from '@origin/defi/oeth';
+import { useIntl } from 'react-intl';
export function OethRoot() {
- return <>test OEth
-
+ const intl = useIntl();
+ return (
+ <>
+ {intl.formatMessage({ defaultMessage: 'test OEth' })}
+
>
-}
\ No newline at end of file
+ );
+}
diff --git a/apps/oeth/vite.config.ts b/apps/oeth/vite.config.ts
index b10584f73..39f6c9cba 100644
--- a/apps/oeth/vite.config.ts
+++ b/apps/oeth/vite.config.ts
@@ -17,7 +17,19 @@ export default defineConfig({
},
plugins: [
- react(),
+ react({
+ babel: {
+ plugins: [
+ [
+ 'formatjs',
+ {
+ idInterpolationPattern: '[sha512:contenthash:base64:6]',
+ ast: true,
+ },
+ ],
+ ],
+ },
+ }),
viteTsConfigPaths({
root: '../../',
}),
diff --git a/apps/ousd/project.json b/apps/ousd/project.json
index 955c7a550..d8bf6a621 100644
--- a/apps/ousd/project.json
+++ b/apps/ousd/project.json
@@ -67,6 +67,18 @@
"options": {
"lintFilePatterns": ["apps/ousd/**/*.{ts,tsx,js,jsx}"]
}
+ },
+ "i18n-extract": {
+ "executor": "nx:run-commands",
+ "options": {
+ "command": "pnpm formatjs extract '{apps/ousd,libs/defi/ousd}/**/!(*.d).{ts,tsx}' --out-file apps/ousd/src/lang/en-aggregated.json --id-interpolation-pattern '[sha512:contenthash:base64:6]'"
+ }
+ },
+ "i18n-compile": {
+ "executor": "nx:run-commands",
+ "options": {
+ "command": "pnpm formatjs compile 'apps/ousd/src/lang/en.json' --out-file apps/ousd/src/lang/enUS.json"
+ }
}
},
"tags": []
diff --git a/apps/ousd/src/components/index.tsx b/apps/ousd/src/components/index.tsx
index b1adda157..fdd920c25 100644
--- a/apps/ousd/src/components/index.tsx
+++ b/apps/ousd/src/components/index.tsx
@@ -1,6 +1,13 @@
// placeholder component until we actually start migration
-import {DefiOusd} from '@origin/defi/ousd';
+import { DefiOusd } from '@origin/defi/ousd';
+import { useIntl } from 'react-intl';
export function OUSDRoot() {
- return <>test OUSD
>
-}
\ No newline at end of file
+ const intl = useIntl();
+ return (
+ <>
+ {intl.formatMessage({ defaultMessage: 'test OUSD' })}
+
+ >
+ );
+}
diff --git a/apps/ousd/src/lang/en.json b/apps/ousd/src/lang/en.json
new file mode 100644
index 000000000..31bc282bd
--- /dev/null
+++ b/apps/ousd/src/lang/en.json
@@ -0,0 +1,8 @@
+{
+ "47v1cE": {
+ "defaultMessage": "test OUSD"
+ },
+ "SFRdeA": {
+ "defaultMessage": "Welcome to DefiOusd!"
+ }
+}
diff --git a/apps/ousd/src/lang/enUS.json b/apps/ousd/src/lang/enUS.json
new file mode 100644
index 000000000..b0d6e35ea
--- /dev/null
+++ b/apps/ousd/src/lang/enUS.json
@@ -0,0 +1,4 @@
+{
+ "47v1cE": "test OUSD",
+ "SFRdeA": "Welcome to DefiOusd!"
+}
\ No newline at end of file
diff --git a/apps/ousd/src/lang/index.ts b/apps/ousd/src/lang/index.ts
new file mode 100644
index 000000000..b46ee3f17
--- /dev/null
+++ b/apps/ousd/src/lang/index.ts
@@ -0,0 +1,3 @@
+import * as en from './enUS.json';
+
+export { en };
diff --git a/apps/ousd/src/main.tsx b/apps/ousd/src/main.tsx
index d174e0b5c..3c52a6263 100644
--- a/apps/ousd/src/main.tsx
+++ b/apps/ousd/src/main.tsx
@@ -3,20 +3,26 @@ import * as ReactDOM from 'react-dom/client';
import { OUSDRoot } from './components';
import { QueryClientProvider } from '@tanstack/react-query';
import { queryClient } from '@origin/shared/data-access';
-import { CssBaseline, Experimental_CssVarsProvider as CssVarsProvider } from '@mui/material';
+import {
+ CssBaseline,
+ Experimental_CssVarsProvider as CssVarsProvider,
+} from '@mui/material';
import { theme } from '@origin/shared/theme';
-
+import { IntlProvider } from 'react-intl';
+import { en } from './lang';
const root = ReactDOM.createRoot(
document.getElementById('root') as HTMLElement
);
root.render(
-
-
-
-
-
-
+
+
+
+
+
+
+
+
);
diff --git a/apps/ousd/vite.config.ts b/apps/ousd/vite.config.ts
index 5260dcf86..3c9a4c7c5 100644
--- a/apps/ousd/vite.config.ts
+++ b/apps/ousd/vite.config.ts
@@ -17,7 +17,19 @@ export default defineConfig({
},
plugins: [
- react(),
+ react({
+ babel: {
+ plugins: [
+ [
+ 'formatjs',
+ {
+ idInterpolationPattern: '[sha512:contenthash:base64:6]',
+ ast: true,
+ },
+ ],
+ ],
+ },
+ }),
viteTsConfigPaths({
root: '../../',
}),
diff --git a/libs/defi/oeth/.storybook/main.js b/libs/defi/oeth/.storybook/main.ts
similarity index 58%
rename from libs/defi/oeth/.storybook/main.js
rename to libs/defi/oeth/.storybook/main.ts
index 41e0a0960..257218aac 100644
--- a/libs/defi/oeth/.storybook/main.js
+++ b/libs/defi/oeth/.storybook/main.ts
@@ -1,11 +1,19 @@
const config = {
- stories: ['../src/lib/**/*.stories.@(js|jsx|ts|tsx|mdx)'],
+ stories: ['../src/**/*.stories.@(js|jsx|ts|tsx|mdx)'],
addons: ['@storybook/addon-essentials'],
framework: {
name: '@storybook/react-vite',
options: {
builder: {
- viteConfigPath: '',
+ viteConfigPath: `${__dirname}/../../../shared/storybook/vite.config.ts`,
+ },
+ },
+ },
+ typescript: {
+ check: true,
+ checkOptions: {
+ typescript: {
+ configFile: `${__dirname}/../tsconfig.storybook.json`,
},
},
},
diff --git a/libs/defi/oeth/.storybook/preview.js b/libs/defi/oeth/.storybook/preview.js
deleted file mode 100644
index e69de29bb..000000000
diff --git a/libs/defi/oeth/.storybook/preview.tsx b/libs/defi/oeth/.storybook/preview.tsx
new file mode 100644
index 000000000..d7cc85f52
--- /dev/null
+++ b/libs/defi/oeth/.storybook/preview.tsx
@@ -0,0 +1,3 @@
+import preview from '@origin/shared/storybook';
+
+export default preview;
diff --git a/libs/defi/oeth/src/components/defi-oeth.tsx b/libs/defi/oeth/src/components/defi-oeth.tsx
index 651ce798e..0c0a1433e 100644
--- a/libs/defi/oeth/src/components/defi-oeth.tsx
+++ b/libs/defi/oeth/src/components/defi-oeth.tsx
@@ -1,10 +1,13 @@
+import { useIntl } from 'react-intl';
+
/* eslint-disable-next-line */
export interface DefiOethProps {}
export function DefiOeth(props: DefiOethProps) {
+ const intl = useIntl();
return (
-
Welcome to DefiOeth!
+ {intl.formatMessage({ defaultMessage: 'Welcome to DefiOeth!' })}
);
}
diff --git a/libs/defi/oeth/tsconfig.storybook.json b/libs/defi/oeth/tsconfig.storybook.json
index 3555ddd4f..7985e684a 100644
--- a/libs/defi/oeth/tsconfig.storybook.json
+++ b/libs/defi/oeth/tsconfig.storybook.json
@@ -27,5 +27,5 @@
"src/**/*.stories.mdx",
".storybook/*.js",
".storybook/*.ts"
- ]
+, ".storybook/preview.tsx" ]
}
diff --git a/libs/defi/ousd/.storybook/main.js b/libs/defi/ousd/.storybook/main.ts
similarity index 58%
rename from libs/defi/ousd/.storybook/main.js
rename to libs/defi/ousd/.storybook/main.ts
index 41e0a0960..257218aac 100644
--- a/libs/defi/ousd/.storybook/main.js
+++ b/libs/defi/ousd/.storybook/main.ts
@@ -1,11 +1,19 @@
const config = {
- stories: ['../src/lib/**/*.stories.@(js|jsx|ts|tsx|mdx)'],
+ stories: ['../src/**/*.stories.@(js|jsx|ts|tsx|mdx)'],
addons: ['@storybook/addon-essentials'],
framework: {
name: '@storybook/react-vite',
options: {
builder: {
- viteConfigPath: '',
+ viteConfigPath: `${__dirname}/../../../shared/storybook/vite.config.ts`,
+ },
+ },
+ },
+ typescript: {
+ check: true,
+ checkOptions: {
+ typescript: {
+ configFile: `${__dirname}/../tsconfig.storybook.json`,
},
},
},
diff --git a/libs/defi/ousd/.storybook/preview.js b/libs/defi/ousd/.storybook/preview.js
deleted file mode 100644
index e69de29bb..000000000
diff --git a/libs/defi/ousd/.storybook/preview.tsx b/libs/defi/ousd/.storybook/preview.tsx
new file mode 100644
index 000000000..d7cc85f52
--- /dev/null
+++ b/libs/defi/ousd/.storybook/preview.tsx
@@ -0,0 +1,3 @@
+import preview from '@origin/shared/storybook';
+
+export default preview;
diff --git a/libs/defi/ousd/src/components/defi-ousd.tsx b/libs/defi/ousd/src/components/defi-ousd.tsx
index 96861e994..6ab60e347 100644
--- a/libs/defi/ousd/src/components/defi-ousd.tsx
+++ b/libs/defi/ousd/src/components/defi-ousd.tsx
@@ -1,10 +1,13 @@
+import { useIntl } from 'react-intl';
+
/* eslint-disable-next-line */
export interface DefiOusdProps {}
export function DefiOusd(props: DefiOusdProps) {
+ const intl = useIntl();
return (
-
Welcome to DefiOusd!
+ {intl.formatMessage({ defaultMessage: 'Welcome to DefiOusd!' })}
);
}
diff --git a/libs/defi/ousd/tsconfig.storybook.json b/libs/defi/ousd/tsconfig.storybook.json
index 3555ddd4f..7985e684a 100644
--- a/libs/defi/ousd/tsconfig.storybook.json
+++ b/libs/defi/ousd/tsconfig.storybook.json
@@ -27,5 +27,5 @@
"src/**/*.stories.mdx",
".storybook/*.js",
".storybook/*.ts"
- ]
+, ".storybook/preview.tsx" ]
}
diff --git a/libs/shared/storybook/.storybook/main.js b/libs/shared/storybook/.storybook/main.ts
similarity index 59%
rename from libs/shared/storybook/.storybook/main.js
rename to libs/shared/storybook/.storybook/main.ts
index 38974e83c..3ab09e8d5 100644
--- a/libs/shared/storybook/.storybook/main.js
+++ b/libs/shared/storybook/.storybook/main.ts
@@ -1,11 +1,21 @@
-const config = {
+import type { StorybookConfig } from '@storybook/react-vite';
+
+const config: StorybookConfig = {
stories: ['../../../**/*.stories.@(js|jsx|ts|tsx|mdx)'],
addons: ['@storybook/addon-essentials'],
framework: {
name: '@storybook/react-vite',
options: {
builder: {
- viteConfigPath: '',
+ viteConfigPath: `${__dirname}/../vite.config.ts`,
+ },
+ },
+ },
+ typescript: {
+ check: true,
+ checkOptions: {
+ typescript: {
+ configFile: `${__dirname}/../tsconfig.storybook.json`,
},
},
},
diff --git a/libs/shared/storybook/.storybook/preview.js b/libs/shared/storybook/.storybook/preview.js
deleted file mode 100644
index e69de29bb..000000000
diff --git a/libs/shared/storybook/.storybook/preview.tsx b/libs/shared/storybook/.storybook/preview.tsx
new file mode 100644
index 000000000..0f6cb162f
--- /dev/null
+++ b/libs/shared/storybook/.storybook/preview.tsx
@@ -0,0 +1,3 @@
+import preview from '../src';
+
+export default preview;
diff --git a/libs/shared/storybook/src/decorators.tsx b/libs/shared/storybook/src/decorators.tsx
new file mode 100644
index 000000000..49e5085c7
--- /dev/null
+++ b/libs/shared/storybook/src/decorators.tsx
@@ -0,0 +1,23 @@
+import type { Preview } from '@storybook/react';
+import * as React from 'react';
+import { IntlProvider } from 'react-intl';
+import { Experimental_CssVarsProvider as CssVarsProvider } from '@mui/material';
+import { theme } from '@origin/shared/theme';
+
+export const decorators: Preview['decorators'] = [
+ (StoryComponent) => {
+ return (
+ //
+
+
+
+ //
+ );
+ },
+];
+
+const preview: Preview = {
+ decorators,
+};
+
+export default preview;
diff --git a/libs/shared/storybook/src/index.ts b/libs/shared/storybook/src/index.ts
index 56e3d6840..b7ad9f016 100644
--- a/libs/shared/storybook/src/index.ts
+++ b/libs/shared/storybook/src/index.ts
@@ -1 +1,3 @@
-export * from './lib/shared-storybook';
+import preview from './decorators';
+
+export default preview;
diff --git a/libs/shared/storybook/src/lib/shared-storybook.ts b/libs/shared/storybook/src/lib/shared-storybook.ts
deleted file mode 100644
index 42f3fab0d..000000000
--- a/libs/shared/storybook/src/lib/shared-storybook.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-export function sharedStorybook(): string {
- return 'shared-storybook';
-}
diff --git a/libs/shared/storybook/tsconfig.json b/libs/shared/storybook/tsconfig.json
index 4deb6c041..6dca5acab 100644
--- a/libs/shared/storybook/tsconfig.json
+++ b/libs/shared/storybook/tsconfig.json
@@ -7,7 +7,8 @@
"noImplicitOverride": true,
"noPropertyAccessFromIndexSignature": true,
"noImplicitReturns": true,
- "noFallthroughCasesInSwitch": true
+ "noFallthroughCasesInSwitch": true,
+ "jsx": "react-jsx"
},
"files": [],
"include": [],
diff --git a/libs/shared/storybook/tsconfig.lib.json b/libs/shared/storybook/tsconfig.lib.json
index 4dc48672f..90d8c2d8e 100644
--- a/libs/shared/storybook/tsconfig.lib.json
+++ b/libs/shared/storybook/tsconfig.lib.json
@@ -5,7 +5,7 @@
"declaration": true,
"types": ["node"]
},
- "include": ["src/**/*.ts"],
+ "include": ["src/**/*.ts", "src/decorators.tsx"],
"exclude": [
"jest.config.ts",
"src/**/*.spec.ts",
diff --git a/libs/shared/storybook/tsconfig.storybook.json b/libs/shared/storybook/tsconfig.storybook.json
index 3555ddd4f..7985e684a 100644
--- a/libs/shared/storybook/tsconfig.storybook.json
+++ b/libs/shared/storybook/tsconfig.storybook.json
@@ -27,5 +27,5 @@
"src/**/*.stories.mdx",
".storybook/*.js",
".storybook/*.ts"
- ]
+, ".storybook/preview.tsx" ]
}
diff --git a/libs/shared/storybook/vite.config.ts b/libs/shared/storybook/vite.config.ts
new file mode 100644
index 000000000..e26084052
--- /dev/null
+++ b/libs/shared/storybook/vite.config.ts
@@ -0,0 +1,34 @@
+///
+import { defineConfig } from 'vite';
+import react from '@vitejs/plugin-react';
+import viteTsConfigPaths from 'vite-tsconfig-paths';
+
+export default defineConfig({
+ plugins: [
+ react({
+ babel: {
+ plugins: [
+ [
+ 'formatjs',
+ {
+ idInterpolationPattern: '[sha512:contenthash:base64:6]',
+ ast: true,
+ },
+ ],
+ ],
+ },
+ }),
+ viteTsConfigPaths({
+ root: '../../',
+ }),
+ ],
+
+ // Uncomment this if you are using workers.
+ // worker: {
+ // plugins: [
+ // viteTsConfigPaths({
+ // root: '../../',
+ // }),
+ // ],
+ // },
+});
diff --git a/package.json b/package.json
index 21bf1aa35..ad1db6cc4 100644
--- a/package.json
+++ b/package.json
@@ -2,7 +2,10 @@
"name": "@origin/source",
"version": "0.0.0",
"license": "MIT",
- "scripts": {},
+ "scripts": {
+ "build-storybook": "nx build-storybook shared-storybook --verbose",
+ "storybook": "nx storybook shared-storybook"
+ },
"private": true,
"dependencies": {
"@emotion/react": "^11.11.1",
@@ -11,11 +14,13 @@
"@tanstack/react-query": "^4.29.19",
"react": "18.2.0",
"react-dom": "18.2.0",
+ "react-intl": "^6.4.4",
"react-router-dom": "6.11.2",
"tslib": "^2.3.0"
},
"devDependencies": {
"@babel/preset-react": "^7.14.5",
+ "@formatjs/cli": "^6.1.3",
"@nx/cypress": "16.5.1",
"@nx/eslint-plugin": "16.5.1",
"@nx/js": "16.5.1",
@@ -38,6 +43,7 @@
"@vitejs/plugin-react": "~4.0.0",
"@vitest/coverage-c8": "~0.32.0",
"@vitest/ui": "~0.32.0",
+ "babel-plugin-formatjs": "^10.5.3",
"eslint": "~8.15.0",
"eslint-config-prettier": "8.1.0",
"eslint-plugin-cypress": "^2.10.3",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index ea2b4d560..0f5254ce1 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -23,6 +23,9 @@ dependencies:
react-dom:
specifier: 18.2.0
version: 18.2.0(react@18.2.0)
+ react-intl:
+ specifier: ^6.4.4
+ version: 6.4.4(react@18.2.0)(typescript@5.1.6)
react-router-dom:
specifier: 6.11.2
version: 6.11.2(react-dom@18.2.0)(react@18.2.0)
@@ -34,6 +37,9 @@ devDependencies:
'@babel/preset-react':
specifier: ^7.14.5
version: 7.22.5(@babel/core@7.22.9)
+ '@formatjs/cli':
+ specifier: ^6.1.3
+ version: 6.1.3
'@nx/cypress':
specifier: 16.5.1
version: 16.5.1(eslint@8.15.0)(nx@16.5.1)(typescript@5.1.6)
@@ -100,6 +106,9 @@ devDependencies:
'@vitest/ui':
specifier: ~0.32.0
version: 0.32.0(vitest@0.32.0)
+ babel-plugin-formatjs:
+ specifier: ^10.5.3
+ version: 10.5.3
eslint:
specifier: ~8.15.0
version: 8.15.0
@@ -1933,6 +1942,98 @@ packages:
resolution: {integrity: sha512-cEee/Z+I12mZcFJshKcCqC8tuX5hG3s+d+9nZ3LabqKF1vKdF41B92pJVCBggjAGORAeOzyyDDKrZwIkLffeOQ==}
dev: true
+ /@formatjs/cli@6.1.3:
+ resolution: {integrity: sha512-PdTXZTY8LqxwmvFqdifn89gjXnPUpGtGyFs0BnoeLuOuxZFSnBfIs5WQCVMaJnr1+0vNNlXyT0VAIAwjRpf6BA==}
+ engines: {node: '>= 16'}
+ hasBin: true
+ peerDependencies:
+ '@vue/compiler-sfc': ^3.2.34
+ peerDependenciesMeta:
+ '@vue/compiler-sfc':
+ optional: true
+ dev: true
+
+ /@formatjs/ecma402-abstract@1.17.0:
+ resolution: {integrity: sha512-6ueQTeJZtwKjmh23bdkq/DMqH4l4bmfvtQH98blOSbiXv/OUiyijSW6jU22IT8BNM1ujCaEvJfTtyCYVH38EMQ==}
+ dependencies:
+ '@formatjs/intl-localematcher': 0.4.0
+ tslib: 2.6.0
+
+ /@formatjs/fast-memoize@2.2.0:
+ resolution: {integrity: sha512-hnk/nY8FyrL5YxwP9e4r9dqeM6cAbo8PeU9UjyXojZMNvVad2Z06FAVHyR3Ecw6fza+0GH7vdJgiKIVXTMbSBA==}
+ dependencies:
+ tslib: 2.6.0
+ dev: false
+
+ /@formatjs/icu-messageformat-parser@2.6.0:
+ resolution: {integrity: sha512-yT6at0qc0DANw9qM/TU8RZaCtfDXtj4pZM/IC2WnVU80yAcliS3KVDiuUt4jSQAeFL9JS5bc2hARnFmjPdA6qw==}
+ dependencies:
+ '@formatjs/ecma402-abstract': 1.17.0
+ '@formatjs/icu-skeleton-parser': 1.6.0
+ tslib: 2.6.0
+
+ /@formatjs/icu-skeleton-parser@1.6.0:
+ resolution: {integrity: sha512-eMmxNpoX/J1IPUjPGSZwo0Wh+7CEvdEMddP2Jxg1gQJXfGfht/FdW2D5XDFj3VMbOTUQlDIdZJY7uC6O6gjPoA==}
+ dependencies:
+ '@formatjs/ecma402-abstract': 1.17.0
+ tslib: 2.6.0
+
+ /@formatjs/intl-displaynames@6.5.0:
+ resolution: {integrity: sha512-sg/nR8ILEdUl+2sWu6jc1nQ5s04yucGlH1RVfatW8TSJ5uG3Yy3vgigi8NNC/BuhcncUNPWqSpTCSI1hA+rhiw==}
+ dependencies:
+ '@formatjs/ecma402-abstract': 1.17.0
+ '@formatjs/intl-localematcher': 0.4.0
+ tslib: 2.6.0
+ dev: false
+
+ /@formatjs/intl-listformat@7.4.0:
+ resolution: {integrity: sha512-ifupb+balZUAF/Oh3QyGRqPRWGSKwWoMPR0cYZEG7r61SimD+m38oFQqVx/3Fp7LfQFF11m7IS+MlxOo2sKINA==}
+ dependencies:
+ '@formatjs/ecma402-abstract': 1.17.0
+ '@formatjs/intl-localematcher': 0.4.0
+ tslib: 2.6.0
+ dev: false
+
+ /@formatjs/intl-localematcher@0.4.0:
+ resolution: {integrity: sha512-bRTd+rKomvfdS4QDlVJ6TA/Jx1F2h/TBVO5LjvhQ7QPPHp19oPNMIum7W2CMEReq/zPxpmCeB31F9+5gl/qtvw==}
+ dependencies:
+ tslib: 2.6.0
+
+ /@formatjs/intl@2.9.0(typescript@5.1.6):
+ resolution: {integrity: sha512-Ym0trUoC/VO6wQu4YHa0H1VR2tEixFRmwZgADkDLm7nD+vv1Ob+/88mUAoT0pwvirFqYKgUKEwp1tFepqyqvVA==}
+ peerDependencies:
+ typescript: ^4.7 || 5
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ dependencies:
+ '@formatjs/ecma402-abstract': 1.17.0
+ '@formatjs/fast-memoize': 2.2.0
+ '@formatjs/icu-messageformat-parser': 2.6.0
+ '@formatjs/intl-displaynames': 6.5.0
+ '@formatjs/intl-listformat': 7.4.0
+ intl-messageformat: 10.5.0
+ tslib: 2.6.0
+ typescript: 5.1.6
+ dev: false
+
+ /@formatjs/ts-transformer@3.13.3:
+ resolution: {integrity: sha512-W6+huH4dLYx8eZfZue6fcreNzLZHoPboreqJSkickYCKIOicI35zC0Txb4xCT6kau/DXAKTpNEln3V2NgX6Igg==}
+ peerDependencies:
+ ts-jest: '>=27'
+ peerDependenciesMeta:
+ ts-jest:
+ optional: true
+ dependencies:
+ '@formatjs/icu-messageformat-parser': 2.6.0
+ '@types/json-stable-stringify': 1.0.34
+ '@types/node': 16.18.38
+ chalk: 4.1.2
+ json-stable-stringify: 1.0.2
+ tslib: 2.6.0
+ typescript: 5.1.6
+ dev: true
+
/@humanwhocodes/config-array@0.9.5:
resolution: {integrity: sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==}
engines: {node: '>=10.10.0'}
@@ -3907,6 +4008,12 @@ packages:
'@babel/types': 7.22.5
dev: true
+ /@types/babel__helper-plugin-utils@7.10.0:
+ resolution: {integrity: sha512-60YtHzhQ9HAkToHVV+TB4VLzBn9lrfgrsOjiJMtbv/c1jPdekBxaByd6DMsGBzROXWoIL6U3lEFvvbu69RkUoA==}
+ dependencies:
+ '@types/babel__core': 7.20.1
+ dev: true
+
/@types/babel__template@7.4.1:
resolution: {integrity: sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==}
dependencies:
@@ -4023,6 +4130,13 @@ packages:
'@types/node': 18.14.2
dev: true
+ /@types/hoist-non-react-statics@3.3.1:
+ resolution: {integrity: sha512-iMIqiko6ooLrTh1joXodJK5X9xeEALT1kM5G3ZLhD3hszxBdIEd5C75U834D9mLcINgD4OyZf5uQXjkuYydWvA==}
+ dependencies:
+ '@types/react': 18.2.14
+ hoist-non-react-statics: 3.3.2
+ dev: false
+
/@types/http-errors@2.0.1:
resolution: {integrity: sha512-/K3ds8TRAfBvi5vfjuz8y6+GiAYBZ0x4tXv1Av6CWBWn0IlADc+ZX9pMq7oU0fNQPnBwIZl3rmeLp6SBApbxSQ==}
dev: true
@@ -4047,6 +4161,10 @@ packages:
resolution: {integrity: sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==}
dev: true
+ /@types/json-stable-stringify@1.0.34:
+ resolution: {integrity: sha512-s2cfwagOQAS8o06TcwKfr9Wx11dNGbH2E9vJz1cqV+a/LOyhWNLUNd6JSRYNzvB4d29UuJX2M0Dj9vE1T8fRXw==}
+ dev: true
+
/@types/json5@0.0.29:
resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==}
dev: true
@@ -4930,6 +5048,25 @@ packages:
- supports-color
dev: true
+ /babel-plugin-formatjs@10.5.3:
+ resolution: {integrity: sha512-PBeryWyN2HY2VUGNFPQS6+DPNQ/I9zDZ97y38i1+LzIpIyTHBePECq/ehEABE73PvvF2irFiN7TCYBrQQw5+lA==}
+ dependencies:
+ '@babel/core': 7.22.9
+ '@babel/helper-plugin-utils': 7.22.5
+ '@babel/plugin-syntax-jsx': 7.22.5(@babel/core@7.22.9)
+ '@babel/traverse': 7.22.8
+ '@babel/types': 7.22.5
+ '@formatjs/icu-messageformat-parser': 2.6.0
+ '@formatjs/ts-transformer': 3.13.3
+ '@types/babel__core': 7.20.1
+ '@types/babel__helper-plugin-utils': 7.10.0
+ '@types/babel__traverse': 7.20.1
+ tslib: 2.6.0
+ transitivePeerDependencies:
+ - supports-color
+ - ts-jest
+ dev: true
+
/babel-plugin-istanbul@6.1.1:
resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==}
engines: {node: '>=8'}
@@ -7056,6 +7193,15 @@ packages:
side-channel: 1.0.4
dev: true
+ /intl-messageformat@10.5.0:
+ resolution: {integrity: sha512-AvojYuOaRb6r2veOKfTVpxH9TrmjSdc5iR9R5RgBwrDZYSmAAFVT+QLbW3C4V7Qsg0OguMp67Q/EoUkxZzXRGw==}
+ dependencies:
+ '@formatjs/ecma402-abstract': 1.17.0
+ '@formatjs/fast-memoize': 2.2.0
+ '@formatjs/icu-messageformat-parser': 2.6.0
+ tslib: 2.6.0
+ dev: false
+
/ip@2.0.0:
resolution: {integrity: sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==}
dev: true
@@ -7472,6 +7618,12 @@ packages:
resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==}
dev: true
+ /json-stable-stringify@1.0.2:
+ resolution: {integrity: sha512-eunSSaEnxV12z+Z73y/j5N37/In40GK4GmsSy+tEHJMxknvqnA7/djeYtAgW0GsWHUfg+847WJjKaEylk2y09g==}
+ dependencies:
+ jsonify: 0.0.1
+ dev: true
+
/json5@1.0.2:
resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==}
hasBin: true
@@ -7513,6 +7665,10 @@ packages:
graceful-fs: 4.2.11
dev: true
+ /jsonify@0.0.1:
+ resolution: {integrity: sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg==}
+ dev: true
+
/jsx-ast-utils@3.3.4:
resolution: {integrity: sha512-fX2TVdCViod6HwKEtSWGHs57oFhVfCMwieb9PuRDgjDPh5XeqJiHFFFJCHxU5cnTc3Bu/GRL+kPiFmw8XWOfKw==}
engines: {node: '>=4.0'}
@@ -8505,6 +8661,29 @@ packages:
react: 18.2.0
dev: true
+ /react-intl@6.4.4(react@18.2.0)(typescript@5.1.6):
+ resolution: {integrity: sha512-/C9Sl/5//ohfkNG6AWlJuf4BhTXsbzyk93K62A4zRhSPANyOGpKZ+fWhN+TLfFd5YjDUHy+exU/09y0w1bO4Xw==}
+ peerDependencies:
+ react: ^16.6.0 || 17 || 18
+ typescript: ^4.7 || 5
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ dependencies:
+ '@formatjs/ecma402-abstract': 1.17.0
+ '@formatjs/icu-messageformat-parser': 2.6.0
+ '@formatjs/intl': 2.9.0(typescript@5.1.6)
+ '@formatjs/intl-displaynames': 6.5.0
+ '@formatjs/intl-listformat': 7.4.0
+ '@types/hoist-non-react-statics': 3.3.1
+ '@types/react': 18.2.14
+ hoist-non-react-statics: 3.3.2
+ intl-messageformat: 10.5.0
+ react: 18.2.0
+ tslib: 2.6.0
+ typescript: 5.1.6
+ dev: false
+
/react-is@16.13.1:
resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==}
@@ -9461,7 +9640,6 @@ packages:
resolution: {integrity: sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==}
engines: {node: '>=14.17'}
hasBin: true
- dev: true
/ufo@1.1.2:
resolution: {integrity: sha512-TrY6DsjTQQgyS3E3dBaOXf0TpPD8u9FVrVYmKVegJuFw51n/YB9XPt+U6ydzFG5ZIN7+DIjPbNmXoBj9esYhgQ==}
diff --git a/tsconfig.base.json b/tsconfig.base.json
index 0a7b82f3b..21b63f18a 100644
--- a/tsconfig.base.json
+++ b/tsconfig.base.json
@@ -13,6 +13,7 @@
"lib": ["es2020", "dom"],
"skipLibCheck": true,
"skipDefaultLibCheck": true,
+ "resolveJsonModule": true,
"baseUrl": ".",
"paths": {
"@origin/defi/oeth": ["libs/defi/oeth/src/index.ts"],