diff --git a/packages/core/src/entities/EditorjsPlugin.ts b/packages/core/src/entities/EditorjsPlugin.ts new file mode 100644 index 00000000..649f7956 --- /dev/null +++ b/packages/core/src/entities/EditorjsPlugin.ts @@ -0,0 +1,48 @@ +import type { EventBus } from '../components/EventBus/index.js'; +import type { CoreConfigValidated } from './Config.js'; +import type { EditorAPI } from '../api/index.js'; + +/** + * Parameters for EditorjsPlugin constructor + */ +export interface EditorjsPluginParams { + /** + * EditorJS config + */ + config: CoreConfigValidated; + + /** + * EditorAPI instance + */ + api: EditorAPI; + + /** + * EventBus instance + */ + eventBus: EventBus; +} + +/** + * Base interface for UI plugins + */ +export interface EditorjsPlugin { + /** + * Destroy plugin instance + */ + destroy?(): void; +} + +/** + * Constructor type for EditorjsPlugin + */ +export interface EditorjsPluginConstructor { + /** + * Create new EditorjsPlugin instance + */ + new (params: EditorjsPluginParams): EditorjsPlugin; + + /** + * Plugin type + */ + type: string; +} diff --git a/packages/core/src/entities/Ui.ts b/packages/core/src/entities/Ui.ts new file mode 100644 index 00000000..f4ae8e94 --- /dev/null +++ b/packages/core/src/entities/Ui.ts @@ -0,0 +1,24 @@ +/** + * List of reserved UI component names + */ +export enum UiComponentType { + /** + * Main wrapper UI element + */ + Shell = 'shell', + + /** + * Blocks wrapper + */ + Blocks = 'blocks', + + /** + * Inline toolbar wrapper + */ + InlineToolbar = 'inline-toolbar', + + /** + * Toolbox wrapper + */ + Toolbox = 'toolbox' +} diff --git a/packages/core/src/entities/index.ts b/packages/core/src/entities/index.ts index 5c995404..a6ecb24f 100644 --- a/packages/core/src/entities/index.ts +++ b/packages/core/src/entities/index.ts @@ -1,2 +1,4 @@ export * from './Config.js'; export * from './UnifiedToolConfig.js'; +export * from './EditorjsPlugin.js'; +export * from './Ui.js'; diff --git a/packages/core/src/index.ts b/packages/core/src/index.ts index 06e2b9dc..7f525593 100644 --- a/packages/core/src/index.ts +++ b/packages/core/src/index.ts @@ -7,10 +7,11 @@ import { CaretAdapter, FormattingAdapter } from '@editorjs/dom-adapters'; import type { CoreConfigValidated } from './entities/Config.js'; import type { CoreConfig } from '@editorjs/sdk'; import { BlocksManager } from './components/BlockManager.js'; -import { EditorUI } from './ui/Editor/index.js'; -import { ToolboxUI } from './ui/Toolbox/index.js'; -import { InlineToolbarUI } from './ui/InlineToolbar/index.js'; import { SelectionManager } from './components/SelectionManager.js'; +import { EventBus } from './components/EventBus/index.js'; +import type { EditorjsPluginConstructor } from './entities/EditorjsPlugin.js'; +import { EditorAPI } from './api/index.js'; +import { UiComponentType } from './entities/Ui.js'; /** * If no holder is provided via config, the editor will be appended to the element with this id @@ -23,7 +24,6 @@ const DEFAULT_HOLDER_ID = 'editorjs'; * - subscribes to model updates * - creates Adapters for Tools * - creates Tools - * - adds Blocks accodring to model updates */ export default class Core { /** @@ -71,10 +71,7 @@ export default class Core { this.#iocContainer.set('EditorConfig', this.#config); - const { blocks } = composeDataFromVersion2(config.data ?? { blocks: [] }); - this.#model = new EditorJSModel(); - this.#iocContainer.set(EditorJSModel, this.#model); this.#toolsManager = this.#iocContainer.get(ToolsManager); @@ -92,8 +89,27 @@ export default class Core { config.onModelUpdate?.(this.#model); }); } + } + + /** + * Initialize and injects Plugin into the container + * @param plugin - allows to pass any implementation of editor plugins + */ + public use(plugin: EditorjsPluginConstructor): Core { + const pluginType = plugin.type; + + this.#iocContainer.set(pluginType, plugin); + + return this; + } + + /** + * Initializes the core + */ + public initialize(): void { + const { blocks } = composeDataFromVersion2(this.#config.data ?? { blocks: [] }); - this.#prepareUI(); + this.initializePlugins(); this.#toolsManager.prepareTools() .then(() => { @@ -105,15 +121,36 @@ export default class Core { } /** - * Renders Editor`s UI + * Initialize all registered UI plugins */ - #prepareUI(): void { - const editorUI = this.#iocContainer.get(EditorUI); + private initializePlugins(): void { + /** + * Get all registered plugin types from the container + */ + const pluginTypes = Object.values(UiComponentType) as string[]; + + for (const pluginType of pluginTypes) { + const plugin = this.#iocContainer.get(pluginType); - this.#iocContainer.get(ToolboxUI); - this.#iocContainer.get(InlineToolbarUI); + if (plugin !== undefined && typeof plugin === 'function') { + this.initializePlugin(plugin); + } + } + } - editorUI.render(); + /** + * Create instance of plugin + * @param plugin - Plugin constructor to initialize + */ + private initializePlugin(plugin: EditorjsPluginConstructor): void { + const eventBus = this.#iocContainer.get(EventBus); + const api = this.#iocContainer.get(EditorAPI); + + new plugin({ + config: this.#config, + api, + eventBus, + }); } /** @@ -147,4 +184,10 @@ export default class Core { } } +/** + * @todo move to "sdk" package + */ export * from './entities/index.js'; +export * from './components/EventBus/index.js'; +export * from './api/index.js'; +export * from './tools/facades/index.js'; diff --git a/packages/core/tsconfig.json b/packages/core/tsconfig.json index dfbd8664..b86ffbb4 100644 --- a/packages/core/tsconfig.json +++ b/packages/core/tsconfig.json @@ -3,7 +3,7 @@ "composite": true, "target": "esnext", "module": "esnext", - "moduleResolution": "Node", + "moduleResolution": "bundler", "esModuleInterop": true, "forceConsistentCasingInFileNames": true, "strict": true, @@ -12,7 +12,10 @@ "emitDecoratorMetadata": true, "types": ["jest"], "rootDir": "src", - "outDir": "dist" + "outDir": "dist", + "declaration": true, + "declarationMap": true, + "sourceMap": true }, "include": ["src/**/*"], "exclude": [ diff --git a/packages/playground/package.json b/packages/playground/package.json index fb3124b7..9a356b54 100644 --- a/packages/playground/package.json +++ b/packages/playground/package.json @@ -14,9 +14,10 @@ "lint:fix": "yarn lint --fix" }, "dependencies": { - "@editorjs/core": "workspace:^", + "@editorjs/core": "workspace:*", "@editorjs/dom-adapters": "workspace:^", "@editorjs/model": "workspace:^", + "@editorjs/ui": "workspace:*", "vue": "^3.3.4" }, "devDependencies": { diff --git a/packages/playground/src/App.vue b/packages/playground/src/App.vue index 3f2a12ef..c825add5 100644 --- a/packages/playground/src/App.vue +++ b/packages/playground/src/App.vue @@ -3,7 +3,7 @@ import { EditorDocument, EditorJSModel } from '@editorjs/model'; import Core from '@editorjs/core'; import { ref, onMounted } from 'vue'; import { Node } from './components'; - +import { EditorjsUI, BlocksUI, InlineToolbarUI, ToolboxUI } from '@editorjs/ui'; /** * Editor document for visualizing */ @@ -20,7 +20,7 @@ const serialized = ref(null); */ onMounted(() => { - new Core({ + const core = new Core({ holder: document.getElementById('editorjs') as HTMLElement, data: { blocks: [ { @@ -35,6 +35,13 @@ onMounted(() => { editorDocument.value = model.devModeGetDocument(); }, }); + + core + .use(EditorjsUI) + .use(BlocksUI) + .use(InlineToolbarUI) + .use(ToolboxUI) + .initialize(); }); diff --git a/packages/playground/tsconfig.eslint.json b/packages/playground/tsconfig.eslint.json index f0ae579f..18833834 100644 --- a/packages/playground/tsconfig.eslint.json +++ b/packages/playground/tsconfig.eslint.json @@ -2,5 +2,10 @@ "extends": "./tsconfig.json", "include": [ ".eslintrc.cjs" + ], + "references": [ + { + "path": "../ui/tsconfig.json" + } ] } diff --git a/packages/playground/tsconfig.json b/packages/playground/tsconfig.json index 162ea5ae..ec8071bb 100644 --- a/packages/playground/tsconfig.json +++ b/packages/playground/tsconfig.json @@ -28,6 +28,12 @@ "references": [ { "path": "./tsconfig.node.json" + }, + { + "path": "../ui/tsconfig.json" + }, + { + "path": "../core/tsconfig.json" } ] } diff --git a/packages/ui/.gitignore b/packages/ui/.gitignore new file mode 100644 index 00000000..854a697d --- /dev/null +++ b/packages/ui/.gitignore @@ -0,0 +1,24 @@ +.yarn/* +!.yarn/patches +!.yarn/plugins +!.yarn/releases +!.yarn/sdks +!.yarn/versions + +# Swap the comments on the following lines if you don't wish to use zero-installs +# Documentation here: https://yarnpkg.com/features/zero-installs +#!.yarn/cache +#.pnp.* + +# IDE +.idea/* + +node_modules/* +dist/* + +# tests +coverage/ +reports/ + +# stryker temp files +.stryker-tmp diff --git a/packages/ui/README.md b/packages/ui/README.md new file mode 100644 index 00000000..b4562d94 --- /dev/null +++ b/packages/ui/README.md @@ -0,0 +1,3 @@ +# @editorjs/ui + +Contains in-box EditorJs UI components implementation \ No newline at end of file diff --git a/packages/ui/eslint.config.mjs b/packages/ui/eslint.config.mjs new file mode 100644 index 00000000..99a05ca5 --- /dev/null +++ b/packages/ui/eslint.config.mjs @@ -0,0 +1,26 @@ +import CodeX from 'eslint-config-codex'; + +export default [ + ...CodeX, + + { + /** + * Override path to the tsconfig.json file. + */ + languageOptions: { + parserOptions: { + project: './tsconfig.json', + tsconfigRootDir: './', + sourceType: 'module', + }, + }, + rules: { + 'n/no-unpublished-import': ['error', { + allowModules: [ + 'eslint-config-codex', + ], + ignoreTypeImport: true, + }], + }, + }, +]; diff --git a/packages/ui/index.html b/packages/ui/index.html new file mode 100644 index 00000000..e328dac3 --- /dev/null +++ b/packages/ui/index.html @@ -0,0 +1,32 @@ +
+ + + + \ No newline at end of file diff --git a/packages/ui/package.json b/packages/ui/package.json new file mode 100644 index 00000000..944228f6 --- /dev/null +++ b/packages/ui/package.json @@ -0,0 +1,42 @@ +{ + "name": "@editorjs/ui", + "packageManager": "yarn@4.0.1", + "type": "module", + "main": "./dist/index.js", + "module": "./dist/index.js", + "types": "./dist/index.d.ts", + "exports": { + ".": { + "types": "./dist/index.d.ts", + "import": "./dist/index.js", + "require": "./dist/index.js" + } + }, + "files": [ + "dist" + ], + "scripts": { + "build": "vite build", + "dev": "vite", + "lint": "eslint ./src", + "lint:ci": "yarn lint --max-warnings 0", + "lint:fix": "yarn lint --fix", + "clear": "rm -rf ./dist" + }, + "devDependencies": { + "eslint": "^9.9.1", + "eslint-config-codex": "^2.0.2", + "typescript": "^5.5.4", + "vite": "^5.1.3", + "vite-plugin-dts": "^3.7.3" + }, + "dependencies": { + "@editorjs/core": "workspace:^", + "@editorjs/dom": "^1.0.0", + "@editorjs/dom-adapters": "workspace:^", + "@editorjs/editorjs": "^2.30.5", + "@editorjs/helpers": "^1.0.0", + "@editorjs/model": "workspace:^", + "@editorjs/sdk": "workspace:^" + } +} diff --git a/packages/core/src/ui/Editor/index.ts b/packages/ui/src/Blocks/Blocks.ts similarity index 56% rename from packages/core/src/ui/Editor/index.ts rename to packages/ui/src/Blocks/Blocks.ts index a2c971c9..ede9c32e 100644 --- a/packages/core/src/ui/Editor/index.ts +++ b/packages/ui/src/Blocks/Blocks.ts @@ -1,10 +1,12 @@ -import 'reflect-metadata'; -import { Inject, Service } from 'typedi'; -import { CoreConfigValidated } from '../../entities/index.js'; -import { EventBus } from '../../components/EventBus/index.js'; -import { BlockAddedCoreEvent, CoreEventType } from '../../components/EventBus/index.js'; -import { ToolboxRenderedUIEvent } from '../Toolbox/index.js'; -import { InlineToolbarRenderedUIEvent } from '../InlineToolbar/InlineToolbarRenderedUIEvent.js'; +import type { BlockAddedCoreEvent, + BlockRemovedCoreEvent, + EventBus, + EditorjsPlugin, + EditorjsPluginParams } from '@editorjs/core'; +import { + CoreEventType, + UiComponentType +} from '@editorjs/core'; /** * Editor's main UI renderer for HTML environment @@ -12,8 +14,12 @@ import { InlineToolbarRenderedUIEvent } from '../InlineToolbar/InlineToolbarRend * - adds and removes blocks on the page * - handles user UI interactions */ -@Service() -export class EditorUI { +export class BlocksUI implements EditorjsPlugin { + /** + * Plugin type + */ + public static readonly type = UiComponentType.Blocks; + /** * Editor holder element */ @@ -23,16 +29,18 @@ export class EditorUI { */ #blocks: HTMLElement[] = []; + /** + * EventBus instance to exchange events between components + */ #eventBus: EventBus; /** * EditorUI constructor method - * @param config - EditorJS validated configuration - * @param eventBus - EventBus instance to exchange events between components + * @param params - Plugin parameters */ - constructor(@Inject('EditorConfig') config: CoreConfigValidated, eventBus: EventBus) { - this.#holder = config.holder; - this.#eventBus = eventBus; + constructor(params: EditorjsPluginParams) { + this.#holder = params.config.holder; + this.#eventBus = params.eventBus; this.#eventBus.addEventListener(`core:${CoreEventType.BlockAdded}`, (event: BlockAddedCoreEvent) => { const { ui, index } = event.detail; @@ -40,35 +48,30 @@ export class EditorUI { this.#addBlock(ui, index); }); - this.#eventBus.addEventListener(`core:${CoreEventType.BlockRemoved}`, (event: BlockAddedCoreEvent) => { + this.#eventBus.addEventListener(`core:${CoreEventType.BlockRemoved}`, (event: BlockRemovedCoreEvent) => { const { index } = event.detail; this.#removeBlock(index); }); - this.#eventBus.addEventListener(`ui:toolbox:rendered`, (event: ToolboxRenderedUIEvent) => { - this.#addToolbox(event.detail.toolbox); - }); - - this.#eventBus.addEventListener(`ui:inline-toolbar:rendered`, (event: InlineToolbarRenderedUIEvent) => { - this.#holder.appendChild(event.detail.toolbar); - }); + this.#prepareBlocksHolder(); } /** * Renders the editor UI - * @todo replace with the event handler */ public render(): void { - // will add UI to holder element } /** - * Adds toolbox to the editor UI - * @param toolboxElement - toolbox HTML element to add to the page + * Prepares blocks holder element */ - #addToolbox(toolboxElement: HTMLElement): void { - this.#holder.appendChild(toolboxElement); + #prepareBlocksHolder(): void { + const blocksHolder = document.createElement('div'); + + blocksHolder.classList.add('ejs-blocks-holder'); + + this.#holder.appendChild(blocksHolder); } /** @@ -108,4 +111,12 @@ export class EditorUI { throw new Error('Index out of bounds'); } } + + /** + * Cleanup when plugin is destroyed + */ + public destroy(): void { + this.#blocks.forEach(block => block.remove()); + this.#blocks = []; + } } diff --git a/packages/core/src/ui/InlineToolbar/index.ts b/packages/ui/src/InlineToolbar/InlineToolbar.ts similarity index 85% rename from packages/core/src/ui/InlineToolbar/index.ts rename to packages/ui/src/InlineToolbar/InlineToolbar.ts index c4e84876..73119069 100644 --- a/packages/core/src/ui/InlineToolbar/index.ts +++ b/packages/ui/src/InlineToolbar/InlineToolbar.ts @@ -1,13 +1,16 @@ -import 'reflect-metadata'; -import { Service } from 'typedi'; - import { make } from '@editorjs/dom'; import { InlineToolbarRenderedUIEvent } from './InlineToolbarRenderedUIEvent.js'; -import { CoreEventType, EventBus, SelectionChangedCoreEvent } from '../../components/EventBus/index.js'; -import { EditorAPI } from '../../api/index.js'; -import { InlineTool, InlineToolFormatData } from '@editorjs/sdk'; -import { InlineFragment, InlineToolName, TextRange } from '@editorjs/model'; -import { CoreConfigValidated } from '../../entities/index.js'; +import type { EditorAPI, + EventBus, + SelectionChangedCoreEvent, + EditorjsPlugin, + EditorjsPluginParams } from '@editorjs/core'; +import { + CoreEventType, + UiComponentType +} from '@editorjs/core'; +import type { InlineTool, InlineToolFormatData } from '@editorjs/sdk'; +import type { InlineFragment, InlineToolName, TextRange } from '@editorjs/model'; /** * Inline Toolbar UI module @@ -15,8 +18,12 @@ import { CoreConfigValidated } from '../../entities/index.js'; * - listens to the selection change core event * - handles the inline tools actions via EditorAPI */ -@Service() -export class InlineToolbarUI { +export class InlineToolbarUI implements EditorjsPlugin { + /** + * Plugin type + */ + public static readonly type = UiComponentType.InlineToolbar; + /** * EventBus instance to exchange events between components */ @@ -34,15 +41,12 @@ export class InlineToolbarUI { /** * InlineToolbarUI class constructor - * @param _config - EditorJS validated configuration, not used here - * @param api - EditorAPI instance to apply inline tools - * @param eventBus - EventBus instance to exchange events between components + * @param params - Plugin parameters */ - constructor( - _config: CoreConfigValidated, - api: EditorAPI, - eventBus: EventBus - ) { + constructor({ + api, + eventBus, + }: EditorjsPluginParams) { this.#eventBus = eventBus; this.#api = api; @@ -51,6 +55,13 @@ export class InlineToolbarUI { this.#eventBus.addEventListener(`core:${CoreEventType.SelectionChanged}`, (event: SelectionChangedCoreEvent) => this.#handleSelectionChange(event)); } + /** + * Cleanup when plugin is destroyed + */ + public destroy(): void { + this.#nodes.holder?.remove(); + } + /** * Handles the selection change core event * @param event - SelectionChangedCoreEvent event diff --git a/packages/core/src/ui/InlineToolbar/InlineToolbarRenderedUIEvent.ts b/packages/ui/src/InlineToolbar/InlineToolbarRenderedUIEvent.ts similarity index 90% rename from packages/core/src/ui/InlineToolbar/InlineToolbarRenderedUIEvent.ts rename to packages/ui/src/InlineToolbar/InlineToolbarRenderedUIEvent.ts index 3d4e9f76..6993bf48 100644 --- a/packages/core/src/ui/InlineToolbar/InlineToolbarRenderedUIEvent.ts +++ b/packages/ui/src/InlineToolbar/InlineToolbarRenderedUIEvent.ts @@ -1,4 +1,4 @@ -import { UIEventBase } from '../../components/EventBus/index.js'; +import { UIEventBase } from '@editorjs/core'; /** * Payload of the InlineToolbarRenderedUIEvent diff --git a/packages/core/src/ui/Toolbox/index.ts b/packages/ui/src/Toolbox/Toolbox.ts similarity index 68% rename from packages/core/src/ui/Toolbox/index.ts rename to packages/ui/src/Toolbox/Toolbox.ts index acfff94e..502194c7 100644 --- a/packages/core/src/ui/Toolbox/index.ts +++ b/packages/ui/src/Toolbox/Toolbox.ts @@ -1,19 +1,27 @@ -import 'reflect-metadata'; -import { Service } from 'typedi'; -import { BlockToolFacade } from '../../tools/facades/index.js'; import { make } from '@editorjs/dom'; -import { CoreEventType, EventBus, ToolLoadedCoreEvent } from '../../components/EventBus/index.js'; +import type { EventBus, + ToolLoadedCoreEvent, + BlockToolFacade, + EditorjsPlugin, + EditorjsPluginParams } from '@editorjs/core'; +import { + CoreEventType, + UiComponentType +} from '@editorjs/core'; import { ToolboxRenderedUIEvent } from './ToolboxRenderedUIEvent.js'; -import { EditorAPI } from '../../api/index.js'; -import { CoreConfigValidated } from '../../entities/Config.js'; +import type { EditorAPI } from '@editorjs/core'; /** * UI module responsible for rendering the toolbox * - renders tool buttons in the toolbox * - listens to the click event on the tool buttons to insert blocks */ -@Service() -export class ToolboxUI { +export class ToolboxUI implements EditorjsPlugin { + /** + * Plugin type + */ + public static readonly type = UiComponentType.Toolbox; + /** * EditorAPI instance to insert blocks */ @@ -31,16 +39,12 @@ export class ToolboxUI { /** * ToolboxUI class constructor - * @todo - unify the constructor parameters with the other UI plugins - * @param _config - EditorJS validated configuration, not used here - * @param api - EditorAPI instance to insert blocks - * @param eventBus - EventBus instance to exchange events between components + * @param params - Plugin parameters */ - constructor( - _config: CoreConfigValidated, - api: EditorAPI, - eventBus: EventBus - ) { + constructor({ + api, + eventBus, + }: EditorjsPluginParams) { this.#api = api; this.#eventBus = eventBus; @@ -55,6 +59,13 @@ export class ToolboxUI { }); } + /** + * Cleanup when plugin is destroyed + */ + public destroy(): void { + this.#nodes.holder?.remove(); + } + /** * Renders Toolbox UI and dispatches an event */ diff --git a/packages/core/src/ui/Toolbox/ToolboxRenderedUIEvent.ts b/packages/ui/src/Toolbox/ToolboxRenderedUIEvent.ts similarity index 89% rename from packages/core/src/ui/Toolbox/ToolboxRenderedUIEvent.ts rename to packages/ui/src/Toolbox/ToolboxRenderedUIEvent.ts index 08ea2309..b35c0e9f 100644 --- a/packages/core/src/ui/Toolbox/ToolboxRenderedUIEvent.ts +++ b/packages/ui/src/Toolbox/ToolboxRenderedUIEvent.ts @@ -1,4 +1,4 @@ -import { UIEventBase } from '../../components/EventBus/index.js'; +import { UIEventBase } from '@editorjs/core'; /** * Payload of the ToolboxRenderedUIEvent diff --git a/packages/ui/src/index.ts b/packages/ui/src/index.ts new file mode 100644 index 00000000..95b4121f --- /dev/null +++ b/packages/ui/src/index.ts @@ -0,0 +1,78 @@ +import type { CoreConfigValidated, + EventBus, + EditorjsPlugin, + EditorjsPluginParams } from '@editorjs/core'; +import { + UiComponentType +} from '@editorjs/core'; +import type { ToolboxRenderedUIEvent } from './Toolbox/ToolboxRenderedUIEvent.js'; +import type { InlineToolbarRenderedUIEvent } from './InlineToolbar/InlineToolbarRenderedUIEvent.js'; + +/** + * EditorJS UI plugin + */ +export class EditorjsUI implements EditorjsPlugin { + /** + * Editor configuration + */ + #config: CoreConfigValidated; + + /** + * Core event bus + */ + #eventBus: EventBus; + + /** + * Element where the editor is initited + */ + #holder: HTMLElement; + + /** + * Plugin type + */ + public static type = UiComponentType.Shell; + + /** + * @param params - Plugin parameters + */ + constructor(params: EditorjsPluginParams) { + this.#config = params.config; + this.#eventBus = params.eventBus; + this.#holder = params.config.holder; + + this.#eventBus.addEventListener(`ui:toolbox:rendered`, (event: ToolboxRenderedUIEvent) => { + this.#addToolbox(event.detail.toolbox); + }); + + this.#eventBus.addEventListener(`ui:inline-toolbar:rendered`, (event: InlineToolbarRenderedUIEvent) => { + this.#addInlineToolbar(event.detail.toolbar); + }); + } + + /** + * Method to destroy the plugin + */ + public destroy(): void { + // Cleanup if needed + } + + /** + * Adds toolbox to the editor UI + * @param toolboxElement - toolbox HTML element to add to the page + */ + #addToolbox(toolboxElement: HTMLElement): void { + this.#holder.appendChild(toolboxElement); + } + + /** + * Adds inline toolbar to the editor UI + * @param toolbarElement - inline toolbar HTML element to add to the page + */ + #addInlineToolbar(toolbarElement: HTMLElement): void { + this.#holder.appendChild(toolbarElement); + } +} + +export * from './InlineToolbar/InlineToolbar.js'; +export * from './Blocks/Blocks.js'; +export * from './Toolbox/Toolbox.js'; diff --git a/packages/ui/tsconfig.build.json b/packages/ui/tsconfig.build.json new file mode 100644 index 00000000..7d8c21ba --- /dev/null +++ b/packages/ui/tsconfig.build.json @@ -0,0 +1,20 @@ +{ + "extends": "./tsconfig.json", + "exclude": [ + "src/**/*.spec.ts" + ], + "references": [ + { + "path": "../model/tsconfig.build.json" + }, + { + "path": "../sdk/tsconfig.build.json" + }, + { + "path": "../dom-adapters/tsconfig.build.json" + }, + { + "path": "../core/tsconfig.build.json" + } + ] +} diff --git a/packages/ui/tsconfig.json b/packages/ui/tsconfig.json new file mode 100644 index 00000000..fc87faa1 --- /dev/null +++ b/packages/ui/tsconfig.json @@ -0,0 +1,27 @@ +{ + "compilerOptions": { + "composite": true, + "target": "esnext", + "module": "esnext", + "moduleResolution": "bundler", + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true, + "strict": true, + "skipLibCheck": true, + "experimentalDecorators": true, + "emitDecoratorMetadata": true, + "types": ["jest"], + "rootDir": "src", + "outDir": "dist" + }, + "include": ["src/**/*"], + "exclude": [ + "node_modules/**/*", + "dist/**/*" + ], + "references": [ + { + "path": "../model/tsconfig.build.json" + } + ] +} diff --git a/packages/ui/vite.config.ts b/packages/ui/vite.config.ts new file mode 100644 index 00000000..18230ea4 --- /dev/null +++ b/packages/ui/vite.config.ts @@ -0,0 +1,31 @@ +import { defineConfig } from 'vite'; +import { resolve } from 'path'; +import dts from 'vite-plugin-dts' + +export default defineConfig({ + plugins: [ + dts(), + ], + build: { + lib: { + entry: resolve(__dirname, 'src/index.ts'), + name: 'EditorUI', + fileName: 'index', + formats: ['es', 'cjs'] + }, + rollupOptions: { + external: [ + 'reflect-metadata', + 'typedi', + ] + } + }, + resolve: { + alias: { + '@': resolve(__dirname, 'src') + } + }, + esbuild: { + target: 'esnext' + } +}); diff --git a/yarn.lock b/yarn.lock index a4fd0ab8..bb6b9469 100644 --- a/yarn.lock +++ b/yarn.lock @@ -244,6 +244,13 @@ __metadata: languageName: node linkType: hard +"@babel/helper-string-parser@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-string-parser@npm:7.25.9" + checksum: c28656c52bd48e8c1d9f3e8e68ecafd09d949c57755b0d353739eb4eae7ba4f7e67e92e4036f1cd43378cc1397a2c943ed7bcaf5949b04ab48607def0258b775 + languageName: node + linkType: hard + "@babel/helper-validator-identifier@npm:^7.22.20": version: 7.22.20 resolution: "@babel/helper-validator-identifier@npm:7.22.20" @@ -258,6 +265,13 @@ __metadata: languageName: node linkType: hard +"@babel/helper-validator-identifier@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-validator-identifier@npm:7.25.9" + checksum: 3f9b649be0c2fd457fa1957b694b4e69532a668866b8a0d81eabfa34ba16dbf3107b39e0e7144c55c3c652bf773ec816af8df4a61273a2bb4eb3145ca9cf478e + languageName: node + linkType: hard + "@babel/helper-validator-option@npm:^7.22.15": version: 7.22.15 resolution: "@babel/helper-validator-option@npm:7.22.15" @@ -307,6 +321,17 @@ __metadata: languageName: node linkType: hard +"@babel/parser@npm:^7.25.3": + version: 7.27.0 + resolution: "@babel/parser@npm:7.27.0" + dependencies: + "@babel/types": "npm:^7.27.0" + bin: + parser: ./bin/babel-parser.js + checksum: 0fee9f05c6db753882ca9d10958301493443da9f6986d7020ebd7a696b35886240016899bc0b47d871aea2abcafd64632343719742e87432c8145e0ec2af2a03 + languageName: node + linkType: hard + "@babel/plugin-proposal-decorators@npm:~7.23.0": version: 7.23.3 resolution: "@babel/plugin-proposal-decorators@npm:7.23.3" @@ -589,6 +614,16 @@ __metadata: languageName: node linkType: hard +"@babel/types@npm:^7.27.0": + version: 7.27.0 + resolution: "@babel/types@npm:7.27.0" + dependencies: + "@babel/helper-string-parser": "npm:^7.25.9" + "@babel/helper-validator-identifier": "npm:^7.25.9" + checksum: 2c322bce107c8a534dc4a23be60d570e6a4cc7ca2e44d4f0eee08c0b626104eb7e60ab8de03463bc5da1773a2f69f1e6edec1648d648d65461d6520a7f3b0770 + languageName: node + linkType: hard + "@bcoe/v8-coverage@npm:^0.2.3": version: 0.2.3 resolution: "@bcoe/v8-coverage@npm:0.2.3" @@ -627,7 +662,7 @@ __metadata: languageName: unknown linkType: soft -"@editorjs/core@workspace:^, @editorjs/core@workspace:packages/core": +"@editorjs/core@workspace:*, @editorjs/core@workspace:^, @editorjs/core@workspace:packages/core": version: 0.0.0-use.local resolution: "@editorjs/core@workspace:packages/core" dependencies: @@ -649,9 +684,10 @@ __metadata: version: 0.0.0-use.local resolution: "@editorjs/document-playground@workspace:packages/playground" dependencies: - "@editorjs/core": "workspace:^" + "@editorjs/core": "workspace:*" "@editorjs/dom-adapters": "workspace:^" "@editorjs/model": "workspace:^" + "@editorjs/ui": "workspace:*" "@types/eslint": "npm:^8" "@vitejs/plugin-vue": "npm:^4.2.3" concurrently: "npm:^8.2.2" @@ -754,6 +790,25 @@ __metadata: languageName: unknown linkType: soft +"@editorjs/ui@workspace:*, @editorjs/ui@workspace:packages/ui": + version: 0.0.0-use.local + resolution: "@editorjs/ui@workspace:packages/ui" + dependencies: + "@editorjs/core": "workspace:^" + "@editorjs/dom": "npm:^1.0.0" + "@editorjs/dom-adapters": "workspace:^" + "@editorjs/editorjs": "npm:^2.30.5" + "@editorjs/helpers": "npm:^1.0.0" + "@editorjs/model": "workspace:^" + "@editorjs/sdk": "workspace:^" + eslint: "npm:^9.9.1" + eslint-config-codex: "npm:^2.0.2" + typescript: "npm:^5.5.4" + vite: "npm:^5.1.3" + vite-plugin-dts: "npm:^3.7.3" + languageName: unknown + linkType: soft + "@es-joy/jsdoccomment@npm:~0.41.0": version: 0.41.0 resolution: "@es-joy/jsdoccomment@npm:0.41.0" @@ -776,6 +831,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/aix-ppc64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/aix-ppc64@npm:0.21.5" + conditions: os=aix & cpu=ppc64 + languageName: node + linkType: hard + "@esbuild/android-arm64@npm:0.18.20": version: 0.18.20 resolution: "@esbuild/android-arm64@npm:0.18.20" @@ -783,6 +845,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/android-arm64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/android-arm64@npm:0.21.5" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/android-arm@npm:0.18.20": version: 0.18.20 resolution: "@esbuild/android-arm@npm:0.18.20" @@ -790,6 +859,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/android-arm@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/android-arm@npm:0.21.5" + conditions: os=android & cpu=arm + languageName: node + linkType: hard + "@esbuild/android-x64@npm:0.18.20": version: 0.18.20 resolution: "@esbuild/android-x64@npm:0.18.20" @@ -797,6 +873,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/android-x64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/android-x64@npm:0.21.5" + conditions: os=android & cpu=x64 + languageName: node + linkType: hard + "@esbuild/darwin-arm64@npm:0.18.20": version: 0.18.20 resolution: "@esbuild/darwin-arm64@npm:0.18.20" @@ -804,6 +887,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/darwin-arm64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/darwin-arm64@npm:0.21.5" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/darwin-x64@npm:0.18.20": version: 0.18.20 resolution: "@esbuild/darwin-x64@npm:0.18.20" @@ -811,6 +901,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/darwin-x64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/darwin-x64@npm:0.21.5" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + "@esbuild/freebsd-arm64@npm:0.18.20": version: 0.18.20 resolution: "@esbuild/freebsd-arm64@npm:0.18.20" @@ -818,6 +915,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/freebsd-arm64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/freebsd-arm64@npm:0.21.5" + conditions: os=freebsd & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/freebsd-x64@npm:0.18.20": version: 0.18.20 resolution: "@esbuild/freebsd-x64@npm:0.18.20" @@ -825,6 +929,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/freebsd-x64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/freebsd-x64@npm:0.21.5" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + "@esbuild/linux-arm64@npm:0.18.20": version: 0.18.20 resolution: "@esbuild/linux-arm64@npm:0.18.20" @@ -832,6 +943,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-arm64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/linux-arm64@npm:0.21.5" + conditions: os=linux & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/linux-arm@npm:0.18.20": version: 0.18.20 resolution: "@esbuild/linux-arm@npm:0.18.20" @@ -839,6 +957,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-arm@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/linux-arm@npm:0.21.5" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + "@esbuild/linux-ia32@npm:0.18.20": version: 0.18.20 resolution: "@esbuild/linux-ia32@npm:0.18.20" @@ -846,6 +971,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-ia32@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/linux-ia32@npm:0.21.5" + conditions: os=linux & cpu=ia32 + languageName: node + linkType: hard + "@esbuild/linux-loong64@npm:0.18.20": version: 0.18.20 resolution: "@esbuild/linux-loong64@npm:0.18.20" @@ -853,6 +985,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-loong64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/linux-loong64@npm:0.21.5" + conditions: os=linux & cpu=loong64 + languageName: node + linkType: hard + "@esbuild/linux-mips64el@npm:0.18.20": version: 0.18.20 resolution: "@esbuild/linux-mips64el@npm:0.18.20" @@ -860,6 +999,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-mips64el@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/linux-mips64el@npm:0.21.5" + conditions: os=linux & cpu=mips64el + languageName: node + linkType: hard + "@esbuild/linux-ppc64@npm:0.18.20": version: 0.18.20 resolution: "@esbuild/linux-ppc64@npm:0.18.20" @@ -867,6 +1013,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-ppc64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/linux-ppc64@npm:0.21.5" + conditions: os=linux & cpu=ppc64 + languageName: node + linkType: hard + "@esbuild/linux-riscv64@npm:0.18.20": version: 0.18.20 resolution: "@esbuild/linux-riscv64@npm:0.18.20" @@ -874,6 +1027,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-riscv64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/linux-riscv64@npm:0.21.5" + conditions: os=linux & cpu=riscv64 + languageName: node + linkType: hard + "@esbuild/linux-s390x@npm:0.18.20": version: 0.18.20 resolution: "@esbuild/linux-s390x@npm:0.18.20" @@ -881,6 +1041,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-s390x@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/linux-s390x@npm:0.21.5" + conditions: os=linux & cpu=s390x + languageName: node + linkType: hard + "@esbuild/linux-x64@npm:0.18.20": version: 0.18.20 resolution: "@esbuild/linux-x64@npm:0.18.20" @@ -888,6 +1055,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-x64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/linux-x64@npm:0.21.5" + conditions: os=linux & cpu=x64 + languageName: node + linkType: hard + "@esbuild/netbsd-x64@npm:0.18.20": version: 0.18.20 resolution: "@esbuild/netbsd-x64@npm:0.18.20" @@ -895,6 +1069,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/netbsd-x64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/netbsd-x64@npm:0.21.5" + conditions: os=netbsd & cpu=x64 + languageName: node + linkType: hard + "@esbuild/openbsd-x64@npm:0.18.20": version: 0.18.20 resolution: "@esbuild/openbsd-x64@npm:0.18.20" @@ -902,6 +1083,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/openbsd-x64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/openbsd-x64@npm:0.21.5" + conditions: os=openbsd & cpu=x64 + languageName: node + linkType: hard + "@esbuild/sunos-x64@npm:0.18.20": version: 0.18.20 resolution: "@esbuild/sunos-x64@npm:0.18.20" @@ -909,6 +1097,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/sunos-x64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/sunos-x64@npm:0.21.5" + conditions: os=sunos & cpu=x64 + languageName: node + linkType: hard + "@esbuild/win32-arm64@npm:0.18.20": version: 0.18.20 resolution: "@esbuild/win32-arm64@npm:0.18.20" @@ -916,6 +1111,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/win32-arm64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/win32-arm64@npm:0.21.5" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/win32-ia32@npm:0.18.20": version: 0.18.20 resolution: "@esbuild/win32-ia32@npm:0.18.20" @@ -923,6 +1125,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/win32-ia32@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/win32-ia32@npm:0.21.5" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + "@esbuild/win32-x64@npm:0.18.20": version: 0.18.20 resolution: "@esbuild/win32-x64@npm:0.18.20" @@ -930,6 +1139,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/win32-x64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/win32-x64@npm:0.21.5" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + "@eslint-community/eslint-utils@npm:^4.1.2, @eslint-community/eslint-utils@npm:^4.2.0, @eslint-community/eslint-utils@npm:^4.4.0": version: 4.4.0 resolution: "@eslint-community/eslint-utils@npm:4.4.0" @@ -1349,6 +1565,13 @@ __metadata: languageName: node linkType: hard +"@jridgewell/sourcemap-codec@npm:^1.5.0": + version: 1.5.0 + resolution: "@jridgewell/sourcemap-codec@npm:1.5.0" + checksum: 4ed6123217569a1484419ac53f6ea0d9f3b57e5b57ab30d7c267bdb27792a27eb0e4b08e84a2680aa55cc2f2b411ffd6ec3db01c44fdc6dc43aca4b55f8374fd + languageName: node + linkType: hard + "@jridgewell/trace-mapping@npm:0.3.9": version: 0.3.9 resolution: "@jridgewell/trace-mapping@npm:0.3.9" @@ -1378,6 +1601,59 @@ __metadata: languageName: node linkType: hard +"@microsoft/api-extractor-model@npm:7.28.13": + version: 7.28.13 + resolution: "@microsoft/api-extractor-model@npm:7.28.13" + dependencies: + "@microsoft/tsdoc": "npm:0.14.2" + "@microsoft/tsdoc-config": "npm:~0.16.1" + "@rushstack/node-core-library": "npm:4.0.2" + checksum: af1d0457d76b909ac870c7c895caf773a3348312d8c308f73bf160c8b85ab6c0be6ed6c5568a5ee5ccedf29ee1b6826af0bb241264b02ed9f5f5bba49981e631 + languageName: node + linkType: hard + +"@microsoft/api-extractor@npm:7.43.0": + version: 7.43.0 + resolution: "@microsoft/api-extractor@npm:7.43.0" + dependencies: + "@microsoft/api-extractor-model": "npm:7.28.13" + "@microsoft/tsdoc": "npm:0.14.2" + "@microsoft/tsdoc-config": "npm:~0.16.1" + "@rushstack/node-core-library": "npm:4.0.2" + "@rushstack/rig-package": "npm:0.5.2" + "@rushstack/terminal": "npm:0.10.0" + "@rushstack/ts-command-line": "npm:4.19.1" + lodash: "npm:~4.17.15" + minimatch: "npm:~3.0.3" + resolve: "npm:~1.22.1" + semver: "npm:~7.5.4" + source-map: "npm:~0.6.1" + typescript: "npm:5.4.2" + bin: + api-extractor: bin/api-extractor + checksum: 302a4050de2625ded2eb3af6b047fb99b25f0c5e1f0d51d1f28d79e6336ba1602267bb618e34d447abfbfd6e34b46062a41f659e50a6f646b2aa9545ddbba7ab + languageName: node + linkType: hard + +"@microsoft/tsdoc-config@npm:~0.16.1": + version: 0.16.2 + resolution: "@microsoft/tsdoc-config@npm:0.16.2" + dependencies: + "@microsoft/tsdoc": "npm:0.14.2" + ajv: "npm:~6.12.6" + jju: "npm:~1.4.0" + resolve: "npm:~1.19.0" + checksum: 37fc35d83dab66771502165fad6a8380ec6d47e0fdaadcb60c09792e5b8172feea42f327ebf4e6026c3b22448e5e73d9ee53948a2d877ee00257679b162f3490 + languageName: node + linkType: hard + +"@microsoft/tsdoc@npm:0.14.2": + version: 0.14.2 + resolution: "@microsoft/tsdoc@npm:0.14.2" + checksum: 00c3d4fc184e8e09e17aef57e4a990402bd9752607a5d50bd62a9e85bc4b8791c985a51e238affa6b9a2d23110f24d373becbfc84e1e6e9a84cf977822e3b00a + languageName: node + linkType: hard + "@nodelib/fs.scandir@npm:2.1.5": version: 2.1.5 resolution: "@nodelib/fs.scandir@npm:2.1.5" @@ -1441,6 +1717,218 @@ __metadata: languageName: node linkType: hard +"@rollup/pluginutils@npm:^5.1.0": + version: 5.1.4 + resolution: "@rollup/pluginutils@npm:5.1.4" + dependencies: + "@types/estree": "npm:^1.0.0" + estree-walker: "npm:^2.0.2" + picomatch: "npm:^4.0.2" + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + checksum: 598f628988af25541a9a6c6ef154aaf350f8be3238884e500cc0e47138684071abe490563c953f9bda9e8b113ecb1f99c11abfb9dbaf4f72cdd62e257a673fa3 + languageName: node + linkType: hard + +"@rollup/rollup-android-arm-eabi@npm:4.39.0": + version: 4.39.0 + resolution: "@rollup/rollup-android-arm-eabi@npm:4.39.0" + conditions: os=android & cpu=arm + languageName: node + linkType: hard + +"@rollup/rollup-android-arm64@npm:4.39.0": + version: 4.39.0 + resolution: "@rollup/rollup-android-arm64@npm:4.39.0" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + +"@rollup/rollup-darwin-arm64@npm:4.39.0": + version: 4.39.0 + resolution: "@rollup/rollup-darwin-arm64@npm:4.39.0" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"@rollup/rollup-darwin-x64@npm:4.39.0": + version: 4.39.0 + resolution: "@rollup/rollup-darwin-x64@npm:4.39.0" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@rollup/rollup-freebsd-arm64@npm:4.39.0": + version: 4.39.0 + resolution: "@rollup/rollup-freebsd-arm64@npm:4.39.0" + conditions: os=freebsd & cpu=arm64 + languageName: node + linkType: hard + +"@rollup/rollup-freebsd-x64@npm:4.39.0": + version: 4.39.0 + resolution: "@rollup/rollup-freebsd-x64@npm:4.39.0" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + +"@rollup/rollup-linux-arm-gnueabihf@npm:4.39.0": + version: 4.39.0 + resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.39.0" + conditions: os=linux & cpu=arm & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-arm-musleabihf@npm:4.39.0": + version: 4.39.0 + resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.39.0" + conditions: os=linux & cpu=arm & libc=musl + languageName: node + linkType: hard + +"@rollup/rollup-linux-arm64-gnu@npm:4.39.0": + version: 4.39.0 + resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.39.0" + conditions: os=linux & cpu=arm64 & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-arm64-musl@npm:4.39.0": + version: 4.39.0 + resolution: "@rollup/rollup-linux-arm64-musl@npm:4.39.0" + conditions: os=linux & cpu=arm64 & libc=musl + languageName: node + linkType: hard + +"@rollup/rollup-linux-loongarch64-gnu@npm:4.39.0": + version: 4.39.0 + resolution: "@rollup/rollup-linux-loongarch64-gnu@npm:4.39.0" + conditions: os=linux & cpu=loong64 & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-powerpc64le-gnu@npm:4.39.0": + version: 4.39.0 + resolution: "@rollup/rollup-linux-powerpc64le-gnu@npm:4.39.0" + conditions: os=linux & cpu=ppc64 & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-riscv64-gnu@npm:4.39.0": + version: 4.39.0 + resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.39.0" + conditions: os=linux & cpu=riscv64 & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-riscv64-musl@npm:4.39.0": + version: 4.39.0 + resolution: "@rollup/rollup-linux-riscv64-musl@npm:4.39.0" + conditions: os=linux & cpu=riscv64 & libc=musl + languageName: node + linkType: hard + +"@rollup/rollup-linux-s390x-gnu@npm:4.39.0": + version: 4.39.0 + resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.39.0" + conditions: os=linux & cpu=s390x & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-x64-gnu@npm:4.39.0": + version: 4.39.0 + resolution: "@rollup/rollup-linux-x64-gnu@npm:4.39.0" + conditions: os=linux & cpu=x64 & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-x64-musl@npm:4.39.0": + version: 4.39.0 + resolution: "@rollup/rollup-linux-x64-musl@npm:4.39.0" + conditions: os=linux & cpu=x64 & libc=musl + languageName: node + linkType: hard + +"@rollup/rollup-win32-arm64-msvc@npm:4.39.0": + version: 4.39.0 + resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.39.0" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + +"@rollup/rollup-win32-ia32-msvc@npm:4.39.0": + version: 4.39.0 + resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.39.0" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + +"@rollup/rollup-win32-x64-msvc@npm:4.39.0": + version: 4.39.0 + resolution: "@rollup/rollup-win32-x64-msvc@npm:4.39.0" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + +"@rushstack/node-core-library@npm:4.0.2": + version: 4.0.2 + resolution: "@rushstack/node-core-library@npm:4.0.2" + dependencies: + fs-extra: "npm:~7.0.1" + import-lazy: "npm:~4.0.0" + jju: "npm:~1.4.0" + resolve: "npm:~1.22.1" + semver: "npm:~7.5.4" + z-schema: "npm:~5.0.2" + peerDependencies: + "@types/node": "*" + peerDependenciesMeta: + "@types/node": + optional: true + checksum: d28ba48e4cb755f39ccc9050f0bbc2cdabe7e706b2e7ee2f7dd2c851129f2198e024c2b1f3b5932a0689c9b86d07ae72e58a6bd62f9349f398dbbcf85d399b85 + languageName: node + linkType: hard + +"@rushstack/rig-package@npm:0.5.2": + version: 0.5.2 + resolution: "@rushstack/rig-package@npm:0.5.2" + dependencies: + resolve: "npm:~1.22.1" + strip-json-comments: "npm:~3.1.1" + checksum: 2fd178a46c1662f110d06bcc7771898cc4316db62735f9b76281995b86263c1b248c60aead5c2f7ac6be023eb23f7ed28cff78ef813df7fb2b68a945e416814d + languageName: node + linkType: hard + +"@rushstack/terminal@npm:0.10.0": + version: 0.10.0 + resolution: "@rushstack/terminal@npm:0.10.0" + dependencies: + "@rushstack/node-core-library": "npm:4.0.2" + supports-color: "npm:~8.1.1" + peerDependencies: + "@types/node": "*" + peerDependenciesMeta: + "@types/node": + optional: true + checksum: 4fb496558f4bf03235a6716fac3bbdefa92209c8ba05838b34b8986eaec59961938cb7b3ae5e7dfa4d96b692696291894b0cb7090d76ff29753e8c54624e5343 + languageName: node + linkType: hard + +"@rushstack/ts-command-line@npm:4.19.1": + version: 4.19.1 + resolution: "@rushstack/ts-command-line@npm:4.19.1" + dependencies: + "@rushstack/terminal": "npm:0.10.0" + "@types/argparse": "npm:1.0.38" + argparse: "npm:~1.0.9" + string-argv: "npm:~0.3.1" + checksum: b529e5ea287369d837066a40689ac501b768c07fcb2af0e291d804d1ba885707742d674be34ec2b77173b8ac3b2e69d9296015412dcf582dbec6d9c5abd49ff8 + languageName: node + linkType: hard + "@sinclair/typebox@npm:^0.27.8": version: 0.27.8 resolution: "@sinclair/typebox@npm:0.27.8" @@ -1665,6 +2153,13 @@ __metadata: languageName: node linkType: hard +"@types/argparse@npm:1.0.38": + version: 1.0.38 + resolution: "@types/argparse@npm:1.0.38" + checksum: 26ed7e3f1e3595efdb883a852f5205f971b798e4c28b7e30a32c5298eee596e8b45834ce831f014d250b9730819ab05acff5b31229666d3af4ba465b4697d0eb + languageName: node + linkType: hard + "@types/babel__core@npm:^7.1.14": version: 7.20.4 resolution: "@types/babel__core@npm:7.20.4" @@ -1733,6 +2228,13 @@ __metadata: languageName: node linkType: hard +"@types/estree@npm:1.0.7, @types/estree@npm:^1.0.0": + version: 1.0.7 + resolution: "@types/estree@npm:1.0.7" + checksum: 419c845ece767ad4b21171e6e5b63dabb2eb46b9c0d97361edcd9cabbf6a95fcadb91d89b5fa098d1336fa0b8fceaea82fca97a2ef3971f5c86e53031e157b21 + languageName: node + linkType: hard + "@types/graceful-fs@npm:^4.1.3": version: 4.1.9 resolution: "@types/graceful-fs@npm:4.1.9" @@ -2148,6 +2650,15 @@ __metadata: languageName: node linkType: hard +"@volar/language-core@npm:1.11.1, @volar/language-core@npm:~1.11.1": + version: 1.11.1 + resolution: "@volar/language-core@npm:1.11.1" + dependencies: + "@volar/source-map": "npm:1.11.1" + checksum: 2fef58727bb3058b7bbd350fea6c38ded6608c65f7f672ffd825f0ba48307e4c5eded634e0c3b37d2ebbdd2e7ab32bc974eeb54f455c0390f85971ebeef3a6ca + languageName: node + linkType: hard + "@volar/language-core@npm:2.4.0, @volar/language-core@npm:~2.4.0-alpha.18": version: 2.4.0 resolution: "@volar/language-core@npm:2.4.0" @@ -2157,6 +2668,15 @@ __metadata: languageName: node linkType: hard +"@volar/source-map@npm:1.11.1, @volar/source-map@npm:~1.11.1": + version: 1.11.1 + resolution: "@volar/source-map@npm:1.11.1" + dependencies: + muggle-string: "npm:^0.3.1" + checksum: b90c32b23bbb86a3c47a20a9f7e6293c01b2e65390973e0c849c80ee0ff740ffa76b4d547fdb9b76b2b91a7bdeb2d8d0b1772d4f4d70e2a85784abe0385672f1 + languageName: node + linkType: hard + "@volar/source-map@npm:2.4.0": version: 2.4.0 resolution: "@volar/source-map@npm:2.4.0" @@ -2164,6 +2684,16 @@ __metadata: languageName: node linkType: hard +"@volar/typescript@npm:~1.11.1": + version: 1.11.1 + resolution: "@volar/typescript@npm:1.11.1" + dependencies: + "@volar/language-core": "npm:1.11.1" + path-browserify: "npm:^1.0.1" + checksum: 714eeb3472902617555b9b4959722a215b391160fe4fdf2f8f4abcb075edbd24a5a633db0c36acd175daeddac5f1b35c33f5fc8788e1e251d91385aad27deda9 + languageName: node + linkType: hard + "@volar/typescript@npm:~2.4.0-alpha.18": version: 2.4.0 resolution: "@volar/typescript@npm:2.4.0" @@ -2200,6 +2730,19 @@ __metadata: languageName: node linkType: hard +"@vue/compiler-core@npm:3.5.13": + version: 3.5.13 + resolution: "@vue/compiler-core@npm:3.5.13" + dependencies: + "@babel/parser": "npm:^7.25.3" + "@vue/shared": "npm:3.5.13" + entities: "npm:^4.5.0" + estree-walker: "npm:^2.0.2" + source-map-js: "npm:^1.2.0" + checksum: 22f042bb47c8a1edb9d602e24da8092ab542d5640f0459a9b99ecf35f90e96678f870209dd30f774f5340c6d817d3c5a46ca49cefb9659ee5b228bd42d1f076a + languageName: node + linkType: hard + "@vue/compiler-dom@npm:3.3.8": version: 3.3.8 resolution: "@vue/compiler-dom@npm:3.3.8" @@ -2210,6 +2753,16 @@ __metadata: languageName: node linkType: hard +"@vue/compiler-dom@npm:^3.3.0": + version: 3.5.13 + resolution: "@vue/compiler-dom@npm:3.5.13" + dependencies: + "@vue/compiler-core": "npm:3.5.13" + "@vue/shared": "npm:3.5.13" + checksum: 5dc628c52091264a443c2d7326b759d7d3999c7e9c00078c2eb370b778e60b9f2ef258a8decf2fd97c8fa0923f895d449eabc1e5bc3d8a45d3ef99c9eb0599d7 + languageName: node + linkType: hard + "@vue/compiler-dom@npm:^3.4.0": version: 3.4.38 resolution: "@vue/compiler-dom@npm:3.4.38" @@ -2258,6 +2811,28 @@ __metadata: languageName: node linkType: hard +"@vue/language-core@npm:1.8.27, @vue/language-core@npm:^1.8.27": + version: 1.8.27 + resolution: "@vue/language-core@npm:1.8.27" + dependencies: + "@volar/language-core": "npm:~1.11.1" + "@volar/source-map": "npm:~1.11.1" + "@vue/compiler-dom": "npm:^3.3.0" + "@vue/shared": "npm:^3.3.0" + computeds: "npm:^0.0.1" + minimatch: "npm:^9.0.3" + muggle-string: "npm:^0.3.1" + path-browserify: "npm:^1.0.1" + vue-template-compiler: "npm:^2.7.14" + peerDependencies: + typescript: "*" + peerDependenciesMeta: + typescript: + optional: true + checksum: 8ad4e129a334dd78b3ffc161615e4c303105f3e5f2478458eaea8db71d3b2b8081120d913464532d5b6c4f2c0611b2c5cb2a0f9a5f46ba6d5e9422d5d63ae71b + languageName: node + linkType: hard + "@vue/language-core@npm:2.0.29": version: 2.0.29 resolution: "@vue/language-core@npm:2.0.29" @@ -2348,6 +2923,13 @@ __metadata: languageName: node linkType: hard +"@vue/shared@npm:3.5.13, @vue/shared@npm:^3.3.0": + version: 3.5.13 + resolution: "@vue/shared@npm:3.5.13" + checksum: 5c0c24f443533392dde08c3e4272ff2e19af9762f90baeaa808850e05106537bbd9e2d2ad2081d979b8c4bc89902395b46036b67f74c60b76025924de37833b1 + languageName: node + linkType: hard + "abbrev@npm:^2.0.0": version: 2.0.0 resolution: "abbrev@npm:2.0.0" @@ -2408,7 +2990,7 @@ __metadata: languageName: node linkType: hard -"ajv@npm:^6.12.4": +"ajv@npm:^6.12.4, ajv@npm:~6.12.6": version: 6.12.6 resolution: "ajv@npm:6.12.6" dependencies: @@ -2541,7 +3123,7 @@ __metadata: languageName: node linkType: hard -"argparse@npm:^1.0.7": +"argparse@npm:^1.0.7, argparse@npm:~1.0.9": version: 1.0.10 resolution: "argparse@npm:1.0.10" dependencies: @@ -3086,6 +3668,13 @@ __metadata: languageName: node linkType: hard +"commander@npm:^9.4.1": + version: 9.5.0 + resolution: "commander@npm:9.5.0" + checksum: 41c49b3d0f94a1fbeb0463c85b13f15aa15a9e0b4d5e10a49c0a1d58d4489b549d62262b052ae0aa6cfda53299bee487bfe337825df15e342114dde543f82906 + languageName: node + linkType: hard + "commander@npm:~11.1.0": version: 11.1.0 resolution: "commander@npm:11.1.0" @@ -3624,6 +4213,86 @@ __metadata: languageName: node linkType: hard +"esbuild@npm:^0.21.3": + version: 0.21.5 + resolution: "esbuild@npm:0.21.5" + dependencies: + "@esbuild/aix-ppc64": "npm:0.21.5" + "@esbuild/android-arm": "npm:0.21.5" + "@esbuild/android-arm64": "npm:0.21.5" + "@esbuild/android-x64": "npm:0.21.5" + "@esbuild/darwin-arm64": "npm:0.21.5" + "@esbuild/darwin-x64": "npm:0.21.5" + "@esbuild/freebsd-arm64": "npm:0.21.5" + "@esbuild/freebsd-x64": "npm:0.21.5" + "@esbuild/linux-arm": "npm:0.21.5" + "@esbuild/linux-arm64": "npm:0.21.5" + "@esbuild/linux-ia32": "npm:0.21.5" + "@esbuild/linux-loong64": "npm:0.21.5" + "@esbuild/linux-mips64el": "npm:0.21.5" + "@esbuild/linux-ppc64": "npm:0.21.5" + "@esbuild/linux-riscv64": "npm:0.21.5" + "@esbuild/linux-s390x": "npm:0.21.5" + "@esbuild/linux-x64": "npm:0.21.5" + "@esbuild/netbsd-x64": "npm:0.21.5" + "@esbuild/openbsd-x64": "npm:0.21.5" + "@esbuild/sunos-x64": "npm:0.21.5" + "@esbuild/win32-arm64": "npm:0.21.5" + "@esbuild/win32-ia32": "npm:0.21.5" + "@esbuild/win32-x64": "npm:0.21.5" + dependenciesMeta: + "@esbuild/aix-ppc64": + optional: true + "@esbuild/android-arm": + optional: true + "@esbuild/android-arm64": + optional: true + "@esbuild/android-x64": + optional: true + "@esbuild/darwin-arm64": + optional: true + "@esbuild/darwin-x64": + optional: true + "@esbuild/freebsd-arm64": + optional: true + "@esbuild/freebsd-x64": + optional: true + "@esbuild/linux-arm": + optional: true + "@esbuild/linux-arm64": + optional: true + "@esbuild/linux-ia32": + optional: true + "@esbuild/linux-loong64": + optional: true + "@esbuild/linux-mips64el": + optional: true + "@esbuild/linux-ppc64": + optional: true + "@esbuild/linux-riscv64": + optional: true + "@esbuild/linux-s390x": + optional: true + "@esbuild/linux-x64": + optional: true + "@esbuild/netbsd-x64": + optional: true + "@esbuild/openbsd-x64": + optional: true + "@esbuild/sunos-x64": + optional: true + "@esbuild/win32-arm64": + optional: true + "@esbuild/win32-ia32": + optional: true + "@esbuild/win32-x64": + optional: true + bin: + esbuild: bin/esbuild + checksum: d2ff2ca84d30cce8e871517374d6c2290835380dc7cd413b2d49189ed170d45e407be14de2cb4794cf76f75cf89955c4714726ebd3de7444b3046f5cab23ab6b + languageName: node + linkType: hard + "escalade@npm:^3.1.1": version: 3.1.1 resolution: "escalade@npm:3.1.1" @@ -4458,6 +5127,17 @@ __metadata: languageName: node linkType: hard +"fs-extra@npm:~7.0.1": + version: 7.0.1 + resolution: "fs-extra@npm:7.0.1" + dependencies: + graceful-fs: "npm:^4.1.2" + jsonfile: "npm:^4.0.0" + universalify: "npm:^0.1.0" + checksum: 3fc6e56ba2f07c00d452163f27f21a7076b72ef7da8a50fef004336d59ef4c34deda11d10ecd73fd8fbcf20e4f575f52857293090b3c9f8741d4e0598be30fea + languageName: node + linkType: hard + "fs-minipass@npm:^2.0.0": version: 2.1.0 resolution: "fs-minipass@npm:2.1.0" @@ -4483,7 +5163,7 @@ __metadata: languageName: node linkType: hard -"fsevents@npm:^2.3.2, fsevents@npm:~2.3.2": +"fsevents@npm:^2.3.2, fsevents@npm:~2.3.2, fsevents@npm:~2.3.3": version: 2.3.3 resolution: "fsevents@npm:2.3.3" dependencies: @@ -4493,7 +5173,7 @@ __metadata: languageName: node linkType: hard -"fsevents@patch:fsevents@npm%3A^2.3.2#optional!builtin, fsevents@patch:fsevents@npm%3A~2.3.2#optional!builtin": +"fsevents@patch:fsevents@npm%3A^2.3.2#optional!builtin, fsevents@patch:fsevents@npm%3A~2.3.2#optional!builtin, fsevents@patch:fsevents@npm%3A~2.3.3#optional!builtin": version: 2.3.3 resolution: "fsevents@patch:fsevents@npm%3A2.3.3#optional!builtin::version=2.3.3&hash=df0bf1" dependencies: @@ -4719,7 +5399,7 @@ __metadata: languageName: node linkType: hard -"graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.4, graceful-fs@npm:^4.2.6, graceful-fs@npm:^4.2.9": +"graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.4, graceful-fs@npm:^4.2.6, graceful-fs@npm:^4.2.9": version: 4.2.11 resolution: "graceful-fs@npm:4.2.11" checksum: bf152d0ed1dc159239db1ba1f74fdbc40cb02f626770dcd5815c427ce0688c2635a06ed69af364396da4636d0408fcf7d4afdf7881724c3307e46aff30ca49e2 @@ -4795,6 +5475,15 @@ __metadata: languageName: node linkType: hard +"hasown@npm:^2.0.2": + version: 2.0.2 + resolution: "hasown@npm:2.0.2" + dependencies: + function-bind: "npm:^1.1.2" + checksum: 7898a9c1788b2862cf0f9c345a6bec77ba4a0c0983c7f19d610c382343d4f98fa260686b225dfb1f88393a66679d2ec58ee310c1d6868c081eda7918f32cc70a + languageName: node + linkType: hard + "he@npm:^1.2.0": version: 1.2.0 resolution: "he@npm:1.2.0" @@ -4901,6 +5590,13 @@ __metadata: languageName: node linkType: hard +"import-lazy@npm:~4.0.0": + version: 4.0.0 + resolution: "import-lazy@npm:4.0.0" + checksum: 943309cc8eb01ada12700448c288b0384f77a1bc33c7e00fa4cb223c665f467a13ce9aaceb8d2e4cf586b07c1d2828040263dcc069873ce63cfc2ac6fd087971 + languageName: node + linkType: hard + "import-local@npm:^3.0.2": version: 3.1.0 resolution: "import-local@npm:3.1.0" @@ -5059,6 +5755,15 @@ __metadata: languageName: node linkType: hard +"is-core-module@npm:^2.1.0, is-core-module@npm:^2.16.0": + version: 2.16.1 + resolution: "is-core-module@npm:2.16.1" + dependencies: + hasown: "npm:^2.0.2" + checksum: 452b2c2fb7f889cbbf7e54609ef92cf6c24637c568acc7e63d166812a0fb365ae8a504c333a29add8bdb1686704068caa7f4e4b639b650dde4f00a038b8941fb + languageName: node + linkType: hard + "is-core-module@npm:^2.12.1, is-core-module@npm:^2.13.0, is-core-module@npm:^2.13.1": version: 2.13.1 resolution: "is-core-module@npm:2.13.1" @@ -5793,6 +6498,13 @@ __metadata: languageName: node linkType: hard +"jju@npm:~1.4.0": + version: 1.4.0 + resolution: "jju@npm:1.4.0" + checksum: 1067ff8ce02221faac5a842116ed0ec79a53312a111d0bf8342a80bd02c0a3fdf0b8449694a65947db0a3e8420e8b326dffb489c7dd5866efc380c0d1708a707 + languageName: node + linkType: hard + "js-tokens@npm:^4.0.0": version: 4.0.0 resolution: "js-tokens@npm:4.0.0" @@ -5922,6 +6634,13 @@ __metadata: languageName: node linkType: hard +"kolorist@npm:^1.8.0": + version: 1.8.0 + resolution: "kolorist@npm:1.8.0" + checksum: 71d5d122951cc65f2f14c3e1d7f8fd91694b374647d4f6deec3816d018cd04a44edd9578d93e00c82c2053b925e5d30a0565746c4171f4ca9fce1a13bd5f3315 + languageName: node + linkType: hard + "leven@npm:^3.1.0": version: 3.1.0 resolution: "leven@npm:3.1.0" @@ -5964,6 +6683,13 @@ __metadata: languageName: node linkType: hard +"lodash.get@npm:^4.4.2": + version: 4.4.2 + resolution: "lodash.get@npm:4.4.2" + checksum: 2a4925f6e89bc2c010a77a802d1ba357e17ed1ea03c2ddf6a146429f2856a216663e694a6aa3549a318cbbba3fd8b7decb392db457e6ac0b83dc745ed0a17380 + languageName: node + linkType: hard + "lodash.groupby@npm:~4.6.0": version: 4.6.0 resolution: "lodash.groupby@npm:4.6.0" @@ -5971,6 +6697,13 @@ __metadata: languageName: node linkType: hard +"lodash.isequal@npm:^4.5.0": + version: 4.5.0 + resolution: "lodash.isequal@npm:4.5.0" + checksum: 82fc58a83a1555f8df34ca9a2cd300995ff94018ac12cc47c349655f0ae1d4d92ba346db4c19bbfc90510764e0c00ddcc985a358bdcd4b3b965abf8f2a48a214 + languageName: node + linkType: hard + "lodash.memoize@npm:^4.1.2": version: 4.1.2 resolution: "lodash.memoize@npm:4.1.2" @@ -5985,7 +6718,7 @@ __metadata: languageName: node linkType: hard -"lodash@npm:^4.17.12, lodash@npm:^4.17.21": +"lodash@npm:^4.17.12, lodash@npm:^4.17.21, lodash@npm:~4.17.15": version: 4.17.21 resolution: "lodash@npm:4.17.21" checksum: c08619c038846ea6ac754abd6dd29d2568aa705feb69339e836dfa8d8b09abbb2f859371e86863eda41848221f9af43714491467b5b0299122431e202bb0c532 @@ -6051,6 +6784,15 @@ __metadata: languageName: node linkType: hard +"magic-string@npm:^0.30.8": + version: 0.30.17 + resolution: "magic-string@npm:0.30.17" + dependencies: + "@jridgewell/sourcemap-codec": "npm:^1.5.0" + checksum: 2f71af2b0afd78c2e9012a29b066d2c8ba45a9cd0c8070f7fd72de982fb1c403b4e3afdb1dae00691d56885ede66b772ef6bedf765e02e3a7066208fe2fec4aa + languageName: node + linkType: hard + "make-dir@npm:^4.0.0": version: 4.0.0 resolution: "make-dir@npm:4.0.0" @@ -6176,6 +6918,15 @@ __metadata: languageName: node linkType: hard +"minimatch@npm:~3.0.3": + version: 3.0.8 + resolution: "minimatch@npm:3.0.8" + dependencies: + brace-expansion: "npm:^1.1.7" + checksum: 6df5373cb1ea79020beb6887ff5576c58cfabcfd32c5a65c2cf58f326e4ee8eae84f129e5fa50b8a4347fa1d1e583f931285c9fb3040d984bdfb5109ef6607ec + languageName: node + linkType: hard + "minimist@npm:^1.2.0, minimist@npm:^1.2.6": version: 1.2.8 resolution: "minimist@npm:1.2.8" @@ -6290,6 +7041,13 @@ __metadata: languageName: node linkType: hard +"muggle-string@npm:^0.3.1": + version: 0.3.1 + resolution: "muggle-string@npm:0.3.1" + checksum: f2357f906e0160b7df0179c77838cf859f3ca23cb74eca7c043b9fc9e1e416d91497c80fbe2f3c9aeb003c14ad15857fc4e94f1631e8a6695b07e4135626d305 + languageName: node + linkType: hard + "muggle-string@npm:^0.4.1": version: 0.4.1 resolution: "muggle-string@npm:0.4.1" @@ -6343,6 +7101,15 @@ __metadata: languageName: node linkType: hard +"nanoid@npm:^3.3.8": + version: 3.3.11 + resolution: "nanoid@npm:3.3.11" + bin: + nanoid: bin/nanoid.cjs + checksum: 73b5afe5975a307aaa3c95dfe3334c52cdf9ae71518176895229b8d65ab0d1c0417dd081426134eb7571c055720428ea5d57c645138161e7d10df80815527c48 + languageName: node + linkType: hard + "natural-compare@npm:^1.4.0": version: 1.4.0 resolution: "natural-compare@npm:1.4.0" @@ -6695,7 +7462,7 @@ __metadata: languageName: node linkType: hard -"path-parse@npm:^1.0.7": +"path-parse@npm:^1.0.6, path-parse@npm:^1.0.7": version: 1.0.7 resolution: "path-parse@npm:1.0.7" checksum: 49abf3d81115642938a8700ec580da6e830dde670be21893c62f4e10bd7dd4c3742ddc603fe24f898cba7eb0c6bc1777f8d9ac14185d34540c6d4d80cd9cae8a @@ -6733,6 +7500,13 @@ __metadata: languageName: node linkType: hard +"picocolors@npm:^1.1.1": + version: 1.1.1 + resolution: "picocolors@npm:1.1.1" + checksum: e1cf46bf84886c79055fdfa9dcb3e4711ad259949e3565154b004b260cd356c5d54b31a1437ce9782624bf766272fe6b0154f5f0c744fb7af5d454d2b60db045 + languageName: node + linkType: hard + "picomatch@npm:^2.0.4, picomatch@npm:^2.2.3, picomatch@npm:^2.3.1": version: 2.3.1 resolution: "picomatch@npm:2.3.1" @@ -6794,6 +7568,17 @@ __metadata: languageName: node linkType: hard +"postcss@npm:^8.4.43": + version: 8.5.3 + resolution: "postcss@npm:8.5.3" + dependencies: + nanoid: "npm:^3.3.8" + picocolors: "npm:^1.1.1" + source-map-js: "npm:^1.2.1" + checksum: 6d7e21a772e8b05bf102636918654dac097bac013f0dc8346b72ac3604fc16829646f94ea862acccd8f82e910b00e2c11c1f0ea276543565d278c7ca35516a7c + languageName: node + linkType: hard + "prelude-ls@npm:^1.2.1": version: 1.2.1 resolution: "prelude-ls@npm:1.2.1" @@ -6983,6 +7768,29 @@ __metadata: languageName: node linkType: hard +"resolve@npm:~1.19.0": + version: 1.19.0 + resolution: "resolve@npm:1.19.0" + dependencies: + is-core-module: "npm:^2.1.0" + path-parse: "npm:^1.0.6" + checksum: b0f326a85422ebc4db8524957990d49d89e028bd6c10f23f2e89db5ee923678c6c08eae596e594031a5cda20f1e19d4a371e22cd772907b0bcf3c932e2205753 + languageName: node + linkType: hard + +"resolve@npm:~1.22.1": + version: 1.22.10 + resolution: "resolve@npm:1.22.10" + dependencies: + is-core-module: "npm:^2.16.0" + path-parse: "npm:^1.0.7" + supports-preserve-symlinks-flag: "npm:^1.0.0" + bin: + resolve: bin/resolve + checksum: 0a398b44da5c05e6e421d70108822c327675febb880eebe905587628de401854c61d5df02866ff34fc4cb1173a51c9f0e84a94702738df3611a62e2acdc68181 + languageName: node + linkType: hard + "resolve@patch:resolve@npm%3A^1.10.0#optional!builtin, resolve@patch:resolve@npm%3A^1.20.0#optional!builtin, resolve@patch:resolve@npm%3A^1.22.2#optional!builtin, resolve@patch:resolve@npm%3A^1.22.4#optional!builtin": version: 1.22.8 resolution: "resolve@patch:resolve@npm%3A1.22.8#optional!builtin::version=1.22.8&hash=c3c19d" @@ -6996,6 +7804,29 @@ __metadata: languageName: node linkType: hard +"resolve@patch:resolve@npm%3A~1.19.0#optional!builtin": + version: 1.19.0 + resolution: "resolve@patch:resolve@npm%3A1.19.0#optional!builtin::version=1.19.0&hash=c3c19d" + dependencies: + is-core-module: "npm:^2.1.0" + path-parse: "npm:^1.0.6" + checksum: eb8853b1b7b9ef25f0156304c7c21e2a0d2b2ce247169282542e76565f460986e10adbb770eeb2549c06197fb546b433906cbf3700a3232c567aaaaa53490b88 + languageName: node + linkType: hard + +"resolve@patch:resolve@npm%3A~1.22.1#optional!builtin": + version: 1.22.10 + resolution: "resolve@patch:resolve@npm%3A1.22.10#optional!builtin::version=1.22.10&hash=c3c19d" + dependencies: + is-core-module: "npm:^2.16.0" + path-parse: "npm:^1.0.7" + supports-preserve-symlinks-flag: "npm:^1.0.0" + bin: + resolve: bin/resolve + checksum: d4d878bfe3702d215ea23e75e0e9caf99468e3db76f5ca100d27ebdc527366fee3877e54bce7d47cc72ca8952fc2782a070d238bfa79a550eeb0082384c3b81a + languageName: node + linkType: hard + "restore-cursor@npm:^2.0.0": version: 2.0.0 resolution: "restore-cursor@npm:2.0.0" @@ -7062,6 +7893,81 @@ __metadata: languageName: node linkType: hard +"rollup@npm:^4.20.0": + version: 4.39.0 + resolution: "rollup@npm:4.39.0" + dependencies: + "@rollup/rollup-android-arm-eabi": "npm:4.39.0" + "@rollup/rollup-android-arm64": "npm:4.39.0" + "@rollup/rollup-darwin-arm64": "npm:4.39.0" + "@rollup/rollup-darwin-x64": "npm:4.39.0" + "@rollup/rollup-freebsd-arm64": "npm:4.39.0" + "@rollup/rollup-freebsd-x64": "npm:4.39.0" + "@rollup/rollup-linux-arm-gnueabihf": "npm:4.39.0" + "@rollup/rollup-linux-arm-musleabihf": "npm:4.39.0" + "@rollup/rollup-linux-arm64-gnu": "npm:4.39.0" + "@rollup/rollup-linux-arm64-musl": "npm:4.39.0" + "@rollup/rollup-linux-loongarch64-gnu": "npm:4.39.0" + "@rollup/rollup-linux-powerpc64le-gnu": "npm:4.39.0" + "@rollup/rollup-linux-riscv64-gnu": "npm:4.39.0" + "@rollup/rollup-linux-riscv64-musl": "npm:4.39.0" + "@rollup/rollup-linux-s390x-gnu": "npm:4.39.0" + "@rollup/rollup-linux-x64-gnu": "npm:4.39.0" + "@rollup/rollup-linux-x64-musl": "npm:4.39.0" + "@rollup/rollup-win32-arm64-msvc": "npm:4.39.0" + "@rollup/rollup-win32-ia32-msvc": "npm:4.39.0" + "@rollup/rollup-win32-x64-msvc": "npm:4.39.0" + "@types/estree": "npm:1.0.7" + fsevents: "npm:~2.3.2" + dependenciesMeta: + "@rollup/rollup-android-arm-eabi": + optional: true + "@rollup/rollup-android-arm64": + optional: true + "@rollup/rollup-darwin-arm64": + optional: true + "@rollup/rollup-darwin-x64": + optional: true + "@rollup/rollup-freebsd-arm64": + optional: true + "@rollup/rollup-freebsd-x64": + optional: true + "@rollup/rollup-linux-arm-gnueabihf": + optional: true + "@rollup/rollup-linux-arm-musleabihf": + optional: true + "@rollup/rollup-linux-arm64-gnu": + optional: true + "@rollup/rollup-linux-arm64-musl": + optional: true + "@rollup/rollup-linux-loongarch64-gnu": + optional: true + "@rollup/rollup-linux-powerpc64le-gnu": + optional: true + "@rollup/rollup-linux-riscv64-gnu": + optional: true + "@rollup/rollup-linux-riscv64-musl": + optional: true + "@rollup/rollup-linux-s390x-gnu": + optional: true + "@rollup/rollup-linux-x64-gnu": + optional: true + "@rollup/rollup-linux-x64-musl": + optional: true + "@rollup/rollup-win32-arm64-msvc": + optional: true + "@rollup/rollup-win32-ia32-msvc": + optional: true + "@rollup/rollup-win32-x64-msvc": + optional: true + fsevents: + optional: true + bin: + rollup: dist/bin/rollup + checksum: d3b106efb71cd501b71e3a56e3257ccad4d969a201d59aa2e74d9b91ad5f44c508ddebfbe3de82d4324e9b0977420d35d6cce8e45f784a91080acea66c1c1ce8 + languageName: node + linkType: hard + "run-async@npm:^2.2.0": version: 2.4.1 resolution: "run-async@npm:2.4.1" @@ -7149,7 +8055,7 @@ __metadata: languageName: node linkType: hard -"semver@npm:^7.0.0, semver@npm:^7.3.5, semver@npm:^7.3.6, semver@npm:^7.5.3, semver@npm:^7.5.4, semver@npm:~7.5.0": +"semver@npm:^7.0.0, semver@npm:^7.3.5, semver@npm:^7.3.6, semver@npm:^7.5.3, semver@npm:^7.5.4, semver@npm:~7.5.0, semver@npm:~7.5.4": version: 7.5.4 resolution: "semver@npm:7.5.4" dependencies: @@ -7303,6 +8209,13 @@ __metadata: languageName: node linkType: hard +"source-map-js@npm:^1.2.1": + version: 1.2.1 + resolution: "source-map-js@npm:1.2.1" + checksum: ff9d8c8bf096d534a5b7707e0382ef827b4dd360a577d3f34d2b9f48e12c9d230b5747974ee7c607f0df65113732711bb701fe9ece3c7edbd43cb2294d707df3 + languageName: node + linkType: hard + "source-map-support@npm:0.5.13": version: 0.5.13 resolution: "source-map-support@npm:0.5.13" @@ -7313,7 +8226,7 @@ __metadata: languageName: node linkType: hard -"source-map@npm:^0.6.0, source-map@npm:^0.6.1": +"source-map@npm:^0.6.0, source-map@npm:^0.6.1, source-map@npm:~0.6.1": version: 0.6.1 resolution: "source-map@npm:0.6.1" checksum: 59ef7462f1c29d502b3057e822cdbdae0b0e565302c4dd1a95e11e793d8d9d62006cdc10e0fd99163ca33ff2071360cf50ee13f90440806e7ed57d81cba2f7ff @@ -7404,6 +8317,13 @@ __metadata: languageName: node linkType: hard +"string-argv@npm:~0.3.1": + version: 0.3.2 + resolution: "string-argv@npm:0.3.2" + checksum: f9d3addf887026b4b5f997a271149e93bf71efc8692e7dc0816e8807f960b18bcb9787b45beedf0f97ff459575ee389af3f189d8b649834cac602f2e857e75af + languageName: node + linkType: hard + "string-length@npm:^4.0.1": version: 4.0.2 resolution: "string-length@npm:4.0.2" @@ -7552,7 +8472,7 @@ __metadata: languageName: node linkType: hard -"strip-json-comments@npm:^3.1.1": +"strip-json-comments@npm:^3.1.1, strip-json-comments@npm:~3.1.1": version: 3.1.1 resolution: "strip-json-comments@npm:3.1.1" checksum: 492f73e27268f9b1c122733f28ecb0e7e8d8a531a6662efbd08e22cccb3f9475e90a1b82cab06a392f6afae6d2de636f977e231296400d0ec5304ba70f166443 @@ -7590,7 +8510,7 @@ __metadata: languageName: node linkType: hard -"supports-color@npm:^8.0.0, supports-color@npm:^8.1.1": +"supports-color@npm:^8.0.0, supports-color@npm:^8.1.1, supports-color@npm:~8.1.1": version: 8.1.1 resolution: "supports-color@npm:8.1.1" dependencies: @@ -7964,6 +8884,16 @@ __metadata: languageName: node linkType: hard +"typescript@npm:5.4.2": + version: 5.4.2 + resolution: "typescript@npm:5.4.2" + bin: + tsc: bin/tsc + tsserver: bin/tsserver + checksum: f8cfdc630ab1672f004e9561eb2916935b2d267792d07ce93e97fc601c7a65191af32033d5e9c0169b7dc37da7db9bf320f7432bc84527cb7697effaa4e4559d + languageName: node + linkType: hard + "typescript@npm:^5.5.4": version: 5.5.4 resolution: "typescript@npm:5.5.4" @@ -7974,6 +8904,16 @@ __metadata: languageName: node linkType: hard +"typescript@patch:typescript@npm%3A5.4.2#optional!builtin": + version: 5.4.2 + resolution: "typescript@patch:typescript@npm%3A5.4.2#optional!builtin::version=5.4.2&hash=29ae49" + bin: + tsc: bin/tsc + tsserver: bin/tsserver + checksum: ef4fc2994cc0219dc9ada94c92106ba8d44cbfd7a0328ed6f8d730311caf66e114cdfa07fbc6f369bfc0fc182d9493851b3bf1644c06fc5818690b19ee960d72 + languageName: node + linkType: hard + "typescript@patch:typescript@npm%3A^5.5.4#optional!builtin": version: 5.5.4 resolution: "typescript@patch:typescript@npm%3A5.5.4#optional!builtin::version=5.5.4&hash=29ae49" @@ -8083,6 +9023,34 @@ __metadata: languageName: node linkType: hard +"validator@npm:^13.7.0": + version: 13.15.0 + resolution: "validator@npm:13.15.0" + checksum: cc4435e37a72d65c01d0a90d0f65da1fe09a805de35be1ec37e5379e1a612ab280277d7034a5369cd491a4f94c3b551f75dc4851090efafedf529a1ef76b1e0f + languageName: node + linkType: hard + +"vite-plugin-dts@npm:^3.7.3": + version: 3.9.1 + resolution: "vite-plugin-dts@npm:3.9.1" + dependencies: + "@microsoft/api-extractor": "npm:7.43.0" + "@rollup/pluginutils": "npm:^5.1.0" + "@vue/language-core": "npm:^1.8.27" + debug: "npm:^4.3.4" + kolorist: "npm:^1.8.0" + magic-string: "npm:^0.30.8" + vue-tsc: "npm:^1.8.27" + peerDependencies: + typescript: "*" + vite: "*" + peerDependenciesMeta: + vite: + optional: true + checksum: 3a0c65fb45dd5ce6e83e7525df2de3d7c27d92f39e7d363d27b6c2daf66feaf820c4bc014f326cb903dc816db8027845df7add47a8f33e80aa3927443299e812 + languageName: node + linkType: hard + "vite@npm:^4.5.3": version: 4.5.3 resolution: "vite@npm:4.5.3" @@ -8123,6 +9091,49 @@ __metadata: languageName: node linkType: hard +"vite@npm:^5.1.3": + version: 5.4.17 + resolution: "vite@npm:5.4.17" + dependencies: + esbuild: "npm:^0.21.3" + fsevents: "npm:~2.3.3" + postcss: "npm:^8.4.43" + rollup: "npm:^4.20.0" + peerDependencies: + "@types/node": ^18.0.0 || >=20.0.0 + less: "*" + lightningcss: ^1.21.0 + sass: "*" + sass-embedded: "*" + stylus: "*" + sugarss: "*" + terser: ^5.4.0 + dependenciesMeta: + fsevents: + optional: true + peerDependenciesMeta: + "@types/node": + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + bin: + vite: bin/vite.js + checksum: 95b2f94d378305cf8a4fadb40f96da3e59593188733738c486252ecb67ac6439100a44ec9170b66fa319b4d61eea161800e610a0499e61bf110ae6e7e6f233f0 + languageName: node + linkType: hard + "vscode-uri@npm:^3.0.8": version: 3.0.8 resolution: "vscode-uri@npm:3.0.8" @@ -8164,6 +9175,31 @@ __metadata: languageName: node linkType: hard +"vue-template-compiler@npm:^2.7.14": + version: 2.7.16 + resolution: "vue-template-compiler@npm:2.7.16" + dependencies: + de-indent: "npm:^1.0.2" + he: "npm:^1.2.0" + checksum: 8b05748dc64ee709a6077d576b4af234b229ecd36f7fda7cd2e17851403b66d168ad81c91636b5c28da6356d7723fd1ffe1202c73ffcdcc3ac9ad3ba748e42c7 + languageName: node + linkType: hard + +"vue-tsc@npm:^1.8.27": + version: 1.8.27 + resolution: "vue-tsc@npm:1.8.27" + dependencies: + "@volar/typescript": "npm:~1.11.1" + "@vue/language-core": "npm:1.8.27" + semver: "npm:^7.5.4" + peerDependencies: + typescript: "*" + bin: + vue-tsc: bin/vue-tsc.js + checksum: fb84ff195de75e3529cf01b917f111bee561d15e1e437aa97a47e797f99f913783f24ec2d595271240240a21df08ba43b36aa7fc82a48a4c396a0f6d0e409376 + languageName: node + linkType: hard + "vue-tsc@npm:^2.0.29": version: 2.0.29 resolution: "vue-tsc@npm:2.0.29" @@ -8383,3 +9419,20 @@ __metadata: checksum: f77b3d8d00310def622123df93d4ee654fc6a0096182af8bd60679ddcdfb3474c56c6c7190817c84a2785648cdee9d721c0154eb45698c62176c322fb46fc700 languageName: node linkType: hard + +"z-schema@npm:~5.0.2": + version: 5.0.5 + resolution: "z-schema@npm:5.0.5" + dependencies: + commander: "npm:^9.4.1" + lodash.get: "npm:^4.4.2" + lodash.isequal: "npm:^4.5.0" + validator: "npm:^13.7.0" + dependenciesMeta: + commander: + optional: true + bin: + z-schema: bin/z-schema + checksum: 8ac2fa445f5a00e790d1f91a48aeff0ccfc340f84626771853e03f4d97cdc2f5f798cdb2e38418f7815ffc3aac3952c45caabcf077bf4f83fedf0cdef43b885b + languageName: node + linkType: hard