From 34d7641d2142faba9bd3eae59b60b60246c24977 Mon Sep 17 00:00:00 2001 From: Willy Douhard Date: Thu, 3 Aug 2023 12:41:42 +0200 Subject: [PATCH] make pp adaptive --- pnpm-lock.yaml | 98 ++- src/chainlit/frontend/pnpm-lock.yaml | 568 ++++++++++-------- .../organisms/inputs/selectInput.tsx | 4 +- .../components/organisms/playground/basic.tsx | 61 +- .../components/organisms/playground/chat.tsx | 13 +- .../organisms/playground/editor/formatted.tsx | 66 +- .../organisms/playground/editor/message.tsx | 28 +- .../playground/editor/template/index.tsx | 6 +- .../playground/editor/template/variable.tsx | 6 +- .../components/organisms/playground/index.tsx | 44 +- src/chainlit/frontend/src/helpers/format.ts | 21 +- src/chainlit/lc/callbacks.py | 17 +- src/chainlit/llama_index/callbacks.py | 6 +- src/chainlit/playground/provider.py | 10 +- .../playground/providers/anthropic.py | 4 +- 15 files changed, 584 insertions(+), 368 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 39ccb824e1..b3ae214433 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,13 +1,13 @@ lockfileVersion: '6.0' settings: - autoInstallPeers: false + autoInstallPeers: true excludeLinksFromLockfile: false devDependencies: '@typescript-eslint/eslint-plugin': specifier: ^5.59.5 - version: 5.59.5(eslint@8.40.0)(typescript@5.0.4) + version: 5.59.5(@typescript-eslint/parser@5.62.0)(eslint@8.40.0)(typescript@5.0.4) cypress: specifier: ^12.9.0 version: 12.9.0 @@ -28,7 +28,7 @@ devDependencies: version: 1.2.2 ts-node: specifier: ^10.9.1 - version: 10.9.1(typescript@5.0.4) + version: 10.9.1(@types/node@14.18.53)(typescript@5.0.4) typescript: specifier: ^5.0.4 version: 5.0.4 @@ -107,7 +107,7 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: ajv: 6.12.6 - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) espree: 9.6.1 globals: 13.20.0 ignore: 5.2.4 @@ -129,7 +129,7 @@ packages: engines: {node: '>=10.10.0'} dependencies: '@humanwhocodes/object-schema': 1.2.1 - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) minimatch: 3.1.2 transitivePeerDependencies: - supports-color @@ -225,7 +225,7 @@ packages: dev: true optional: true - /@typescript-eslint/eslint-plugin@5.59.5(eslint@8.40.0)(typescript@5.0.4): + /@typescript-eslint/eslint-plugin@5.59.5(@typescript-eslint/parser@5.62.0)(eslint@8.40.0)(typescript@5.0.4): resolution: {integrity: sha512-feA9xbVRWJZor+AnLNAr7A8JRWeZqHUf4T9tlP+TN04b05pFVhO5eN7/O93Y/1OUlLMHKbnJisgDURs/qvtqdg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -237,10 +237,11 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.5.1 + '@typescript-eslint/parser': 5.62.0(eslint@8.40.0)(typescript@5.0.4) '@typescript-eslint/scope-manager': 5.59.5 '@typescript-eslint/type-utils': 5.59.5(eslint@8.40.0)(typescript@5.0.4) '@typescript-eslint/utils': 5.59.5(eslint@8.40.0)(typescript@5.0.4) - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) eslint: 8.40.0 grapheme-splitter: 1.0.4 ignore: 5.2.4 @@ -252,6 +253,26 @@ packages: - supports-color dev: true + /@typescript-eslint/parser@5.62.0(eslint@8.40.0)(typescript@5.0.4): + resolution: {integrity: sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/scope-manager': 5.62.0 + '@typescript-eslint/types': 5.62.0 + '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.0.4) + debug: 4.3.4(supports-color@8.1.1) + eslint: 8.40.0 + typescript: 5.0.4 + transitivePeerDependencies: + - supports-color + dev: true + /@typescript-eslint/scope-manager@5.59.5: resolution: {integrity: sha512-jVecWwnkX6ZgutF+DovbBJirZcAxgxC0EOHYt/niMROf8p4PwxxG32Qdhj/iIQQIuOflLjNkxoXyArkcIP7C3A==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -260,6 +281,14 @@ packages: '@typescript-eslint/visitor-keys': 5.59.5 dev: true + /@typescript-eslint/scope-manager@5.62.0: + resolution: {integrity: sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + '@typescript-eslint/types': 5.62.0 + '@typescript-eslint/visitor-keys': 5.62.0 + dev: true + /@typescript-eslint/type-utils@5.59.5(eslint@8.40.0)(typescript@5.0.4): resolution: {integrity: sha512-4eyhS7oGym67/pSxA2mmNq7X164oqDYNnZCUayBwJZIRVvKpBCMBzFnFxjeoDeShjtO6RQBHBuwybuX3POnDqg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -272,7 +301,7 @@ packages: dependencies: '@typescript-eslint/typescript-estree': 5.59.5(typescript@5.0.4) '@typescript-eslint/utils': 5.59.5(eslint@8.40.0)(typescript@5.0.4) - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) eslint: 8.40.0 tsutils: 3.21.0(typescript@5.0.4) typescript: 5.0.4 @@ -285,6 +314,11 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true + /@typescript-eslint/types@5.62.0: + resolution: {integrity: sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true + /@typescript-eslint/typescript-estree@5.59.5(typescript@5.0.4): resolution: {integrity: sha512-+XXdLN2CZLZcD/mO7mQtJMvCkzRfmODbeSKuMY/yXbGkzvA9rJyDY5qDYNoiz2kP/dmyAxXquL2BvLQLJFPQIg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -296,7 +330,28 @@ packages: dependencies: '@typescript-eslint/types': 5.59.5 '@typescript-eslint/visitor-keys': 5.59.5 - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) + globby: 11.1.0 + is-glob: 4.0.3 + semver: 7.5.4 + tsutils: 3.21.0(typescript@5.0.4) + typescript: 5.0.4 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/typescript-estree@5.62.0(typescript@5.0.4): + resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/types': 5.62.0 + '@typescript-eslint/visitor-keys': 5.62.0 + debug: 4.3.4(supports-color@8.1.1) globby: 11.1.0 is-glob: 4.0.3 semver: 7.5.4 @@ -334,6 +389,14 @@ packages: eslint-visitor-keys: 3.4.1 dev: true + /@typescript-eslint/visitor-keys@5.62.0: + resolution: {integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + '@typescript-eslint/types': 5.62.0 + eslint-visitor-keys: 3.4.1 + dev: true + /acorn-jsx@5.3.2(acorn@8.10.0): resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: @@ -689,18 +752,6 @@ packages: supports-color: 8.1.1 dev: true - /debug@4.3.4: - resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - dependencies: - ms: 2.1.2 - dev: true - /debug@4.3.4(supports-color@8.1.1): resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} engines: {node: '>=6.0'} @@ -817,7 +868,7 @@ packages: ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.3 - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) doctrine: 3.0.0 escape-string-regexp: 4.0.0 eslint-scope: 7.2.1 @@ -1829,7 +1880,7 @@ packages: hasBin: true dev: true - /ts-node@10.9.1(typescript@5.0.4): + /ts-node@10.9.1(@types/node@14.18.53)(typescript@5.0.4): resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} hasBin: true peerDependencies: @@ -1848,6 +1899,7 @@ packages: '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 + '@types/node': 14.18.53 acorn: 8.10.0 acorn-walk: 8.2.0 arg: 4.1.3 diff --git a/src/chainlit/frontend/pnpm-lock.yaml b/src/chainlit/frontend/pnpm-lock.yaml index 5b2acdbd92..0fae845703 100644 --- a/src/chainlit/frontend/pnpm-lock.yaml +++ b/src/chainlit/frontend/pnpm-lock.yaml @@ -1,7 +1,7 @@ lockfileVersion: '6.0' settings: - autoInstallPeers: false + autoInstallPeers: true excludeLinksFromLockfile: false dependencies: @@ -46,7 +46,7 @@ dependencies: version: 14.2.3(react@18.2.0) react-hot-toast: specifier: ^2.4.0 - version: 2.4.0(react-dom@18.2.0)(react@18.2.0) + version: 2.4.0(csstype@3.1.2)(react-dom@18.2.0)(react@18.2.0) react-hotkeys-hook: specifier: ^4.4.0 version: 4.4.0(react-dom@18.2.0)(react@18.2.0) @@ -99,13 +99,13 @@ dependencies: devDependencies: '@babel/preset-env': specifier: ^7.22.5 - version: 7.22.5 + version: 7.22.5(@babel/core@7.22.9) '@babel/preset-react': specifier: ^7.22.5 - version: 7.22.5 + version: 7.22.5(@babel/core@7.22.9) '@babel/preset-typescript': specifier: ^7.22.5 - version: 7.22.5 + version: 7.22.5(@babel/core@7.22.9) '@testing-library/jest-dom': specifier: ^5.16.5 version: 5.16.5 @@ -280,19 +280,6 @@ packages: '@babel/types': 7.22.5 dev: true - /@babel/helper-compilation-targets@7.22.9: - resolution: {integrity: sha512-7qYrNM6HjpnPHJbopxmb8hSPoZ0gsX8IvUS32JGVoy+pU9e5N0nLr1VjJoR6kA4d9dmGLxNYOjeB8sUDal2WMw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/compat-data': 7.22.9 - '@babel/helper-validator-option': 7.22.5 - browserslist: 4.21.9 - lru-cache: 5.1.1 - semver: 6.3.1 - dev: true - /@babel/helper-compilation-targets@7.22.9(@babel/core@7.22.9): resolution: {integrity: sha512-7qYrNM6HjpnPHJbopxmb8hSPoZ0gsX8IvUS32JGVoy+pU9e5N0nLr1VjJoR6kA4d9dmGLxNYOjeB8sUDal2WMw==} engines: {node: '>=6.9.0'} @@ -307,40 +294,43 @@ packages: semver: 6.3.1 dev: true - /@babel/helper-create-class-features-plugin@7.22.9: + /@babel/helper-create-class-features-plugin@7.22.9(@babel/core@7.22.9): resolution: {integrity: sha512-Pwyi89uO4YrGKxL/eNJ8lfEH55DnRloGPOseaA8NFNL6jAUnn+KccaISiFazCj5IolPPDjGSdzQzXVzODVRqUQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: + '@babel/core': 7.22.9 '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-environment-visitor': 7.22.5 '@babel/helper-function-name': 7.22.5 '@babel/helper-member-expression-to-functions': 7.22.5 '@babel/helper-optimise-call-expression': 7.22.5 - '@babel/helper-replace-supers': 7.22.9 + '@babel/helper-replace-supers': 7.22.9(@babel/core@7.22.9) '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 '@babel/helper-split-export-declaration': 7.22.6 semver: 6.3.1 dev: true - /@babel/helper-create-regexp-features-plugin@7.22.9: + /@babel/helper-create-regexp-features-plugin@7.22.9(@babel/core@7.22.9): resolution: {integrity: sha512-+svjVa/tFwsNSG4NEy1h85+HQ5imbT92Q5/bgtS7P0GTQlP8WuFdqsiABmQouhiFGyV66oGxZFpeYHza1rNsKw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: + '@babel/core': 7.22.9 '@babel/helper-annotate-as-pure': 7.22.5 regexpu-core: 5.3.2 semver: 6.3.1 dev: true - /@babel/helper-define-polyfill-provider@0.4.1: + /@babel/helper-define-polyfill-provider@0.4.1(@babel/core@7.22.9): resolution: {integrity: sha512-kX4oXixDxG197yhX+J3Wp+NpL2wuCFjWQAr6yX2jtCnflK9ulMI51ULFGIrWiX1jGfvAxdHp+XQCcP2bZGPs9A==} peerDependencies: '@babel/core': ^7.4.0-0 dependencies: - '@babel/helper-compilation-targets': 7.22.9 + '@babel/core': 7.22.9 + '@babel/helper-compilation-targets': 7.22.9(@babel/core@7.22.9) '@babel/helper-plugin-utils': 7.22.5 debug: 4.3.4 lodash.debounce: 4.0.8 @@ -382,19 +372,6 @@ packages: dependencies: '@babel/types': 7.22.5 - /@babel/helper-module-transforms@7.22.9: - resolution: {integrity: sha512-t+WA2Xn5K+rTeGtC8jCsdAH52bjggG5TKRuRrAGNM/mjIbO4GxvlLMFOEz9wXY5I2XQ60PMFsAG2WIcG82dQMQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/helper-environment-visitor': 7.22.5 - '@babel/helper-module-imports': 7.22.5 - '@babel/helper-simple-access': 7.22.5 - '@babel/helper-split-export-declaration': 7.22.6 - '@babel/helper-validator-identifier': 7.22.5 - dev: true - /@babel/helper-module-transforms@7.22.9(@babel/core@7.22.9): resolution: {integrity: sha512-t+WA2Xn5K+rTeGtC8jCsdAH52bjggG5TKRuRrAGNM/mjIbO4GxvlLMFOEz9wXY5I2XQ60PMFsAG2WIcG82dQMQ==} engines: {node: '>=6.9.0'} @@ -421,23 +398,25 @@ packages: engines: {node: '>=6.9.0'} dev: true - /@babel/helper-remap-async-to-generator@7.22.9: + /@babel/helper-remap-async-to-generator@7.22.9(@babel/core@7.22.9): resolution: {integrity: sha512-8WWC4oR4Px+tr+Fp0X3RHDVfINGpF3ad1HIbrc8A77epiR6eMMc6jsgozkzT2uDiOOdoS9cLIQ+XD2XvI2WSmQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: + '@babel/core': 7.22.9 '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-environment-visitor': 7.22.5 '@babel/helper-wrap-function': 7.22.9 dev: true - /@babel/helper-replace-supers@7.22.9: + /@babel/helper-replace-supers@7.22.9(@babel/core@7.22.9): resolution: {integrity: sha512-LJIKvvpgPOPUThdYqcX6IXRuIcTkcAub0IaDRGCZH0p5GPUp7PhRU9QVgFcDDd51BaPkk77ZjqFwh6DZTAEmGg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: + '@babel/core': 7.22.9 '@babel/helper-environment-visitor': 7.22.5 '@babel/helper-member-expression-to-functions': 7.22.5 '@babel/helper-optimise-call-expression': 7.22.5 @@ -513,608 +492,672 @@ packages: '@babel/types': 7.17.0 dev: true - /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.22.5: + /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.22.5(@babel/core@7.22.9): resolution: {integrity: sha512-NP1M5Rf+u2Gw9qfSO4ihjcTGW5zXTi36ITLd4/EoAcEhIZ0yjMqmftDNl3QC19CX7olhrjpyU454g/2W7X0jvQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: + '@babel/core': 7.22.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.22.5: + /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.22.5(@babel/core@7.22.9): resolution: {integrity: sha512-31Bb65aZaUwqCbWMnZPduIZxCBngHFlzyN6Dq6KAJjtx+lx6ohKHubc61OomYi7XwVD4Ol0XCVz4h+pYFR048g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.13.0 dependencies: + '@babel/core': 7.22.9 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-transform-optional-chaining': 7.22.6 + '@babel/plugin-transform-optional-chaining': 7.22.6(@babel/core@7.22.9) dev: true - /@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2: + /@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.22.9): resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.9 dev: true - /@babel/plugin-proposal-unicode-property-regex@7.18.6: + /@babel/plugin-proposal-unicode-property-regex@7.18.6(@babel/core@7.22.9): resolution: {integrity: sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==} engines: {node: '>=4'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/helper-create-regexp-features-plugin': 7.22.9 + '@babel/core': 7.22.9 + '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.22.9) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-async-generators@7.8.4: + /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.22.9): resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: + '@babel/core': 7.22.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-class-properties@7.12.13: + /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.22.9): resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: + '@babel/core': 7.22.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-class-static-block@7.14.5: + /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.22.9): resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: + '@babel/core': 7.22.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-dynamic-import@7.8.3: + /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.22.9): resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: + '@babel/core': 7.22.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-export-namespace-from@7.8.3: + /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.22.9): resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: + '@babel/core': 7.22.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-import-assertions@7.22.5: + /@babel/plugin-syntax-import-assertions@7.22.5(@babel/core@7.22.9): resolution: {integrity: sha512-rdV97N7KqsRzeNGoWUOK6yUsWarLjE5Su/Snk9IYPU9CwkWHs4t+rTGOvffTR8XGkJMTAdLfO0xVnXm8wugIJg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: + '@babel/core': 7.22.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-import-attributes@7.22.5: + /@babel/plugin-syntax-import-attributes@7.22.5(@babel/core@7.22.9): resolution: {integrity: sha512-KwvoWDeNKPETmozyFE0P2rOLqh39EoQHNjqizrI5B8Vt0ZNS7M56s7dAiAqbYfiAYOuIzIh96z3iR2ktgu3tEg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: + '@babel/core': 7.22.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-import-meta@7.10.4: + /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.22.9): resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: + '@babel/core': 7.22.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-json-strings@7.8.3: + /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.22.9): resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: + '@babel/core': 7.22.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-jsx@7.22.5: + /@babel/plugin-syntax-jsx@7.22.5(@babel/core@7.22.9): resolution: {integrity: sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: + '@babel/core': 7.22.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-logical-assignment-operators@7.10.4: + /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.22.9): resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: + '@babel/core': 7.22.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3: + /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.22.9): resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: + '@babel/core': 7.22.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-numeric-separator@7.10.4: + /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.22.9): resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: + '@babel/core': 7.22.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-object-rest-spread@7.8.3: + /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.22.9): resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: + '@babel/core': 7.22.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-optional-catch-binding@7.8.3: + /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.22.9): resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: + '@babel/core': 7.22.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-optional-chaining@7.8.3: + /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.22.9): resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: + '@babel/core': 7.22.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-private-property-in-object@7.14.5: + /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.22.9): resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: + '@babel/core': 7.22.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-top-level-await@7.14.5: + /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.22.9): resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: + '@babel/core': 7.22.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-typescript@7.22.5: + /@babel/plugin-syntax-typescript@7.22.5(@babel/core@7.22.9): resolution: {integrity: sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: + '@babel/core': 7.22.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-unicode-sets-regex@7.18.6: + /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.22.9): resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/helper-create-regexp-features-plugin': 7.22.9 + '@babel/core': 7.22.9 + '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.22.9) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-arrow-functions@7.22.5: + /@babel/plugin-transform-arrow-functions@7.22.5(@babel/core@7.22.9): resolution: {integrity: sha512-26lTNXoVRdAnsaDXPpvCNUq+OVWEVC6bx7Vvz9rC53F2bagUWW4u4ii2+h8Fejfh7RYqPxn+libeFBBck9muEw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: + '@babel/core': 7.22.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-async-generator-functions@7.22.7: + /@babel/plugin-transform-async-generator-functions@7.22.7(@babel/core@7.22.9): resolution: {integrity: sha512-7HmE7pk/Fmke45TODvxvkxRMV9RazV+ZZzhOL9AG8G29TLrr3jkjwF7uJfxZ30EoXpO+LJkq4oA8NjO2DTnEDg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: + '@babel/core': 7.22.9 '@babel/helper-environment-visitor': 7.22.5 '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-remap-async-to-generator': 7.22.9 - '@babel/plugin-syntax-async-generators': 7.8.4 + '@babel/helper-remap-async-to-generator': 7.22.9(@babel/core@7.22.9) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.22.9) dev: true - /@babel/plugin-transform-async-to-generator@7.22.5: + /@babel/plugin-transform-async-to-generator@7.22.5(@babel/core@7.22.9): resolution: {integrity: sha512-b1A8D8ZzE/VhNDoV1MSJTnpKkCG5bJo+19R4o4oy03zM7ws8yEMK755j61Dc3EyvdysbqH5BOOTquJ7ZX9C6vQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: + '@babel/core': 7.22.9 '@babel/helper-module-imports': 7.22.5 '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-remap-async-to-generator': 7.22.9 + '@babel/helper-remap-async-to-generator': 7.22.9(@babel/core@7.22.9) dev: true - /@babel/plugin-transform-block-scoped-functions@7.22.5: + /@babel/plugin-transform-block-scoped-functions@7.22.5(@babel/core@7.22.9): resolution: {integrity: sha512-tdXZ2UdknEKQWKJP1KMNmuF5Lx3MymtMN/pvA+p/VEkhK8jVcQ1fzSy8KM9qRYhAf2/lV33hoMPKI/xaI9sADA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: + '@babel/core': 7.22.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-block-scoping@7.22.5: + /@babel/plugin-transform-block-scoping@7.22.5(@babel/core@7.22.9): resolution: {integrity: sha512-EcACl1i5fSQ6bt+YGuU/XGCeZKStLmyVGytWkpyhCLeQVA0eu6Wtiw92V+I1T/hnezUv7j74dA/Ro69gWcU+hg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: + '@babel/core': 7.22.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-class-properties@7.22.5: + /@babel/plugin-transform-class-properties@7.22.5(@babel/core@7.22.9): resolution: {integrity: sha512-nDkQ0NfkOhPTq8YCLiWNxp1+f9fCobEjCb0n8WdbNUBc4IB5V7P1QnX9IjpSoquKrXF5SKojHleVNs2vGeHCHQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/helper-create-class-features-plugin': 7.22.9 + '@babel/core': 7.22.9 + '@babel/helper-create-class-features-plugin': 7.22.9(@babel/core@7.22.9) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-class-static-block@7.22.5: + /@babel/plugin-transform-class-static-block@7.22.5(@babel/core@7.22.9): resolution: {integrity: sha512-SPToJ5eYZLxlnp1UzdARpOGeC2GbHvr9d/UV0EukuVx8atktg194oe+C5BqQ8jRTkgLRVOPYeXRSBg1IlMoVRA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.12.0 dependencies: - '@babel/helper-create-class-features-plugin': 7.22.9 + '@babel/core': 7.22.9 + '@babel/helper-create-class-features-plugin': 7.22.9(@babel/core@7.22.9) '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-class-static-block': 7.14.5 + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.22.9) dev: true - /@babel/plugin-transform-classes@7.22.6: + /@babel/plugin-transform-classes@7.22.6(@babel/core@7.22.9): resolution: {integrity: sha512-58EgM6nuPNG6Py4Z3zSuu0xWu2VfodiMi72Jt5Kj2FECmaYk1RrTXA45z6KBFsu9tRgwQDwIiY4FXTt+YsSFAQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: + '@babel/core': 7.22.9 '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-compilation-targets': 7.22.9 + '@babel/helper-compilation-targets': 7.22.9(@babel/core@7.22.9) '@babel/helper-environment-visitor': 7.22.5 '@babel/helper-function-name': 7.22.5 '@babel/helper-optimise-call-expression': 7.22.5 '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-replace-supers': 7.22.9 + '@babel/helper-replace-supers': 7.22.9(@babel/core@7.22.9) '@babel/helper-split-export-declaration': 7.22.6 globals: 11.12.0 dev: true - /@babel/plugin-transform-computed-properties@7.22.5: + /@babel/plugin-transform-computed-properties@7.22.5(@babel/core@7.22.9): resolution: {integrity: sha512-4GHWBgRf0krxPX+AaPtgBAlTgTeZmqDynokHOX7aqqAB4tHs3U2Y02zH6ETFdLZGcg9UQSD1WCmkVrE9ErHeOg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: + '@babel/core': 7.22.9 '@babel/helper-plugin-utils': 7.22.5 '@babel/template': 7.22.5 dev: true - /@babel/plugin-transform-destructuring@7.22.5: + /@babel/plugin-transform-destructuring@7.22.5(@babel/core@7.22.9): resolution: {integrity: sha512-GfqcFuGW8vnEqTUBM7UtPd5A4q797LTvvwKxXTgRsFjoqaJiEg9deBG6kWeQYkVEL569NpnmpC0Pkr/8BLKGnQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: + '@babel/core': 7.22.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-dotall-regex@7.22.5: + /@babel/plugin-transform-dotall-regex@7.22.5(@babel/core@7.22.9): resolution: {integrity: sha512-5/Yk9QxCQCl+sOIB1WelKnVRxTJDSAIxtJLL2/pqL14ZVlbH0fUQUZa/T5/UnQtBNgghR7mfB8ERBKyKPCi7Vw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/helper-create-regexp-features-plugin': 7.22.9 + '@babel/core': 7.22.9 + '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.22.9) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-duplicate-keys@7.22.5: + /@babel/plugin-transform-duplicate-keys@7.22.5(@babel/core@7.22.9): resolution: {integrity: sha512-dEnYD+9BBgld5VBXHnF/DbYGp3fqGMsyxKbtD1mDyIA7AkTSpKXFhCVuj/oQVOoALfBs77DudA0BE4d5mcpmqw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: + '@babel/core': 7.22.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-dynamic-import@7.22.5: + /@babel/plugin-transform-dynamic-import@7.22.5(@babel/core@7.22.9): resolution: {integrity: sha512-0MC3ppTB1AMxd8fXjSrbPa7LT9hrImt+/fcj+Pg5YMD7UQyWp/02+JWpdnCymmsXwIx5Z+sYn1bwCn4ZJNvhqQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: + '@babel/core': 7.22.9 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-dynamic-import': 7.8.3 + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.22.9) dev: true - /@babel/plugin-transform-exponentiation-operator@7.22.5: + /@babel/plugin-transform-exponentiation-operator@7.22.5(@babel/core@7.22.9): resolution: {integrity: sha512-vIpJFNM/FjZ4rh1myqIya9jXwrwwgFRHPjT3DkUA9ZLHuzox8jiXkOLvwm1H+PQIP3CqfC++WPKeuDi0Sjdj1g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: + '@babel/core': 7.22.9 '@babel/helper-builder-binary-assignment-operator-visitor': 7.22.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-export-namespace-from@7.22.5: + /@babel/plugin-transform-export-namespace-from@7.22.5(@babel/core@7.22.9): resolution: {integrity: sha512-X4hhm7FRnPgd4nDA4b/5V280xCx6oL7Oob5+9qVS5C13Zq4bh1qq7LU0GgRU6b5dBWBvhGaXYVB4AcN6+ol6vg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: + '@babel/core': 7.22.9 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-export-namespace-from': 7.8.3 + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.22.9) dev: true - /@babel/plugin-transform-for-of@7.22.5: + /@babel/plugin-transform-for-of@7.22.5(@babel/core@7.22.9): resolution: {integrity: sha512-3kxQjX1dU9uudwSshyLeEipvrLjBCVthCgeTp6CzE/9JYrlAIaeekVxRpCWsDDfYTfRZRoCeZatCQvwo+wvK8A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: + '@babel/core': 7.22.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-function-name@7.22.5: + /@babel/plugin-transform-function-name@7.22.5(@babel/core@7.22.9): resolution: {integrity: sha512-UIzQNMS0p0HHiQm3oelztj+ECwFnj+ZRV4KnguvlsD2of1whUeM6o7wGNj6oLwcDoAXQ8gEqfgC24D+VdIcevg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/helper-compilation-targets': 7.22.9 + '@babel/core': 7.22.9 + '@babel/helper-compilation-targets': 7.22.9(@babel/core@7.22.9) '@babel/helper-function-name': 7.22.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-json-strings@7.22.5: + /@babel/plugin-transform-json-strings@7.22.5(@babel/core@7.22.9): resolution: {integrity: sha512-DuCRB7fu8MyTLbEQd1ew3R85nx/88yMoqo2uPSjevMj3yoN7CDM8jkgrY0wmVxfJZyJ/B9fE1iq7EQppWQmR5A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: + '@babel/core': 7.22.9 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-json-strings': 7.8.3 + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.22.9) dev: true - /@babel/plugin-transform-literals@7.22.5: + /@babel/plugin-transform-literals@7.22.5(@babel/core@7.22.9): resolution: {integrity: sha512-fTLj4D79M+mepcw3dgFBTIDYpbcB9Sm0bpm4ppXPaO+U+PKFFyV9MGRvS0gvGw62sd10kT5lRMKXAADb9pWy8g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: + '@babel/core': 7.22.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-logical-assignment-operators@7.22.5: + /@babel/plugin-transform-logical-assignment-operators@7.22.5(@babel/core@7.22.9): resolution: {integrity: sha512-MQQOUW1KL8X0cDWfbwYP+TbVbZm16QmQXJQ+vndPtH/BoO0lOKpVoEDMI7+PskYxH+IiE0tS8xZye0qr1lGzSA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: + '@babel/core': 7.22.9 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4 + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.22.9) dev: true - /@babel/plugin-transform-member-expression-literals@7.22.5: + /@babel/plugin-transform-member-expression-literals@7.22.5(@babel/core@7.22.9): resolution: {integrity: sha512-RZEdkNtzzYCFl9SE9ATaUMTj2hqMb4StarOJLrZRbqqU4HSBE7UlBw9WBWQiDzrJZJdUWiMTVDI6Gv/8DPvfew==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: + '@babel/core': 7.22.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-modules-amd@7.22.5: + /@babel/plugin-transform-modules-amd@7.22.5(@babel/core@7.22.9): resolution: {integrity: sha512-R+PTfLTcYEmb1+kK7FNkhQ1gP4KgjpSO6HfH9+f8/yfp2Nt3ggBjiVpRwmwTlfqZLafYKJACy36yDXlEmI9HjQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/helper-module-transforms': 7.22.9 + '@babel/core': 7.22.9 + '@babel/helper-module-transforms': 7.22.9(@babel/core@7.22.9) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-modules-commonjs@7.22.5: + /@babel/plugin-transform-modules-commonjs@7.22.5(@babel/core@7.22.9): resolution: {integrity: sha512-B4pzOXj+ONRmuaQTg05b3y/4DuFz3WcCNAXPLb2Q0GT0TrGKGxNKV4jwsXts+StaM0LQczZbOpj8o1DLPDJIiA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/helper-module-transforms': 7.22.9 + '@babel/core': 7.22.9 + '@babel/helper-module-transforms': 7.22.9(@babel/core@7.22.9) '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-simple-access': 7.22.5 dev: true - /@babel/plugin-transform-modules-systemjs@7.22.5: + /@babel/plugin-transform-modules-systemjs@7.22.5(@babel/core@7.22.9): resolution: {integrity: sha512-emtEpoaTMsOs6Tzz+nbmcePl6AKVtS1yC4YNAeMun9U8YCsgadPNxnOPQ8GhHFB2qdx+LZu9LgoC0Lthuu05DQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: + '@babel/core': 7.22.9 '@babel/helper-hoist-variables': 7.22.5 - '@babel/helper-module-transforms': 7.22.9 + '@babel/helper-module-transforms': 7.22.9(@babel/core@7.22.9) '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-validator-identifier': 7.22.5 dev: true - /@babel/plugin-transform-modules-umd@7.22.5: + /@babel/plugin-transform-modules-umd@7.22.5(@babel/core@7.22.9): resolution: {integrity: sha512-+S6kzefN/E1vkSsKx8kmQuqeQsvCKCd1fraCM7zXm4SFoggI099Tr4G8U81+5gtMdUeMQ4ipdQffbKLX0/7dBQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/helper-module-transforms': 7.22.9 + '@babel/core': 7.22.9 + '@babel/helper-module-transforms': 7.22.9(@babel/core@7.22.9) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-named-capturing-groups-regex@7.22.5: + /@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.22.9): resolution: {integrity: sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/helper-create-regexp-features-plugin': 7.22.9 + '@babel/core': 7.22.9 + '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.22.9) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-new-target@7.22.5: + /@babel/plugin-transform-new-target@7.22.5(@babel/core@7.22.9): resolution: {integrity: sha512-AsF7K0Fx/cNKVyk3a+DW0JLo+Ua598/NxMRvxDnkpCIGFh43+h/v2xyhRUYf6oD8gE4QtL83C7zZVghMjHd+iw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: + '@babel/core': 7.22.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-nullish-coalescing-operator@7.22.5: + /@babel/plugin-transform-nullish-coalescing-operator@7.22.5(@babel/core@7.22.9): resolution: {integrity: sha512-6CF8g6z1dNYZ/VXok5uYkkBBICHZPiGEl7oDnAx2Mt1hlHVHOSIKWJaXHjQJA5VB43KZnXZDIexMchY4y2PGdA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: + '@babel/core': 7.22.9 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3 + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.22.9) dev: true - /@babel/plugin-transform-numeric-separator@7.22.5: + /@babel/plugin-transform-numeric-separator@7.22.5(@babel/core@7.22.9): resolution: {integrity: sha512-NbslED1/6M+sXiwwtcAB/nieypGw02Ejf4KtDeMkCEpP6gWFMX1wI9WKYua+4oBneCCEmulOkRpwywypVZzs/g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: + '@babel/core': 7.22.9 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-numeric-separator': 7.10.4 + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.22.9) dev: true - /@babel/plugin-transform-object-rest-spread@7.22.5: + /@babel/plugin-transform-object-rest-spread@7.22.5(@babel/core@7.22.9): resolution: {integrity: sha512-Kk3lyDmEslH9DnvCDA1s1kkd3YWQITiBOHngOtDL9Pt6BZjzqb6hiOlb8VfjiiQJ2unmegBqZu0rx5RxJb5vmQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/compat-data': 7.22.9 - '@babel/helper-compilation-targets': 7.22.9 + '@babel/core': 7.22.9 + '@babel/helper-compilation-targets': 7.22.9(@babel/core@7.22.9) '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-object-rest-spread': 7.8.3 - '@babel/plugin-transform-parameters': 7.22.5 + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.22.9) + '@babel/plugin-transform-parameters': 7.22.5(@babel/core@7.22.9) dev: true - /@babel/plugin-transform-object-super@7.22.5: + /@babel/plugin-transform-object-super@7.22.5(@babel/core@7.22.9): resolution: {integrity: sha512-klXqyaT9trSjIUrcsYIfETAzmOEZL3cBYqOYLJxBHfMFFggmXOv+NYSX/Jbs9mzMVESw/WycLFPRx8ba/b2Ipw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: + '@babel/core': 7.22.9 '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-replace-supers': 7.22.9 + '@babel/helper-replace-supers': 7.22.9(@babel/core@7.22.9) dev: true - /@babel/plugin-transform-optional-catch-binding@7.22.5: + /@babel/plugin-transform-optional-catch-binding@7.22.5(@babel/core@7.22.9): resolution: {integrity: sha512-pH8orJahy+hzZje5b8e2QIlBWQvGpelS76C63Z+jhZKsmzfNaPQ+LaW6dcJ9bxTpo1mtXbgHwy765Ro3jftmUg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: + '@babel/core': 7.22.9 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3 + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.22.9) dev: true - /@babel/plugin-transform-optional-chaining@7.22.6: + /@babel/plugin-transform-optional-chaining@7.22.6(@babel/core@7.22.9): resolution: {integrity: sha512-Vd5HiWml0mDVtcLHIoEU5sw6HOUW/Zk0acLs/SAeuLzkGNOPc9DB4nkUajemhCmTIz3eiaKREZn2hQQqF79YTg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: + '@babel/core': 7.22.9 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-syntax-optional-chaining': 7.8.3 + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.22.9) dev: true - /@babel/plugin-transform-parameters@7.22.5: + /@babel/plugin-transform-parameters@7.22.5(@babel/core@7.22.9): resolution: {integrity: sha512-AVkFUBurORBREOmHRKo06FjHYgjrabpdqRSwq6+C7R5iTCZOsM4QbcB27St0a4U6fffyAOqh3s/qEfybAhfivg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: + '@babel/core': 7.22.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-private-methods@7.22.5: + /@babel/plugin-transform-private-methods@7.22.5(@babel/core@7.22.9): resolution: {integrity: sha512-PPjh4gyrQnGe97JTalgRGMuU4icsZFnWkzicB/fUtzlKUqvsWBKEpPPfr5a2JiyirZkHxnAqkQMO5Z5B2kK3fA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/helper-create-class-features-plugin': 7.22.9 + '@babel/core': 7.22.9 + '@babel/helper-create-class-features-plugin': 7.22.9(@babel/core@7.22.9) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-private-property-in-object@7.22.5: + /@babel/plugin-transform-private-property-in-object@7.22.5(@babel/core@7.22.9): resolution: {integrity: sha512-/9xnaTTJcVoBtSSmrVyhtSvO3kbqS2ODoh2juEU72c3aYonNF0OMGiaz2gjukyKM2wBBYJP38S4JiE0Wfb5VMQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: + '@babel/core': 7.22.9 '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-create-class-features-plugin': 7.22.9 + '@babel/helper-create-class-features-plugin': 7.22.9(@babel/core@7.22.9) '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-private-property-in-object': 7.14.5 + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.22.9) dev: true - /@babel/plugin-transform-property-literals@7.22.5: + /@babel/plugin-transform-property-literals@7.22.5(@babel/core@7.22.9): resolution: {integrity: sha512-TiOArgddK3mK/x1Qwf5hay2pxI6wCZnvQqrFSqbtg1GLl2JcNMitVH/YnqjP+M31pLUeTfzY1HAXFDnUBV30rQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: + '@babel/core': 7.22.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-react-display-name@7.22.5: + /@babel/plugin-transform-react-display-name@7.22.5(@babel/core@7.22.9): resolution: {integrity: sha512-PVk3WPYudRF5z4GKMEYUrLjPl38fJSKNaEOkFuoprioowGuWN6w2RKznuFNSlJx7pzzXXStPUnNSOEO0jL5EVw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: + '@babel/core': 7.22.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-react-jsx-development@7.22.5: + /@babel/plugin-transform-react-jsx-development@7.22.5(@babel/core@7.22.9): resolution: {integrity: sha512-bDhuzwWMuInwCYeDeMzyi7TaBgRQei6DqxhbyniL7/VG4RSS7HtSL2QbY4eESy1KJqlWt8g3xeEBGPuo+XqC8A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/plugin-transform-react-jsx': 7.22.5 + '@babel/core': 7.22.9 + '@babel/plugin-transform-react-jsx': 7.22.5(@babel/core@7.22.9) dev: true /@babel/plugin-transform-react-jsx-self@7.22.5(@babel/core@7.22.9): @@ -1137,272 +1180,290 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-react-jsx@7.22.5: + /@babel/plugin-transform-react-jsx@7.22.5(@babel/core@7.22.9): resolution: {integrity: sha512-rog5gZaVbUip5iWDMTYbVM15XQq+RkUKhET/IHR6oizR+JEoN6CAfTTuHcK4vwUyzca30qqHqEpzBOnaRMWYMA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: + '@babel/core': 7.22.9 '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-module-imports': 7.22.5 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-jsx': 7.22.5 + '@babel/plugin-syntax-jsx': 7.22.5(@babel/core@7.22.9) '@babel/types': 7.22.5 dev: true - /@babel/plugin-transform-react-pure-annotations@7.22.5: + /@babel/plugin-transform-react-pure-annotations@7.22.5(@babel/core@7.22.9): resolution: {integrity: sha512-gP4k85wx09q+brArVinTXhWiyzLl9UpmGva0+mWyKxk6JZequ05x3eUcIUE+FyttPKJFRRVtAvQaJ6YF9h1ZpA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: + '@babel/core': 7.22.9 '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-regenerator@7.22.5: + /@babel/plugin-transform-regenerator@7.22.5(@babel/core@7.22.9): resolution: {integrity: sha512-rR7KePOE7gfEtNTh9Qw+iO3Q/e4DEsoQ+hdvM6QUDH7JRJ5qxq5AA52ZzBWbI5i9lfNuvySgOGP8ZN7LAmaiPw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: + '@babel/core': 7.22.9 '@babel/helper-plugin-utils': 7.22.5 regenerator-transform: 0.15.1 dev: true - /@babel/plugin-transform-reserved-words@7.22.5: + /@babel/plugin-transform-reserved-words@7.22.5(@babel/core@7.22.9): resolution: {integrity: sha512-DTtGKFRQUDm8svigJzZHzb/2xatPc6TzNvAIJ5GqOKDsGFYgAskjRulbR/vGsPKq3OPqtexnz327qYpP57RFyA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: + '@babel/core': 7.22.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-shorthand-properties@7.22.5: + /@babel/plugin-transform-shorthand-properties@7.22.5(@babel/core@7.22.9): resolution: {integrity: sha512-vM4fq9IXHscXVKzDv5itkO1X52SmdFBFcMIBZ2FRn2nqVYqw6dBexUgMvAjHW+KXpPPViD/Yo3GrDEBaRC0QYA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: + '@babel/core': 7.22.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-spread@7.22.5: + /@babel/plugin-transform-spread@7.22.5(@babel/core@7.22.9): resolution: {integrity: sha512-5ZzDQIGyvN4w8+dMmpohL6MBo+l2G7tfC/O2Dg7/hjpgeWvUx8FzfeOKxGog9IimPa4YekaQ9PlDqTLOljkcxg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: + '@babel/core': 7.22.9 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 dev: true - /@babel/plugin-transform-sticky-regex@7.22.5: + /@babel/plugin-transform-sticky-regex@7.22.5(@babel/core@7.22.9): resolution: {integrity: sha512-zf7LuNpHG0iEeiyCNwX4j3gDg1jgt1k3ZdXBKbZSoA3BbGQGvMiSvfbZRR3Dr3aeJe3ooWFZxOOG3IRStYp2Bw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: + '@babel/core': 7.22.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-template-literals@7.22.5: + /@babel/plugin-transform-template-literals@7.22.5(@babel/core@7.22.9): resolution: {integrity: sha512-5ciOehRNf+EyUeewo8NkbQiUs4d6ZxiHo6BcBcnFlgiJfu16q0bQUw9Jvo0b0gBKFG1SMhDSjeKXSYuJLeFSMA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: + '@babel/core': 7.22.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-typeof-symbol@7.22.5: + /@babel/plugin-transform-typeof-symbol@7.22.5(@babel/core@7.22.9): resolution: {integrity: sha512-bYkI5lMzL4kPii4HHEEChkD0rkc+nvnlR6+o/qdqR6zrm0Sv/nodmyLhlq2DO0YKLUNd2VePmPRjJXSBh9OIdA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: + '@babel/core': 7.22.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-typescript@7.22.9: + /@babel/plugin-transform-typescript@7.22.9(@babel/core@7.22.9): resolution: {integrity: sha512-BnVR1CpKiuD0iobHPaM1iLvcwPYN2uVFAqoLVSpEDKWuOikoCv5HbKLxclhKYUXlWkX86DoZGtqI4XhbOsyrMg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: + '@babel/core': 7.22.9 '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-create-class-features-plugin': 7.22.9 + '@babel/helper-create-class-features-plugin': 7.22.9(@babel/core@7.22.9) '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-typescript': 7.22.5 + '@babel/plugin-syntax-typescript': 7.22.5(@babel/core@7.22.9) dev: true - /@babel/plugin-transform-unicode-escapes@7.22.5: + /@babel/plugin-transform-unicode-escapes@7.22.5(@babel/core@7.22.9): resolution: {integrity: sha512-biEmVg1IYB/raUO5wT1tgfacCef15Fbzhkx493D3urBI++6hpJ+RFG4SrWMn0NEZLfvilqKf3QDrRVZHo08FYg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: + '@babel/core': 7.22.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-unicode-property-regex@7.22.5: + /@babel/plugin-transform-unicode-property-regex@7.22.5(@babel/core@7.22.9): resolution: {integrity: sha512-HCCIb+CbJIAE6sXn5CjFQXMwkCClcOfPCzTlilJ8cUatfzwHlWQkbtV0zD338u9dZskwvuOYTuuaMaA8J5EI5A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/helper-create-regexp-features-plugin': 7.22.9 + '@babel/core': 7.22.9 + '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.22.9) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-unicode-regex@7.22.5: + /@babel/plugin-transform-unicode-regex@7.22.5(@babel/core@7.22.9): resolution: {integrity: sha512-028laaOKptN5vHJf9/Arr/HiJekMd41hOEZYvNsrsXqJ7YPYuX2bQxh31fkZzGmq3YqHRJzYFFAVYvKfMPKqyg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/helper-create-regexp-features-plugin': 7.22.9 + '@babel/core': 7.22.9 + '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.22.9) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-unicode-sets-regex@7.22.5: + /@babel/plugin-transform-unicode-sets-regex@7.22.5(@babel/core@7.22.9): resolution: {integrity: sha512-lhMfi4FC15j13eKrh3DnYHjpGj6UKQHtNKTbtc1igvAhRy4+kLhV07OpLcsN0VgDEw/MjAvJO4BdMJsHwMhzCg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/helper-create-regexp-features-plugin': 7.22.9 + '@babel/core': 7.22.9 + '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.22.9) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/preset-env@7.22.5: + /@babel/preset-env@7.22.5(@babel/core@7.22.9): resolution: {integrity: sha512-fj06hw89dpiZzGZtxn+QybifF07nNiZjZ7sazs2aVDcysAZVGjW7+7iFYxg6GLNM47R/thYfLdrXc+2f11Vi9A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/compat-data': 7.22.9 - '@babel/helper-compilation-targets': 7.22.9 + '@babel/core': 7.22.9 + '@babel/helper-compilation-targets': 7.22.9(@babel/core@7.22.9) '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-validator-option': 7.22.5 - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.22.5 - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.22.5 - '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2 - '@babel/plugin-syntax-async-generators': 7.8.4 - '@babel/plugin-syntax-class-properties': 7.12.13 - '@babel/plugin-syntax-class-static-block': 7.14.5 - '@babel/plugin-syntax-dynamic-import': 7.8.3 - '@babel/plugin-syntax-export-namespace-from': 7.8.3 - '@babel/plugin-syntax-import-assertions': 7.22.5 - '@babel/plugin-syntax-import-attributes': 7.22.5 - '@babel/plugin-syntax-import-meta': 7.10.4 - '@babel/plugin-syntax-json-strings': 7.8.3 - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3 - '@babel/plugin-syntax-numeric-separator': 7.10.4 - '@babel/plugin-syntax-object-rest-spread': 7.8.3 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3 - '@babel/plugin-syntax-optional-chaining': 7.8.3 - '@babel/plugin-syntax-private-property-in-object': 7.14.5 - '@babel/plugin-syntax-top-level-await': 7.14.5 - '@babel/plugin-syntax-unicode-sets-regex': 7.18.6 - '@babel/plugin-transform-arrow-functions': 7.22.5 - '@babel/plugin-transform-async-generator-functions': 7.22.7 - '@babel/plugin-transform-async-to-generator': 7.22.5 - '@babel/plugin-transform-block-scoped-functions': 7.22.5 - '@babel/plugin-transform-block-scoping': 7.22.5 - '@babel/plugin-transform-class-properties': 7.22.5 - '@babel/plugin-transform-class-static-block': 7.22.5 - '@babel/plugin-transform-classes': 7.22.6 - '@babel/plugin-transform-computed-properties': 7.22.5 - '@babel/plugin-transform-destructuring': 7.22.5 - '@babel/plugin-transform-dotall-regex': 7.22.5 - '@babel/plugin-transform-duplicate-keys': 7.22.5 - '@babel/plugin-transform-dynamic-import': 7.22.5 - '@babel/plugin-transform-exponentiation-operator': 7.22.5 - '@babel/plugin-transform-export-namespace-from': 7.22.5 - '@babel/plugin-transform-for-of': 7.22.5 - '@babel/plugin-transform-function-name': 7.22.5 - '@babel/plugin-transform-json-strings': 7.22.5 - '@babel/plugin-transform-literals': 7.22.5 - '@babel/plugin-transform-logical-assignment-operators': 7.22.5 - '@babel/plugin-transform-member-expression-literals': 7.22.5 - '@babel/plugin-transform-modules-amd': 7.22.5 - '@babel/plugin-transform-modules-commonjs': 7.22.5 - '@babel/plugin-transform-modules-systemjs': 7.22.5 - '@babel/plugin-transform-modules-umd': 7.22.5 - '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5 - '@babel/plugin-transform-new-target': 7.22.5 - '@babel/plugin-transform-nullish-coalescing-operator': 7.22.5 - '@babel/plugin-transform-numeric-separator': 7.22.5 - '@babel/plugin-transform-object-rest-spread': 7.22.5 - '@babel/plugin-transform-object-super': 7.22.5 - '@babel/plugin-transform-optional-catch-binding': 7.22.5 - '@babel/plugin-transform-optional-chaining': 7.22.6 - '@babel/plugin-transform-parameters': 7.22.5 - '@babel/plugin-transform-private-methods': 7.22.5 - '@babel/plugin-transform-private-property-in-object': 7.22.5 - '@babel/plugin-transform-property-literals': 7.22.5 - '@babel/plugin-transform-regenerator': 7.22.5 - '@babel/plugin-transform-reserved-words': 7.22.5 - '@babel/plugin-transform-shorthand-properties': 7.22.5 - '@babel/plugin-transform-spread': 7.22.5 - '@babel/plugin-transform-sticky-regex': 7.22.5 - '@babel/plugin-transform-template-literals': 7.22.5 - '@babel/plugin-transform-typeof-symbol': 7.22.5 - '@babel/plugin-transform-unicode-escapes': 7.22.5 - '@babel/plugin-transform-unicode-property-regex': 7.22.5 - '@babel/plugin-transform-unicode-regex': 7.22.5 - '@babel/plugin-transform-unicode-sets-regex': 7.22.5 - '@babel/preset-modules': 0.1.5 + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.22.9) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.22.9) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.22.9) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.22.9) + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.22.9) + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.22.9) + '@babel/plugin-syntax-import-assertions': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-syntax-import-attributes': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.22.9) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.22.9) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.22.9) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.22.9) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.22.9) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.22.9) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.22.9) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.22.9) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.22.9) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.22.9) + '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.22.9) + '@babel/plugin-transform-arrow-functions': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-async-generator-functions': 7.22.7(@babel/core@7.22.9) + '@babel/plugin-transform-async-to-generator': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-block-scoped-functions': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-block-scoping': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-class-properties': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-class-static-block': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-classes': 7.22.6(@babel/core@7.22.9) + '@babel/plugin-transform-computed-properties': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-destructuring': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-dotall-regex': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-duplicate-keys': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-dynamic-import': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-exponentiation-operator': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-export-namespace-from': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-for-of': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-function-name': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-json-strings': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-literals': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-logical-assignment-operators': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-member-expression-literals': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-modules-amd': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-modules-commonjs': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-modules-systemjs': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-modules-umd': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-new-target': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-nullish-coalescing-operator': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-numeric-separator': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-object-rest-spread': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-object-super': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-optional-catch-binding': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-optional-chaining': 7.22.6(@babel/core@7.22.9) + '@babel/plugin-transform-parameters': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-private-methods': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-private-property-in-object': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-property-literals': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-regenerator': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-reserved-words': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-shorthand-properties': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-spread': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-sticky-regex': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-template-literals': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-typeof-symbol': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-unicode-escapes': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-unicode-property-regex': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-unicode-regex': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-unicode-sets-regex': 7.22.5(@babel/core@7.22.9) + '@babel/preset-modules': 0.1.5(@babel/core@7.22.9) '@babel/types': 7.22.5 - babel-plugin-polyfill-corejs2: 0.4.4 - babel-plugin-polyfill-corejs3: 0.8.2 - babel-plugin-polyfill-regenerator: 0.5.1 + babel-plugin-polyfill-corejs2: 0.4.4(@babel/core@7.22.9) + babel-plugin-polyfill-corejs3: 0.8.2(@babel/core@7.22.9) + babel-plugin-polyfill-regenerator: 0.5.1(@babel/core@7.22.9) core-js-compat: 3.31.1 semver: 6.3.1 transitivePeerDependencies: - supports-color dev: true - /@babel/preset-modules@0.1.5: + /@babel/preset-modules@0.1.5(@babel/core@7.22.9): resolution: {integrity: sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: + '@babel/core': 7.22.9 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-proposal-unicode-property-regex': 7.18.6 - '@babel/plugin-transform-dotall-regex': 7.22.5 + '@babel/plugin-proposal-unicode-property-regex': 7.18.6(@babel/core@7.22.9) + '@babel/plugin-transform-dotall-regex': 7.22.5(@babel/core@7.22.9) '@babel/types': 7.22.5 esutils: 2.0.3 dev: true - /@babel/preset-react@7.22.5: + /@babel/preset-react@7.22.5(@babel/core@7.22.9): resolution: {integrity: sha512-M+Is3WikOpEJHgR385HbuCITPTaPRaNkibTEa9oiofmJvIsrceb4yp9RL9Kb+TE8LznmeyZqpP+Lopwcx59xPQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: + '@babel/core': 7.22.9 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-validator-option': 7.22.5 - '@babel/plugin-transform-react-display-name': 7.22.5 - '@babel/plugin-transform-react-jsx': 7.22.5 - '@babel/plugin-transform-react-jsx-development': 7.22.5 - '@babel/plugin-transform-react-pure-annotations': 7.22.5 + '@babel/plugin-transform-react-display-name': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-react-jsx': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-react-jsx-development': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-react-pure-annotations': 7.22.5(@babel/core@7.22.9) dev: true - /@babel/preset-typescript@7.22.5: + /@babel/preset-typescript@7.22.5(@babel/core@7.22.9): resolution: {integrity: sha512-YbPaal9LxztSGhmndR46FmAbkJ/1fAsw293tSU+I5E5h+cnJ3d4GTwyUgGYmOXJYdGA+uNePle4qbaRzj2NISQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: + '@babel/core': 7.22.9 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-validator-option': 7.22.5 - '@babel/plugin-syntax-jsx': 7.22.5 - '@babel/plugin-transform-modules-commonjs': 7.22.5 - '@babel/plugin-transform-typescript': 7.22.9 + '@babel/plugin-syntax-jsx': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-modules-commonjs': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-typescript': 7.22.9(@babel/core@7.22.9) dev: true /@babel/regjsgen@0.8.0: @@ -2839,35 +2900,38 @@ packages: resolve: 1.22.2 dev: false - /babel-plugin-polyfill-corejs2@0.4.4: + /babel-plugin-polyfill-corejs2@0.4.4(@babel/core@7.22.9): resolution: {integrity: sha512-9WeK9snM1BfxB38goUEv2FLnA6ja07UMfazFHzCXUb3NyDZAwfXvQiURQ6guTTMeHcOsdknULm1PDhs4uWtKyA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/compat-data': 7.22.9 - '@babel/helper-define-polyfill-provider': 0.4.1 + '@babel/core': 7.22.9 + '@babel/helper-define-polyfill-provider': 0.4.1(@babel/core@7.22.9) '@nicolo-ribaudo/semver-v6': 6.3.3 transitivePeerDependencies: - supports-color dev: true - /babel-plugin-polyfill-corejs3@0.8.2: + /babel-plugin-polyfill-corejs3@0.8.2(@babel/core@7.22.9): resolution: {integrity: sha512-Cid+Jv1BrY9ReW9lIfNlNpsI53N+FN7gE+f73zLAUbr9C52W4gKLWSByx47pfDJsEysojKArqOtOKZSVIIUTuQ==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/helper-define-polyfill-provider': 0.4.1 + '@babel/core': 7.22.9 + '@babel/helper-define-polyfill-provider': 0.4.1(@babel/core@7.22.9) core-js-compat: 3.31.1 transitivePeerDependencies: - supports-color dev: true - /babel-plugin-polyfill-regenerator@0.5.1: + /babel-plugin-polyfill-regenerator@0.5.1(@babel/core@7.22.9): resolution: {integrity: sha512-L8OyySuI6OSQ5hFy9O+7zFjyr4WhAfRjLIOkhQGYl+emwJkd/S4XXT1JpfrgR1jrQ1NcGiOh+yAdGlF8pnC3Jw==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/helper-define-polyfill-provider': 0.4.1 + '@babel/core': 7.22.9 + '@babel/helper-define-polyfill-provider': 0.4.1(@babel/core@7.22.9) transitivePeerDependencies: - supports-color dev: true @@ -3666,10 +3730,12 @@ packages: resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==} dev: true - /goober@2.1.13: + /goober@2.1.13(csstype@3.1.2): resolution: {integrity: sha512-jFj3BQeleOoy7t93E9rZ2de+ScC4lQICLwiAQmKMg9F6roKGaLSHoCDYKkWlSafg138jejvq/mTdvmnwDQgqoQ==} peerDependencies: csstype: ^3.0.10 + dependencies: + csstype: 3.1.2 dev: false /gopd@1.0.1: @@ -5052,14 +5118,14 @@ packages: resolution: {integrity: sha512-suNP+J1VU1MWFKcyt7RtjiSWUjvidmQSlqu+eHslq+342xCbGTYmC0mEhPCOHxlW0CywylOC1u2DFAT+bv4dBw==} dev: false - /react-hot-toast@2.4.0(react-dom@18.2.0)(react@18.2.0): + /react-hot-toast@2.4.0(csstype@3.1.2)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-qnnVbXropKuwUpriVVosgo8QrB+IaPJCpL8oBI6Ov84uvHZ5QQcTp2qg6ku2wNfgJl6rlQXJIQU5q+5lmPOutA==} engines: {node: '>=10'} peerDependencies: react: '>=16' react-dom: '>=16' dependencies: - goober: 2.1.13 + goober: 2.1.13(csstype@3.1.2) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) transitivePeerDependencies: diff --git a/src/chainlit/frontend/src/components/organisms/inputs/selectInput.tsx b/src/chainlit/frontend/src/components/organisms/inputs/selectInput.tsx index 61154172cc..62649fa4d8 100644 --- a/src/chainlit/frontend/src/components/organisms/inputs/selectInput.tsx +++ b/src/chainlit/frontend/src/components/organisms/inputs/selectInput.tsx @@ -105,9 +105,7 @@ export default function SelectInput({ } sx={{ backgroundColor: isDarkMode ? grey[900] : '', - my: 0.5, - boxShadow: - '0px 10px 10px 0px rgba(0, 0, 0, 0.05), 0px 2px 4px 0px rgba(0, 0, 0, 0.05)' + my: 0.5 }} inputProps={{ id: id, diff --git a/src/chainlit/frontend/src/components/organisms/playground/basic.tsx b/src/chainlit/frontend/src/components/organisms/playground/basic.tsx index 7b71fac5a4..bf978a819a 100644 --- a/src/chainlit/frontend/src/components/organisms/playground/basic.tsx +++ b/src/chainlit/frontend/src/components/organisms/playground/basic.tsx @@ -1,20 +1,28 @@ import { EditorState } from 'draft-js'; import { useSetRecoilState } from 'recoil'; +import { Alert } from '@mui/material'; + +import { PromptMode } from 'components/organisms/playground/index'; + import { IPrompt } from 'state/chat'; import { playgroundState } from 'state/playground'; -import { PromptMode } from '.'; import Completion from './editor/completion'; -import FromattedEditor from './editor/formatted'; +import FormattedEditor from './editor/formatted'; import TemplateEditor from './editor/template'; interface Props { prompt: IPrompt; mode: PromptMode; + hasTemplate: boolean; } -export default function BasicPromptPlayground({ prompt, mode }: Props) { +export default function BasicPromptPlayground({ + hasTemplate, + prompt, + mode +}: Props) { const setPlayground = useSetRecoilState(playgroundState); if (prompt.messages) { @@ -32,21 +40,48 @@ export default function BasicPromptPlayground({ prompt, mode }: Props) { })); }; - const renderTemplate = () => { - if (!prompt.template) { - return null; - } + const onFormattedChange = (nextState: EditorState) => { + const formatted = nextState.getCurrentContent().getPlainText(); + setPlayground((old) => ({ + ...old, + prompt: { + ...old.prompt!, + formatted + } + })); + }; - return ; + const renderTemplate = () => { + return ( + + ); }; const renderFormatted = () => { - if (!prompt.template) { - return null; + if (hasTemplate) { + return ( + + ); + } else if (typeof prompt.formatted === 'string') { + return ( + + ); + } else { + return ( + + Neither template or formatted prompt provided. + + ); } - return ( - - ); }; return ( diff --git a/src/chainlit/frontend/src/components/organisms/playground/chat.tsx b/src/chainlit/frontend/src/components/organisms/playground/chat.tsx index 8dac868198..ff190e45a9 100644 --- a/src/chainlit/frontend/src/components/organisms/playground/chat.tsx +++ b/src/chainlit/frontend/src/components/organisms/playground/chat.tsx @@ -6,19 +6,25 @@ import { useSetRecoilState } from 'recoil'; import { Box, Stack, Typography } from '@mui/material'; import { grey } from '@mui/material/colors'; +import { PromptMode } from 'components/organisms/playground/index'; + import { IPrompt } from 'state/chat'; import { playgroundState } from 'state/playground'; -import { PromptMode } from '.'; import Completion from './editor/completion'; import PromptMessage from './editor/message'; interface Props { prompt: IPrompt; mode: PromptMode; + hasTemplate: boolean; } -export default function ChatPromptPlayground({ prompt, mode }: Props) { +export default function ChatPromptPlayground({ + hasTemplate, + prompt, + mode +}: Props) { const setPlayground = useSetRecoilState(playgroundState); if (!prompt.messages) { @@ -27,6 +33,7 @@ export default function ChatPromptPlayground({ prompt, mode }: Props) { const onChange = (index: number, nextState: EditorState) => { const text = nextState.getCurrentContent().getPlainText(); + const key = hasTemplate ? 'template' : 'formatted'; setPlayground((old) => merge(cloneDeep(old), { @@ -35,7 +42,7 @@ export default function ChatPromptPlayground({ prompt, mode }: Props) { if (mIndex === index) { return { ...message, - [mode.toLowerCase()]: text + [key]: text }; } return message; diff --git a/src/chainlit/frontend/src/components/organisms/playground/editor/formatted.tsx b/src/chainlit/frontend/src/components/organisms/playground/editor/formatted.tsx index 43ac37a7e3..3dbe7f52bc 100644 --- a/src/chainlit/frontend/src/components/organisms/playground/editor/formatted.tsx +++ b/src/chainlit/frontend/src/components/organisms/playground/editor/formatted.tsx @@ -8,8 +8,9 @@ import { import { useColors } from 'helpers/color'; import { buildVariablePlaceholder, buildVariableRegexp } from 'helpers/format'; import { OrderedSet } from 'immutable'; -import { useEffect, useState } from 'react'; +import { useState } from 'react'; import { useSetRecoilState } from 'recoil'; +import { useIsFirstRender } from 'usehooks-ts'; import EditorWrapper from 'components/organisms/playground/editor/wrapper'; @@ -25,7 +26,8 @@ export interface IHighlight { } interface Props { - template: string; + template?: string; + formatted?: string; prompt: IPrompt; readOnly?: boolean; onChange?: (state: EditorState) => void; @@ -153,8 +155,9 @@ function getEntityAtSelection(editorState: EditorState) { } } -export default function FromattedEditor({ +export default function FormattedEditor({ template, + formatted, prompt, readOnly, onChange @@ -163,40 +166,47 @@ export default function FromattedEditor({ const [state, setState] = useState(); const [_readOnly, setReadOnly] = useState(false); + const isFirstRender = useIsFirstRender(); const customStyleMap = useCustomStyleMap(); - useEffect(() => { - if (!template || !prompt.inputs) { - return; - } - const variables = Object.keys(prompt.inputs); - const highlights: IHighlight[] = []; + if (isFirstRender) { + if (typeof template === 'string') { + const inputs = prompt.inputs || {}; - for (let i = 0; i < variables.length; i++) { - const variableName = variables[i]; + const variables = Object.keys(inputs); + const highlights: IHighlight[] = []; - const variableContent = prompt.inputs[variableName]; + for (let i = 0; i < variables.length; i++) { + const variableName = variables[i]; - highlights.push({ - name: variableName, - styleIndex: i, - content: variableContent - }); - } + const variableContent = inputs[variableName]; - const state = EditorState.createWithContent( - ContentState.createFromText(template) - ); - const nextState = highlight(state, highlights, prompt.template_format); + highlights.push({ + name: variableName, + styleIndex: i, + content: variableContent + }); + } - setState(nextState); - }, [prompt, template]); + const state = EditorState.createWithContent( + ContentState.createFromText(template) + ); + const nextState = highlight(state, highlights, prompt.template_format); + + setState(nextState); + } else if (typeof formatted === 'string') { + const nextState = EditorState.createWithContent( + ContentState.createFromText(formatted) + ); + setState(nextState); + } + } - const handleOnEditorChange = (state: EditorState) => { - onChange && onChange(state); + const handleOnEditorChange = (nextState: EditorState) => { + onChange && onChange(nextState); - const entity = getEntityAtSelection(state); + const entity = getEntityAtSelection(nextState); if (entity) { setPlayground((old) => ({ ...old, @@ -207,6 +217,8 @@ export default function FromattedEditor({ if (readOnly) { setReadOnly(true); setTimeout(() => setReadOnly(false), 100); + } else { + setState(nextState); } }; diff --git a/src/chainlit/frontend/src/components/organisms/playground/editor/message.tsx b/src/chainlit/frontend/src/components/organisms/playground/editor/message.tsx index 4ffaa7d3c8..a9c119cc7e 100644 --- a/src/chainlit/frontend/src/components/organisms/playground/editor/message.tsx +++ b/src/chainlit/frontend/src/components/organisms/playground/editor/message.tsx @@ -1,6 +1,6 @@ import { EditorState } from 'draft-js'; -import { Box, Stack, Typography } from '@mui/material'; +import { Alert, Box, Stack, Typography } from '@mui/material'; import { IPrompt, IPromptMessage } from 'state/chat'; @@ -24,13 +24,9 @@ export default function PromptMessage({ onChange }: Props) { const renderTemplate = () => { - if (!message.template) { - return null; - } - return ( onChange(index, state)} /> @@ -38,11 +34,25 @@ export default function PromptMessage({ }; const renderFormatted = () => { - if (!message.template) { - return null; + if (typeof message.template === 'string') { + return ( + + ); + } else if (typeof message.formatted === 'string') { + return ( + onChange(index, state)} + formatted={message.formatted} + prompt={prompt} + readOnly={false} + /> + ); } + return ( - + + Neither template or formatted prompt provided. + ); }; diff --git a/src/chainlit/frontend/src/components/organisms/playground/editor/template/index.tsx b/src/chainlit/frontend/src/components/organisms/playground/editor/template/index.tsx index dda928eb2c..db32ef514e 100644 --- a/src/chainlit/frontend/src/components/organisms/playground/editor/template/index.tsx +++ b/src/chainlit/frontend/src/components/organisms/playground/editor/template/index.tsx @@ -31,7 +31,7 @@ const findWithRegex = ( interface Props { prompt: IPrompt; - template?: string; + template: string; onChange(nextState: EditorState): void; } @@ -40,9 +40,7 @@ export default function TemplateEditor({ prompt, template, onChange }: Props) { const isFirstRender = useIsFirstRender(); if (isFirstRender) { - const contentState = ContentState.createFromText( - template || prompt.template! - ); + const contentState = ContentState.createFromText(template); const variableDecorator: DraftDecorator = { strategy: (contentBlock, callback) => { diff --git a/src/chainlit/frontend/src/components/organisms/playground/editor/template/variable.tsx b/src/chainlit/frontend/src/components/organisms/playground/editor/template/variable.tsx index a70701eca1..84e9e37e2d 100644 --- a/src/chainlit/frontend/src/components/organisms/playground/editor/template/variable.tsx +++ b/src/chainlit/frontend/src/components/organisms/playground/editor/template/variable.tsx @@ -11,6 +11,10 @@ interface Props { decoratedText: string; } +function truncate(str: string, n = 200) { + return str.length > n ? str.slice(0, n - 1) + '...' : str; +} + export default function Variable({ children, decoratedText @@ -58,7 +62,7 @@ export default function Variable({ diff --git a/src/chainlit/frontend/src/components/organisms/playground/index.tsx b/src/chainlit/frontend/src/components/organisms/playground/index.tsx index 64418c80dc..da2eac3f52 100644 --- a/src/chainlit/frontend/src/components/organisms/playground/index.tsx +++ b/src/chainlit/frontend/src/components/organisms/playground/index.tsx @@ -4,11 +4,11 @@ import { toast } from 'react-hot-toast'; import { useRecoilState, useRecoilValue } from 'recoil'; import { useIsFirstRender, useToggle } from 'usehooks-ts'; -import { Check } from '@mui/icons-material'; +import CheckIcon from '@mui/icons-material/Check'; import CloseIcon from '@mui/icons-material/Close'; import HelpIcon from '@mui/icons-material/HelpOutline'; import RestoreIcon from '@mui/icons-material/Restore'; -import SettingsIcon from '@mui/icons-material/Settings'; +import TuneIcon from '@mui/icons-material/Tune'; import LoadingButton from '@mui/lab/LoadingButton'; import { Alert, @@ -51,11 +51,11 @@ export default function Playground() { theme.breakpoints.down('md') ); const [loading, setLoading] = useState(false); - const [promptMode, setPromptMode] = useState('Template'); const [providersError, setProvidersError] = useState(); - const isFirstRender = useIsFirstRender(); + const [promptMode, setPromptMode] = useState('Template'); + if (isFirstRender) { client .getLLMProviders() @@ -105,6 +105,10 @@ export default function Playground() { return null; } + const hasTemplate = playground?.prompt?.messages + ? playground.prompt.messages.every((m) => typeof m.template === 'string') + : typeof playground?.prompt?.template === 'string'; + return ( - setPromptMode(v as PromptMode)} - /> + {hasTemplate ? ( + setPromptMode(v as PromptMode)} + /> + ) : ( + + Prompt template not found. Only displaying formatted prompt instead. + + )} {isSmallScreen ? ( - + ) : null} @@ -169,8 +179,16 @@ export default function Playground() { }} > - - + + } + startIcon={} color="inherit" > Submit diff --git a/src/chainlit/frontend/src/helpers/format.ts b/src/chainlit/frontend/src/helpers/format.ts index 80640e9e63..17a7640d73 100644 --- a/src/chainlit/frontend/src/helpers/format.ts +++ b/src/chainlit/frontend/src/helpers/format.ts @@ -69,16 +69,6 @@ export function preparePrompt(prompt?: IPrompt): IPrompt { } prompt = cloneDeep(prompt); - if (prompt.template && prompt.inputs) { - prompt.formatted = formatPrompt( - prompt.template, - prompt.inputs, - prompt.template_format - ); - } else if (!prompt.formatted) { - throw new Error('Cannot format prompt'); - } - if (prompt.messages) { prompt.messages.forEach((m) => { if (m.template && prompt!.inputs) { @@ -88,9 +78,18 @@ export function preparePrompt(prompt?: IPrompt): IPrompt { prompt!.template_format ); } else if (!m.formatted) { - throw new Error('Cannot format messageprompt'); + throw new Error('Cannot format message prompt'); } }); + } else if (prompt.template && prompt.inputs) { + prompt.formatted = formatPrompt( + prompt.template, + prompt.inputs, + prompt.template_format + ); + } else if (!prompt.formatted) { + throw new Error('Cannot format prompt'); } + return prompt; } diff --git a/src/chainlit/lc/callbacks.py b/src/chainlit/lc/callbacks.py index 8f5af46ec4..dfc89074e6 100644 --- a/src/chainlit/lc/callbacks.py +++ b/src/chainlit/lc/callbacks.py @@ -18,7 +18,12 @@ def get_llm_settings(invocation_params: Union[Dict, None]): if invocation_params is None: return None, None - provider = invocation_params.pop("_type") + provider = invocation_params.pop("_type") # type: str + + if provider.startswith("openai"): + model_name = invocation_params.pop("model_name") + invocation_params["model"] = model_name + return provider, invocation_params @@ -226,8 +231,14 @@ def _on_chat_model_start( self.current_prompt.messages[idx].role = convert_role(m.type) elif self.current_prompt.template: - formatted_prompt = "\n".join([m.content for m in messages[0]]) - self.current_prompt.formatted = formatted_prompt + unique_message = messages[0][0] + prompt_message = PromptMessage( + template=self.current_prompt.template, + formatted=unique_message.content, + role=convert_role(unique_message.type), + ) + self.current_prompt.messages = [prompt_message] + self.current_prompt.template = None else: prompt_messages = [ PromptMessage(formatted=m.content, role=convert_role(m.type)) diff --git a/src/chainlit/llama_index/callbacks.py b/src/chainlit/llama_index/callbacks.py index 1993fba748..1f7a4170e9 100644 --- a/src/chainlit/llama_index/callbacks.py +++ b/src/chainlit/llama_index/callbacks.py @@ -7,6 +7,7 @@ from chainlit.element import Text from chainlit.message import Message from chainlit.sync import run_sync +from chainlit.types import Prompt DEFAULT_IGNORE = [ CBEventType.CHUNKING, @@ -90,7 +91,10 @@ def on_event_end( content=payload.get(EventPayload.RESPONSE, ""), author=event_type, parent_id=parent_id, - prompt=payload.get(EventPayload.PROMPT), + prompt=Prompt( + formatted=payload.get(EventPayload.PROMPT), + completion=payload.get(EventPayload.RESPONSE, ""), + ), ).send() ) diff --git a/src/chainlit/playground/provider.py b/src/chainlit/playground/provider.py index eedd4a29f3..e824984580 100644 --- a/src/chainlit/playground/provider.py +++ b/src/chainlit/playground/provider.py @@ -42,10 +42,12 @@ def is_configured(self): return True def require_prompt(self, request: CompletionRequest): - if self.is_chat and not request.messages: - raise ValueError("Chat LLM provider requires messages") - elif not request.prompt: - raise ValueError("No prompt provided") + if self.is_chat: + if not request.messages: + raise ValueError("Chat LLM provider requires messages") + else: + if not request.prompt: + raise ValueError("No prompt provided") def require_settings(self, settings: Dict[str, Any]): for _input in self.inputs: diff --git a/src/chainlit/playground/providers/anthropic.py b/src/chainlit/playground/providers/anthropic.py index d36ef31e44..5f1b5aca96 100644 --- a/src/chainlit/playground/providers/anthropic.py +++ b/src/chainlit/playground/providers/anthropic.py @@ -11,9 +11,9 @@ class AnthropicProvider(BaseProvider): def _convert_one_message_to_text(self, message: PromptMessage) -> str: import anthropic - if message.role == "human": + if message.role == "user": message_text = f"{anthropic.HUMAN_PROMPT} {message.formatted}" - elif message.role == "ai": + elif message.role == "assistant": message_text = f"{anthropic.AI_PROMPT} {message.formatted}" elif message.role == "system": message_text = (