diff --git a/.gitignore b/.gitignore index 66490e2..47c76e2 100644 --- a/.gitignore +++ b/.gitignore @@ -37,3 +37,4 @@ ts-gen out/ end-to-end/dist .yarn/install-state.gz +tsconfig.tsbuildinfo diff --git a/.oxfmtrc.json b/.oxfmtrc.json new file mode 100644 index 0000000..059e88f --- /dev/null +++ b/.oxfmtrc.json @@ -0,0 +1,9 @@ +{ + "$schema": "./node_modules/oxfmt/configuration_schema.json", + "trailingComma": "all", + "tabWidth": 2, + "singleQuote": true, + "printWidth": 100, + "sortPackageJson": false, + "ignorePatterns": ["*.md", "*.yml", "*.yaml"] +} diff --git a/.oxlintrc.json b/.oxlintrc.json new file mode 100644 index 0000000..e66e9bc --- /dev/null +++ b/.oxlintrc.json @@ -0,0 +1,10 @@ +{ + "$schema": "./node_modules/oxlint/configuration_schema.json", + "plugins": ["eslint", "typescript", "unicorn", "oxc", "import"], + "categories": { + "correctness": "warn" + }, + "options": { + "typeAware": true + } +} diff --git a/.prettierrc.json b/.prettierrc.json deleted file mode 100644 index 544138b..0000000 --- a/.prettierrc.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "singleQuote": true -} diff --git a/__tests__/language-model.test.ts b/__tests__/language-model.test.ts index a262cfb..a4ab4c3 100644 --- a/__tests__/language-model.test.ts +++ b/__tests__/language-model.test.ts @@ -1,15 +1,12 @@ import { describe, it, expect, vi } from 'vitest'; import { LanguageModel } from '../src/language-model.js'; -import { - LanguageModelPromptRole, - LanguageModelPromptType, -} from '../src/interfaces.js'; +import { LanguageModelPromptRole, LanguageModelPromptType } from '../src/interfaces.js'; vi.mock('node-llama-cpp', () => { return { getLlama: async () => { return { - loadModel: async ({ modelPath }: { modelPath: string }) => { + loadModel: async ({ modelPath: _modelPath }: { modelPath: string }) => { return { createContext: async () => { return { @@ -25,7 +22,7 @@ vi.mock('node-llama-cpp', () => { constructor({ contextSequence }: { contextSequence: string }) { this.contextSequence = contextSequence; } - async prompt(input: string, options?: any): Promise { + async prompt(input: string, _options?: any): Promise { return `Mocked response to: ${input}`; } }, @@ -66,7 +63,7 @@ describe('LanguageModel with mocks', () => { }; // mock streaming behaviour - model.promptStreaming = (payload, options) => { + model.promptStreaming = (_payload, _options) => { return new ReadableStream({ start(controller) { controller.enqueue('chunk1 '); @@ -100,8 +97,6 @@ describe('LanguageModel with mocks', () => { content: 'This should fail.', }; - await expect(model.prompt(promptPayload)).rejects.toThrow( - 'NotSupportedError', - ); + await expect(model.prompt(promptPayload)).rejects.toThrow('NotSupportedError'); }); }); diff --git a/__tests__/preload.test.ts b/__tests__/preload.test.ts index de8fdd9..3bec651 100644 --- a/__tests__/preload.test.ts +++ b/__tests__/preload.test.ts @@ -43,9 +43,7 @@ describe('Preload Interface', () => { it('destroy should invoke with correct ipcMessage', async () => { await (globalThis as any).electronAi.destroy(); - expect(ipcRenderer.invoke).toHaveBeenCalledWith( - IpcRendererMessage.ELECTRON_LLM_DESTROY, - ); + expect(ipcRenderer.invoke).toHaveBeenCalledWith(IpcRendererMessage.ELECTRON_LLM_DESTROY); }); it('prompt should invoke with correct params', async () => { diff --git a/end-to-end/static/index.html b/end-to-end/static/index.html index b46f7e2..7f49a03 100644 --- a/end-to-end/static/index.html +++ b/end-to-end/static/index.html @@ -1,209 +1,224 @@ - + - - - - AI Chat Interface - - - -

@electron/llm

- -
-
- - -
+ + + + AI Chat Interface + + + +

@electron/llm

+ +
+
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ + +
+ +
+
+
+ + +
+
- window.sendMessage = async () => { - const userInput = document.getElementById('userInput'); - const messagesContainer = document.getElementById('chatMessages'); - const message = userInput.value.trim(); + - + + const config = { + modelPath: await window.electron.getPathForFile(modelFile), + systemPrompt: document.getElementById('systemPrompt').value.trim() || undefined, + initialPrompts: document + .getElementById('initialPrompts') + .value.split('\n') + .filter((text) => text.trim()) + .map((text) => ({ role: 'user', content: text })), + topK: parseInt(document.getElementById('topK').value), + temperature: parseFloat(document.getElementById('temperature').value), + }; + + try { + await window.electronAi.create(config); + document.querySelector('.config-form').style.display = 'none'; + document.getElementById('chatContainer').style.display = 'block'; + } catch (error) { + console.error('Error loading model:', error); + alert(`Error loading model: ${error.message}`); + } + }; + + window.sendMessage = async () => { + const userInput = document.getElementById('userInput'); + const messagesContainer = document.getElementById('chatMessages'); + const message = userInput.value.trim(); + + if (!message) return; + + messagesContainer.appendChild(createMessageElement(message, 'user')); + userInput.value = ''; + + try { + const modelMessage = createMessageElement('', 'model'); + messagesContainer.appendChild(modelMessage); + + const stream = await window.electronAi.promptStreaming(message); + for await (const chunk of stream) { + modelMessage.textContent = 'Model: ' + (modelMessage.textContent.slice(7) + chunk); + messagesContainer.scrollTop = messagesContainer.scrollHeight; + } + } catch (error) { + console.error('Error getting response:', error); + alert(`Error getting response: ${error.message}`); + } + }; + + diff --git a/package.json b/package.json index d15663a..c1fbcf7 100644 --- a/package.json +++ b/package.json @@ -31,8 +31,8 @@ }, "scripts": { "tsc": "tsc --build", - "lint:check": "prettier --check \"**/*.{ts,js}\"", - "lint:fix": "prettier --write \"**/*.{ts,js}\"", + "lint": "oxfmt --check . && oxlint", + "lint:fix": "oxfmt --write . && oxlint --fix", "test": "vitest run", "test:watch": "vitest", "test:coverage": "vitest run --coverage", @@ -45,7 +45,11 @@ }, "lint-staged": { "*.{js,ts}": [ - "prettier --write" + "oxfmt --write", + "oxlint --fix" + ], + "*.{json,html}": [ + "oxfmt --write" ] }, "author": "Electron Community", @@ -72,11 +76,12 @@ "@tsconfig/node22": "^22.0.0", "@vitest/coverage-v8": "^4.0.18", "electron": "^39.8.4", - "eslint": "^8.57.1", "husky": "^9.1.7", "lint-staged": "^16.4.0", - "prettier": "^3.5.2", - "typescript": "^5.7.3", + "oxfmt": "^0.44.0", + "oxlint": "^1.59.0", + "oxlint-tsgolint": "^0.20.0", + "typescript": "^6.0.2", "vitest": "^4.0.18" }, "packageManager": "yarn@4.10.3+sha512.c38cafb5c7bb273f3926d04e55e1d8c9dfa7d9c3ea1f36a4868fa028b9e5f72298f0b7f401ad5eb921749eb012eb1c3bb74bf7503df3ee43fd600d14a018266f", diff --git a/src/common/ipc-channel-names.ts b/src/common/ipc-channel-names.ts index f1dc6b4..0109d7f 100644 --- a/src/common/ipc-channel-names.ts +++ b/src/common/ipc-channel-names.ts @@ -4,6 +4,5 @@ export const IpcRendererMessage = { ELECTRON_LLM_DESTROY: 'ELECTRON_LLM_DESTROY', ELECTRON_LLM_PROMPT: 'ELECTRON_LLM_PROMPT', ELECTRON_LLM_PROMPT_STREAMING: 'ELECTRON_LLM_PROMPT_STREAMING', - ELECTRON_LLM_PROMPT_STREAMING_REQUEST: - 'ELECTRON_LLM_PROMPT_STREAMING_REQUEST', + ELECTRON_LLM_PROMPT_STREAMING_REQUEST: 'ELECTRON_LLM_PROMPT_STREAMING_REQUEST', } as const; diff --git a/src/helpers/get-process-type.ts b/src/helpers/get-process-type.ts index 900fcb0..91da54e 100644 --- a/src/helpers/get-process-type.ts +++ b/src/helpers/get-process-type.ts @@ -1,10 +1,4 @@ -export type ProcessType = - | 'main' - | 'renderer' - | 'preload' - | 'utility' - | 'worker' - | 'unknown'; +export type ProcessType = 'main' | 'renderer' | 'preload' | 'utility' | 'worker' | 'unknown'; /** * Returns the current Electron process type @@ -49,7 +43,7 @@ async function isContextIsolatedPreload() { const electron = await import('electron'); return !!electron.contextBridge; - } catch (error) { + } catch { return false; } } diff --git a/src/index.ts b/src/index.ts index a02795f..0ae9ab2 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,9 +1,5 @@ import { getProcessType } from './helpers/get-process-type.js'; -import { - MainLoadFunction, - LoadOptions, - RendererLoadFunction, -} from './interfaces.js'; +import { MainLoadFunction, LoadOptions, RendererLoadFunction } from './interfaces.js'; export * from './interfaces.js'; export * from './constants.js'; diff --git a/src/interfaces.ts b/src/interfaces.ts index 29116b2..1091012 100644 --- a/src/interfaces.ts +++ b/src/interfaces.ts @@ -30,8 +30,7 @@ export interface LanguageModelCreateOptions { modelAlias: string; } -export interface InternalLanguageModelCreateOptions - extends LanguageModelCreateOptions { +export interface InternalLanguageModelCreateOptions extends LanguageModelCreateOptions { modelPath: string; signal?: AbortSignal; } @@ -42,8 +41,7 @@ export interface LanguageModelPromptOptions { timeout?: number; } -export interface InternalLanguageModelPromptOptions - extends LanguageModelPromptOptions { +export interface InternalLanguageModelPromptOptions extends LanguageModelPromptOptions { signal?: AbortSignal; } @@ -59,10 +57,7 @@ export interface AiProcessSendPromptData { export interface ElectronLlmRenderer { create: (options: LanguageModelCreateOptions) => Promise; destroy: () => Promise; - prompt: ( - input: string, - options?: LanguageModelPromptOptions, - ) => Promise; + prompt: (input: string, options?: LanguageModelPromptOptions) => Promise; promptStreaming: ( input: string, options?: LanguageModelPromptOptions, @@ -84,6 +79,4 @@ export type ElectronAi = ElectronLlmRenderer; export type MainLoadFunction = (options?: LoadOptions) => Promise; export type RendererLoadFunction = () => Promise; -export type GetModelPathFunction = ( - modelAlias: string, -) => Promise | string | null; +export type GetModelPathFunction = (modelAlias: string) => Promise | string | null; diff --git a/src/language-model.ts b/src/language-model.ts index c125f6b..c5c4afa 100644 --- a/src/language-model.ts +++ b/src/language-model.ts @@ -1,8 +1,6 @@ -import type { - ChatHistoryItem, - LlamaChatSession, - LlamaModel, -} from 'node-llama-cpp' with { 'resolution-mode': 'import' }; +import type { ChatHistoryItem, LlamaChatSession, LlamaModel } from 'node-llama-cpp' with { + 'resolution-mode': 'import', +}; import { LanguageModelPrompt, LanguageModelPromptType, @@ -24,7 +22,6 @@ interface AIAvailability { reason?: string; } -// prettier-ignore let _llamaCpp: typeof import('node-llama-cpp', { with: { 'resolution-mode': 'import' } }); async function getLlamaCpp() { if (!_llamaCpp) { @@ -63,34 +60,26 @@ export class LanguageModel { this.session = session; } - static async create( - options: InternalLanguageModelCreateOptions, - ): Promise { - try { - const llamaCpp = await getLlamaCpp(); - const llama = await llamaCpp.getLlama(); - const model = await llama.loadModel({ modelPath: options.modelPath }); - const context = await model.createContext(); - const session = new llamaCpp.LlamaChatSession({ - contextSequence: context.getSequence(), - systemPrompt: options.systemPrompt, - }); + static async create(options: InternalLanguageModelCreateOptions): Promise { + const llamaCpp = await getLlamaCpp(); + const llama = await llamaCpp.getLlama(); + const model = await llama.loadModel({ modelPath: options.modelPath }); + const context = await model.createContext(); + const session = new llamaCpp.LlamaChatSession({ + contextSequence: context.getSequence(), + systemPrompt: options.systemPrompt, + }); - if (options.initialPrompts && options.initialPrompts.length > 0) { - session.setChatHistory( - options.initialPrompts.map(this.initialPromptToChatHistoryItem), - ); - } + if (options.initialPrompts && options.initialPrompts.length > 0) { + session.setChatHistory(options.initialPrompts.map(this.initialPromptToChatHistoryItem)); + } - process.parentPort?.postMessage({ - type: 'modelLoaded', - data: 'Model loaded successfully.', - }); + process.parentPort?.postMessage({ + type: 'modelLoaded', + data: 'Model loaded successfully.', + }); - return new LanguageModel(options, model, context, session); - } catch (error) { - throw error; - } + return new LanguageModel(options, model, context, session); } static async availability(): Promise { @@ -140,9 +129,7 @@ export class LanguageModel { const prompts = Array.isArray(input) ? input : [input]; prompts.forEach(this.validatePrompt); - const processedInput = prompts - .map((p) => this.parseContent(p.content)) - .join('\n'); + const processedInput = prompts.map((p) => this.parseContent(p.content)).join('\n'); const response = await this.session.prompt(processedInput, { temperature: this.temperature, @@ -170,13 +157,9 @@ export class LanguageModel { prompts.forEach(this.validatePrompt); if (prompts[0].type !== LanguageModelPromptType.TEXT) { - throw new Error( - 'NotSupportedError: Only text prompts are supported for streaming', - ); + throw new Error('NotSupportedError: Only text prompts are supported for streaming'); } - const processedInput = prompts - .map((p) => this.parseContent(p.content)) - .join('\n'); + const processedInput = prompts.map((p) => this.parseContent(p.content)).join('\n'); return new ReadableStream({ start: async (controller) => { @@ -200,15 +183,11 @@ export class LanguageModel { private validatePrompt(prompt: LanguageModelPrompt) { if (prompt.role === LanguageModelPromptRole.SYSTEM) { - throw new Error( - "NotSupportedError: 'system' role is not allowed in prompt()", - ); + throw new Error("NotSupportedError: 'system' role is not allowed in prompt()"); } } - private static initialPromptToChatHistoryItem( - prompt: LanguageModelPrompt, - ): ChatHistoryItem { + private static initialPromptToChatHistoryItem(prompt: LanguageModelPrompt): ChatHistoryItem { if (prompt.role === LanguageModelPromptRole.SYSTEM) { return { type: 'system', diff --git a/src/main/register-ai-handlers.ts b/src/main/register-ai-handlers.ts index bfe12c8..db59123 100644 --- a/src/main/register-ai-handlers.ts +++ b/src/main/register-ai-handlers.ts @@ -1,9 +1,4 @@ -import { - ipcMain, - utilityProcess, - UtilityProcess, - MessageChannelMain, -} from 'electron'; +import { ipcMain, utilityProcess, UtilityProcess, MessageChannelMain } from 'electron'; import { once } from 'node:events'; import path from 'node:path'; import { deepEqual } from 'node:assert/strict'; @@ -24,9 +19,7 @@ export interface RegisterAiHandlersOptions { getModelPath: GetModelPathFunction; } -export function registerAiHandlers({ - getModelPath, -}: RegisterAiHandlersOptions) { +export function registerAiHandlers({ getModelPath }: RegisterAiHandlersOptions) { ipcMain.handle(IpcRendererMessage.ELECTRON_LLM_DESTROY, () => stopModel()); ipcMain.handle( @@ -68,10 +61,7 @@ export function registerAiHandlers({ }); const timeoutPromise = new Promise((_, reject) => { - setTimeout( - () => reject(new Error('AI model process start timed out.')), - 60000, - ); + setTimeout(() => reject(new Error('AI model process start timed out.')), 60000); }); // Give the AI model process 60 seconds to load the model @@ -101,9 +91,7 @@ export function registerAiHandlers({ IpcRendererMessage.ELECTRON_LLM_PROMPT, async (_event, input: string, options: LanguageModelPromptOptions) => { if (!aiProcess) { - throw new Error( - 'AI model process not started. Please do so with `electronAi.create()`', - ); + throw new Error('AI model process not started. Please do so with `electronAi.create()`'); } const data: AiProcessSendPromptData = { @@ -130,10 +118,7 @@ export function registerAiHandlers({ // Set a timeout in case the child process doesn't reply. const timeoutPromise = new Promise((_, reject) => { - setTimeout( - () => reject(new Error('Prompt response timed out.')), - options.timeout || 20000, - ); + setTimeout(() => reject(new Error('Prompt response timed out.')), options.timeout || 20000); }); return await Promise.race([responsePromise, timeoutPromise]); @@ -144,18 +129,13 @@ export function registerAiHandlers({ IpcRendererMessage.ELECTRON_LLM_PROMPT_STREAMING_REQUEST, (event, input: string, options: LanguageModelPromptOptions) => { if (!aiProcess) { - event.sender.send( - 'ELECTRON_LLM_PROMPT_STREAMING_ERROR', - 'AI model process not started.', - ); + event.sender.send('ELECTRON_LLM_PROMPT_STREAMING_ERROR', 'AI model process not started.'); return; } // Create two message channels - const { port1: rendererPort1, port2: rendererPort2 } = - new MessageChannelMain(); - const { port1: utilityPort1, port2: utilityPort2 } = - new MessageChannelMain(); + const { port1: rendererPort1, port2: rendererPort2 } = new MessageChannelMain(); + const { port1: utilityPort1, port2: utilityPort2 } = new MessageChannelMain(); // Connect the two ports directly rendererPort1.on('message', (event) => { @@ -171,9 +151,7 @@ export function registerAiHandlers({ utilityPort1.start(); // Send one port to the renderer - event.sender.postMessage('ELECTRON_LLM_PROMPT_STREAMING_PORT', null, [ - rendererPort2, - ]); + event.sender.postMessage('ELECTRON_LLM_PROMPT_STREAMING_PORT', null, [rendererPort2]); // Send the other port to the utility process aiProcess.postMessage( @@ -186,26 +164,20 @@ export function registerAiHandlers({ }, ); - ipcMain.handle( - IpcRendererMessage.ELECTRON_LLM_ABORT_REQUEST, - (_event, { requestUUID } = {}) => { - if (!aiProcess) { - return; - } + ipcMain.handle(IpcRendererMessage.ELECTRON_LLM_ABORT_REQUEST, (_event, { requestUUID } = {}) => { + if (!aiProcess) { + return; + } - aiProcess.postMessage({ - type: UTILITY_MESSAGE_TYPES.REQUEST_ABORTED, - data: { requestUUID }, - }); - }, - ); + aiProcess.postMessage({ + type: UTILITY_MESSAGE_TYPES.REQUEST_ABORTED, + data: { requestUUID }, + }); + }); } export async function startAiModel(): Promise { - const utilityScriptPath = path.join( - __dirname, - '../utility/call-ai-model-entry-point.js', - ); + const utilityScriptPath = path.join(__dirname, '../utility/call-ai-model-entry-point.js'); const aiProcess = utilityProcess.fork(utilityScriptPath, [], { stdio: ['ignore', 'pipe', 'pipe', 'pipe'], @@ -246,7 +218,7 @@ async function stopModel(): Promise { setTimeout(() => reject(new Error('Process exit timeout')), 3000), ), ]); - } catch (error) { + } catch { aiProcess.kill(); } diff --git a/src/preload/index.ts b/src/preload/index.ts index 4653d1a..3cea9a9 100644 --- a/src/preload/index.ts +++ b/src/preload/index.ts @@ -16,31 +16,19 @@ import type { function validateCreateOptions(options?: LanguageModelCreateOptions): void { if (!options) return; - if ( - options.modelAlias === undefined || - typeof options.modelAlias !== 'string' - ) { + if (options.modelAlias === undefined || typeof options.modelAlias !== 'string') { throw new TypeError('modelAlias is required and must be a string'); } - if ( - options.systemPrompt !== undefined && - typeof options.systemPrompt !== 'string' - ) { + if (options.systemPrompt !== undefined && typeof options.systemPrompt !== 'string') { throw new TypeError('systemPrompt must be a string'); } - if ( - options.initialPrompts !== undefined && - !Array.isArray(options.initialPrompts) - ) { + if (options.initialPrompts !== undefined && !Array.isArray(options.initialPrompts)) { throw new TypeError('initialPrompts must be an array'); } - if ( - options.topK !== undefined && - (typeof options.topK !== 'number' || options.topK <= 0) - ) { + if (options.topK !== undefined && (typeof options.topK !== 'number' || options.topK <= 0)) { throw new TypeError('topK must be a positive number'); } @@ -61,10 +49,7 @@ function validateCreateOptions(options?: LanguageModelCreateOptions): void { function validatePromptOptions(options?: LanguageModelPromptOptions): void { if (!options) return; - if ( - options.responseJSONSchema !== undefined && - typeof options.responseJSONSchema !== 'object' - ) { + if (options.responseJSONSchema !== undefined && typeof options.responseJSONSchema !== 'object') { throw new TypeError('responseJSONSchema must be an object'); } } @@ -75,12 +60,8 @@ const electronAi: ElectronLlmRenderer = { return ipcRenderer.invoke('ELECTRON_LLM_CREATE', options); }, - destroy: async (): Promise => - ipcRenderer.invoke('ELECTRON_LLM_DESTROY'), - prompt: async ( - input: string = '', - options?: LanguageModelPromptOptions, - ): Promise => { + destroy: async (): Promise => ipcRenderer.invoke('ELECTRON_LLM_DESTROY'), + prompt: async (input: string = '', options?: LanguageModelPromptOptions): Promise => { validatePromptOptions(options); return ipcRenderer.invoke('ELECTRON_LLM_PROMPT', input, options); }, @@ -101,19 +82,17 @@ const electronAi: ElectronLlmRenderer = { const iterator: AsyncIterableIterator = { async next(): Promise> { - const message = await new Promise>( - (resolve, reject) => { - port.onmessage = (event) => { - if (event.data.type === 'error') { - reject(new Error(event.data.error)); - } else if (event.data.type === 'done') { - resolve({ done: true, value: undefined }); - } else { - resolve({ value: event.data.chunk, done: false }); - } - }; - }, - ); + const message = await new Promise>((resolve, reject) => { + port.onmessage = (event) => { + if (event.data.type === 'error') { + reject(new Error(event.data.error)); + } else if (event.data.type === 'done') { + resolve({ done: true, value: undefined }); + } else { + resolve({ value: event.data.chunk, done: false }); + } + }; + }); return message; }, async return() { diff --git a/src/utility/abortmanager.ts b/src/utility/abortmanager.ts index c8b3df3..735204a 100644 --- a/src/utility/abortmanager.ts +++ b/src/utility/abortmanager.ts @@ -1,7 +1,6 @@ import { InternalLanguageModelCreateOptions, InternalLanguageModelPromptOptions, - LanguageModelCreateOptions, LanguageModelPromptOptions, } from '../interfaces'; diff --git a/src/utility/call-ai-model-entry-point.ts b/src/utility/call-ai-model-entry-point.ts index 17bc110..afa9ec0 100644 --- a/src/utility/call-ai-model-entry-point.ts +++ b/src/utility/call-ai-model-entry-point.ts @@ -21,9 +21,7 @@ const abortSignalManager = new AbortSignalUtilityManager(); async function loadModel(message: LoadModelMessage) { try { - const optionsWithSignal = abortSignalManager.getWithSignalFromCreateOptions( - message.data, - ); + const optionsWithSignal = abortSignalManager.getWithSignalFromCreateOptions(message.data); languageModel = await LanguageModel.create(optionsWithSignal); } catch (error) { @@ -48,9 +46,7 @@ async function generateResponse(message: PromptMessage) { return; } - const options = abortSignalManager.getWithSignalFromPromptOptions( - data.options, - ); + const options = abortSignalManager.getWithSignalFromPromptOptions(data.options); try { // Format the prompt payload correctly for the language model diff --git a/src/utility/utility-type-helpers.ts b/src/utility/utility-type-helpers.ts index f4aad40..5f9bf7c 100644 --- a/src/utility/utility-type-helpers.ts +++ b/src/utility/utility-type-helpers.ts @@ -1,7 +1,4 @@ -import { - AiProcessModelCreateData, - AiProcessSendPromptData, -} from '../interfaces'; +import { AiProcessModelCreateData, AiProcessSendPromptData } from '../interfaces'; import { UTILITY_MESSAGE_TYPES } from './messages'; export interface UnknownMessage { @@ -34,21 +31,15 @@ function isMessage(message: unknown): message is UnknownMessage { return typeof message === 'object' && message !== null && 'type' in message; } -export function isLoadModelMessage( - message: unknown, -): message is LoadModelMessage { +export function isLoadModelMessage(message: unknown): message is LoadModelMessage { return ( - isMessage(message) && - message.type === UTILITY_MESSAGE_TYPES.LOAD_MODEL && - 'data' in message + isMessage(message) && message.type === UTILITY_MESSAGE_TYPES.LOAD_MODEL && 'data' in message ); } export function isPromptMessage(message: unknown): message is PromptMessage { return ( - isMessage(message) && - message.type === UTILITY_MESSAGE_TYPES.SEND_PROMPT && - 'data' in message + isMessage(message) && message.type === UTILITY_MESSAGE_TYPES.SEND_PROMPT && 'data' in message ); } diff --git a/tsconfig.json b/tsconfig.json index 78881d6..0e456de 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -4,6 +4,7 @@ "module": "NodeNext", "moduleResolution": "nodenext", "sourceMap": true, + "rootDir": "src", "outDir": "dist", "types": ["node", "electron"], "declaration": true, @@ -11,7 +12,7 @@ "esModuleInterop": true, "strict": true, "skipLibCheck": true, - "lib": ["ES2021", "DOM"], + "lib": ["ES2021", "DOM"] }, "include": ["src"], "exclude": ["node_modules", "dist"] diff --git a/yarn.lock b/yarn.lock index 2a2b89e..ab274aa 100644 --- a/yarn.lock +++ b/yarn.lock @@ -74,12 +74,13 @@ __metadata: "@tsconfig/node22": "npm:^22.0.0" "@vitest/coverage-v8": "npm:^4.0.18" electron: "npm:^39.8.4" - eslint: "npm:^8.57.1" husky: "npm:^9.1.7" lint-staged: "npm:^16.4.0" node-llama-cpp: "npm:^3.7.0" - prettier: "npm:^3.5.2" - typescript: "npm:^5.7.3" + oxfmt: "npm:^0.44.0" + oxlint: "npm:^1.59.0" + oxlint-tsgolint: "npm:^0.20.0" + typescript: "npm:^6.0.2" vitest: "npm:^4.0.18" dependenciesMeta: electron: @@ -295,48 +296,6 @@ __metadata: languageName: node linkType: hard -"@eslint-community/eslint-utils@npm:^4.2.0": - version: 4.9.0 - resolution: "@eslint-community/eslint-utils@npm:4.9.0" - dependencies: - eslint-visitor-keys: "npm:^3.4.3" - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - checksum: 10c0/8881e22d519326e7dba85ea915ac7a143367c805e6ba1374c987aa2fbdd09195cc51183d2da72c0e2ff388f84363e1b220fd0d19bef10c272c63455162176817 - languageName: node - linkType: hard - -"@eslint-community/regexpp@npm:^4.6.1": - version: 4.12.1 - resolution: "@eslint-community/regexpp@npm:4.12.1" - checksum: 10c0/a03d98c246bcb9109aec2c08e4d10c8d010256538dcb3f56610191607214523d4fb1b00aa81df830b6dffb74c5fa0be03642513a289c567949d3e550ca11cdf6 - languageName: node - linkType: hard - -"@eslint/eslintrc@npm:^2.1.4": - version: 2.1.4 - resolution: "@eslint/eslintrc@npm:2.1.4" - dependencies: - ajv: "npm:^6.12.4" - debug: "npm:^4.3.2" - espree: "npm:^9.6.0" - globals: "npm:^13.19.0" - ignore: "npm:^5.2.0" - import-fresh: "npm:^3.2.1" - js-yaml: "npm:^4.1.0" - minimatch: "npm:^3.1.2" - strip-json-comments: "npm:^3.1.1" - checksum: 10c0/32f67052b81768ae876c84569ffd562491ec5a5091b0c1e1ca1e0f3c24fb42f804952fdd0a137873bc64303ba368a71ba079a6f691cee25beee9722d94cc8573 - languageName: node - linkType: hard - -"@eslint/js@npm:8.57.1": - version: 8.57.1 - resolution: "@eslint/js@npm:8.57.1" - checksum: 10c0/b489c474a3b5b54381c62e82b3f7f65f4b8a5eaaed126546520bf2fede5532a8ed53212919fed1e9048dcf7f37167c8561d58d0ba4492a4244004e7793805223 - languageName: node - linkType: hard - "@huggingface/jinja@npm:^0.5.6": version: 0.5.6 resolution: "@huggingface/jinja@npm:0.5.6" @@ -344,31 +303,6 @@ __metadata: languageName: node linkType: hard -"@humanwhocodes/config-array@npm:^0.13.0": - version: 0.13.0 - resolution: "@humanwhocodes/config-array@npm:0.13.0" - dependencies: - "@humanwhocodes/object-schema": "npm:^2.0.3" - debug: "npm:^4.3.1" - minimatch: "npm:^3.0.5" - checksum: 10c0/205c99e756b759f92e1f44a3dc6292b37db199beacba8f26c2165d4051fe73a4ae52fdcfd08ffa93e7e5cb63da7c88648f0e84e197d154bbbbe137b2e0dd332e - languageName: node - linkType: hard - -"@humanwhocodes/module-importer@npm:^1.0.1": - version: 1.0.1 - resolution: "@humanwhocodes/module-importer@npm:1.0.1" - checksum: 10c0/909b69c3b86d482c26b3359db16e46a32e0fb30bd306a3c176b8313b9e7313dba0f37f519de6aa8b0a1921349e505f259d19475e123182416a506d7f87e7f529 - languageName: node - linkType: hard - -"@humanwhocodes/object-schema@npm:^2.0.3": - version: 2.0.3 - resolution: "@humanwhocodes/object-schema@npm:2.0.3" - checksum: 10c0/80520eabbfc2d32fe195a93557cef50dfe8c8905de447f022675aaf66abc33ae54098f5ea78548d925aa671cd4ab7c7daa5ad704fe42358c9b5e7db60f80696c - languageName: node - linkType: hard - "@isaacs/cliui@npm:^8.0.2": version: 8.0.2 resolution: "@isaacs/cliui@npm:8.0.2" @@ -532,33 +466,6 @@ __metadata: languageName: node linkType: hard -"@nodelib/fs.scandir@npm:2.1.5": - version: 2.1.5 - resolution: "@nodelib/fs.scandir@npm:2.1.5" - dependencies: - "@nodelib/fs.stat": "npm:2.0.5" - run-parallel: "npm:^1.1.9" - checksum: 10c0/732c3b6d1b1e967440e65f284bd06e5821fedf10a1bea9ed2bb75956ea1f30e08c44d3def9d6a230666574edbaf136f8cfd319c14fd1f87c66e6a44449afb2eb - languageName: node - linkType: hard - -"@nodelib/fs.stat@npm:2.0.5": - version: 2.0.5 - resolution: "@nodelib/fs.stat@npm:2.0.5" - checksum: 10c0/88dafe5e3e29a388b07264680dc996c17f4bda48d163a9d4f5c1112979f0ce8ec72aa7116122c350b4e7976bc5566dc3ddb579be1ceaacc727872eb4ed93926d - languageName: node - linkType: hard - -"@nodelib/fs.walk@npm:^1.2.8": - version: 1.2.8 - resolution: "@nodelib/fs.walk@npm:1.2.8" - dependencies: - "@nodelib/fs.scandir": "npm:2.1.5" - fastq: "npm:^1.6.0" - checksum: 10c0/db9de047c3bb9b51f9335a7bb46f4fcfb6829fb628318c12115fbaf7d369bfce71c15b103d1fc3b464812d936220ee9bc1c8f762d032c9f6be9acc99249095b1 - languageName: node - linkType: hard - "@npmcli/agent@npm:^3.0.0": version: 3.0.0 resolution: "@npmcli/agent@npm:3.0.0" @@ -581,6 +488,314 @@ __metadata: languageName: node linkType: hard +"@oxfmt/binding-android-arm-eabi@npm:0.44.0": + version: 0.44.0 + resolution: "@oxfmt/binding-android-arm-eabi@npm:0.44.0" + conditions: os=android & cpu=arm + languageName: node + linkType: hard + +"@oxfmt/binding-android-arm64@npm:0.44.0": + version: 0.44.0 + resolution: "@oxfmt/binding-android-arm64@npm:0.44.0" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + +"@oxfmt/binding-darwin-arm64@npm:0.44.0": + version: 0.44.0 + resolution: "@oxfmt/binding-darwin-arm64@npm:0.44.0" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"@oxfmt/binding-darwin-x64@npm:0.44.0": + version: 0.44.0 + resolution: "@oxfmt/binding-darwin-x64@npm:0.44.0" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@oxfmt/binding-freebsd-x64@npm:0.44.0": + version: 0.44.0 + resolution: "@oxfmt/binding-freebsd-x64@npm:0.44.0" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + +"@oxfmt/binding-linux-arm-gnueabihf@npm:0.44.0": + version: 0.44.0 + resolution: "@oxfmt/binding-linux-arm-gnueabihf@npm:0.44.0" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + +"@oxfmt/binding-linux-arm-musleabihf@npm:0.44.0": + version: 0.44.0 + resolution: "@oxfmt/binding-linux-arm-musleabihf@npm:0.44.0" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + +"@oxfmt/binding-linux-arm64-gnu@npm:0.44.0": + version: 0.44.0 + resolution: "@oxfmt/binding-linux-arm64-gnu@npm:0.44.0" + conditions: os=linux & cpu=arm64 & libc=glibc + languageName: node + linkType: hard + +"@oxfmt/binding-linux-arm64-musl@npm:0.44.0": + version: 0.44.0 + resolution: "@oxfmt/binding-linux-arm64-musl@npm:0.44.0" + conditions: os=linux & cpu=arm64 & libc=musl + languageName: node + linkType: hard + +"@oxfmt/binding-linux-ppc64-gnu@npm:0.44.0": + version: 0.44.0 + resolution: "@oxfmt/binding-linux-ppc64-gnu@npm:0.44.0" + conditions: os=linux & cpu=ppc64 & libc=glibc + languageName: node + linkType: hard + +"@oxfmt/binding-linux-riscv64-gnu@npm:0.44.0": + version: 0.44.0 + resolution: "@oxfmt/binding-linux-riscv64-gnu@npm:0.44.0" + conditions: os=linux & cpu=riscv64 & libc=glibc + languageName: node + linkType: hard + +"@oxfmt/binding-linux-riscv64-musl@npm:0.44.0": + version: 0.44.0 + resolution: "@oxfmt/binding-linux-riscv64-musl@npm:0.44.0" + conditions: os=linux & cpu=riscv64 & libc=musl + languageName: node + linkType: hard + +"@oxfmt/binding-linux-s390x-gnu@npm:0.44.0": + version: 0.44.0 + resolution: "@oxfmt/binding-linux-s390x-gnu@npm:0.44.0" + conditions: os=linux & cpu=s390x & libc=glibc + languageName: node + linkType: hard + +"@oxfmt/binding-linux-x64-gnu@npm:0.44.0": + version: 0.44.0 + resolution: "@oxfmt/binding-linux-x64-gnu@npm:0.44.0" + conditions: os=linux & cpu=x64 & libc=glibc + languageName: node + linkType: hard + +"@oxfmt/binding-linux-x64-musl@npm:0.44.0": + version: 0.44.0 + resolution: "@oxfmt/binding-linux-x64-musl@npm:0.44.0" + conditions: os=linux & cpu=x64 & libc=musl + languageName: node + linkType: hard + +"@oxfmt/binding-openharmony-arm64@npm:0.44.0": + version: 0.44.0 + resolution: "@oxfmt/binding-openharmony-arm64@npm:0.44.0" + conditions: os=openharmony & cpu=arm64 + languageName: node + linkType: hard + +"@oxfmt/binding-win32-arm64-msvc@npm:0.44.0": + version: 0.44.0 + resolution: "@oxfmt/binding-win32-arm64-msvc@npm:0.44.0" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + +"@oxfmt/binding-win32-ia32-msvc@npm:0.44.0": + version: 0.44.0 + resolution: "@oxfmt/binding-win32-ia32-msvc@npm:0.44.0" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + +"@oxfmt/binding-win32-x64-msvc@npm:0.44.0": + version: 0.44.0 + resolution: "@oxfmt/binding-win32-x64-msvc@npm:0.44.0" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + +"@oxlint-tsgolint/darwin-arm64@npm:0.20.0": + version: 0.20.0 + resolution: "@oxlint-tsgolint/darwin-arm64@npm:0.20.0" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"@oxlint-tsgolint/darwin-x64@npm:0.20.0": + version: 0.20.0 + resolution: "@oxlint-tsgolint/darwin-x64@npm:0.20.0" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@oxlint-tsgolint/linux-arm64@npm:0.20.0": + version: 0.20.0 + resolution: "@oxlint-tsgolint/linux-arm64@npm:0.20.0" + conditions: os=linux & cpu=arm64 + languageName: node + linkType: hard + +"@oxlint-tsgolint/linux-x64@npm:0.20.0": + version: 0.20.0 + resolution: "@oxlint-tsgolint/linux-x64@npm:0.20.0" + conditions: os=linux & cpu=x64 + languageName: node + linkType: hard + +"@oxlint-tsgolint/win32-arm64@npm:0.20.0": + version: 0.20.0 + resolution: "@oxlint-tsgolint/win32-arm64@npm:0.20.0" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + +"@oxlint-tsgolint/win32-x64@npm:0.20.0": + version: 0.20.0 + resolution: "@oxlint-tsgolint/win32-x64@npm:0.20.0" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + +"@oxlint/binding-android-arm-eabi@npm:1.59.0": + version: 1.59.0 + resolution: "@oxlint/binding-android-arm-eabi@npm:1.59.0" + conditions: os=android & cpu=arm + languageName: node + linkType: hard + +"@oxlint/binding-android-arm64@npm:1.59.0": + version: 1.59.0 + resolution: "@oxlint/binding-android-arm64@npm:1.59.0" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + +"@oxlint/binding-darwin-arm64@npm:1.59.0": + version: 1.59.0 + resolution: "@oxlint/binding-darwin-arm64@npm:1.59.0" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"@oxlint/binding-darwin-x64@npm:1.59.0": + version: 1.59.0 + resolution: "@oxlint/binding-darwin-x64@npm:1.59.0" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@oxlint/binding-freebsd-x64@npm:1.59.0": + version: 1.59.0 + resolution: "@oxlint/binding-freebsd-x64@npm:1.59.0" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + +"@oxlint/binding-linux-arm-gnueabihf@npm:1.59.0": + version: 1.59.0 + resolution: "@oxlint/binding-linux-arm-gnueabihf@npm:1.59.0" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + +"@oxlint/binding-linux-arm-musleabihf@npm:1.59.0": + version: 1.59.0 + resolution: "@oxlint/binding-linux-arm-musleabihf@npm:1.59.0" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + +"@oxlint/binding-linux-arm64-gnu@npm:1.59.0": + version: 1.59.0 + resolution: "@oxlint/binding-linux-arm64-gnu@npm:1.59.0" + conditions: os=linux & cpu=arm64 & libc=glibc + languageName: node + linkType: hard + +"@oxlint/binding-linux-arm64-musl@npm:1.59.0": + version: 1.59.0 + resolution: "@oxlint/binding-linux-arm64-musl@npm:1.59.0" + conditions: os=linux & cpu=arm64 & libc=musl + languageName: node + linkType: hard + +"@oxlint/binding-linux-ppc64-gnu@npm:1.59.0": + version: 1.59.0 + resolution: "@oxlint/binding-linux-ppc64-gnu@npm:1.59.0" + conditions: os=linux & cpu=ppc64 & libc=glibc + languageName: node + linkType: hard + +"@oxlint/binding-linux-riscv64-gnu@npm:1.59.0": + version: 1.59.0 + resolution: "@oxlint/binding-linux-riscv64-gnu@npm:1.59.0" + conditions: os=linux & cpu=riscv64 & libc=glibc + languageName: node + linkType: hard + +"@oxlint/binding-linux-riscv64-musl@npm:1.59.0": + version: 1.59.0 + resolution: "@oxlint/binding-linux-riscv64-musl@npm:1.59.0" + conditions: os=linux & cpu=riscv64 & libc=musl + languageName: node + linkType: hard + +"@oxlint/binding-linux-s390x-gnu@npm:1.59.0": + version: 1.59.0 + resolution: "@oxlint/binding-linux-s390x-gnu@npm:1.59.0" + conditions: os=linux & cpu=s390x & libc=glibc + languageName: node + linkType: hard + +"@oxlint/binding-linux-x64-gnu@npm:1.59.0": + version: 1.59.0 + resolution: "@oxlint/binding-linux-x64-gnu@npm:1.59.0" + conditions: os=linux & cpu=x64 & libc=glibc + languageName: node + linkType: hard + +"@oxlint/binding-linux-x64-musl@npm:1.59.0": + version: 1.59.0 + resolution: "@oxlint/binding-linux-x64-musl@npm:1.59.0" + conditions: os=linux & cpu=x64 & libc=musl + languageName: node + linkType: hard + +"@oxlint/binding-openharmony-arm64@npm:1.59.0": + version: 1.59.0 + resolution: "@oxlint/binding-openharmony-arm64@npm:1.59.0" + conditions: os=openharmony & cpu=arm64 + languageName: node + linkType: hard + +"@oxlint/binding-win32-arm64-msvc@npm:1.59.0": + version: 1.59.0 + resolution: "@oxlint/binding-win32-arm64-msvc@npm:1.59.0" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + +"@oxlint/binding-win32-ia32-msvc@npm:1.59.0": + version: 1.59.0 + resolution: "@oxlint/binding-win32-ia32-msvc@npm:1.59.0" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + +"@oxlint/binding-win32-x64-msvc@npm:1.59.0": + version: 1.59.0 + resolution: "@oxlint/binding-win32-x64-msvc@npm:1.59.0" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + "@pkgjs/parseargs@npm:^0.11.0": version: 0.11.0 resolution: "@pkgjs/parseargs@npm:0.11.0" @@ -976,13 +1191,6 @@ __metadata: languageName: node linkType: hard -"@ungap/structured-clone@npm:^1.2.0": - version: 1.3.0 - resolution: "@ungap/structured-clone@npm:1.3.0" - checksum: 10c0/0fc3097c2540ada1fc340ee56d58d96b5b536a2a0dab6e3ec17d4bfc8c4c86db345f61a375a8185f9da96f01c69678f836a2b57eeaa9e4b8eeafd26428e57b0a - languageName: node - linkType: hard - "@vitest/coverage-v8@npm:^4.0.18": version: 4.0.18 resolution: "@vitest/coverage-v8@npm:4.0.18" @@ -1094,24 +1302,6 @@ __metadata: languageName: node linkType: hard -"acorn-jsx@npm:^5.3.2": - version: 5.3.2 - resolution: "acorn-jsx@npm:5.3.2" - peerDependencies: - acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - checksum: 10c0/4c54868fbef3b8d58927d5e33f0a4de35f59012fe7b12cf9dfbb345fb8f46607709e1c4431be869a23fb63c151033d84c4198fa9f79385cec34fcb1dd53974c1 - languageName: node - linkType: hard - -"acorn@npm:^8.9.0": - version: 8.15.0 - resolution: "acorn@npm:8.15.0" - bin: - acorn: bin/acorn - checksum: 10c0/dec73ff59b7d6628a01eebaece7f2bdb8bb62b9b5926dcad0f8931f2b8b79c2be21f6c68ac095592adb5adb15831a3635d9343e6a91d028bbe85d564875ec3ec - languageName: node - linkType: hard - "agent-base@npm:^7.1.0, agent-base@npm:^7.1.2": version: 7.1.4 resolution: "agent-base@npm:7.1.4" @@ -1119,18 +1309,6 @@ __metadata: languageName: node linkType: hard -"ajv@npm:^6.12.4": - version: 6.12.6 - resolution: "ajv@npm:6.12.6" - dependencies: - fast-deep-equal: "npm:^3.1.1" - fast-json-stable-stringify: "npm:^2.0.0" - json-schema-traverse: "npm:^0.4.1" - uri-js: "npm:^4.2.2" - checksum: 10c0/41e23642cbe545889245b9d2a45854ebba51cda6c778ebced9649420d9205f2efb39cb43dbc41e358409223b1ea43303ae4839db682c848b891e4811da1a5a71 - languageName: node - linkType: hard - "ansi-escapes@npm:^6.2.0": version: 6.2.1 resolution: "ansi-escapes@npm:6.2.1" @@ -1177,13 +1355,6 @@ __metadata: languageName: node linkType: hard -"argparse@npm:^2.0.1": - version: 2.0.1 - resolution: "argparse@npm:2.0.1" - checksum: 10c0/c5640c2d89045371c7cedd6a70212a04e360fd34d6edeae32f6952c63949e3525ea77dbec0289d8213a99bbaeab5abfa860b5c12cf88a2e6cf8106e90dd27a7e - languageName: node - linkType: hard - "ast-v8-to-istanbul@npm:^0.3.10": version: 0.3.11 resolution: "ast-v8-to-istanbul@npm:0.3.11" @@ -1236,16 +1407,6 @@ __metadata: languageName: node linkType: hard -"brace-expansion@npm:^1.1.7": - version: 1.1.13 - resolution: "brace-expansion@npm:1.1.13" - dependencies: - balanced-match: "npm:^1.0.0" - concat-map: "npm:0.0.1" - checksum: 10c0/384c61bb329b6adfdcc0cbbdd108dc19fb5f3e84ae15a02a74f94c6c791b5a9b035aae73b2a51929a8a478e2f0f212a771eb6a8b5b514cccfb8d0c9f2ce8cbd8 - languageName: node - linkType: hard - "brace-expansion@npm:^2.0.2": version: 2.0.3 resolution: "brace-expansion@npm:2.0.3" @@ -1321,13 +1482,6 @@ __metadata: languageName: node linkType: hard -"callsites@npm:^3.0.0": - version: 3.1.0 - resolution: "callsites@npm:3.1.0" - checksum: 10c0/fff92277400eb06c3079f9e74f3af120db9f8ea03bad0e84d9aede54bbe2d44a56cccb5f6cf12211f93f52306df87077ecec5b712794c5a9b5dac6d615a3f301 - languageName: node - linkType: hard - "chai@npm:^6.2.1": version: 6.2.2 resolution: "chai@npm:6.2.2" @@ -1335,7 +1489,7 @@ __metadata: languageName: node linkType: hard -"chalk@npm:^4.0.0, chalk@npm:^4.1.0": +"chalk@npm:^4.1.0": version: 4.1.2 resolution: "chalk@npm:4.1.2" dependencies: @@ -1498,14 +1652,7 @@ __metadata: languageName: node linkType: hard -"concat-map@npm:0.0.1": - version: 0.0.1 - resolution: "concat-map@npm:0.0.1" - checksum: 10c0/c996b1cfdf95b6c90fee4dae37e332c8b6eb7d106430c17d538034c0ad9a1630cb194d2ab37293b1bdd4d779494beee7786d586a50bd9376fd6f7bcc2bd4c98f - languageName: node - linkType: hard - -"cross-spawn@npm:^7.0.1, cross-spawn@npm:^7.0.2, cross-spawn@npm:^7.0.6": +"cross-spawn@npm:^7.0.1, cross-spawn@npm:^7.0.6": version: 7.0.6 resolution: "cross-spawn@npm:7.0.6" dependencies: @@ -1516,7 +1663,7 @@ __metadata: languageName: node linkType: hard -"debug@npm:4, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.4, debug@npm:^4.4.0, debug@npm:^4.4.3": +"debug@npm:4, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.4, debug@npm:^4.4.0, debug@npm:^4.4.3": version: 4.4.3 resolution: "debug@npm:4.4.3" dependencies: @@ -1544,13 +1691,6 @@ __metadata: languageName: node linkType: hard -"deep-is@npm:^0.1.3": - version: 0.1.4 - resolution: "deep-is@npm:0.1.4" - checksum: 10c0/7f0ee496e0dff14a573dc6127f14c95061b448b87b995fc96c017ce0a1e66af1675e73f1d6064407975bc4ea6ab679497a29fff7b5b9c4e99cb10797c1ad0b4c - languageName: node - linkType: hard - "defaults@npm:^1.0.3": version: 1.0.4 resolution: "defaults@npm:1.0.4" @@ -1603,15 +1743,6 @@ __metadata: languageName: node linkType: hard -"doctrine@npm:^3.0.0": - version: 3.0.0 - resolution: "doctrine@npm:3.0.0" - dependencies: - esutils: "npm:^2.0.2" - checksum: 10c0/c96bdccabe9d62ab6fea9399fdff04a66e6563c1d6fb3a3a063e8d53c3bb136ba63e84250bbf63d00086a769ad53aef92d2bd483f03f837fc97b71cbee6b2520 - languageName: node - linkType: hard - "eastasianwidth@npm:^0.2.0": version: 0.2.0 resolution: "eastasianwidth@npm:0.2.0" @@ -1838,107 +1969,6 @@ __metadata: languageName: node linkType: hard -"eslint-scope@npm:^7.2.2": - version: 7.2.2 - resolution: "eslint-scope@npm:7.2.2" - dependencies: - esrecurse: "npm:^4.3.0" - estraverse: "npm:^5.2.0" - checksum: 10c0/613c267aea34b5a6d6c00514e8545ef1f1433108097e857225fed40d397dd6b1809dffd11c2fde23b37ca53d7bf935fe04d2a18e6fc932b31837b6ad67e1c116 - languageName: node - linkType: hard - -"eslint-visitor-keys@npm:^3.4.1, eslint-visitor-keys@npm:^3.4.3": - version: 3.4.3 - resolution: "eslint-visitor-keys@npm:3.4.3" - checksum: 10c0/92708e882c0a5ffd88c23c0b404ac1628cf20104a108c745f240a13c332a11aac54f49a22d5762efbffc18ecbc9a580d1b7ad034bf5f3cc3307e5cbff2ec9820 - languageName: node - linkType: hard - -"eslint@npm:^8.57.1": - version: 8.57.1 - resolution: "eslint@npm:8.57.1" - dependencies: - "@eslint-community/eslint-utils": "npm:^4.2.0" - "@eslint-community/regexpp": "npm:^4.6.1" - "@eslint/eslintrc": "npm:^2.1.4" - "@eslint/js": "npm:8.57.1" - "@humanwhocodes/config-array": "npm:^0.13.0" - "@humanwhocodes/module-importer": "npm:^1.0.1" - "@nodelib/fs.walk": "npm:^1.2.8" - "@ungap/structured-clone": "npm:^1.2.0" - ajv: "npm:^6.12.4" - chalk: "npm:^4.0.0" - cross-spawn: "npm:^7.0.2" - debug: "npm:^4.3.2" - doctrine: "npm:^3.0.0" - escape-string-regexp: "npm:^4.0.0" - eslint-scope: "npm:^7.2.2" - eslint-visitor-keys: "npm:^3.4.3" - espree: "npm:^9.6.1" - esquery: "npm:^1.4.2" - esutils: "npm:^2.0.2" - fast-deep-equal: "npm:^3.1.3" - file-entry-cache: "npm:^6.0.1" - find-up: "npm:^5.0.0" - glob-parent: "npm:^6.0.2" - globals: "npm:^13.19.0" - graphemer: "npm:^1.4.0" - ignore: "npm:^5.2.0" - imurmurhash: "npm:^0.1.4" - is-glob: "npm:^4.0.0" - is-path-inside: "npm:^3.0.3" - js-yaml: "npm:^4.1.0" - json-stable-stringify-without-jsonify: "npm:^1.0.1" - levn: "npm:^0.4.1" - lodash.merge: "npm:^4.6.2" - minimatch: "npm:^3.1.2" - natural-compare: "npm:^1.4.0" - optionator: "npm:^0.9.3" - strip-ansi: "npm:^6.0.1" - text-table: "npm:^0.2.0" - bin: - eslint: bin/eslint.js - checksum: 10c0/1fd31533086c1b72f86770a4d9d7058ee8b4643fd1cfd10c7aac1ecb8725698e88352a87805cf4b2ce890aa35947df4b4da9655fb7fdfa60dbb448a43f6ebcf1 - languageName: node - linkType: hard - -"espree@npm:^9.6.0, espree@npm:^9.6.1": - version: 9.6.1 - resolution: "espree@npm:9.6.1" - dependencies: - acorn: "npm:^8.9.0" - acorn-jsx: "npm:^5.3.2" - eslint-visitor-keys: "npm:^3.4.1" - checksum: 10c0/1a2e9b4699b715347f62330bcc76aee224390c28bb02b31a3752e9d07549c473f5f986720483c6469cf3cfb3c9d05df612ffc69eb1ee94b54b739e67de9bb460 - languageName: node - linkType: hard - -"esquery@npm:^1.4.2": - version: 1.6.0 - resolution: "esquery@npm:1.6.0" - dependencies: - estraverse: "npm:^5.1.0" - checksum: 10c0/cb9065ec605f9da7a76ca6dadb0619dfb611e37a81e318732977d90fab50a256b95fee2d925fba7c2f3f0523aa16f91587246693bc09bc34d5a59575fe6e93d2 - languageName: node - linkType: hard - -"esrecurse@npm:^4.3.0": - version: 4.3.0 - resolution: "esrecurse@npm:4.3.0" - dependencies: - estraverse: "npm:^5.2.0" - checksum: 10c0/81a37116d1408ded88ada45b9fb16dbd26fba3aadc369ce50fcaf82a0bac12772ebd7b24cd7b91fc66786bf2c1ac7b5f196bc990a473efff972f5cb338877cf5 - languageName: node - linkType: hard - -"estraverse@npm:^5.1.0, estraverse@npm:^5.2.0": - version: 5.3.0 - resolution: "estraverse@npm:5.3.0" - checksum: 10c0/1ff9447b96263dec95d6d67431c5e0771eb9776427421260a3e2f0fdd5d6bd4f8e37a7338f5ad2880c9f143450c9b1e4fc2069060724570a49cf9cf0312bd107 - languageName: node - linkType: hard - "estree-walker@npm:^3.0.3": version: 3.0.3 resolution: "estree-walker@npm:3.0.3" @@ -1948,13 +1978,6 @@ __metadata: languageName: node linkType: hard -"esutils@npm:^2.0.2": - version: 2.0.3 - resolution: "esutils@npm:2.0.3" - checksum: 10c0/9a2fe69a41bfdade834ba7c42de4723c97ec776e40656919c62cbd13607c45e127a003f05f724a1ea55e5029a4cf2de444b13009f2af71271e42d93a637137c7 - languageName: node - linkType: hard - "eventemitter3@npm:^5.0.1": version: 5.0.1 resolution: "eventemitter3@npm:5.0.1" @@ -1978,48 +2001,18 @@ __metadata: "extract-zip@npm:^2.0.1": version: 2.0.1 - resolution: "extract-zip@npm:2.0.1" - dependencies: - "@types/yauzl": "npm:^2.9.1" - debug: "npm:^4.1.1" - get-stream: "npm:^5.1.0" - yauzl: "npm:^2.10.0" - dependenciesMeta: - "@types/yauzl": - optional: true - bin: - extract-zip: cli.js - checksum: 10c0/9afbd46854aa15a857ae0341a63a92743a7b89c8779102c3b4ffc207516b2019337353962309f85c66ee3d9092202a83cdc26dbf449a11981272038443974aee - languageName: node - linkType: hard - -"fast-deep-equal@npm:^3.1.1, fast-deep-equal@npm:^3.1.3": - version: 3.1.3 - resolution: "fast-deep-equal@npm:3.1.3" - checksum: 10c0/40dedc862eb8992c54579c66d914635afbec43350afbbe991235fdcb4e3a8d5af1b23ae7e79bef7d4882d0ecee06c3197488026998fb19f72dc95acff1d1b1d0 - languageName: node - linkType: hard - -"fast-json-stable-stringify@npm:^2.0.0": - version: 2.1.0 - resolution: "fast-json-stable-stringify@npm:2.1.0" - checksum: 10c0/7f081eb0b8a64e0057b3bb03f974b3ef00135fbf36c1c710895cd9300f13c94ba809bb3a81cf4e1b03f6e5285610a61abbd7602d0652de423144dfee5a389c9b - languageName: node - linkType: hard - -"fast-levenshtein@npm:^2.0.6": - version: 2.0.6 - resolution: "fast-levenshtein@npm:2.0.6" - checksum: 10c0/111972b37338bcb88f7d9e2c5907862c280ebf4234433b95bc611e518d192ccb2d38119c4ac86e26b668d75f7f3894f4ff5c4982899afced7ca78633b08287c4 - languageName: node - linkType: hard - -"fastq@npm:^1.6.0": - version: 1.19.1 - resolution: "fastq@npm:1.19.1" + resolution: "extract-zip@npm:2.0.1" dependencies: - reusify: "npm:^1.0.4" - checksum: 10c0/ebc6e50ac7048daaeb8e64522a1ea7a26e92b3cee5cd1c7f2316cdca81ba543aa40a136b53891446ea5c3a67ec215fbaca87ad405f102dd97012f62916905630 + "@types/yauzl": "npm:^2.9.1" + debug: "npm:^4.1.1" + get-stream: "npm:^5.1.0" + yauzl: "npm:^2.10.0" + dependenciesMeta: + "@types/yauzl": + optional: true + bin: + extract-zip: cli.js + checksum: 10c0/9afbd46854aa15a857ae0341a63a92743a7b89c8779102c3b4ffc207516b2019337353962309f85c66ee3d9092202a83cdc26dbf449a11981272038443974aee languageName: node linkType: hard @@ -2044,15 +2037,6 @@ __metadata: languageName: node linkType: hard -"file-entry-cache@npm:^6.0.1": - version: 6.0.1 - resolution: "file-entry-cache@npm:6.0.1" - dependencies: - flat-cache: "npm:^3.0.4" - checksum: 10c0/58473e8a82794d01b38e5e435f6feaf648e3f36fdb3a56e98f417f4efae71ad1c0d4ebd8a9a7c50c3ad085820a93fc7494ad721e0e4ebc1da3573f4e1c3c7cdd - languageName: node - linkType: hard - "filename-reserved-regex@npm:^3.0.0": version: 3.0.0 resolution: "filename-reserved-regex@npm:3.0.0" @@ -2069,34 +2053,6 @@ __metadata: languageName: node linkType: hard -"find-up@npm:^5.0.0": - version: 5.0.0 - resolution: "find-up@npm:5.0.0" - dependencies: - locate-path: "npm:^6.0.0" - path-exists: "npm:^4.0.0" - checksum: 10c0/062c5a83a9c02f53cdd6d175a37ecf8f87ea5bbff1fdfb828f04bfa021441bc7583e8ebc0872a4c1baab96221fb8a8a275a19809fb93fbc40bd69ec35634069a - languageName: node - linkType: hard - -"flat-cache@npm:^3.0.4": - version: 3.2.0 - resolution: "flat-cache@npm:3.2.0" - dependencies: - flatted: "npm:^3.2.9" - keyv: "npm:^4.5.3" - rimraf: "npm:^3.0.2" - checksum: 10c0/b76f611bd5f5d68f7ae632e3ae503e678d205cf97a17c6ab5b12f6ca61188b5f1f7464503efae6dc18683ed8f0b41460beb48ac4b9ac63fe6201296a91ba2f75 - languageName: node - linkType: hard - -"flatted@npm:^3.2.9": - version: 3.4.2 - resolution: "flatted@npm:3.4.2" - checksum: 10c0/a65b67aae7172d6cdf63691be7de6c5cd5adbdfdfe2e9da1a09b617c9512ed794037741ee53d93114276bff3f93cd3b0d97d54f9b316e1e4885dde6e9ffdf7ed - languageName: node - linkType: hard - "foreground-child@npm:^3.1.0": version: 3.3.1 resolution: "foreground-child@npm:3.3.1" @@ -2149,13 +2105,6 @@ __metadata: languageName: node linkType: hard -"fs.realpath@npm:^1.0.0": - version: 1.0.0 - resolution: "fs.realpath@npm:1.0.0" - checksum: 10c0/444cf1291d997165dfd4c0d58b69f0e4782bfd9149fd72faa4fe299e68e0e93d6db941660b37dd29153bf7186672ececa3b50b7e7249477b03fdf850f287c948 - languageName: node - linkType: hard - "fsevents@npm:~2.3.2, fsevents@npm:~2.3.3": version: 2.3.3 resolution: "fsevents@npm:2.3.3" @@ -2205,15 +2154,6 @@ __metadata: languageName: node linkType: hard -"glob-parent@npm:^6.0.2": - version: 6.0.2 - resolution: "glob-parent@npm:6.0.2" - dependencies: - is-glob: "npm:^4.0.3" - checksum: 10c0/317034d88654730230b3f43bb7ad4f7c90257a426e872ea0bf157473ac61c99bf5d205fad8f0185f989be8d2fa6d3c7dce1645d99d545b6ea9089c39f838e7f8 - languageName: node - linkType: hard - "glob@npm:^10.2.2": version: 10.5.0 resolution: "glob@npm:10.5.0" @@ -2230,20 +2170,6 @@ __metadata: languageName: node linkType: hard -"glob@npm:^7.1.3": - version: 7.2.3 - resolution: "glob@npm:7.2.3" - dependencies: - fs.realpath: "npm:^1.0.0" - inflight: "npm:^1.0.4" - inherits: "npm:2" - minimatch: "npm:^3.1.1" - once: "npm:^1.3.0" - path-is-absolute: "npm:^1.0.0" - checksum: 10c0/65676153e2b0c9095100fe7f25a778bf45608eeb32c6048cf307f579649bcc30353277b3b898a3792602c65764e5baa4f643714dfbdfd64ea271d210c7a425fe - languageName: node - linkType: hard - "global-agent@npm:^3.0.0": version: 3.0.0 resolution: "global-agent@npm:3.0.0" @@ -2258,15 +2184,6 @@ __metadata: languageName: node linkType: hard -"globals@npm:^13.19.0": - version: 13.24.0 - resolution: "globals@npm:13.24.0" - dependencies: - type-fest: "npm:^0.20.2" - checksum: 10c0/d3c11aeea898eb83d5ec7a99508600fbe8f83d2cf00cbb77f873dbf2bcb39428eff1b538e4915c993d8a3b3473fa71eeebfe22c9bb3a3003d1e26b1f2c8a42cd - languageName: node - linkType: hard - "globalthis@npm:^1.0.1": version: 1.0.4 resolution: "globalthis@npm:1.0.4" @@ -2310,13 +2227,6 @@ __metadata: languageName: node linkType: hard -"graphemer@npm:^1.4.0": - version: 1.4.0 - resolution: "graphemer@npm:1.4.0" - checksum: 10c0/e951259d8cd2e0d196c72ec711add7115d42eb9a8146c8eeda5b8d3ac91e5dd816b9cd68920726d9fd4490368e7ed86e9c423f40db87e2d8dfafa00fa17c3a31 - languageName: node - linkType: hard - "has-flag@npm:^4.0.0": version: 4.0.0 resolution: "has-flag@npm:4.0.0" @@ -2402,13 +2312,6 @@ __metadata: languageName: node linkType: hard -"ignore@npm:^5.2.0": - version: 5.3.2 - resolution: "ignore@npm:5.3.2" - checksum: 10c0/f9f652c957983634ded1e7f02da3b559a0d4cc210fca3792cb67f1b153623c9c42efdc1c4121af171e295444459fc4a9201101fb041b1104a3c000bccb188337 - languageName: node - linkType: hard - "ignore@npm:^7.0.4": version: 7.0.5 resolution: "ignore@npm:7.0.5" @@ -2416,16 +2319,6 @@ __metadata: languageName: node linkType: hard -"import-fresh@npm:^3.2.1": - version: 3.3.1 - resolution: "import-fresh@npm:3.3.1" - dependencies: - parent-module: "npm:^1.0.0" - resolve-from: "npm:^4.0.0" - checksum: 10c0/bf8cc494872fef783249709385ae883b447e3eb09db0ebd15dcead7d9afe7224dad7bd7591c6b73b0b19b3c0f9640eb8ee884f01cfaf2887ab995b0b36a0cbec - languageName: node - linkType: hard - "imurmurhash@npm:^0.1.4": version: 0.1.4 resolution: "imurmurhash@npm:0.1.4" @@ -2433,17 +2326,7 @@ __metadata: languageName: node linkType: hard -"inflight@npm:^1.0.4": - version: 1.0.6 - resolution: "inflight@npm:1.0.6" - dependencies: - once: "npm:^1.3.0" - wrappy: "npm:1" - checksum: 10c0/7faca22584600a9dc5b9fca2cd5feb7135ac8c935449837b315676b4c90aa4f391ec4f42240178244b5a34e8bede1948627fda392ca3191522fc46b34e985ab2 - languageName: node - linkType: hard - -"inherits@npm:2, inherits@npm:^2.0.3, inherits@npm:^2.0.4": +"inherits@npm:^2.0.3, inherits@npm:^2.0.4": version: 2.0.4 resolution: "inherits@npm:2.0.4" checksum: 10c0/4e531f648b29039fb7426fb94075e6545faa1eb9fe83c29f0b6d9e7263aceb4289d2d4557db0d428188eeb449cc7c5e77b0a0b2c4e248ff2a65933a0dee49ef2 @@ -2497,13 +2380,6 @@ __metadata: languageName: node linkType: hard -"is-extglob@npm:^2.1.1": - version: 2.1.1 - resolution: "is-extglob@npm:2.1.1" - checksum: 10c0/5487da35691fbc339700bbb2730430b07777a3c21b9ebaecb3072512dfd7b4ba78ac2381a87e8d78d20ea08affb3f1971b4af629173a6bf435ff8a4c47747912 - languageName: node - linkType: hard - "is-fullwidth-code-point@npm:^3.0.0": version: 3.0.0 resolution: "is-fullwidth-code-point@npm:3.0.0" @@ -2520,15 +2396,6 @@ __metadata: languageName: node linkType: hard -"is-glob@npm:^4.0.0, is-glob@npm:^4.0.3": - version: 4.0.3 - resolution: "is-glob@npm:4.0.3" - dependencies: - is-extglob: "npm:^2.1.1" - checksum: 10c0/17fb4014e22be3bbecea9b2e3a76e9e34ff645466be702f1693e8f1ee1adac84710d0be0bd9f967d6354036fd51ab7c2741d954d6e91dae6bb69714de92c197a - languageName: node - linkType: hard - "is-interactive@npm:^1.0.0": version: 1.0.0 resolution: "is-interactive@npm:1.0.0" @@ -2543,13 +2410,6 @@ __metadata: languageName: node linkType: hard -"is-path-inside@npm:^3.0.3": - version: 3.0.3 - resolution: "is-path-inside@npm:3.0.3" - checksum: 10c0/cf7d4ac35fb96bab6a1d2c3598fe5ebb29aafb52c0aaa482b5a3ed9d8ba3edc11631e3ec2637660c44b3ce0e61a08d54946e8af30dec0b60a7c27296c68ffd05 - languageName: node - linkType: hard - "is-unicode-supported@npm:^0.1.0": version: 0.1.0 resolution: "is-unicode-supported@npm:0.1.0" @@ -2633,17 +2493,6 @@ __metadata: languageName: node linkType: hard -"js-yaml@npm:^4.1.0": - version: 4.1.1 - resolution: "js-yaml@npm:4.1.1" - dependencies: - argparse: "npm:^2.0.1" - bin: - js-yaml: bin/js-yaml.js - checksum: 10c0/561c7d7088c40a9bb53cc75becbfb1df6ae49b34b5e6e5a81744b14ae8667ec564ad2527709d1a6e7d5e5fa6d483aa0f373a50ad98d42fde368ec4a190d4fae7 - languageName: node - linkType: hard - "json-buffer@npm:3.0.1": version: 3.0.1 resolution: "json-buffer@npm:3.0.1" @@ -2651,20 +2500,6 @@ __metadata: languageName: node linkType: hard -"json-schema-traverse@npm:^0.4.1": - version: 0.4.1 - resolution: "json-schema-traverse@npm:0.4.1" - checksum: 10c0/108fa90d4cc6f08243aedc6da16c408daf81793bf903e9fd5ab21983cda433d5d2da49e40711da016289465ec2e62e0324dcdfbc06275a607fe3233fde4942ce - languageName: node - linkType: hard - -"json-stable-stringify-without-jsonify@npm:^1.0.1": - version: 1.0.1 - resolution: "json-stable-stringify-without-jsonify@npm:1.0.1" - checksum: 10c0/cb168b61fd4de83e58d09aaa6425ef71001bae30d260e2c57e7d09a5fd82223e2f22a042dedaab8db23b7d9ae46854b08bb1f91675a8be11c5cffebef5fb66a5 - languageName: node - linkType: hard - "json-stringify-safe@npm:^5.0.1": version: 5.0.1 resolution: "json-stringify-safe@npm:5.0.1" @@ -2697,7 +2532,7 @@ __metadata: languageName: node linkType: hard -"keyv@npm:^4.0.0, keyv@npm:^4.5.3": +"keyv@npm:^4.0.0": version: 4.5.4 resolution: "keyv@npm:4.5.4" dependencies: @@ -2706,16 +2541,6 @@ __metadata: languageName: node linkType: hard -"levn@npm:^0.4.1": - version: 0.4.1 - resolution: "levn@npm:0.4.1" - dependencies: - prelude-ls: "npm:^1.2.1" - type-check: "npm:~0.4.0" - checksum: 10c0/effb03cad7c89dfa5bd4f6989364bfc79994c2042ec5966cb9b95990e2edee5cd8969ddf42616a0373ac49fac1403437deaf6e9050fbbaa3546093a59b9ac94e - languageName: node - linkType: hard - "lifecycle-utils@npm:^2.0.1": version: 2.1.0 resolution: "lifecycle-utils@npm:2.1.0" @@ -2760,15 +2585,6 @@ __metadata: languageName: node linkType: hard -"locate-path@npm:^6.0.0": - version: 6.0.0 - resolution: "locate-path@npm:6.0.0" - dependencies: - p-locate: "npm:^5.0.0" - checksum: 10c0/d3972ab70dfe58ce620e64265f90162d247e87159b6126b01314dd67be43d50e96a50b517bce2d9452a79409c7614054c277b5232377de50416564a77ac7aad3 - languageName: node - linkType: hard - "lodash.debounce@npm:^4.0.8": version: 4.0.8 resolution: "lodash.debounce@npm:4.0.8" @@ -2776,13 +2592,6 @@ __metadata: languageName: node linkType: hard -"lodash.merge@npm:^4.6.2": - version: 4.6.2 - resolution: "lodash.merge@npm:4.6.2" - checksum: 10c0/402fa16a1edd7538de5b5903a90228aa48eb5533986ba7fa26606a49db2572bf414ff73a2c9f5d5fd36b31c46a5d5c7e1527749c07cbcf965ccff5fbdf32c506 - languageName: node - linkType: hard - "log-symbols@npm:^4.1.0": version: 4.1.0 resolution: "log-symbols@npm:4.1.0" @@ -2924,15 +2733,6 @@ __metadata: languageName: node linkType: hard -"minimatch@npm:^3.0.5, minimatch@npm:^3.1.1, minimatch@npm:^3.1.2": - version: 3.1.5 - resolution: "minimatch@npm:3.1.5" - dependencies: - brace-expansion: "npm:^1.1.7" - checksum: 10c0/2ecbdc0d33f07bddb0315a8b5afbcb761307a8778b48f0b312418ccbced99f104a2d17d8aca7573433c70e8ccd1c56823a441897a45e384ea76ef401a26ace70 - languageName: node - linkType: hard - "minimatch@npm:^9.0.4": version: 9.0.9 resolution: "minimatch@npm:9.0.9" @@ -3050,13 +2850,6 @@ __metadata: languageName: node linkType: hard -"natural-compare@npm:^1.4.0": - version: 1.4.0 - resolution: "natural-compare@npm:1.4.0" - checksum: 10c0/f5f9a7974bfb28a91afafa254b197f0f22c684d4a1731763dda960d2c8e375b36c7d690e0d9dc8fba774c537af14a7e979129bca23d88d052fbeb9466955e447 - languageName: node - linkType: hard - "negotiator@npm:^1.0.0": version: 1.0.0 resolution: "negotiator@npm:1.0.0" @@ -3234,7 +3027,7 @@ __metadata: languageName: node linkType: hard -"once@npm:^1.3.0, once@npm:^1.3.1, once@npm:^1.4.0": +"once@npm:^1.3.1, once@npm:^1.4.0": version: 1.4.0 resolution: "once@npm:1.4.0" dependencies: @@ -3261,20 +3054,6 @@ __metadata: languageName: node linkType: hard -"optionator@npm:^0.9.3": - version: 0.9.4 - resolution: "optionator@npm:0.9.4" - dependencies: - deep-is: "npm:^0.1.3" - fast-levenshtein: "npm:^2.0.6" - levn: "npm:^0.4.1" - prelude-ls: "npm:^1.2.1" - type-check: "npm:^0.4.0" - word-wrap: "npm:^1.2.5" - checksum: 10c0/4afb687a059ee65b61df74dfe87d8d6815cd6883cb8b3d5883a910df72d0f5d029821f37025e4bccf4048873dbdb09acc6d303d27b8f76b1a80dd5a7d5334675 - languageName: node - linkType: hard - "ora@npm:^5.1.0": version: 5.4.1 resolution: "ora@npm:5.4.1" @@ -3308,28 +3087,181 @@ __metadata: languageName: node linkType: hard -"p-cancelable@npm:^2.0.0": - version: 2.1.1 - resolution: "p-cancelable@npm:2.1.1" - checksum: 10c0/8c6dc1f8dd4154fd8b96a10e55a3a832684c4365fb9108056d89e79fbf21a2465027c04a59d0d797b5ffe10b54a61a32043af287d5c4860f1e996cbdbc847f01 +"oxfmt@npm:^0.44.0": + version: 0.44.0 + resolution: "oxfmt@npm:0.44.0" + dependencies: + "@oxfmt/binding-android-arm-eabi": "npm:0.44.0" + "@oxfmt/binding-android-arm64": "npm:0.44.0" + "@oxfmt/binding-darwin-arm64": "npm:0.44.0" + "@oxfmt/binding-darwin-x64": "npm:0.44.0" + "@oxfmt/binding-freebsd-x64": "npm:0.44.0" + "@oxfmt/binding-linux-arm-gnueabihf": "npm:0.44.0" + "@oxfmt/binding-linux-arm-musleabihf": "npm:0.44.0" + "@oxfmt/binding-linux-arm64-gnu": "npm:0.44.0" + "@oxfmt/binding-linux-arm64-musl": "npm:0.44.0" + "@oxfmt/binding-linux-ppc64-gnu": "npm:0.44.0" + "@oxfmt/binding-linux-riscv64-gnu": "npm:0.44.0" + "@oxfmt/binding-linux-riscv64-musl": "npm:0.44.0" + "@oxfmt/binding-linux-s390x-gnu": "npm:0.44.0" + "@oxfmt/binding-linux-x64-gnu": "npm:0.44.0" + "@oxfmt/binding-linux-x64-musl": "npm:0.44.0" + "@oxfmt/binding-openharmony-arm64": "npm:0.44.0" + "@oxfmt/binding-win32-arm64-msvc": "npm:0.44.0" + "@oxfmt/binding-win32-ia32-msvc": "npm:0.44.0" + "@oxfmt/binding-win32-x64-msvc": "npm:0.44.0" + tinypool: "npm:2.1.0" + dependenciesMeta: + "@oxfmt/binding-android-arm-eabi": + optional: true + "@oxfmt/binding-android-arm64": + optional: true + "@oxfmt/binding-darwin-arm64": + optional: true + "@oxfmt/binding-darwin-x64": + optional: true + "@oxfmt/binding-freebsd-x64": + optional: true + "@oxfmt/binding-linux-arm-gnueabihf": + optional: true + "@oxfmt/binding-linux-arm-musleabihf": + optional: true + "@oxfmt/binding-linux-arm64-gnu": + optional: true + "@oxfmt/binding-linux-arm64-musl": + optional: true + "@oxfmt/binding-linux-ppc64-gnu": + optional: true + "@oxfmt/binding-linux-riscv64-gnu": + optional: true + "@oxfmt/binding-linux-riscv64-musl": + optional: true + "@oxfmt/binding-linux-s390x-gnu": + optional: true + "@oxfmt/binding-linux-x64-gnu": + optional: true + "@oxfmt/binding-linux-x64-musl": + optional: true + "@oxfmt/binding-openharmony-arm64": + optional: true + "@oxfmt/binding-win32-arm64-msvc": + optional: true + "@oxfmt/binding-win32-ia32-msvc": + optional: true + "@oxfmt/binding-win32-x64-msvc": + optional: true + bin: + oxfmt: bin/oxfmt + checksum: 10c0/c4e0239ff9c7480a820cffd43a805a70df1b4569bdae5c253a0547f93a48ab70bb22454487c50529a5e6b2080717d15db981a52a99da7d6b55fa365c9b03fdb9 languageName: node linkType: hard -"p-limit@npm:^3.0.2": - version: 3.1.0 - resolution: "p-limit@npm:3.1.0" +"oxlint-tsgolint@npm:^0.20.0": + version: 0.20.0 + resolution: "oxlint-tsgolint@npm:0.20.0" dependencies: - yocto-queue: "npm:^0.1.0" - checksum: 10c0/9db675949dbdc9c3763c89e748d0ef8bdad0afbb24d49ceaf4c46c02c77d30db4e0652ed36d0a0a7a95154335fab810d95c86153105bb73b3a90448e2bb14e1a + "@oxlint-tsgolint/darwin-arm64": "npm:0.20.0" + "@oxlint-tsgolint/darwin-x64": "npm:0.20.0" + "@oxlint-tsgolint/linux-arm64": "npm:0.20.0" + "@oxlint-tsgolint/linux-x64": "npm:0.20.0" + "@oxlint-tsgolint/win32-arm64": "npm:0.20.0" + "@oxlint-tsgolint/win32-x64": "npm:0.20.0" + dependenciesMeta: + "@oxlint-tsgolint/darwin-arm64": + optional: true + "@oxlint-tsgolint/darwin-x64": + optional: true + "@oxlint-tsgolint/linux-arm64": + optional: true + "@oxlint-tsgolint/linux-x64": + optional: true + "@oxlint-tsgolint/win32-arm64": + optional: true + "@oxlint-tsgolint/win32-x64": + optional: true + bin: + tsgolint: bin/tsgolint.js + checksum: 10c0/9521a8e6aaea637592cda093bfb9220eb8a728bfccc980cc82de0011ed84733f1a42c629dfff8574a023e40e48c2dcdaf1675f0cf11aa92d164d5ccca1305c52 + languageName: node + linkType: hard + +"oxlint@npm:^1.59.0": + version: 1.59.0 + resolution: "oxlint@npm:1.59.0" + dependencies: + "@oxlint/binding-android-arm-eabi": "npm:1.59.0" + "@oxlint/binding-android-arm64": "npm:1.59.0" + "@oxlint/binding-darwin-arm64": "npm:1.59.0" + "@oxlint/binding-darwin-x64": "npm:1.59.0" + "@oxlint/binding-freebsd-x64": "npm:1.59.0" + "@oxlint/binding-linux-arm-gnueabihf": "npm:1.59.0" + "@oxlint/binding-linux-arm-musleabihf": "npm:1.59.0" + "@oxlint/binding-linux-arm64-gnu": "npm:1.59.0" + "@oxlint/binding-linux-arm64-musl": "npm:1.59.0" + "@oxlint/binding-linux-ppc64-gnu": "npm:1.59.0" + "@oxlint/binding-linux-riscv64-gnu": "npm:1.59.0" + "@oxlint/binding-linux-riscv64-musl": "npm:1.59.0" + "@oxlint/binding-linux-s390x-gnu": "npm:1.59.0" + "@oxlint/binding-linux-x64-gnu": "npm:1.59.0" + "@oxlint/binding-linux-x64-musl": "npm:1.59.0" + "@oxlint/binding-openharmony-arm64": "npm:1.59.0" + "@oxlint/binding-win32-arm64-msvc": "npm:1.59.0" + "@oxlint/binding-win32-ia32-msvc": "npm:1.59.0" + "@oxlint/binding-win32-x64-msvc": "npm:1.59.0" + peerDependencies: + oxlint-tsgolint: ">=0.18.0" + dependenciesMeta: + "@oxlint/binding-android-arm-eabi": + optional: true + "@oxlint/binding-android-arm64": + optional: true + "@oxlint/binding-darwin-arm64": + optional: true + "@oxlint/binding-darwin-x64": + optional: true + "@oxlint/binding-freebsd-x64": + optional: true + "@oxlint/binding-linux-arm-gnueabihf": + optional: true + "@oxlint/binding-linux-arm-musleabihf": + optional: true + "@oxlint/binding-linux-arm64-gnu": + optional: true + "@oxlint/binding-linux-arm64-musl": + optional: true + "@oxlint/binding-linux-ppc64-gnu": + optional: true + "@oxlint/binding-linux-riscv64-gnu": + optional: true + "@oxlint/binding-linux-riscv64-musl": + optional: true + "@oxlint/binding-linux-s390x-gnu": + optional: true + "@oxlint/binding-linux-x64-gnu": + optional: true + "@oxlint/binding-linux-x64-musl": + optional: true + "@oxlint/binding-openharmony-arm64": + optional: true + "@oxlint/binding-win32-arm64-msvc": + optional: true + "@oxlint/binding-win32-ia32-msvc": + optional: true + "@oxlint/binding-win32-x64-msvc": + optional: true + peerDependenciesMeta: + oxlint-tsgolint: + optional: true + bin: + oxlint: bin/oxlint + checksum: 10c0/68614addf6b6a95df8a0c8ba764ee09d2d6d1693b55b62a4f31eda3be63915d24666a11b31dfe1fabbe88e1d7ab814243a1e7ecb40db87d0f567135d17f44e2c languageName: node linkType: hard -"p-locate@npm:^5.0.0": - version: 5.0.0 - resolution: "p-locate@npm:5.0.0" - dependencies: - p-limit: "npm:^3.0.2" - checksum: 10c0/2290d627ab7903b8b70d11d384fee714b797f6040d9278932754a6860845c4d3190603a0772a663c8cb5a7b21d1b16acb3a6487ebcafa9773094edc3dfe6009a +"p-cancelable@npm:^2.0.0": + version: 2.1.1 + resolution: "p-cancelable@npm:2.1.1" + checksum: 10c0/8c6dc1f8dd4154fd8b96a10e55a3a832684c4365fb9108056d89e79fbf21a2465027c04a59d0d797b5ffe10b54a61a32043af287d5c4860f1e996cbdbc847f01 languageName: node linkType: hard @@ -3347,15 +3279,6 @@ __metadata: languageName: node linkType: hard -"parent-module@npm:^1.0.0": - version: 1.0.1 - resolution: "parent-module@npm:1.0.1" - dependencies: - callsites: "npm:^3.0.0" - checksum: 10c0/c63d6e80000d4babd11978e0d3fee386ca7752a02b035fd2435960ffaa7219dc42146f07069fb65e6e8bf1caef89daf9af7535a39bddf354d78bf50d8294f556 - languageName: node - linkType: hard - "parse-ms@npm:^3.0.0": version: 3.0.0 resolution: "parse-ms@npm:3.0.0" @@ -3370,20 +3293,6 @@ __metadata: languageName: node linkType: hard -"path-exists@npm:^4.0.0": - version: 4.0.0 - resolution: "path-exists@npm:4.0.0" - checksum: 10c0/8c0bd3f5238188197dc78dced15207a4716c51cc4e3624c44fc97acf69558f5ebb9a2afff486fe1b4ee148e0c133e96c5e11a9aa5c48a3006e3467da070e5e1b - languageName: node - linkType: hard - -"path-is-absolute@npm:^1.0.0": - version: 1.0.1 - resolution: "path-is-absolute@npm:1.0.1" - checksum: 10c0/127da03c82172a2a50099cddbf02510c1791fc2cc5f7713ddb613a56838db1e8168b121a920079d052e0936c23005562059756d653b7c544c53185efe53be078 - languageName: node - linkType: hard - "path-key@npm:^3.1.0": version: 3.1.1 resolution: "path-key@npm:3.1.1" @@ -3440,22 +3349,6 @@ __metadata: languageName: node linkType: hard -"prelude-ls@npm:^1.2.1": - version: 1.2.1 - resolution: "prelude-ls@npm:1.2.1" - checksum: 10c0/b00d617431e7886c520a6f498a2e14c75ec58f6d93ba48c3b639cf241b54232d90daa05d83a9e9b9fef6baa63cb7e1e4602c2372fea5bc169668401eb127d0cd - languageName: node - linkType: hard - -"prettier@npm:^3.5.2": - version: 3.6.2 - resolution: "prettier@npm:3.6.2" - bin: - prettier: bin/prettier.cjs - checksum: 10c0/488cb2f2b99ec13da1e50074912870217c11edaddedeadc649b1244c749d15ba94e846423d062e2c4c9ae683e2d65f754de28889ba06e697ac4f988d44f45812 - languageName: node - linkType: hard - "pretty-bytes@npm:^6.1.0": version: 6.1.1 resolution: "pretty-bytes@npm:6.1.1" @@ -3526,20 +3419,6 @@ __metadata: languageName: node linkType: hard -"punycode@npm:^2.1.0": - version: 2.3.1 - resolution: "punycode@npm:2.3.1" - checksum: 10c0/14f76a8206bc3464f794fb2e3d3cc665ae416c01893ad7a02b23766eb07159144ee612ad67af5e84fa4479ccfe67678c4feb126b0485651b302babf66f04f9e9 - languageName: node - linkType: hard - -"queue-microtask@npm:^1.2.2": - version: 1.2.3 - resolution: "queue-microtask@npm:1.2.3" - checksum: 10c0/900a93d3cdae3acd7d16f642c29a642aea32c2026446151f0778c62ac089d4b8e6c986811076e1ae180a694cedf077d453a11b58ff0a865629a4f82ab558e102 - languageName: node - linkType: hard - "quick-lru@npm:^5.1.1": version: 5.1.1 resolution: "quick-lru@npm:5.1.1" @@ -3597,13 +3476,6 @@ __metadata: languageName: node linkType: hard -"resolve-from@npm:^4.0.0": - version: 4.0.0 - resolution: "resolve-from@npm:4.0.0" - checksum: 10c0/8408eec31a3112ef96e3746c37be7d64020cda07c03a920f5024e77290a218ea758b26ca9529fd7b1ad283947f34b2291c1c0f6aa0ed34acfdda9c6014c8d190 - languageName: node - linkType: hard - "responselike@npm:^2.0.0": version: 2.0.1 resolution: "responselike@npm:2.0.1" @@ -3647,13 +3519,6 @@ __metadata: languageName: node linkType: hard -"reusify@npm:^1.0.4": - version: 1.1.0 - resolution: "reusify@npm:1.1.0" - checksum: 10c0/4eff0d4a5f9383566c7d7ec437b671cc51b25963bd61bf127c3f3d3f68e44a026d99b8d2f1ad344afff8d278a8fe70a8ea092650a716d22287e8bef7126bb2fa - languageName: node - linkType: hard - "rfdc@npm:^1.4.1": version: 1.4.1 resolution: "rfdc@npm:1.4.1" @@ -3661,17 +3526,6 @@ __metadata: languageName: node linkType: hard -"rimraf@npm:^3.0.2": - version: 3.0.2 - resolution: "rimraf@npm:3.0.2" - dependencies: - glob: "npm:^7.1.3" - bin: - rimraf: bin.js - checksum: 10c0/9cb7757acb489bd83757ba1a274ab545eafd75598a9d817e0c3f8b164238dd90eba50d6b848bd4dcc5f3040912e882dc7ba71653e35af660d77b25c381d402e8 - languageName: node - linkType: hard - "roarr@npm:^2.15.3": version: 2.15.4 resolution: "roarr@npm:2.15.4" @@ -3776,15 +3630,6 @@ __metadata: languageName: node linkType: hard -"run-parallel@npm:^1.1.9": - version: 1.2.0 - resolution: "run-parallel@npm:1.2.0" - dependencies: - queue-microtask: "npm:^1.2.2" - checksum: 10c0/200b5ab25b5b8b7113f9901bfe3afc347e19bb7475b267d55ad0eb86a62a46d77510cb0f232507c9e5d497ebda569a08a9867d0d14f57a82ad5564d991588b39 - languageName: node - linkType: hard - "safe-buffer@npm:~5.2.0": version: 5.2.1 resolution: "safe-buffer@npm:5.2.1" @@ -4094,13 +3939,6 @@ __metadata: languageName: node linkType: hard -"strip-json-comments@npm:^3.1.1": - version: 3.1.1 - resolution: "strip-json-comments@npm:3.1.1" - checksum: 10c0/9681a6257b925a7fa0f285851c0e613cc934a50661fa7bb41ca9cbbff89686bb4a0ee366e6ecedc4daafd01e83eee0720111ab294366fe7c185e935475ebcecd - languageName: node - linkType: hard - "strip-json-comments@npm:~2.0.1": version: 2.0.1 resolution: "strip-json-comments@npm:2.0.1" @@ -4139,13 +3977,6 @@ __metadata: languageName: node linkType: hard -"text-table@npm:^0.2.0": - version: 0.2.0 - resolution: "text-table@npm:0.2.0" - checksum: 10c0/02805740c12851ea5982686810702e2f14369a5f4c5c40a836821e3eefc65ffeec3131ba324692a37608294b0fd8c1e55a2dd571ffed4909822787668ddbee5c - languageName: node - linkType: hard - "tinybench@npm:^2.9.0": version: 2.9.0 resolution: "tinybench@npm:2.9.0" @@ -4177,6 +4008,13 @@ __metadata: languageName: node linkType: hard +"tinypool@npm:2.1.0": + version: 2.1.0 + resolution: "tinypool@npm:2.1.0" + checksum: 10c0/9fb1c760558c6264e0f4cfde96a63b12450b43f1730fbe6274aa24ddbdf488745c08924d0dea7a1303b47d555416a6415f2113898c69b6ecf731e75ac95238a5 + languageName: node + linkType: hard + "tinyrainbow@npm:^3.0.3": version: 3.0.3 resolution: "tinyrainbow@npm:3.0.3" @@ -4184,15 +4022,6 @@ __metadata: languageName: node linkType: hard -"type-check@npm:^0.4.0, type-check@npm:~0.4.0": - version: 0.4.0 - resolution: "type-check@npm:0.4.0" - dependencies: - prelude-ls: "npm:^1.2.1" - checksum: 10c0/7b3fd0ed43891e2080bf0c5c504b418fbb3e5c7b9708d3d015037ba2e6323a28152ec163bcb65212741fa5d2022e3075ac3c76440dbd344c9035f818e8ecee58 - languageName: node - linkType: hard - "type-fest@npm:^0.13.1": version: 0.13.1 resolution: "type-fest@npm:0.13.1" @@ -4200,30 +4029,23 @@ __metadata: languageName: node linkType: hard -"type-fest@npm:^0.20.2": - version: 0.20.2 - resolution: "type-fest@npm:0.20.2" - checksum: 10c0/dea9df45ea1f0aaa4e2d3bed3f9a0bfe9e5b2592bddb92eb1bf06e50bcf98dbb78189668cd8bc31a0511d3fc25539b4cd5c704497e53e93e2d40ca764b10bfc3 - languageName: node - linkType: hard - -"typescript@npm:^5.7.3": - version: 5.9.3 - resolution: "typescript@npm:5.9.3" +"typescript@npm:^6.0.2": + version: 6.0.2 + resolution: "typescript@npm:6.0.2" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: 10c0/6bd7552ce39f97e711db5aa048f6f9995b53f1c52f7d8667c1abdc1700c68a76a308f579cd309ce6b53646deb4e9a1be7c813a93baaf0a28ccd536a30270e1c5 + checksum: 10c0/4b860b0bf87cc0fee0f66d8ef2640b5a8a8a8c74d1129adb82e389e5f97124383823c47946bef8a73ede371461143a3aa8544399d2133c7b2e4f07e81860af7f languageName: node linkType: hard -"typescript@patch:typescript@npm%3A^5.7.3#optional!builtin": - version: 5.9.3 - resolution: "typescript@patch:typescript@npm%3A5.9.3#optional!builtin::version=5.9.3&hash=5786d5" +"typescript@patch:typescript@npm%3A^6.0.2#optional!builtin": + version: 6.0.2 + resolution: "typescript@patch:typescript@npm%3A6.0.2#optional!builtin::version=6.0.2&hash=5786d5" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: 10c0/ad09fdf7a756814dce65bc60c1657b40d44451346858eea230e10f2e95a289d9183b6e32e5c11e95acc0ccc214b4f36289dcad4bf1886b0adb84d711d336a430 + checksum: 10c0/49f0b84fc6ca55653e77752b8a61beabc09ee3dae5d965c31596225aa6ef213c5727b1d2e895b900416dc603854ba0872ac4a812c2a4ed6793a601f9c675de02 languageName: node linkType: hard @@ -4273,15 +4095,6 @@ __metadata: languageName: node linkType: hard -"uri-js@npm:^4.2.2": - version: 4.4.1 - resolution: "uri-js@npm:4.4.1" - dependencies: - punycode: "npm:^2.1.0" - checksum: 10c0/4ef57b45aa820d7ac6496e9208559986c665e49447cb072744c13b66925a362d96dd5a46c4530a6b8e203e5db5fe849369444440cb22ecfc26c679359e5dfa3c - languageName: node - linkType: hard - "url-join@npm:^4.0.1": version: 4.0.1 resolution: "url-join@npm:4.0.1" @@ -4471,13 +4284,6 @@ __metadata: languageName: node linkType: hard -"word-wrap@npm:^1.2.5": - version: 1.2.5 - resolution: "word-wrap@npm:1.2.5" - checksum: 10c0/e0e4a1ca27599c92a6ca4c32260e8a92e8a44f4ef6ef93f803f8ed823f486e0889fc0b93be4db59c8d51b3064951d25e43d434e95dc8c960cc3a63d65d00ba20 - languageName: node - linkType: hard - "wrap-ansi-cjs@npm:wrap-ansi@^7.0.0, wrap-ansi@npm:^7.0.0": version: 7.0.0 resolution: "wrap-ansi@npm:7.0.0" @@ -4580,13 +4386,6 @@ __metadata: languageName: node linkType: hard -"yocto-queue@npm:^0.1.0": - version: 0.1.0 - resolution: "yocto-queue@npm:0.1.0" - checksum: 10c0/dceb44c28578b31641e13695d200d34ec4ab3966a5729814d5445b194933c096b7ced71494ce53a0e8820685d1d010df8b2422e5bf2cdea7e469d97ffbea306f - languageName: node - linkType: hard - "yoctocolors@npm:^2.1.1": version: 2.1.2 resolution: "yoctocolors@npm:2.1.2"