From 61fbb24e365f5b1381209e665f2a8f31213e9ba2 Mon Sep 17 00:00:00 2001 From: psychedelicious <4822129+psychedelicious@users.noreply.github.com> Date: Fri, 28 Apr 2023 15:44:27 +1000 Subject: [PATCH] feat(ui): set up for packaging --- .../frontend/web/config/vite.app.config.ts | 17 + .../frontend/web/config/vite.common.config.ts | 54 ++++ .../web/config/vite.package.config.ts | 35 +++ invokeai/frontend/web/package.json | 17 +- .../app/types/{invokeai.d.ts => invokeai.ts} | 111 ++++--- invokeai/frontend/web/src/exports.tsx | 22 -- invokeai/frontend/web/src/index.ts | 9 + invokeai/frontend/web/tsconfig.node.json | 7 +- invokeai/frontend/web/vite.config.ts | 87 +----- invokeai/frontend/web/yarn.lock | 292 +++++++++++++++++- 10 files changed, 482 insertions(+), 169 deletions(-) create mode 100644 invokeai/frontend/web/config/vite.app.config.ts create mode 100644 invokeai/frontend/web/config/vite.common.config.ts create mode 100644 invokeai/frontend/web/config/vite.package.config.ts rename invokeai/frontend/web/src/app/types/{invokeai.d.ts => invokeai.ts} (73%) delete mode 100644 invokeai/frontend/web/src/exports.tsx create mode 100644 invokeai/frontend/web/src/index.ts diff --git a/invokeai/frontend/web/config/vite.app.config.ts b/invokeai/frontend/web/config/vite.app.config.ts new file mode 100644 index 0000000000..e6725e98c8 --- /dev/null +++ b/invokeai/frontend/web/config/vite.app.config.ts @@ -0,0 +1,17 @@ +import react from '@vitejs/plugin-react-swc'; +import { visualizer } from 'rollup-plugin-visualizer'; +import { PluginOption, UserConfig } from 'vite'; +import eslint from 'vite-plugin-eslint'; +import tsconfigPaths from 'vite-tsconfig-paths'; + +export const appConfig: UserConfig = { + plugins: [ + react(), + eslint(), + tsconfigPaths(), + visualizer() as unknown as PluginOption, + ], + build: { + chunkSizeWarningLimit: 1500, + }, +}; diff --git a/invokeai/frontend/web/config/vite.common.config.ts b/invokeai/frontend/web/config/vite.common.config.ts new file mode 100644 index 0000000000..dbd8ae4b8d --- /dev/null +++ b/invokeai/frontend/web/config/vite.common.config.ts @@ -0,0 +1,54 @@ +import react from '@vitejs/plugin-react-swc'; +import { visualizer } from 'rollup-plugin-visualizer'; +import { PluginOption, UserConfig } from 'vite'; +import eslint from 'vite-plugin-eslint'; +import tsconfigPaths from 'vite-tsconfig-paths'; + +export const commonConfig: UserConfig = { + base: './', + server: { + // Proxy HTTP requests to the flask server + proxy: { + '/outputs': { + target: 'http://127.0.0.1:9090/outputs', + changeOrigin: true, + rewrite: (path) => path.replace(/^\/outputs/, ''), + }, + '/upload': { + target: 'http://127.0.0.1:9090/upload', + changeOrigin: true, + rewrite: (path) => path.replace(/^\/upload/, ''), + }, + '/flaskwebgui-keep-server-alive': { + target: 'http://127.0.0.1:9090/flaskwebgui-keep-server-alive', + changeOrigin: true, + rewrite: (path) => path.replace(/^\/flaskwebgui-keep-server-alive/, ''), + }, + // Proxy socket.io to the flask-socketio server + '/socket.io': { + target: 'ws://127.0.0.1:9090', + ws: true, + }, + // Proxy socket.io to the nodes socketio server + '/ws/socket.io': { + target: 'ws://127.0.0.1:9090', + ws: true, + }, + // Proxy openapi schema definiton + '/openapi.json': { + target: 'http://127.0.0.1:9090/openapi.json', + rewrite: (path) => path.replace(/^\/openapi.json/, ''), + changeOrigin: true, + }, + // proxy nodes api + '/api/v1': { + target: 'http://127.0.0.1:9090/api/v1', + rewrite: (path) => path.replace(/^\/api\/v1/, ''), + changeOrigin: true, + }, + }, + }, + build: { + chunkSizeWarningLimit: 1500, + }, +}; diff --git a/invokeai/frontend/web/config/vite.package.config.ts b/invokeai/frontend/web/config/vite.package.config.ts new file mode 100644 index 0000000000..906af84887 --- /dev/null +++ b/invokeai/frontend/web/config/vite.package.config.ts @@ -0,0 +1,35 @@ +import react from '@vitejs/plugin-react-swc'; +import path from 'path'; +import { visualizer } from 'rollup-plugin-visualizer'; +import { PluginOption, UserConfig } from 'vite'; +import eslint from 'vite-plugin-eslint'; +import tsconfigPaths from 'vite-tsconfig-paths'; +import dts from 'vite-plugin-dts'; + +export const packageConfig: UserConfig = { + plugins: [ + react(), + eslint(), + tsconfigPaths(), + visualizer() as unknown as PluginOption, + dts({ + insertTypesEntry: true, + }), + ], + build: { + chunkSizeWarningLimit: 1500, + lib: { + entry: path.resolve(__dirname, '../src/index.ts'), + name: 'InvokeAIUI', + fileName: (format) => `invoke-ai-ui.${format}.js`, + }, + rollupOptions: { + external: ['react', 'react-dom'], + output: { + globals: { + react: 'React', + }, + }, + }, + }, +}; diff --git a/invokeai/frontend/web/package.json b/invokeai/frontend/web/package.json index 75609a1da8..9932fb3ad3 100644 --- a/invokeai/frontend/web/package.json +++ b/invokeai/frontend/web/package.json @@ -1,7 +1,20 @@ { - "name": "invoke-ai-ui", + "name": "@invoke-ai/invoke-ai-ui", "private": true, "version": "0.0.1", + "publishConfig": { + "access": "restricted", + "registry": "https://npm.pkg.github.com" + }, + "main": "./dist/invoke-ai-ui.umd.js", + "module": "./dist/invoke-ai-ui.es.js", + "exports": { + ".": { + "import": "./dist/invoke-ai-ui.es.js", + "require": "./dist/invoke-ai-ui.umd.js" + } + }, + "types": "./dist/index.d.ts", "scripts": { "prepare": "cd ../../../ && husky install invokeai/frontend/web/.husky", "dev": "concurrently \"vite dev\" \"yarn run theme:watch\"", @@ -85,6 +98,7 @@ "devDependencies": { "@types/dateformat": "^5.0.0", "@types/lodash": "^4.14.194", + "@types/node": "^18.16.2", "@types/react": "^18.2.0", "@types/react-dom": "^18.2.1", "@types/react-transition-group": "^4.4.5", @@ -112,6 +126,7 @@ "terser": "^5.17.1", "ts-toolbelt": "^9.6.0", "vite": "^4.3.3", + "vite-plugin-dts": "^2.3.0", "vite-plugin-eslint": "^1.8.1", "vite-tsconfig-paths": "^4.2.0", "yarn": "^1.22.19" diff --git a/invokeai/frontend/web/src/app/types/invokeai.d.ts b/invokeai/frontend/web/src/app/types/invokeai.ts similarity index 73% rename from invokeai/frontend/web/src/app/types/invokeai.d.ts rename to invokeai/frontend/web/src/app/types/invokeai.ts index 0e7fa55a36..27ca9dc4a6 100644 --- a/invokeai/frontend/web/src/app/types/invokeai.d.ts +++ b/invokeai/frontend/web/src/app/types/invokeai.ts @@ -12,10 +12,11 @@ * 'gfpgan'. */ +import { GalleryCategory } from 'features/gallery/store/gallerySlice'; import { FacetoolType } from 'features/parameters/store/postprocessingSlice'; import { InvokeTabName } from 'features/ui/store/tabMap'; import { IRect } from 'konva/lib/types'; -import { ImageMetadata, ImageType } from 'services/api'; +import { ImageResponseMetadata, ImageType } from 'services/api'; import { AnyInvocation } from 'services/events/types'; import { O } from 'ts-toolbelt'; @@ -28,24 +29,24 @@ import { O } from 'ts-toolbelt'; * TODO: Better documentation of types. */ -export declare type PromptItem = { +export type PromptItem = { prompt: string; weight: number; }; // TECHDEBT: We need to retain compatibility with plain prompt strings and the structure Prompt type -export declare type Prompt = Array | string; +export type Prompt = Array | string; -export declare type SeedWeightPair = { +export type SeedWeightPair = { seed: number; weight: number; }; -export declare type SeedWeights = Array; +export type SeedWeights = Array; // All generated images contain these metadata. -export declare type CommonGeneratedImageMetadata = { - postprocessing: null | Array; +export type CommonGeneratedImageMetadata = { + postprocessing: null | Array; sampler: | 'ddim' | 'k_dpm_2_a' @@ -70,11 +71,11 @@ export declare type CommonGeneratedImageMetadata = { }; // txt2img and img2img images have some unique attributes. -export declare type Txt2ImgMetadata = GeneratedImageMetadata & { +export type Txt2ImgMetadata = CommonGeneratedImageMetadata & { type: 'txt2img'; }; -export declare type Img2ImgMetadata = GeneratedImageMetadata & { +export type Img2ImgMetadata = CommonGeneratedImageMetadata & { type: 'img2img'; orig_hash: string; strength: number; @@ -84,40 +85,38 @@ export declare type Img2ImgMetadata = GeneratedImageMetadata & { }; // Superset of generated image metadata types. -export declare type GeneratedImageMetadata = Txt2ImgMetadata | Img2ImgMetadata; +export type GeneratedImageMetadata = Txt2ImgMetadata | Img2ImgMetadata; // All post processed images contain these metadata. -export declare type CommonPostProcessedImageMetadata = { +export type CommonPostProcessedImageMetadata = { orig_path: string; orig_hash: string; }; // esrgan and gfpgan images have some unique attributes. -export declare type ESRGANMetadata = CommonPostProcessedImageMetadata & { +export type ESRGANMetadata = CommonPostProcessedImageMetadata & { type: 'esrgan'; scale: 2 | 4; strength: number; denoise_str: number; }; -export declare type FacetoolMetadata = CommonPostProcessedImageMetadata & { +export type FacetoolMetadata = CommonPostProcessedImageMetadata & { type: 'gfpgan' | 'codeformer'; strength: number; fidelity?: number; }; // Superset of all postprocessed image metadata types.. -export declare type PostProcessedImageMetadata = - | ESRGANMetadata - | FacetoolMetadata; +export type PostProcessedImageMetadata = ESRGANMetadata | FacetoolMetadata; // Metadata includes the system config and image metadata. -export declare type Metadata = SystemGenerationMetadata & { +export type Metadata = SystemGenerationMetadata & { image: GeneratedImageMetadata | PostProcessedImageMetadata; }; // An Image has a UUID, url, modified timestamp, width, height and maybe metadata -export declare type _Image = { +export type _Image = { uuid: string; url: string; thumbnail: string; @@ -134,16 +133,16 @@ export declare type _Image = { /** * ResultImage */ -export declare type Image = { +export type Image = { name: string; type: ImageType; url: string; thumbnail: string; - metadata: ImageMetadata; + metadata: ImageResponseMetadata; }; // GalleryImages is an array of Image. -export declare type GalleryImages = { +export type GalleryImages = { images: Array<_Image>; }; @@ -152,7 +151,7 @@ export declare type GalleryImages = { */ // This represents the processing status of the backend. -export declare type SystemStatus = { +export type SystemStatus = { isProcessing: boolean; currentStep: number; totalSteps: number; @@ -163,7 +162,7 @@ export declare type SystemStatus = { hasError: boolean; }; -export declare type SystemGenerationMetadata = { +export type SystemGenerationMetadata = { model: string; model_weights?: string; model_id?: string; @@ -172,14 +171,14 @@ export declare type SystemGenerationMetadata = { app_version: string; }; -export declare type SystemConfig = SystemGenerationMetadata & { +export type SystemConfig = SystemGenerationMetadata & { model_list: ModelList; infill_methods: string[]; }; -export declare type ModelStatus = 'active' | 'cached' | 'not loaded'; +export type ModelStatus = 'active' | 'cached' | 'not loaded'; -export declare type Model = { +export type Model = { status: ModelStatus; description: string; weights: string; @@ -191,7 +190,7 @@ export declare type Model = { format?: string; }; -export declare type DiffusersModel = { +export type DiffusersModel = { status: ModelStatus; description: string; repo_id?: string; @@ -204,14 +203,14 @@ export declare type DiffusersModel = { default?: boolean; }; -export declare type ModelList = Record; +export type ModelList = Record; -export declare type FoundModel = { +export type FoundModel = { name: string; location: string; }; -export declare type InvokeModelConfigProps = { +export type InvokeModelConfigProps = { name: string | undefined; description: string | undefined; config: string | undefined; @@ -223,7 +222,7 @@ export declare type InvokeModelConfigProps = { format: string | undefined; }; -export declare type InvokeDiffusersModelConfigProps = { +export type InvokeDiffusersModelConfigProps = { name: string | undefined; description: string | undefined; repo_id: string | undefined; @@ -236,13 +235,13 @@ export declare type InvokeDiffusersModelConfigProps = { }; }; -export declare type InvokeModelConversionProps = { +export type InvokeModelConversionProps = { model_name: string; save_location: string; custom_location: string | null; }; -export declare type InvokeModelMergingProps = { +export type InvokeModelMergingProps = { models_to_merge: string[]; alpha: number; interp: 'weighted_sum' | 'sigmoid' | 'inv_sigmoid' | 'add_difference'; @@ -255,48 +254,48 @@ export declare type InvokeModelMergingProps = { * These types type data received from the server via socketio. */ -export declare type ModelChangeResponse = { +export type ModelChangeResponse = { model_name: string; model_list: ModelList; }; -export declare type ModelConvertedResponse = { +export type ModelConvertedResponse = { converted_model_name: string; model_list: ModelList; }; -export declare type ModelsMergedResponse = { +export type ModelsMergedResponse = { merged_models: string[]; merged_model_name: string; model_list: ModelList; }; -export declare type ModelAddedResponse = { +export type ModelAddedResponse = { new_model_name: string; model_list: ModelList; update: boolean; }; -export declare type ModelDeletedResponse = { +export type ModelDeletedResponse = { deleted_model_name: string; model_list: ModelList; }; -export declare type FoundModelResponse = { +export type FoundModelResponse = { search_folder: string; found_models: FoundModel[]; }; -export declare type SystemStatusResponse = SystemStatus; +export type SystemStatusResponse = SystemStatus; -export declare type SystemConfigResponse = SystemConfig; +export type SystemConfigResponse = SystemConfig; -export declare type ImageResultResponse = Omit<_Image, 'uuid'> & { +export type ImageResultResponse = Omit<_Image, 'uuid'> & { boundingBox?: IRect; generationMode: InvokeTabName; }; -export declare type ImageUploadResponse = { +export type ImageUploadResponse = { // image: Omit; url: string; mtime: number; @@ -306,33 +305,33 @@ export declare type ImageUploadResponse = { // bbox: [number, number, number, number]; }; -export declare type ErrorResponse = { +export type ErrorResponse = { message: string; additionalData?: string; }; -export declare type GalleryImagesResponse = { +export type GalleryImagesResponse = { images: Array>; areMoreImagesAvailable: boolean; category: GalleryCategory; }; -export declare type ImageDeletedResponse = { +export type ImageDeletedResponse = { uuid: string; url: string; category: GalleryCategory; }; -export declare type ImageUrlResponse = { +export type ImageUrlResponse = { url: string; }; -export declare type UploadImagePayload = { - file: File; - destination?: ImageUploadDestination; -}; +// export type UploadImagePayload = { +// file: File; +// destination?: ImageUploadDestination; +// }; -export declare type UploadOutpaintingMergeImagePayload = { +export type UploadOutpaintingMergeImagePayload = { dataURL: string; name: string; }; @@ -340,7 +339,7 @@ export declare type UploadOutpaintingMergeImagePayload = { /** * A disable-able application feature */ -export declare type AppFeature = +export type AppFeature = | 'faceRestore' | 'upscaling' | 'lightbox' @@ -353,7 +352,7 @@ export declare type AppFeature = /** * A disable-able Stable Diffusion feature */ -export declare type StableDiffusionFeature = +export type StableDiffusionFeature = | 'noiseConfig' | 'variations' | 'symmetry' @@ -364,7 +363,7 @@ export declare type StableDiffusionFeature = * Configuration options for the InvokeAI UI. * Distinct from system settings which may be changed inside the app. */ -export declare type AppConfig = { +export type AppConfig = { /** * Whether or not URLs should be transformed to use a different host */ @@ -428,4 +427,4 @@ export declare type AppConfig = { }; }; -export declare type PartialAppConfig = O.Partial; +export type PartialAppConfig = O.Partial; diff --git a/invokeai/frontend/web/src/exports.tsx b/invokeai/frontend/web/src/exports.tsx deleted file mode 100644 index 617a1fd271..0000000000 --- a/invokeai/frontend/web/src/exports.tsx +++ /dev/null @@ -1,22 +0,0 @@ -// import App from './app/components/App'; - -// import InvokeAiLogoComponent from './features/system/components/InvokeAILogoComponent'; -// import ThemeChanger from './features/system/components/ThemeChanger'; -// import IAIPopover from './common/components/IAIPopover'; -// import IAIIconButton from './common/components/IAIIconButton'; -// import SettingsModal from './features/system/components/SettingsModal/SettingsModal'; -// import StatusIndicator from './features/system/components/StatusIndicator'; -// import ModelSelect from 'features/system/components/ModelSelect'; - -// export default App; -// export { -// InvokeAiLogoComponent, -// ThemeChanger, -// IAIPopover, -// IAIIconButton, -// SettingsModal, -// StatusIndicator, -// ModelSelect, -// }; - -export default {}; diff --git a/invokeai/frontend/web/src/index.ts b/invokeai/frontend/web/src/index.ts new file mode 100644 index 0000000000..274f9d5a0b --- /dev/null +++ b/invokeai/frontend/web/src/index.ts @@ -0,0 +1,9 @@ +export { default as InvokeAiLogoComponent } from './features/system/components/InvokeAILogoComponent'; +export { default as ThemeChanger } from './features/system/components/ThemeChanger'; +export { default as IAIPopover } from './common/components/IAIPopover'; +export { default as IAIIconButton } from './common/components/IAIIconButton'; +export { default as SettingsModal } from './features/system/components/SettingsModal/SettingsModal'; +export { default as StatusIndicator } from './features/system/components/StatusIndicator'; +export { default as ModelSelect } from './features/system/components/ModelSelect'; +export { default as InvokeAIUI } from './app/components/InvokeAIUI'; +export type { PartialAppConfig } from './app/types/invokeai'; diff --git a/invokeai/frontend/web/tsconfig.node.json b/invokeai/frontend/web/tsconfig.node.json index a375708f74..aed3c05590 100644 --- a/invokeai/frontend/web/tsconfig.node.json +++ b/invokeai/frontend/web/tsconfig.node.json @@ -6,5 +6,10 @@ "allowSyntheticDefaultImports": true, "baseUrl": "src" }, - "include": ["vite.config.ts"] + "include": [ + "vite.config.ts", + "./config/vite.app.config.ts", + "./config/vite.package.config.ts", + "./config/vite.common.config.ts" + ] } diff --git a/invokeai/frontend/web/vite.config.ts b/invokeai/frontend/web/vite.config.ts index 2128593f10..a8fc0c39af 100644 --- a/invokeai/frontend/web/vite.config.ts +++ b/invokeai/frontend/web/vite.config.ts @@ -1,82 +1,13 @@ -import react from '@vitejs/plugin-react-swc'; -import { visualizer } from 'rollup-plugin-visualizer'; -import { defineConfig, PluginOption } from 'vite'; -import eslint from 'vite-plugin-eslint'; -import tsconfigPaths from 'vite-tsconfig-paths'; +import { defineConfig } from 'vite'; +import { commonConfig } from './config/vite.common.config'; +import { appConfig } from './config/vite.app.config'; +import { packageConfig } from './config/vite.package.config'; +import { defaultsDeep } from 'lodash'; -// https://vitejs.dev/config/ export default defineConfig(({ mode }) => { - const common = { - base: '', - plugins: [ - react(), - eslint(), - tsconfigPaths(), - visualizer() as unknown as PluginOption, - ], - server: { - // Proxy HTTP requests to the flask server - proxy: { - '/outputs': { - target: 'http://127.0.0.1:9090/outputs', - changeOrigin: true, - rewrite: (path) => path.replace(/^\/outputs/, ''), - }, - '/upload': { - target: 'http://127.0.0.1:9090/upload', - changeOrigin: true, - rewrite: (path) => path.replace(/^\/upload/, ''), - }, - '/flaskwebgui-keep-server-alive': { - target: 'http://127.0.0.1:9090/flaskwebgui-keep-server-alive', - changeOrigin: true, - rewrite: (path) => - path.replace(/^\/flaskwebgui-keep-server-alive/, ''), - }, - // Proxy socket.io to the flask-socketio server - '/socket.io': { - target: 'ws://127.0.0.1:9090', - ws: true, - }, - // Proxy socket.io to the nodes socketio server - '/ws/socket.io': { - target: 'ws://127.0.0.1:9090', - ws: true, - }, - // Proxy openapi schema definiton - '/openapi.json': { - target: 'http://127.0.0.1:9090/openapi.json', - rewrite: (path) => path.replace(/^\/openapi.json/, ''), - changeOrigin: true, - }, - // proxy nodes api - '/api/v1': { - target: 'http://127.0.0.1:9090/api/v1', - rewrite: (path) => path.replace(/^\/api\/v1/, ''), - changeOrigin: true, - }, - }, - }, - build: { - /** - * We need to polyfill for Array.prototype.findLast(); the polyfill plugin above - * overrides any target specified here. - */ - // target: 'esnext', - chunkSizeWarningLimit: 1500, // we don't really care about chunk size, - }, - }; - if (mode == 'development') { - return { - ...common, - build: { - ...common.build, - // sourcemap: true, // this can be enabled if needed, it adds ovwer 15MB to the commit - }, - }; - } else { - return { - ...common, - }; + if (mode === 'package') { + return defaultsDeep(packageConfig, commonConfig); } + + return defaultsDeep(appConfig, commonConfig); }); diff --git a/invokeai/frontend/web/yarn.lock b/invokeai/frontend/web/yarn.lock index 1e9bff0197..1a003eecc2 100644 --- a/invokeai/frontend/web/yarn.lock +++ b/invokeai/frontend/web/yarn.lock @@ -1252,7 +1252,7 @@ resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== -"@jridgewell/sourcemap-codec@^1.4.10": +"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.13": version "1.4.15" resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== @@ -1278,6 +1278,48 @@ resolved "https://registry.yarnpkg.com/@jsdevtools/ono/-/ono-7.1.3.tgz#9df03bbd7c696a5c58885c34aa06da41c8543796" integrity sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg== +"@microsoft/api-extractor-model@7.26.5": + version "7.26.5" + resolved "https://registry.yarnpkg.com/@microsoft/api-extractor-model/-/api-extractor-model-7.26.5.tgz#b3d0939b4dab6897ce27c966bd394a582f1871e7" + integrity sha512-sv1dF9B3AeMURTW0xubvmrX/tLFe2bpmHJBXKiqfOl2YOoLNjreIqmPHPe1vDSq9MDxAJLqvyurjOf87abVJBQ== + dependencies: + "@microsoft/tsdoc" "0.14.2" + "@microsoft/tsdoc-config" "~0.16.1" + "@rushstack/node-core-library" "3.56.0" + +"@microsoft/api-extractor@^7.34.4": + version "7.34.5" + resolved "https://registry.yarnpkg.com/@microsoft/api-extractor/-/api-extractor-7.34.5.tgz#06ee82834a7ccdc104b096cc44ef74d877b68d07" + integrity sha512-0CUMSHvJ3Tq7ZJg09vn3kwvZN41k6dbe4zcPrDpZwQKh/dXIL5oQ7hbrbrASBDlE5DSPHs+7iGYa9FGGdgyrCA== + dependencies: + "@microsoft/api-extractor-model" "7.26.5" + "@microsoft/tsdoc" "0.14.2" + "@microsoft/tsdoc-config" "~0.16.1" + "@rushstack/node-core-library" "3.56.0" + "@rushstack/rig-package" "0.3.18" + "@rushstack/ts-command-line" "4.13.2" + colors "~1.2.1" + lodash "~4.17.15" + resolve "~1.22.1" + semver "~7.3.0" + source-map "~0.6.1" + typescript "~4.8.4" + +"@microsoft/tsdoc-config@~0.16.1": + version "0.16.2" + resolved "https://registry.yarnpkg.com/@microsoft/tsdoc-config/-/tsdoc-config-0.16.2.tgz#b786bb4ead00d54f53839a458ce626c8548d3adf" + integrity sha512-OGiIzzoBLgWWR0UdRJX98oYO+XKGf7tiK4Zk6tQ/E4IJqGCe7dvkTvgDZV5cFJUzLGDOjeAXrnZoA6QkVySuxw== + dependencies: + "@microsoft/tsdoc" "0.14.2" + ajv "~6.12.6" + jju "~1.4.0" + resolve "~1.19.0" + +"@microsoft/tsdoc@0.14.2": + version "0.14.2" + resolved "https://registry.yarnpkg.com/@microsoft/tsdoc/-/tsdoc-0.14.2.tgz#c3ec604a0b54b9a9b87e9735dfc59e1a5da6a5fb" + integrity sha512-9b8mPpKrfeGRuhFH5iO1iwCLeIIsV6+H1sRfxbkoGXIyQE2BTsPd9zqSqQJ+pv5sJ/hT5M1zvOFL02MnEezFug== + "@nodelib/fs.scandir@2.1.5": version "2.1.5" resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" @@ -1387,6 +1429,46 @@ estree-walker "^2.0.1" picomatch "^2.2.2" +"@rollup/pluginutils@^5.0.2": + version "5.0.2" + resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-5.0.2.tgz#012b8f53c71e4f6f9cb317e311df1404f56e7a33" + integrity sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA== + dependencies: + "@types/estree" "^1.0.0" + estree-walker "^2.0.2" + picomatch "^2.3.1" + +"@rushstack/node-core-library@3.56.0", "@rushstack/node-core-library@^3.55.2": + version "3.56.0" + resolved "https://registry.yarnpkg.com/@rushstack/node-core-library/-/node-core-library-3.56.0.tgz#61136eaeac442194822fc075c63fee426019896d" + integrity sha512-HyaRfgL77I8y6HCFYkLnAUWjsniDrIHlomic570TJ/ehd+pOdrRr95APAYGFw+nVwXE4qyEUTyYMWxsOnV14VA== + dependencies: + colors "~1.2.1" + fs-extra "~7.0.1" + import-lazy "~4.0.0" + jju "~1.4.0" + resolve "~1.22.1" + semver "~7.3.0" + z-schema "~5.0.2" + +"@rushstack/rig-package@0.3.18": + version "0.3.18" + resolved "https://registry.yarnpkg.com/@rushstack/rig-package/-/rig-package-0.3.18.tgz#2b59eb8ed482e8cd6ad8d396414bf3200efdd682" + integrity sha512-SGEwNTwNq9bI3pkdd01yCaH+gAsHqs0uxfGvtw9b0LJXH52qooWXnrFTRRLG1aL9pf+M2CARdrA9HLHJys3jiQ== + dependencies: + resolve "~1.22.1" + strip-json-comments "~3.1.1" + +"@rushstack/ts-command-line@4.13.2": + version "4.13.2" + resolved "https://registry.yarnpkg.com/@rushstack/ts-command-line/-/ts-command-line-4.13.2.tgz#2dfdcf418d58256671433b1da4a3b67e1814cc7a" + integrity sha512-bCU8qoL9HyWiciltfzg7GqdfODUeda/JpI0602kbN5YH22rzTxyqYvv7aRLENCM7XCQ1VRs7nMkEqgJUOU8Sag== + dependencies: + "@types/argparse" "1.0.38" + argparse "~1.0.9" + colors "~1.2.1" + string-argv "~0.3.1" + "@sindresorhus/is@^0.14.0": version "0.14.0" resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea" @@ -1470,6 +1552,16 @@ dependencies: defer-to-connect "^1.0.1" +"@ts-morph/common@~0.19.0": + version "0.19.0" + resolved "https://registry.yarnpkg.com/@ts-morph/common/-/common-0.19.0.tgz#927fcd81d1bbc09c89c4a310a84577fb55f3694e" + integrity sha512-Unz/WHmd4pGax91rdIKWi51wnVUW11QttMEPpBiBgIewnc9UQIX7UDLxr5vRlqeByXCwhkF6VabSsI0raWcyAQ== + dependencies: + fast-glob "^3.2.12" + minimatch "^7.4.3" + mkdirp "^2.1.6" + path-browserify "^1.0.1" + "@tsconfig/node10@^1.0.7": version "1.0.9" resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.9.tgz#df4907fc07a886922637b15e02d4cebc4c0021b2" @@ -1490,6 +1582,11 @@ resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.3.tgz#472eaab5f15c1ffdd7f8628bd4c4f753995ec79e" integrity sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ== +"@types/argparse@1.0.38": + version "1.0.38" + resolved "https://registry.yarnpkg.com/@types/argparse/-/argparse-1.0.38.tgz#a81fd8606d481f873a3800c6ebae4f1d768a56a9" + integrity sha512-ebDJ9b0e702Yr7pWgB0jzm+CX4Srzz8RcXtLJDJB+BSccqMa36uyH/zUsSYao5+BD1ytv3k3rPYCq4mAE1hsXA== + "@types/d3-array@*": version "3.0.4" resolved "https://registry.yarnpkg.com/@types/d3-array/-/d3-array-3.0.4.tgz#44eebe40be57476cad6a0cd6a85b0f57d54185a2" @@ -1713,7 +1810,7 @@ "@types/estree" "*" "@types/json-schema" "*" -"@types/estree@*": +"@types/estree@*", "@types/estree@^1.0.0": version "1.0.1" resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.1.tgz#aa22750962f3bf0e79d753d3cc067f010c95f194" integrity sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA== @@ -1753,6 +1850,11 @@ resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.194.tgz#b71eb6f7a0ff11bff59fc987134a093029258a76" integrity sha512-r22s9tAS7imvBt2lyHC9B8AGwWnXaYb1tY09oyLkXDs4vArpYJzw09nj8MLx5VfciBPGIb+ZwG0ssYnEPJxn/g== +"@types/node@^18.16.2": + version "18.16.2" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.16.2.tgz#2f610ea71034b3971c312192377f8a7178eb57f1" + integrity sha512-GQW/JL/5Fz/0I8RpeBG9lKp0+aNcXEaVL71c0D2Q0QHDTFvlYKT7an0onCUXj85anv7b4/WesqdfchLc0jtsCg== + "@types/parse-json@^4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" @@ -1968,7 +2070,7 @@ aggregate-error@^3.0.0: clean-stack "^2.0.0" indent-string "^4.0.0" -ajv@^6.10.0, ajv@^6.12.4: +ajv@^6.10.0, ajv@^6.12.4, ajv@~6.12.6: version "6.12.6" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== @@ -2049,6 +2151,13 @@ argparse@^2.0.1: resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== +argparse@~1.0.9: + version "1.0.10" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== + dependencies: + sprintf-js "~1.0.2" + aria-hidden@^1.2.2: version "1.2.3" resolved "https://registry.yarnpkg.com/aria-hidden/-/aria-hidden-1.2.3.tgz#14aeb7fb692bbb72d69bebfa47279c1fd725e954" @@ -2213,6 +2322,13 @@ brace-expansion@^1.1.7: balanced-match "^1.0.0" concat-map "0.0.1" +brace-expansion@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" + integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== + dependencies: + balanced-match "^1.0.0" + braces@^3.0.2, braces@~3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" @@ -2430,6 +2546,11 @@ clone@^1.0.2: resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" integrity sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg== +code-block-writer@^12.0.0: + version "12.0.0" + resolved "https://registry.yarnpkg.com/code-block-writer/-/code-block-writer-12.0.0.tgz#4dd58946eb4234105aff7f0035977b2afdc2a770" + integrity sha512-q4dMFMlXtKR3XNBHyMHt/3pwYNA69EDk00lloMOaaUMKPUXBw6lpXtbu3MMVG6/uOihGnRDOlkyqsONEUj60+w== + color-convert@^1.9.0: version "1.9.3" resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" @@ -2464,6 +2585,11 @@ colorette@^2.0.19: resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.20.tgz#9eb793e6833067f7235902fcd3b09917a000a95a" integrity sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w== +colors@~1.2.1: + version "1.2.5" + resolved "https://registry.yarnpkg.com/colors/-/colors-1.2.5.tgz#89c7ad9a374bc030df8013241f68136ed8835afc" + integrity sha512-erNRLao/Y3Fv54qUa0LBB+//Uf3YwMUmdJinN20yMXm9zdKKqH9wt7R9IIVZ+K7ShzfpLV/Zg8+VyrBJYB4lpg== + combined-stream@^1.0.8: version "1.0.8" resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" @@ -3258,7 +3384,7 @@ estraverse@^5.1.0, estraverse@^5.2.0, estraverse@^5.3.0: resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== -estree-walker@^2.0.1: +estree-walker@^2.0.1, estree-walker@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== @@ -3293,7 +3419,7 @@ fast-diff@^1.1.2: resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.2.0.tgz#73ee11982d86caaf7959828d519cfe927fac5f03" integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w== -fast-glob@^3.2.9: +fast-glob@^3.2.12, fast-glob@^3.2.9: version "3.2.12" resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.12.tgz#7f39ec99c2e6ab030337142da9e0c18f37afae80" integrity sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w== @@ -3456,6 +3582,15 @@ framesync@6.1.2: dependencies: tslib "2.4.0" +fs-extra@^10.1.0: + version "10.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.1.0.tgz#02873cfbc4084dde127eaa5f9905eef2325d1abf" + integrity sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + fs-extra@^11.1.1: version "11.1.1" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-11.1.1.tgz#da69f7c39f3b002378b0954bb6ae7efdc0876e2d" @@ -3475,6 +3610,15 @@ fs-extra@^9.0.0: jsonfile "^6.0.1" universalify "^2.0.0" +fs-extra@~7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9" + integrity sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw== + dependencies: + graceful-fs "^4.1.2" + jsonfile "^4.0.0" + universalify "^0.1.0" + fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" @@ -3823,6 +3967,11 @@ import-lazy@^2.1.0: resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43" integrity sha512-m7ZEHgtw69qOGw+jwxXkHlrlIPdTGkyh66zXZ1ajZbxkDBNjSY/LGbmjc7h0s2ELsUDTAhFr55TrPSSqJGPG0A== +import-lazy@~4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-4.0.0.tgz#e8eb627483a0a43da3c03f3e35548be5cb0cc153" + integrity sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw== + imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" @@ -3925,7 +4074,7 @@ is-ci@^2.0.0: dependencies: ci-info "^2.0.0" -is-core-module@^2.11.0, is-core-module@^2.9.0: +is-core-module@^2.1.0, is-core-module@^2.11.0, is-core-module@^2.9.0: version "2.12.0" resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.12.0.tgz#36ad62f6f73c8253fd6472517a12483cf03e7ec4" integrity sha512-RECHCBCd/viahWmwj6enj19sKbHfJrddi/6cBDsNTKbNq0f7VeaUkBo60BqzvPqo/W54ChS62Z5qyun7cfOMqQ== @@ -4148,6 +4297,11 @@ its-fine@^1.0.6: dependencies: "@types/react-reconciler" "^0.28.0" +jju@~1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/jju/-/jju-1.4.0.tgz#a3abe2718af241a2b2904f84a625970f389ae32a" + integrity sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA== + js-sdsl@^4.1.4: version "4.4.0" resolved "https://registry.yarnpkg.com/js-sdsl/-/js-sdsl-4.4.0.tgz#8b437dbe642daa95760400b602378ed8ffea8430" @@ -4204,6 +4358,13 @@ json5@^2.2.2: resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== +jsonfile@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" + integrity sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg== + optionalDependencies: + graceful-fs "^4.1.6" + jsonfile@^6.0.1: version "6.1.0" resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" @@ -4235,6 +4396,11 @@ klaw-sync@^6.0.0: dependencies: graceful-fs "^4.1.11" +kolorist@^1.7.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/kolorist/-/kolorist-1.8.0.tgz#edddbbbc7894bc13302cdf740af6374d4a04743c" + integrity sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ== + konva@^9.0.1: version "9.0.1" resolved "https://registry.yarnpkg.com/konva/-/konva-9.0.1.tgz#92b4171beaa94273b108bd87b08c4d3e51a0da22" @@ -4318,6 +4484,16 @@ lodash-es@^4.17.21: resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.21.tgz#43e626c46e6591b7750beb2b50117390c609e3ee" integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw== +lodash.get@^4.4.2: + version "4.4.2" + resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" + integrity sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ== + +lodash.isequal@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" + integrity sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ== + lodash.merge@^4.6.2: version "4.6.2" resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" @@ -4333,7 +4509,7 @@ lodash.throttle@^4.1.1: resolved "https://registry.yarnpkg.com/lodash.throttle/-/lodash.throttle-4.1.1.tgz#c23e91b710242ac70c37f1e1cda9274cc39bf2f4" integrity sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ== -lodash@^4.17.21: +lodash@^4.17.21, lodash@~4.17.15: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -4416,6 +4592,13 @@ madge@^6.0.0: typescript "^3.9.5" walkdir "^0.4.1" +magic-string@^0.29.0: + version "0.29.0" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.29.0.tgz#f034f79f8c43dba4ae1730ffb5e8c4e084b16cf3" + integrity sha512-WcfidHrDjMY+eLjlU+8OvwREqHwpgCeKVBUpQ3OhYYuvfaYCUgcbuBzappNzZvg/v8onU3oQj+BYpkOJe9Iw4Q== + dependencies: + "@jridgewell/sourcemap-codec" "^1.4.13" + make-dir@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" @@ -4480,11 +4663,23 @@ minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: dependencies: brace-expansion "^1.1.7" +minimatch@^7.4.3: + version "7.4.6" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-7.4.6.tgz#845d6f254d8f4a5e4fd6baf44d5f10c8448365fb" + integrity sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw== + dependencies: + brace-expansion "^2.0.1" + minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6: version "1.2.8" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== +mkdirp@^2.1.6: + version "2.1.6" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-2.1.6.tgz#964fbcb12b2d8c5d6fbc62a963ac95a273e2cc19" + integrity sha512-+hEnITedc8LAtIP9u3HJDFIdcLV2vXP33sqLLIzkv1Db1zO/1OxbvYf0Y1OC/S/Qo5dxHXepofhmxL02PsKe+A== + module-definition@^3.3.1: version "3.4.0" resolved "https://registry.yarnpkg.com/module-definition/-/module-definition-3.4.0.tgz#953a3861f65df5e43e80487df98bb35b70614c2b" @@ -4811,6 +5006,11 @@ patch-package@^7.0.0: tmp "^0.0.33" yaml "^2.2.2" +path-browserify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-1.0.1.tgz#d98454a9c3753d5790860f16f68867b9e46be1fd" + integrity sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g== + path-exists@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" @@ -4831,7 +5031,7 @@ path-key@^4.0.0: resolved "https://registry.yarnpkg.com/path-key/-/path-key-4.0.0.tgz#295588dc3aee64154f877adb9d780b81c554bf18" integrity sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ== -path-parse@^1.0.7: +path-parse@^1.0.6, path-parse@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== @@ -5306,7 +5506,7 @@ resolve-from@^4.0.0: resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== -resolve@^1.19.0, resolve@^1.21.0: +resolve@^1.19.0, resolve@^1.21.0, resolve@~1.22.1: version "1.22.2" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.2.tgz#0ed0943d4e301867955766c9f3e1ae6d01c6845f" integrity sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g== @@ -5324,6 +5524,14 @@ resolve@^2.0.0-next.4: path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" +resolve@~1.19.0: + version "1.19.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.19.0.tgz#1af5bf630409734a067cae29318aac7fa29a267c" + integrity sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg== + dependencies: + is-core-module "^2.1.0" + path-parse "^1.0.6" + responselike@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7" @@ -5453,6 +5661,13 @@ semver@^7.3.4, semver@^7.3.5, semver@^7.3.7: dependencies: lru-cache "^6.0.0" +semver@~7.3.0: + version "7.3.8" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.8.tgz#07a78feafb3f7b32347d725e33de7e2a2df67798" + integrity sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A== + dependencies: + lru-cache "^6.0.0" + shebang-command@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" @@ -5571,6 +5786,11 @@ spawn-command@0.0.2-1: resolved "https://registry.yarnpkg.com/spawn-command/-/spawn-command-0.0.2-1.tgz#62f5e9466981c1b796dc5929937e11c9c6921bd0" integrity sha512-n98l9E2RMSJ9ON1AKisHzz7V42VDiBQGY6PB1BwRglz99wpVsSuGzQ+jOi6lFXBGVTCrRpltvjm+/XA+tpeJrg== +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== + stream-to-array@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/stream-to-array/-/stream-to-array-2.3.0.tgz#bbf6b39f5f43ec30bc71babcb37557acecf34353" @@ -5578,7 +5798,7 @@ stream-to-array@^2.3.0: dependencies: any-promise "^1.1.0" -string-argv@^0.3.1: +string-argv@^0.3.1, string-argv@~0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.1.tgz#95e2fbec0427ae19184935f816d74aaa4c5c19da" integrity sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg== @@ -5682,7 +5902,7 @@ strip-final-newline@^3.0.0: resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz#52894c313fbff318835280aed60ff71ebf12b8fd" integrity sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw== -strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: +strip-json-comments@^3.1.0, strip-json-comments@^3.1.1, strip-json-comments@~3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== @@ -5810,6 +6030,14 @@ ts-graphviz@^1.5.0: resolved "https://registry.yarnpkg.com/ts-graphviz/-/ts-graphviz-1.6.1.tgz#f44525c048cb8c8c188b7324d2a91015fd31ceaf" integrity sha512-9aZKR7hoQAHXlgb7HvUND3y5VhEI5PMNVv/BfelPXebcsxdwZhBYbM8XpnV4NfiHV9O0/sAI9sQVuce0gogzlA== +ts-morph@18.0.0: + version "18.0.0" + resolved "https://registry.yarnpkg.com/ts-morph/-/ts-morph-18.0.0.tgz#b9e7a898ea115064585a8a775d86da6edc9c5b4e" + integrity sha512-Kg5u0mk19PIIe4islUI/HWRvm9bC1lHejK4S0oh1zaZ77TMZAEmQC0sHQYiu2RgCQFZKXz1fMVi/7nOOeirznA== + dependencies: + "@ts-morph/common" "~0.19.0" + code-block-writer "^12.0.0" + ts-node@^10.7.0: version "10.9.1" resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.1.tgz#e73de9102958af9e1f0b168a6ff320e25adcff4b" @@ -5930,6 +6158,11 @@ typescript@^4.0.0, typescript@^4.9.5: resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a" integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== +typescript@~4.8.4: + version "4.8.4" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.8.4.tgz#c464abca159669597be5f96b8943500b238e60e6" + integrity sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ== + uglify-js@^3.1.4: version "3.17.4" resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.17.4.tgz#61678cf5fa3f5b7eb789bb345df29afb8257c22c" @@ -5957,6 +6190,11 @@ unique-string@^2.0.0: dependencies: crypto-random-string "^2.0.0" +universalify@^0.1.0: + version "0.1.2" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" + integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== + universalify@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" @@ -6036,6 +6274,27 @@ v8-compile-cache-lib@^3.0.1: resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== +validator@^13.7.0: + version "13.9.0" + resolved "https://registry.yarnpkg.com/validator/-/validator-13.9.0.tgz#33e7b85b604f3bbce9bb1a05d5c3e22e1c2ff855" + integrity sha512-B+dGG8U3fdtM0/aNK4/X8CXq/EcxU2WPrPEkJGslb47qyHsxmbggTWK0yEA4qnYVNF+nxNlN88o14hIcPmSIEA== + +vite-plugin-dts@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/vite-plugin-dts/-/vite-plugin-dts-2.3.0.tgz#6ab2edf56f48261bfede03958704bfaee2fca3e4" + integrity sha512-WbJgGtsStgQhdm3EosYmIdTGbag5YQpZ3HXWUAPCDyoXI5qN6EY0V7NXq0lAmnv9hVQsvh0htbYcg0Or5Db9JQ== + dependencies: + "@babel/parser" "^7.21.4" + "@microsoft/api-extractor" "^7.34.4" + "@rollup/pluginutils" "^5.0.2" + "@rushstack/node-core-library" "^3.55.2" + debug "^4.3.4" + fast-glob "^3.2.12" + fs-extra "^10.1.0" + kolorist "^1.7.0" + magic-string "^0.29.0" + ts-morph "18.0.0" + vite-plugin-eslint@^1.8.1: version "1.8.1" resolved "https://registry.yarnpkg.com/vite-plugin-eslint/-/vite-plugin-eslint-1.8.1.tgz#0381b8272e7f0fd8b663311b64f7608d55d8b04c" @@ -6243,6 +6502,17 @@ yocto-queue@^0.1.0: resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== +z-schema@~5.0.2: + version "5.0.6" + resolved "https://registry.yarnpkg.com/z-schema/-/z-schema-5.0.6.tgz#46d6a687b15e4a4369e18d6cb1c7b8618fc256c5" + integrity sha512-+XR1GhnWklYdfr8YaZv/iu+vY+ux7V5DS5zH1DQf6bO5ufrt/5cgNhVO5qyhsjFXvsqQb/f08DWE9b6uPscyAg== + dependencies: + lodash.get "^4.4.2" + lodash.isequal "^4.5.0" + validator "^13.7.0" + optionalDependencies: + commander "^10.0.0" + zustand@^4.3.1: version "4.3.7" resolved "https://registry.yarnpkg.com/zustand/-/zustand-4.3.7.tgz#501b1f0393a7f1d103332e45ab574be5747fedce"