From 470384bf80e0bfb3886ac846cf51d19cf88e5a29 Mon Sep 17 00:00:00 2001 From: altair823 Date: Sat, 9 May 2026 14:00:50 +0900 Subject: [PATCH 1/6] =?UTF-8?q?feat(v028):=20inkling-media://=20custom=20p?= =?UTF-8?q?rotocol=20+=20path=20traversal=20=EA=B2=80=EC=82=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - registerSchemesAsPrivileged: inkling-media 스킴을 secure + supportFetchAPI + stream 으로 등록 (whenReady 이전 호출 필수). - registerInklingMediaProtocol: profileDir/media 하위 파일을 raw URL traversal (.., %2e%2e) 검사 + normalize 후 mediaRoot 봉쇄로 이중 검증 후 readFile. - inferMime: png/jpg/jpeg/gif/webp → image/*, 그 외 → application/octet-stream. - src/main/index.ts: 모듈 import 직후 registerSchemesAsPrivileged(), whenReady 안 paths 결정 직후 registerInklingMediaProtocol(paths.profileDir). - tests/unit/inklingMedia.test.ts: 8 unit (5 inferMime + 3 handler — valid/403/404). vitest 의 new Request() 가 url 을 normalize 하므로 raw url 보존을 위해 minimal mock req 사용. --- src/main/index.ts | 9 ++++ src/main/protocol/inklingMedia.ts | 53 ++++++++++++++++++++++ tests/unit/inklingMedia.test.ts | 74 +++++++++++++++++++++++++++++++ 3 files changed, 136 insertions(+) create mode 100644 src/main/protocol/inklingMedia.ts create mode 100644 tests/unit/inklingMedia.test.ts diff --git a/src/main/index.ts b/src/main/index.ts index 52f9f4a..9dd7611 100644 --- a/src/main/index.ts +++ b/src/main/index.ts @@ -33,11 +33,17 @@ import { SyncService } from './services/SyncService.js'; import { TelemetryService } from './services/TelemetryService.js'; import { SettingsService } from './services/SettingsService.js'; import { collectAutostartState } from './services/AutostartDiagnostic.js'; +import { registerSchemesAsPrivileged, registerInklingMediaProtocol } from './protocol/inklingMedia.js'; import { DEFAULT_OLLAMA_ENDPOINT, DEFAULT_OLLAMA_MODEL } from '../shared/constants.js'; const HIDDEN_ARG = '--hidden'; const startedHidden = process.argv.includes(HIDDEN_ARG); +// v0.2.8 Cut A — `inkling-media://` custom protocol 스킴은 app.whenReady() 전에 +// privileged 등록 필수 (Electron 표준). 이미지 asset 을 main process 가 직접 +// 서빙해 file:// hack 없이 작동. +registerSchemesAsPrivileged(); + // CRITICAL — single-instance lock + hidden-flag 전달 (v0.2.6 #46). // 두 번째 .exe 가 hidden 으로 spawn 됐다면 (autostart) 첫 instance 의 inbox 창 // 띄우지 않음 — 사용자가 명시적으로 클릭한 게 아니므로. @@ -73,6 +79,9 @@ app.whenReady().then(async () => { const paths = resolveProfilePaths('default'); + // v0.2.8 Cut A — `inkling-media://` request handler 등록 (profileDir 결정 후). + registerInklingMediaProtocol(paths.profileDir); + const telemetry = new TelemetryService(join(paths.profileDir, 'telemetry'), () => new Date(), 14, { silent: true }); void telemetry.cleanupOldFiles() .then((r) => logger.info('telemetry.cleanup', { removed: r.removed.length })) diff --git a/src/main/protocol/inklingMedia.ts b/src/main/protocol/inklingMedia.ts new file mode 100644 index 0000000..3eede61 --- /dev/null +++ b/src/main/protocol/inklingMedia.ts @@ -0,0 +1,53 @@ +import electron from 'electron'; +import { readFile } from 'node:fs/promises'; +import { join, normalize, sep, extname } from 'node:path'; + +const { protocol } = electron; + +export function registerSchemesAsPrivileged(): void { + protocol.registerSchemesAsPrivileged([ + { scheme: 'inkling-media', privileges: { secure: true, supportFetchAPI: true, stream: true } } + ]); +} + +export function inferMime(filename: string): string { + const ext = extname(filename).toLowerCase(); + switch (ext) { + case '.png': return 'image/png'; + case '.jpg': + case '.jpeg': return 'image/jpeg'; + case '.gif': return 'image/gif'; + case '.webp': return 'image/webp'; + default: return 'application/octet-stream'; + } +} + +export function registerInklingMediaProtocol(profileDir: string): void { + const mediaRoot = join(profileDir, 'media'); + protocol.handle('inkling-media', async (req) => { + // Raw URL 에서 `..` 세그먼트 (URL-encoded 포함) 검출 — `new URL()` 이 normalize 하기 전에 차단. + const rawLower = req.url.toLowerCase(); + if ( + rawLower.includes('/../') || + rawLower.endsWith('/..') || + rawLower.includes('/%2e%2e/') || + rawLower.endsWith('/%2e%2e') + ) { + return new Response(null, { status: 403 }); + } + const url = new URL(req.url); + const relPath = decodeURIComponent((url.host + url.pathname).replace(/^media\//, 'media/')); + const target = normalize(join(profileDir, relPath)); + if (!target.startsWith(mediaRoot + sep) && target !== mediaRoot) { + return new Response(null, { status: 403 }); + } + try { + const data = await readFile(target); + return new Response(new Uint8Array(data), { + headers: { 'content-type': inferMime(target) } + }); + } catch { + return new Response(null, { status: 404 }); + } + }); +} diff --git a/tests/unit/inklingMedia.test.ts b/tests/unit/inklingMedia.test.ts new file mode 100644 index 0000000..8b333c5 --- /dev/null +++ b/tests/unit/inklingMedia.test.ts @@ -0,0 +1,74 @@ +import { describe, it, expect, vi, beforeEach } from 'vitest'; +import { join, sep } from 'node:path'; + +const { mockReadFile, mockHandle, mockRegisterSchemes } = vi.hoisted(() => ({ + mockReadFile: vi.fn(), + mockHandle: vi.fn(), + mockRegisterSchemes: vi.fn() +})); + +vi.mock('node:fs/promises', () => ({ + readFile: mockReadFile +})); + +vi.mock('electron', () => ({ + default: { + protocol: { + registerSchemesAsPrivileged: mockRegisterSchemes, + handle: mockHandle + } + } +})); + +import { registerInklingMediaProtocol, inferMime } from '../../src/main/protocol/inklingMedia'; + +describe('inferMime', () => { + it('returns image/png for .png', () => { expect(inferMime('foo.png')).toBe('image/png'); }); + it('returns image/jpeg for .jpg and .jpeg', () => { + expect(inferMime('foo.jpg')).toBe('image/jpeg'); + expect(inferMime('foo.jpeg')).toBe('image/jpeg'); + }); + it('returns image/gif for .gif', () => { expect(inferMime('foo.gif')).toBe('image/gif'); }); + it('returns image/webp for .webp', () => { expect(inferMime('foo.webp')).toBe('image/webp'); }); + it('returns application/octet-stream for unknown', () => { expect(inferMime('foo.xyz')).toBe('application/octet-stream'); }); +}); + +describe('inkling-media protocol handler', () => { + beforeEach(() => { vi.clearAllMocks(); }); + + function getHandler(profileDir: string): (req: { url: string }) => Promise { + registerInklingMediaProtocol(profileDir); + const call = mockHandle.mock.calls[0]; + if (!call) throw new Error('protocol.handle not called'); + return call[1] as (req: { url: string }) => Promise; + } + + // 실 운영 (Electron protocol.handle) 에서는 req.url 이 raw 문자열로 전달되지만, + // vitest 의 `new Request()` constructor 는 url 을 즉시 normalize (`/../` 제거) 함. + // 따라서 traversal 검사 로직이 raw URL 단계에서 작동하는지 검증하려면 + // raw url 을 보존한 minimal mock 을 직접 전달. + function rawReq(url: string): { url: string } { return { url }; } + + it('serves valid file with correct mime', async () => { + mockReadFile.mockResolvedValueOnce(Buffer.from([1, 2, 3])); + const handler = getHandler('/profile'); + const res = await handler(rawReq('inkling-media://media/note1/img.png')); + expect(res.status).toBe(200); + expect(res.headers.get('content-type')).toBe('image/png'); + expect(mockReadFile).toHaveBeenCalledWith(join('/profile', 'media', 'note1', 'img.png')); + }); + + it('returns 403 on path traversal attempt', async () => { + const handler = getHandler('/profile'); + const res = await handler(rawReq('inkling-media://media/../etc/passwd')); + expect(res.status).toBe(403); + expect(mockReadFile).not.toHaveBeenCalled(); + }); + + it('returns 404 when file missing', async () => { + mockReadFile.mockRejectedValueOnce(new Error('ENOENT')); + const handler = getHandler('/profile'); + const res = await handler(rawReq('inkling-media://media/note1/missing.png')); + expect(res.status).toBe(404); + }); +}); From f6bea623bf207d0f3893e903c30be1cf2fe95066 Mon Sep 17 00:00:00 2001 From: altair823 Date: Sat, 9 May 2026 14:06:21 +0900 Subject: [PATCH 2/6] =?UTF-8?q?feat(v028):=20NoteCard=20=EC=9D=B4=EB=AF=B8?= =?UTF-8?q?=EC=A7=80=20=20=EB=A0=8C=EB=8D=94=EB=A7=81=20+=20onClick?= =?UTF-8?q?=20(openMedia=20=EC=8B=9C=EA=B7=B8=EB=8B=88=EC=B2=98=EB=8A=94?= =?UTF-8?q?=20Task=203)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 회색 placeholder div → 로 교체 - onClick 으로 inboxApi.openMedia(relPath) 호출 (현재는 InboxApi 인터페이스에 부재 → unknown cast 사용; Task 3 에서 정식 시그니처 추가 후 cast 제거 예정) - alt='' 로 decorative 처리 (role=presentation), title 에 relPath 유지 - flex-wrap 추가 — 다수 이미지 시 줄바꿈 Tests: tests/unit/NoteCard.test.tsx 신규 2건 (img src 검증, click → openMedia 호출) 회귀: 468 → 470 pass --- src/renderer/inbox/components/NoteCard.tsx | 18 ++++- tests/unit/NoteCard.test.tsx | 81 ++++++++++++++++++++++ 2 files changed, 97 insertions(+), 2 deletions(-) create mode 100644 tests/unit/NoteCard.test.tsx diff --git a/src/renderer/inbox/components/NoteCard.tsx b/src/renderer/inbox/components/NoteCard.tsx index b9242e2..5a56721 100644 --- a/src/renderer/inbox/components/NoteCard.tsx +++ b/src/renderer/inbox/components/NoteCard.tsx @@ -332,9 +332,23 @@ export function NoteCard({ note, onDeleted, onUpdated, mode = 'inbox', onRestore )} {local.media.length > 0 && ( -
+
{local.media.map((m) => ( -
+ { void (inboxApi as unknown as { openMedia: (rel: string) => Promise }).openMedia(m.relPath); }} + style={{ + width: 48, + height: 48, + objectFit: 'cover', + borderRadius: 4, + cursor: 'pointer', + border: '1px solid #e0e0e0' + }} + /> ))}
)} diff --git a/tests/unit/NoteCard.test.tsx b/tests/unit/NoteCard.test.tsx new file mode 100644 index 0000000..cff2f66 --- /dev/null +++ b/tests/unit/NoteCard.test.tsx @@ -0,0 +1,81 @@ +// @vitest-environment jsdom +import { describe, it, expect, vi, beforeEach } from 'vitest'; +import '@testing-library/jest-dom/vitest'; +import { render, screen, fireEvent, cleanup } from '@testing-library/react'; +import type { Note } from '@shared/types'; + +const { mockOpenMedia } = vi.hoisted(() => ({ + mockOpenMedia: vi.fn(async () => ({ ok: true })) +})); + +vi.mock('../../src/renderer/inbox/api.js', () => ({ + inboxApi: { + openMedia: mockOpenMedia, + deleteNote: vi.fn(), + restoreNote: vi.fn(), + permanentDeleteNote: vi.fn(), + updateAiFields: vi.fn(), + setDueDate: vi.fn(), + setIntent: vi.fn(), + dismissIntent: vi.fn() + } +})); + +vi.mock('../../src/renderer/inbox/store.js', () => ({ + useInbox: Object.assign( + () => ({}), + { getState: () => ({ setTagFilter: vi.fn() }) } + ) +})); + +import { NoteCard } from '../../src/renderer/inbox/components/NoteCard'; + +const baseNote: Note = { + id: 'n1', + rawText: 'test', + aiTitle: 'T', + aiSummary: 'S', + aiStatus: 'done', + aiError: null, + aiProvider: null, + aiGeneratedAt: '2026-05-09T00:00:00Z', + titleEditedByUser: false, + summaryEditedByUser: false, + userIntent: null, + intentPromptedAt: '2026-05-09T00:00:00Z', + dueDate: null, + dueDateEditedByUser: false, + deletedAt: null, + lastRecalledAt: null, + recallDismissedAt: null, + createdAt: '2026-05-09T00:00:00Z', + updatedAt: '2026-05-09T00:00:00Z', + tags: [], + media: [ + { id: 'm1', kind: 'image', relPath: 'media/n1/img1.png', mime: 'image/png', bytes: 100 }, + { id: 'm2', kind: 'image', relPath: 'media/n1/img2.jpg', mime: 'image/jpeg', bytes: 200 } + ] +}; + +describe('NoteCard — image rendering', () => { + beforeEach(() => { + vi.clearAllMocks(); + cleanup(); + }); + + it('renders for each media item', () => { + render( {}} mode="inbox" />); + const imgs = screen.getAllByRole('presentation'); + expect(imgs).toHaveLength(2); + expect(imgs[0]?.getAttribute('src')).toBe('inkling-media://media/n1/img1.png'); + expect(imgs[1]?.getAttribute('src')).toBe('inkling-media://media/n1/img2.jpg'); + }); + + it('clicking calls inboxApi.openMedia', () => { + render( {}} mode="inbox" />); + const first = screen.getAllByRole('presentation')[0]; + if (first === undefined) throw new Error('expected at least one img'); + fireEvent.click(first); + expect(mockOpenMedia).toHaveBeenCalledWith('media/n1/img1.png'); + }); +}); From 9cdea1531cb119e7bd84f23b5fef861cee5eaee8 Mon Sep 17 00:00:00 2001 From: altair823 Date: Sat, 9 May 2026 14:10:57 +0900 Subject: [PATCH 3/6] =?UTF-8?q?feat(v028):=20IPC=20inbox:open-media=20+=20?= =?UTF-8?q?path=20traversal=20+=20NoteCard=20cast=20=EC=A0=95=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/index.ts | 3 +- src/main/ipc/inboxApi.ts | 18 ++++++- src/preload/index.ts | 2 + src/renderer/inbox/components/NoteCard.tsx | 2 +- src/shared/types.ts | 2 + tests/unit/inboxApi-openMedia.test.ts | 62 ++++++++++++++++++++++ 6 files changed, 86 insertions(+), 3 deletions(-) create mode 100644 tests/unit/inboxApi-openMedia.test.ts diff --git a/src/main/index.ts b/src/main/index.ts index 9dd7611..949d546 100644 --- a/src/main/index.ts +++ b/src/main/index.ts @@ -165,7 +165,8 @@ app.whenReady().then(async () => { registerCaptureApi(capture, getQuickCaptureWindow); registerInboxApi({ repo, continuity, capture, health, intent, - getInboxWindow, settings: settingsSvc, providerHolder + getInboxWindow, settings: settingsSvc, providerHolder, + paths: { profileDir: paths.profileDir } }); // registerSettingsApi 는 backup / exportSvc / importSvc / syncSvc / telemetry 가 // 생성된 뒤에 호출 (Task 10) — 아래 BackupService/ExportService/... 초기화 직후로 이동. diff --git a/src/main/ipc/inboxApi.ts b/src/main/ipc/inboxApi.ts index 16d1b81..a95b639 100644 --- a/src/main/ipc/inboxApi.ts +++ b/src/main/ipc/inboxApi.ts @@ -1,6 +1,7 @@ import electron from 'electron'; import type { BrowserWindow } from 'electron'; -const { ipcMain, dialog } = electron; +const { ipcMain, dialog, shell } = electron; +import { join, normalize, sep } from 'node:path'; import type { NoteRepository } from '../repository/NoteRepository.js'; import type { ContinuityService } from '../services/ContinuityService.js'; import type { CaptureService } from '../services/CaptureService.js'; @@ -21,6 +22,8 @@ export interface InboxIpcDeps { getInboxWindow: () => BrowserWindow | null; settings: SettingsService; providerHolder: ProviderHolder; + // v0.2.8 Cut A — `inbox:open-media` 의 path traversal 검사 baseline. + paths: { profileDir: string }; } export function registerInboxApi(deps: InboxIpcDeps): void { @@ -153,6 +156,19 @@ export function registerInboxApi(deps: InboxIpcDeps): void { return s.ollama ?? null; }); + // v0.2.8 Cut A — 첨부 이미지 클릭 시 OS 기본 뷰어로 열기 (Task 3). + // path traversal 검사는 inkling-media:// protocol handler 와 동일한 패턴 (Task 1). + ipcMain.handle('inbox:open-media', async (_e, relPath: string) => { + const profileDir = deps.paths.profileDir; + const mediaRoot = join(profileDir, 'media'); + const target = normalize(join(profileDir, relPath)); + if (!target.startsWith(mediaRoot + sep) && target !== mediaRoot) { + return { ok: false as const, reason: 'invalid path' as const }; + } + await shell.openPath(target); + return { ok: true as const }; + }); + ipcMain.handle('inbox:saveOllamaSettings', async (_e, value: { endpoint: string; model: string }) => { // 검증: 새 인스턴스로 healthCheck const trial = new LocalOllamaProvider({ endpoint: value.endpoint, model: value.model }); diff --git a/src/preload/index.ts b/src/preload/index.ts index e80982b..6ffe824 100644 --- a/src/preload/index.ts +++ b/src/preload/index.ts @@ -66,6 +66,8 @@ const api: InklingApi = { getAppInfo: () => ipcRenderer.invoke('settings:get-app-info'), openProfileDir: () => ipcRenderer.invoke('settings:open-profile-dir'), copyAppInfo: () => ipcRenderer.invoke('settings:copy-app-info'), + // v0.2.8 Cut A — 첨부 이미지를 OS 기본 뷰어로 열기 (Task 3). + openMedia: (relPath: string) => ipcRenderer.invoke('inbox:open-media', relPath), } }; diff --git a/src/renderer/inbox/components/NoteCard.tsx b/src/renderer/inbox/components/NoteCard.tsx index 5a56721..4f96f34 100644 --- a/src/renderer/inbox/components/NoteCard.tsx +++ b/src/renderer/inbox/components/NoteCard.tsx @@ -339,7 +339,7 @@ export function NoteCard({ note, onDeleted, onUpdated, mode = 'inbox', onRestore src={`inkling-media://${m.relPath}`} alt="" title={m.relPath} - onClick={() => { void (inboxApi as unknown as { openMedia: (rel: string) => Promise }).openMedia(m.relPath); }} + onClick={() => { void inboxApi.openMedia(m.relPath); }} style={{ width: 48, height: 48, diff --git a/src/shared/types.ts b/src/shared/types.ts index 883651e..4e78fd8 100644 --- a/src/shared/types.ts +++ b/src/shared/types.ts @@ -126,6 +126,8 @@ export interface InboxApi { }>; openProfileDir(): Promise; copyAppInfo(): Promise; + // v0.2.8 Cut A — 첨부 이미지를 OS 기본 뷰어로 열기 (Task 3). + openMedia(relPath: string): Promise<{ ok: true } | { ok: false; reason: string }>; } export interface InklingApi { diff --git a/tests/unit/inboxApi-openMedia.test.ts b/tests/unit/inboxApi-openMedia.test.ts new file mode 100644 index 0000000..0625653 --- /dev/null +++ b/tests/unit/inboxApi-openMedia.test.ts @@ -0,0 +1,62 @@ +import { describe, it, expect, vi, beforeEach } from 'vitest'; +import { join } from 'node:path'; + +const { handlers, mockOpenPath } = vi.hoisted(() => ({ + handlers: {} as Record unknown>, + mockOpenPath: vi.fn(async () => '') +})); + +vi.mock('electron', () => ({ + default: { + ipcMain: { + handle: (ch: string, fn: (...args: unknown[]) => unknown) => { + handlers[ch] = fn; + } + }, + dialog: {}, + shell: { openPath: mockOpenPath } + } +})); + +import { registerInboxApi } from '../../src/main/ipc/inboxApi'; + +function makeDeps(profileDir: string): Parameters[0] { + // Minimal stub — `inbox:open-media` 핸들러는 deps.paths.profileDir 만 참조. + return { + repo: {} as never, + continuity: {} as never, + capture: {} as never, + health: {} as never, + intent: {} as never, + getInboxWindow: () => null, + settings: {} as never, + providerHolder: {} as never, + paths: { profileDir } + }; +} + +describe('inbox:open-media IPC', () => { + beforeEach(() => { + Object.keys(handlers).forEach((k) => delete handlers[k]); + mockOpenPath.mockClear(); + }); + + it('opens valid relPath with shell.openPath', async () => { + registerInboxApi(makeDeps('/profile')); + const handler = handlers['inbox:open-media']; + if (handler === undefined) throw new Error('handler not registered'); + const r = await handler(null, 'media/note1/img.png'); + expect(r).toEqual({ ok: true }); + expect(mockOpenPath).toHaveBeenCalledWith(join('/profile', 'media', 'note1', 'img.png')); + }); + + it('rejects path traversal with reason "invalid path"', async () => { + registerInboxApi(makeDeps('/profile')); + const handler = handlers['inbox:open-media']; + if (handler === undefined) throw new Error('handler not registered'); + const r = await handler(null, '../etc/passwd') as { ok: boolean; reason?: string }; + expect(r.ok).toBe(false); + expect(r.reason).toBe('invalid path'); + expect(mockOpenPath).not.toHaveBeenCalled(); + }); +}); From 4d4dac5523cfae341af1b0f8a313d9abf86b2c00 Mon Sep 17 00:00:00 2001 From: altair823 Date: Sat, 9 May 2026 14:19:28 +0900 Subject: [PATCH 4/6] =?UTF-8?q?chore(v028):=20=EC=95=B1=20=EC=95=84?= =?UTF-8?q?=EC=9D=B4=EC=BD=98=20(assets/icon.svg=20=E2=86=92=20ICO/ICNS/PN?= =?UTF-8?q?G)=20+=20electron-builder=20config?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - electron-icon-builder + sharp devDep 추가 - assets/icon.svg → build/icon.{ico,icns,png} 산출 + git 추적 - electron-icon-builder 가 SVG 직접 input 안 받음 (Jimp MIME 에러) — sharp 로 SVG → PNG 1024 변환 후 input - scripts/svg-to-png.mjs (sharp 사용 SVG→PNG) + scripts/finalize-icons.mjs (build/icons/ → build/ 정규 위치 정리) - package.json build.{win,mac,linux}.icon 키 추가 - .gitignore: build/icons/ 와 build/icon-source.png (중간 산출물) 무시, build/icon.* 는 추적 - typecheck 0 errors + 472/472 단위 통과 유지 (회귀 없음) Co-Authored-By: Claude Opus 4.7 (1M context) --- .gitignore | 4 + assets/icon.svg | 24 + build/icon.icns | Bin 0 -> 121912 bytes build/icon.ico | Bin 0 -> 361102 bytes build/icon.png | Bin 0 -> 46497 bytes package-lock.json | 3424 +++++++++++++++++++++++++++++++++++- package.json | 37 +- scripts/finalize-icons.mjs | 35 + scripts/svg-to-png.mjs | 14 + 9 files changed, 3527 insertions(+), 11 deletions(-) create mode 100644 assets/icon.svg create mode 100644 build/icon.icns create mode 100644 build/icon.ico create mode 100644 build/icon.png create mode 100644 scripts/finalize-icons.mjs create mode 100644 scripts/svg-to-png.mjs diff --git a/.gitignore b/.gitignore index d093a94..e9cd77e 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,7 @@ dist/ coverage/ playwright-report/ test-results/ + +# build/ 산출물 — icon.{ico,icns,png} 만 커밋, 중간 산출물은 무시 +build/icons/ +build/icon-source.png diff --git a/assets/icon.svg b/assets/icon.svg new file mode 100644 index 0000000..d36b61d --- /dev/null +++ b/assets/icon.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/build/icon.icns b/build/icon.icns new file mode 100644 index 0000000000000000000000000000000000000000..4d57cfc7c4b6ab505bd3f9c6e736234991cacae4 GIT binary patch literal 121912 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

UW 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%0AHZQ=R{+Fg-98l0WrZl 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 literal 0 HcmV?d00001 diff --git a/build/icon.ico b/build/icon.ico new file mode 100644 index 0000000000000000000000000000000000000000..0490f5ea5da19f3aad00ff29a66647a55ec01a3e GIT binary patch literal 361102 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 literal 0 HcmV?d00001 diff --git a/package-lock.json b/package-lock.json index 9654443..c293371 100644 --- a/package-lock.json +++ b/package-lock.json @@ -27,8 +27,10 @@ "@vitejs/plugin-react": "5.1.4", "electron": "41.3.0", "electron-builder": "26.8.1", + "electron-icon-builder": "^2.0.1", "electron-vite": "5.0.0", "jsdom": "^29.1.1", + "sharp": "^0.34.5", "typescript": "6.0.3", "undici": "8.1.0", "vite": "7.3.2", @@ -1027,6 +1029,17 @@ "node": ">= 10.0.0" } }, + "node_modules/@emnapi/runtime": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.10.0.tgz", + "integrity": "sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, "node_modules/@esbuild/aix-ppc64": { "version": "0.25.12", "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.12.tgz", @@ -1487,6 +1500,544 @@ } } }, + "node_modules/@img/colour": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@img/colour/-/colour-1.1.0.tgz", + "integrity": "sha512-Td76q7j57o/tLVdgS746cYARfSyxk8iEfRxewL9h4OMzYhbW4TAcppl0mT4eyqXddh6L/jwoM75mo7ixa/pCeQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/@img/sharp-darwin-arm64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.34.5.tgz", + "integrity": "sha512-imtQ3WMJXbMY4fxb/Ndp6HBTNVtWCUI0WdobyheGf5+ad6xX8VIDO8u2xE4qc/fr08CKG/7dDseFtn6M6g/r3w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-arm64": "1.2.4" + } + }, + "node_modules/@img/sharp-darwin-x64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.34.5.tgz", + "integrity": "sha512-YNEFAF/4KQ/PeW0N+r+aVVsoIY0/qxxikF2SWdp+NRkmMB7y9LBZAVqQ4yhGCm/H3H270OSykqmQMKLBhBJDEw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-x64": "1.2.4" + } + }, + "node_modules/@img/sharp-libvips-darwin-arm64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.2.4.tgz", + "integrity": "sha512-zqjjo7RatFfFoP0MkQ51jfuFZBnVE2pRiaydKJ1G/rHZvnsrHAOcQALIi9sA5co5xenQdTugCvtb1cuf78Vf4g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "darwin" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-darwin-x64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.2.4.tgz", + "integrity": "sha512-1IOd5xfVhlGwX+zXv2N93k0yMONvUlANylbJw1eTah8K/Jtpi15KC+WSiaX/nBmbm2HxRM1gZ0nSdjSsrZbGKg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "darwin" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-arm": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.2.4.tgz", + "integrity": "sha512-bFI7xcKFELdiNCVov8e44Ia4u2byA+l3XtsAj+Q8tfCwO6BQ8iDojYdvoPMqsKDkuoOo+X6HZA0s0q11ANMQ8A==", + "cpu": [ + "arm" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-arm64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.2.4.tgz", + "integrity": "sha512-excjX8DfsIcJ10x1Kzr4RcWe1edC9PquDRRPx3YVCvQv+U5p7Yin2s32ftzikXojb1PIFc/9Mt28/y+iRklkrw==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-ppc64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-ppc64/-/sharp-libvips-linux-ppc64-1.2.4.tgz", + "integrity": "sha512-FMuvGijLDYG6lW+b/UvyilUWu5Ayu+3r2d1S8notiGCIyYU/76eig1UfMmkZ7vwgOrzKzlQbFSuQfgm7GYUPpA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-riscv64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-riscv64/-/sharp-libvips-linux-riscv64-1.2.4.tgz", + "integrity": "sha512-oVDbcR4zUC0ce82teubSm+x6ETixtKZBh/qbREIOcI3cULzDyb18Sr/Wcyx7NRQeQzOiHTNbZFF1UwPS2scyGA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-s390x": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.2.4.tgz", + "integrity": "sha512-qmp9VrzgPgMoGZyPvrQHqk02uyjA0/QrTO26Tqk6l4ZV0MPWIW6LTkqOIov+J1yEu7MbFQaDpwdwJKhbJvuRxQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-x64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.2.4.tgz", + "integrity": "sha512-tJxiiLsmHc9Ax1bz3oaOYBURTXGIRDODBqhveVHonrHJ9/+k89qbLl0bcJns+e4t4rvaNBxaEZsFtSfAdquPrw==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linuxmusl-arm64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.2.4.tgz", + "integrity": "sha512-FVQHuwx1IIuNow9QAbYUzJ+En8KcVm9Lk5+uGUQJHaZmMECZmOlix9HnH7n1TRkXMS0pGxIJokIVB9SuqZGGXw==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linuxmusl-x64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.2.4.tgz", + "integrity": "sha512-+LpyBk7L44ZIXwz/VYfglaX/okxezESc6UxDSoyo2Ks6Jxc4Y7sGjpgU9s4PMgqgjj1gZCylTieNamqA1MF7Dg==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-linux-arm": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.34.5.tgz", + "integrity": "sha512-9dLqsvwtg1uuXBGZKsxem9595+ujv0sJ6Vi8wcTANSFpwV/GONat5eCkzQo/1O6zRIkh0m/8+5BjrRr7jDUSZw==", + "cpu": [ + "arm" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm": "1.2.4" + } + }, + "node_modules/@img/sharp-linux-arm64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.34.5.tgz", + "integrity": "sha512-bKQzaJRY/bkPOXyKx5EVup7qkaojECG6NLYswgktOZjaXecSAeCWiZwwiFf3/Y+O1HrauiE3FVsGxFg8c24rZg==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm64": "1.2.4" + } + }, + "node_modules/@img/sharp-linux-ppc64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-ppc64/-/sharp-linux-ppc64-0.34.5.tgz", + "integrity": "sha512-7zznwNaqW6YtsfrGGDA6BRkISKAAE1Jo0QdpNYXNMHu2+0dTrPflTLNkpc8l7MUP5M16ZJcUvysVWWrMefZquA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-ppc64": "1.2.4" + } + }, + "node_modules/@img/sharp-linux-riscv64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-riscv64/-/sharp-linux-riscv64-0.34.5.tgz", + "integrity": "sha512-51gJuLPTKa7piYPaVs8GmByo7/U7/7TZOq+cnXJIHZKavIRHAP77e3N2HEl3dgiqdD/w0yUfiJnII77PuDDFdw==", + "cpu": [ + "riscv64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-riscv64": "1.2.4" + } + }, + "node_modules/@img/sharp-linux-s390x": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.34.5.tgz", + "integrity": "sha512-nQtCk0PdKfho3eC5MrbQoigJ2gd1CgddUMkabUj+rBevs8tZ2cULOx46E7oyX+04WGfABgIwmMC0VqieTiR4jg==", + "cpu": [ + "s390x" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-s390x": "1.2.4" + } + }, + "node_modules/@img/sharp-linux-x64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.34.5.tgz", + "integrity": "sha512-MEzd8HPKxVxVenwAa+JRPwEC7QFjoPWuS5NZnBt6B3pu7EG2Ge0id1oLHZpPJdn3OQK+BQDiw9zStiHBTJQQQQ==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-x64": "1.2.4" + } + }, + "node_modules/@img/sharp-linuxmusl-arm64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.34.5.tgz", + "integrity": "sha512-fprJR6GtRsMt6Kyfq44IsChVZeGN97gTD331weR1ex1c1rypDEABN6Tm2xa1wE6lYb5DdEnk03NZPqA7Id21yg==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-arm64": "1.2.4" + } + }, + "node_modules/@img/sharp-linuxmusl-x64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.34.5.tgz", + "integrity": "sha512-Jg8wNT1MUzIvhBFxViqrEhWDGzqymo3sV7z7ZsaWbZNDLXRJZoRGrjulp60YYtV4wfY8VIKcWidjojlLcWrd8Q==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-x64": "1.2.4" + } + }, + "node_modules/@img/sharp-wasm32": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.34.5.tgz", + "integrity": "sha512-OdWTEiVkY2PHwqkbBI8frFxQQFekHaSSkUIJkwzclWZe64O1X4UlUjqqqLaPbUpMOQk6FBu/HtlGXNblIs0huw==", + "cpu": [ + "wasm32" + ], + "dev": true, + "license": "Apache-2.0 AND LGPL-3.0-or-later AND MIT", + "optional": true, + "dependencies": { + "@emnapi/runtime": "^1.7.0" + }, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-arm64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-arm64/-/sharp-win32-arm64-0.34.5.tgz", + "integrity": "sha512-WQ3AgWCWYSb2yt+IG8mnC6Jdk9Whs7O0gxphblsLvdhSpSTtmu69ZG1Gkb6NuvxsNACwiPV6cNSZNzt0KPsw7g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-ia32": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.34.5.tgz", + "integrity": "sha512-FV9m/7NmeCmSHDD5j4+4pNI8Cp3aW+JvLoXcTUo0IqyjSfAZJ8dIUmijx1qaJsIiU+Hosw6xM5KijAWRJCSgNg==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-x64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.34.5.tgz", + "integrity": "sha512-+29YMsqY2/9eFEiW93eqWnuLcWcufowXewwSNIT6UwZdUUCrM3oFjMWH/Z6/TMmb4hlFenmfAVbpWeup2jryCw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, "node_modules/@isaacs/fs-minipass": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/@isaacs/fs-minipass/-/fs-minipass-4.0.1.tgz", @@ -1500,6 +2051,499 @@ "node": ">=18.0.0" } }, + "node_modules/@jimp/bmp": { + "version": "0.16.13", + "resolved": "https://registry.npmjs.org/@jimp/bmp/-/bmp-0.16.13.tgz", + "integrity": "sha512-9edAxu7N2FX7vzkdl5Jo1BbACfycUtBQX+XBMcHA2bk62P8R0otgkHg798frgAk/WxQIzwxqOH6wMiCwrlAzdQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.16.13", + "bmp-js": "^0.1.0" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/core": { + "version": "0.16.13", + "resolved": "https://registry.npmjs.org/@jimp/core/-/core-0.16.13.tgz", + "integrity": "sha512-qXpA1tzTnlkTku9yqtuRtS/wVntvE6f3m3GNxdTdtmc+O+Wcg9Xo2ABPMh7Nc0AHbMKzwvwgB2JnjZmlmJEObg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.16.13", + "any-base": "^1.1.0", + "buffer": "^5.2.0", + "exif-parser": "^0.1.12", + "file-type": "^16.5.4", + "load-bmfont": "^1.3.1", + "mkdirp": "^0.5.1", + "phin": "^2.9.1", + "pixelmatch": "^4.0.2", + "tinycolor2": "^1.4.1" + } + }, + "node_modules/@jimp/custom": { + "version": "0.16.13", + "resolved": "https://registry.npmjs.org/@jimp/custom/-/custom-0.16.13.tgz", + "integrity": "sha512-LTATglVUPGkPf15zX1wTMlZ0+AU7cGEGF6ekVF1crA8eHUWsGjrYTB+Ht4E3HTrCok8weQG+K01rJndCp/l4XA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/core": "^0.16.13" + } + }, + "node_modules/@jimp/gif": { + "version": "0.16.13", + "resolved": "https://registry.npmjs.org/@jimp/gif/-/gif-0.16.13.tgz", + "integrity": "sha512-yFAMZGv3o+YcjXilMWWwS/bv1iSqykFahFMSO169uVMtfQVfa90kt4/kDwrXNR6Q9i6VHpFiGZMlF2UnHClBvg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.16.13", + "gifwrap": "^0.9.2", + "omggif": "^1.0.9" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/jpeg": { + "version": "0.16.13", + "resolved": "https://registry.npmjs.org/@jimp/jpeg/-/jpeg-0.16.13.tgz", + "integrity": "sha512-BJHlDxzTlCqP2ThqP8J0eDrbBfod7npWCbJAcfkKqdQuFk0zBPaZ6KKaQKyKxmWJ87Z6ohANZoMKEbtvrwz1AA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.16.13", + "jpeg-js": "^0.4.2" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-blit": { + "version": "0.16.13", + "resolved": "https://registry.npmjs.org/@jimp/plugin-blit/-/plugin-blit-0.16.13.tgz", + "integrity": "sha512-8Z1k96ZFxlhK2bgrY1JNWNwvaBeI/bciLM0yDOni2+aZwfIIiC7Y6PeWHTAvjHNjphz+XCt01WQmOYWCn0ML6g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.16.13" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-blur": { + "version": "0.16.13", + "resolved": "https://registry.npmjs.org/@jimp/plugin-blur/-/plugin-blur-0.16.13.tgz", + "integrity": "sha512-PvLrfa8vkej3qinlebyhLpksJgCF5aiysDMSVhOZqwH5nQLLtDE9WYbnsofGw4r0VVpyw3H/ANCIzYTyCtP9Cg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.16.13" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-circle": { + "version": "0.16.13", + "resolved": "https://registry.npmjs.org/@jimp/plugin-circle/-/plugin-circle-0.16.13.tgz", + "integrity": "sha512-RNave7EFgZrb5V5EpdvJGAEHMnDAJuwv05hKscNfIYxf0kR3KhViBTDy+MoTnMlIvaKFULfwIgaZWzyhuINMzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.16.13" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-color": { + "version": "0.16.13", + "resolved": "https://registry.npmjs.org/@jimp/plugin-color/-/plugin-color-0.16.13.tgz", + "integrity": "sha512-xW+9BtEvoIkkH/Wde9ql4nAFbYLkVINhpgAE7VcBUsuuB34WUbcBl/taOuUYQrPEFQJ4jfXiAJZ2H/rvKjCVnQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.16.13", + "tinycolor2": "^1.4.1" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-contain": { + "version": "0.16.13", + "resolved": "https://registry.npmjs.org/@jimp/plugin-contain/-/plugin-contain-0.16.13.tgz", + "integrity": "sha512-QayTXw4tXMwU6q6acNTQrTTFTXpNRBe+MgTGMDU0lk+23PjlFCO/9sacflelG8lsp7vNHhAxFeHptDMAksEYzg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.16.13" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5", + "@jimp/plugin-blit": ">=0.3.5", + "@jimp/plugin-resize": ">=0.3.5", + "@jimp/plugin-scale": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-cover": { + "version": "0.16.13", + "resolved": "https://registry.npmjs.org/@jimp/plugin-cover/-/plugin-cover-0.16.13.tgz", + "integrity": "sha512-BSsP71GTNaqWRcvkbWuIVH+zK7b3TSNebbhDkFK0fVaUTzHuKMS/mgY4hDZIEVt7Rf5FjadAYtsujHN9w0iSYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.16.13" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5", + "@jimp/plugin-crop": ">=0.3.5", + "@jimp/plugin-resize": ">=0.3.5", + "@jimp/plugin-scale": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-crop": { + "version": "0.16.13", + "resolved": "https://registry.npmjs.org/@jimp/plugin-crop/-/plugin-crop-0.16.13.tgz", + "integrity": "sha512-WEl2tPVYwzYL8OKme6Go2xqiWgKsgxlMwyHabdAU4tXaRwOCnOI7v4021gCcBb9zn/oWwguHuKHmK30Fw2Z/PA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.16.13" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-displace": { + "version": "0.16.13", + "resolved": "https://registry.npmjs.org/@jimp/plugin-displace/-/plugin-displace-0.16.13.tgz", + "integrity": "sha512-qt9WKq8vWrcjySa9DyQ0x/RBMHQeiVjdVSY1SJsMjssPUf0pS74qorcuAkGi89biN3YoGUgPkpqECnAWnYwgGA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.16.13" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-dither": { + "version": "0.16.13", + "resolved": "https://registry.npmjs.org/@jimp/plugin-dither/-/plugin-dither-0.16.13.tgz", + "integrity": "sha512-5/N3yJggbWQTlGZHQYJPmQXEwR52qaXjEzkp1yRBbtdaekXE3BG/suo0fqeoV/csf8ooI78sJzYmIrxNoWVtgQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.16.13" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-fisheye": { + "version": "0.16.13", + "resolved": "https://registry.npmjs.org/@jimp/plugin-fisheye/-/plugin-fisheye-0.16.13.tgz", + "integrity": "sha512-2rZmTdFbT/cF9lEZIkXCYO0TsT114Q27AX5IAo0Sju6jVQbvIk1dFUTnwLDadTo8wkJlFzGqMQ24Cs8cHWOliA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.16.13" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-flip": { + "version": "0.16.13", + "resolved": "https://registry.npmjs.org/@jimp/plugin-flip/-/plugin-flip-0.16.13.tgz", + "integrity": "sha512-EmcgAA74FTc5u7Z+hUO/sRjWwfPPLuOQP5O64x5g4j0T12Bd29IgsYZxoutZo/rb3579+JNa/3wsSEmyVv1EpA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.16.13" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5", + "@jimp/plugin-rotate": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-gaussian": { + "version": "0.16.13", + "resolved": "https://registry.npmjs.org/@jimp/plugin-gaussian/-/plugin-gaussian-0.16.13.tgz", + "integrity": "sha512-A1XKfGQD0iDdIiKqFYi8nZMv4dDVYdxbrmgR7y/CzUHhSYdcmoljLIIsZZM3Iks/Wa353W3vtvkWLuDbQbch1w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.16.13" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-invert": { + "version": "0.16.13", + "resolved": "https://registry.npmjs.org/@jimp/plugin-invert/-/plugin-invert-0.16.13.tgz", + "integrity": "sha512-xFMrIn7czEZbdbMzZWuaZFnlLGJDVJ82y5vlsKsXRTG2kcxRsMPXvZRWHV57nSs1YFsNqXSbrC8B98n0E32njQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.16.13" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-mask": { + "version": "0.16.13", + "resolved": "https://registry.npmjs.org/@jimp/plugin-mask/-/plugin-mask-0.16.13.tgz", + "integrity": "sha512-wLRYKVBXql2GAYgt6FkTnCfE+q5NomM7Dlh0oIPGAoMBWDyTx0eYutRK6PlUrRK2yMHuroAJCglICTbxqGzowQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.16.13" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-normalize": { + "version": "0.16.13", + "resolved": "https://registry.npmjs.org/@jimp/plugin-normalize/-/plugin-normalize-0.16.13.tgz", + "integrity": "sha512-3tfad0n9soRna4IfW9NzQdQ2Z3ijkmo21DREHbE6CGcMIxOSvfRdSvf1qQPApxjTSo8LTU4MCi/fidx/NZ0GqQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.16.13" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-print": { + "version": "0.16.13", + "resolved": "https://registry.npmjs.org/@jimp/plugin-print/-/plugin-print-0.16.13.tgz", + "integrity": "sha512-0m6i3p01PGRkGAK9r53hDYrkyMq+tlhLOIbsSTmZyh6HLshUKlTB7eXskF5OpVd5ZUHoltlNc6R+ggvKIzxRFw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.16.13", + "load-bmfont": "^1.4.0" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5", + "@jimp/plugin-blit": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-resize": { + "version": "0.16.13", + "resolved": "https://registry.npmjs.org/@jimp/plugin-resize/-/plugin-resize-0.16.13.tgz", + "integrity": "sha512-qoqtN8LDknm3fJm9nuPygJv30O3vGhSBD2TxrsCnhtOsxKAqVPJtFVdGd/qVuZ8nqQANQmTlfqTiK9mVWQ7MiQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.16.13" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-rotate": { + "version": "0.16.13", + "resolved": "https://registry.npmjs.org/@jimp/plugin-rotate/-/plugin-rotate-0.16.13.tgz", + "integrity": "sha512-Ev+Jjmj1nHYw897z9C3R9dYsPv7S2/nxdgfFb/h8hOwK0Ovd1k/+yYS46A0uj/JCKK0pQk8wOslYBkPwdnLorw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.16.13" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5", + "@jimp/plugin-blit": ">=0.3.5", + "@jimp/plugin-crop": ">=0.3.5", + "@jimp/plugin-resize": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-scale": { + "version": "0.16.13", + "resolved": "https://registry.npmjs.org/@jimp/plugin-scale/-/plugin-scale-0.16.13.tgz", + "integrity": "sha512-05POQaEJVucjTiSGMoH68ZiELc7QqpIpuQlZ2JBbhCV+WCbPFUBcGSmE7w4Jd0E2GvCho/NoMODLwgcVGQA97A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.16.13" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5", + "@jimp/plugin-resize": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-shadow": { + "version": "0.16.13", + "resolved": "https://registry.npmjs.org/@jimp/plugin-shadow/-/plugin-shadow-0.16.13.tgz", + "integrity": "sha512-nmu5VSZ9hsB1JchTKhnnCY+paRBnwzSyK5fhkhtQHHoFD5ArBQ/5wU8y6tCr7k/GQhhGq1OrixsECeMjPoc8Zw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.16.13" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5", + "@jimp/plugin-blur": ">=0.3.5", + "@jimp/plugin-resize": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-threshold": { + "version": "0.16.13", + "resolved": "https://registry.npmjs.org/@jimp/plugin-threshold/-/plugin-threshold-0.16.13.tgz", + "integrity": "sha512-+3zArBH0OE3Rhjm4HyAokMsZlIq5gpQec33CncyoSwxtRBM2WAhUVmCUKuBo+Lr/2/4ISoY4BWpHKhMLDix6cA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.16.13" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5", + "@jimp/plugin-color": ">=0.8.0", + "@jimp/plugin-resize": ">=0.8.0" + } + }, + "node_modules/@jimp/plugins": { + "version": "0.16.13", + "resolved": "https://registry.npmjs.org/@jimp/plugins/-/plugins-0.16.13.tgz", + "integrity": "sha512-CJLdqODEhEVs4MgWCxpWL5l95sCBlkuSLz65cxEm56X5akIsn4LOlwnKoSEZioYcZUBvHhCheH67AyPTudfnQQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/plugin-blit": "^0.16.13", + "@jimp/plugin-blur": "^0.16.13", + "@jimp/plugin-circle": "^0.16.13", + "@jimp/plugin-color": "^0.16.13", + "@jimp/plugin-contain": "^0.16.13", + "@jimp/plugin-cover": "^0.16.13", + "@jimp/plugin-crop": "^0.16.13", + "@jimp/plugin-displace": "^0.16.13", + "@jimp/plugin-dither": "^0.16.13", + "@jimp/plugin-fisheye": "^0.16.13", + "@jimp/plugin-flip": "^0.16.13", + "@jimp/plugin-gaussian": "^0.16.13", + "@jimp/plugin-invert": "^0.16.13", + "@jimp/plugin-mask": "^0.16.13", + "@jimp/plugin-normalize": "^0.16.13", + "@jimp/plugin-print": "^0.16.13", + "@jimp/plugin-resize": "^0.16.13", + "@jimp/plugin-rotate": "^0.16.13", + "@jimp/plugin-scale": "^0.16.13", + "@jimp/plugin-shadow": "^0.16.13", + "@jimp/plugin-threshold": "^0.16.13", + "timm": "^1.6.1" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/png": { + "version": "0.16.13", + "resolved": "https://registry.npmjs.org/@jimp/png/-/png-0.16.13.tgz", + "integrity": "sha512-8cGqINvbWJf1G0Her9zbq9I80roEX0A+U45xFby3tDWfzn+Zz8XKDF1Nv9VUwVx0N3zpcG1RPs9hfheG4Cq2kg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.16.13", + "pngjs": "^3.3.3" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/png/node_modules/pngjs": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz", + "integrity": "sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/@jimp/tiff": { + "version": "0.16.13", + "resolved": "https://registry.npmjs.org/@jimp/tiff/-/tiff-0.16.13.tgz", + "integrity": "sha512-oJY8d9u95SwW00VPHuCNxPap6Q1+E/xM5QThb9Hu+P6EGuu6lIeLaNBMmFZyblwFbwrH+WBOZlvIzDhi4Dm/6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.7.2", + "utif": "^2.0.1" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/types": { + "version": "0.16.13", + "resolved": "https://registry.npmjs.org/@jimp/types/-/types-0.16.13.tgz", + "integrity": "sha512-mC0yVNUobFDjoYLg4hoUwzMKgNlxynzwt3cDXzumGvRJ7Kb8qQGOWJQjQFo5OxmGExqzPphkirdbBF88RVLBCg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/bmp": "^0.16.13", + "@jimp/gif": "^0.16.13", + "@jimp/jpeg": "^0.16.13", + "@jimp/png": "^0.16.13", + "@jimp/tiff": "^0.16.13", + "timm": "^1.6.1" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/utils": { + "version": "0.16.13", + "resolved": "https://registry.npmjs.org/@jimp/utils/-/utils-0.16.13.tgz", + "integrity": "sha512-VyCpkZzFTHXtKgVO35iKN0sYR10psGpV6SkcSeV4oF7eSYlR8Bl6aQLCzVeFjvESF7mxTmIiI3/XrMobVrtxDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.7.2", + "regenerator-runtime": "^0.13.3" + } + }, "node_modules/@jridgewell/gen-mapping": { "version": "0.3.13", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", @@ -1628,6 +2672,44 @@ "node": ">= 10.0.0" } }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, "node_modules/@playwright/test": { "version": "1.59.1", "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.59.1.tgz", @@ -2149,6 +3231,13 @@ } } }, + "node_modules/@tokenizer/token": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@tokenizer/token/-/token-0.3.0.tgz", + "integrity": "sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==", + "dev": true, + "license": "MIT" + }, "node_modules/@types/aria-query": { "version": "5.0.4", "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.4.tgz", @@ -2526,6 +3615,19 @@ "node": "^20.17.0 || >=22.9.0" } }, + "node_modules/abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "dev": true, + "license": "MIT", + "dependencies": { + "event-target-shim": "^5.0.0" + }, + "engines": { + "node": ">=6.5" + } + }, "node_modules/agent-base": { "version": "7.1.4", "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", @@ -2536,6 +3638,20 @@ "node": ">= 14" } }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/ajv": { "version": "6.15.0", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.15.0.tgz", @@ -2589,6 +3705,13 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, + "node_modules/any-base": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/any-base/-/any-base-1.1.0.tgz", + "integrity": "sha512-uMgjozySS8adZZYePpaWs8cxB9/kdzmpX6SgJZ+wbz1K5eYk5QMYDVJaZKhxyIHUdnnJkfR7SVgStgH7LkGUyg==", + "dev": true, + "license": "MIT" + }, "node_modules/app-builder-bin": { "version": "5.0.0-alpha.12", "resolved": "https://registry.npmjs.org/app-builder-bin/-/app-builder-bin-5.0.0-alpha.12.tgz", @@ -2769,6 +3892,100 @@ "dev": true, "license": "Python-2.0" }, + "node_modules/args": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/args/-/args-5.0.3.tgz", + "integrity": "sha512-h6k/zfFgusnv3i5TU08KQkVKuCPBtL/PWQbWkHUxvJrZ2nAyeaUupneemcrgn1xmqxPQsPIzwkUhOpoqPDRZuA==", + "dev": true, + "license": "MIT", + "dependencies": { + "camelcase": "5.0.0", + "chalk": "2.4.2", + "leven": "2.1.0", + "mri": "1.1.4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/args/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/args/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/args/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/args/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true, + "license": "MIT" + }, + "node_modules/args/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/args/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/args/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/aria-query": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", @@ -2779,13 +3996,32 @@ "dequal": "^2.0.3" } }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/asn1": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", + "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "safer-buffer": "~2.1.0" + } + }, "node_modules/assert-plus": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", "dev": true, "license": "MIT", - "optional": true, "engines": { "node": ">=0.8" } @@ -2845,6 +4081,23 @@ "node": ">= 4.0.0" } }, + "node_modules/aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "*" + } + }, + "node_modules/aws4": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.13.2.tgz", + "integrity": "sha512-lHe62zvbTB5eEABUVi/AwVh0ZKY9rMMDhmm+eeyuuUQbQ3+J+fONVQOZyj+DdrvD4BY33uYniyRJ4UJIaSKAfw==", + "dev": true, + "license": "MIT" + }, "node_modules/balanced-match": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", @@ -2888,6 +4141,16 @@ "node": ">=6.0.0" } }, + "node_modules/bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "tweetnacl": "^0.14.3" + } + }, "node_modules/better-sqlite3": { "version": "12.9.0", "resolved": "https://registry.npmjs.org/better-sqlite3/-/better-sqlite3-12.9.0.tgz", @@ -2932,6 +4195,13 @@ "readable-stream": "^3.4.0" } }, + "node_modules/bmp-js": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/bmp-js/-/bmp-js-0.1.0.tgz", + "integrity": "sha512-vHdS19CnY3hwiNdkaqk93DvjVLfbEcI8mys4UjuWrlX1haDmroo8o4xCzh4wD6DGV6HxRCyauwhHRqMTfERtjw==", + "dev": true, + "license": "MIT" + }, "node_modules/boolean": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.2.0.tgz", @@ -2954,6 +4224,19 @@ "node": "18 || 20 || >=22" } }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/browserslist": { "version": "4.28.2", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.2.tgz", @@ -3022,6 +4305,16 @@ "node": "*" } }, + "node_modules/buffer-equal": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-0.0.1.tgz", + "integrity": "sha512-RgSV6InVQ9ODPdLWJ5UAqBqJBOg370Nz6ZQtRzpt6nUjc8v0St97uJ4PYC6NztqIScrAXafKM3mZPMygSe1ggA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, "node_modules/buffer-from": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", @@ -3159,6 +4452,16 @@ "node": ">= 0.4" } }, + "node_modules/camelcase": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.0.0.tgz", + "integrity": "sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/caniuse-lite": { "version": "1.0.30001790", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001790.tgz", @@ -3180,6 +4483,23 @@ ], "license": "CC-BY-4.0" }, + "node_modules/caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/centra": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/centra/-/centra-2.7.0.tgz", + "integrity": "sha512-PbFMgMSrmgx6uxCdm57RUos9Tc3fclMvhLSATYN39XsDV29B89zZ3KA89jmY0vwSGazyU+uerqwa6t+KaodPcg==", + "dev": true, + "license": "MIT", + "dependencies": { + "follow-redirects": "^1.15.6" + } + }, "node_modules/chai": { "version": "6.2.2", "resolved": "https://registry.npmjs.org/chai/-/chai-6.2.2.tgz", @@ -3236,6 +4556,16 @@ "node": ">=8" } }, + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/cli-truncate": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", @@ -3282,6 +4612,16 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -3342,6 +4682,55 @@ "dev": true, "license": "MIT" }, + "node_modules/concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "engines": [ + "node >= 0.8" + ], + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/concat-stream/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/concat-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true, + "license": "MIT" + }, + "node_modules/concat-stream/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, "node_modules/convert-source-map": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", @@ -3354,8 +4743,7 @@ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==", "dev": true, - "license": "MIT", - "optional": true + "license": "MIT" }, "node_modules/crc": { "version": "3.8.0", @@ -3443,6 +4831,19 @@ "devOptional": true, "license": "MIT" }, + "node_modules/dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", + "dev": true, + "license": "MIT", + "dependencies": { + "assert-plus": "^1.0.0" + }, + "engines": { + "node": ">=0.10" + } + }, "node_modules/data-urls": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-7.0.0.tgz", @@ -3475,6 +4876,16 @@ } } }, + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/decimal.js": { "version": "10.6.0", "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.6.0.tgz", @@ -3566,6 +4977,46 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/del": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/del/-/del-6.1.1.tgz", + "integrity": "sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==", + "dev": true, + "license": "MIT", + "dependencies": { + "globby": "^11.0.1", + "graceful-fs": "^4.2.4", + "is-glob": "^4.0.1", + "is-path-cwd": "^2.2.0", + "is-path-inside": "^3.0.2", + "p-map": "^4.0.0", + "rimraf": "^3.0.2", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/del/node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", @@ -3645,6 +5096,19 @@ "node": "*" } }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/dmg-builder": { "version": "26.8.1", "resolved": "https://registry.npmjs.org/dmg-builder/-/dmg-builder-26.8.1.tgz", @@ -3735,6 +5199,12 @@ "license": "MIT", "peer": true }, + "node_modules/dom-walk": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz", + "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==", + "dev": true + }, "node_modules/dotenv": { "version": "16.6.1", "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.6.1.tgz", @@ -3779,6 +5249,17 @@ "node": ">= 0.4" } }, + "node_modules/ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", + "dev": true, + "license": "MIT", + "dependencies": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, "node_modules/ejs": { "version": "3.1.10", "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz", @@ -3891,6 +5372,24 @@ "node": ">= 10.0.0" } }, + "node_modules/electron-icon-builder": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/electron-icon-builder/-/electron-icon-builder-2.0.1.tgz", + "integrity": "sha512-rg9BxW2kJi3TXsMFFNXWXrwQEd5dzXmeD+w7Pj3k3z7aYRePLxE89qU4lvL/rK1X/NTY5KDn3+Dbgm1TU2dGXQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "args": "^5.0.1", + "icon-gen": "^2.0.0", + "jimp": "^0.16.1" + }, + "bin": { + "electron-icon-builder": "index.js" + }, + "engines": { + "node": ">= 10.0.0" + } + }, "node_modules/electron-log": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/electron-log/-/electron-log-5.2.0.tgz", @@ -4093,6 +5592,16 @@ "dev": true, "license": "MIT" }, + "node_modules/error-ex": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.4.tgz", + "integrity": "sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, "node_modules/es-define-property": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", @@ -4157,6 +5666,13 @@ "license": "MIT", "optional": true }, + "node_modules/es6-promise": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", + "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==", + "dev": true, + "license": "MIT" + }, "node_modules/esbuild": { "version": "0.25.12", "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.12.tgz", @@ -4233,6 +5749,32 @@ "@types/estree": "^1.0.0" } }, + "node_modules/event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/exif-parser": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/exif-parser/-/exif-parser-0.1.12.tgz", + "integrity": "sha512-c2bQfLNbMzLPmzQuOr8fy0csy84WmwnER81W88DzTp9CYNPJ6yzOj2EZAh9pywYpqHnshVLHQJ8WzldAyfY+Iw==", + "dev": true + }, "node_modules/expand-template": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", @@ -4259,6 +5801,13 @@ "dev": true, "license": "Apache-2.0" }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true, + "license": "MIT" + }, "node_modules/extract-zip": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", @@ -4298,6 +5847,23 @@ "dev": true, "license": "MIT" }, + "node_modules/fast-glob": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.8" + }, + "engines": { + "node": ">=8.6.0" + } + }, "node_modules/fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", @@ -4305,6 +5871,16 @@ "dev": true, "license": "MIT" }, + "node_modules/fastq": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.1.tgz", + "integrity": "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==", + "dev": true, + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, "node_modules/fd-slicer": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", @@ -4333,12 +5909,40 @@ } } }, + "node_modules/file-type": { + "version": "16.5.4", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-16.5.4.tgz", + "integrity": "sha512-/yFHK0aGjFEgDJjEKP0pWCplsPFPhwyfwevf/pVxiN0tmE4L9LmwWxWukdJSHdoCli4VgQLehjJtwQBnqmsKcw==", + "dev": true, + "license": "MIT", + "dependencies": { + "readable-web-to-node-stream": "^3.0.0", + "strtok3": "^6.2.4", + "token-types": "^4.1.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/file-type?sponsor=1" + } + }, "node_modules/file-uri-to-path": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", "license": "MIT" }, + "node_modules/file-url": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/file-url/-/file-url-2.0.2.tgz", + "integrity": "sha512-x3989K8a1jM6vulMigE8VngH7C5nci0Ks5d9kVjUXmNF28gmiZUNujk5HjwaS8dAzN2QmUfX56riJKgN00dNRw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, "node_modules/filelist": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.6.tgz", @@ -4379,6 +5983,64 @@ "node": ">=10" } }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha512-jvElSjyuo4EMQGoTwo1uJU5pQMwTW5lS1x05zzfJuTIyLR3zwO27LYrxNg+dlvKpGOuGy/MzBdXh80g0ve5+HA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/follow-redirects": { + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.16.0.tgz", + "integrity": "sha512-y5rN/uOsadFT/JfYwhxRS5R7Qce+g3zG97+JrtFZlC9klX/W5hD7iiLzScI4nZqUS7DNUdhPgw4xI8W2LuXlUw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "license": "MIT", + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "*" + } + }, "node_modules/form-data": { "version": "4.0.5", "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.5.tgz", @@ -4524,6 +6186,27 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", + "dev": true, + "license": "MIT", + "dependencies": { + "assert-plus": "^1.0.0" + } + }, + "node_modules/gifwrap": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/gifwrap/-/gifwrap-0.9.4.tgz", + "integrity": "sha512-MDMwbhASQuVeD4JKd1fKgNgCRL3fGqMM4WaqpNhWO0JiMOAjbQdumbs4BbBZEy9/M00EHEjKN3HieVhCUlwjeQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "image-q": "^4.0.0", + "omggif": "^1.0.10" + } + }, "node_modules/github-from-package": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", @@ -4552,6 +6235,19 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/glob/node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", @@ -4583,6 +6279,17 @@ "node": "*" } }, + "node_modules/global": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz", + "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==", + "dev": true, + "license": "MIT", + "dependencies": { + "min-document": "^2.19.0", + "process": "^0.11.10" + } + }, "node_modules/global-agent": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/global-agent/-/global-agent-3.0.0.tgz", @@ -4634,6 +6341,27 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/gopd": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", @@ -4680,6 +6408,31 @@ "dev": true, "license": "ISC" }, + "node_modules/har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=4" + } + }, + "node_modules/har-validator": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", + "deprecated": "this library is no longer supported", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.12.3", + "har-schema": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -4733,6 +6486,20 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/hasha": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/hasha/-/hasha-2.2.0.tgz", + "integrity": "sha512-jZ38TU/EBiGKrmyTNNZgnvCZHNowiRI4+w/I9noMlekHTZH3KyGgvJLmhSgykeAQ9j2SYPDosM0Bg3wHfzibAQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-stream": "^1.0.1", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/hasown": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.3.tgz", @@ -4813,6 +6580,22 @@ "node": ">= 14" } }, + "node_modules/http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + }, + "engines": { + "node": ">=0.8", + "npm": ">=1.3.7" + } + }, "node_modules/http2-wrapper": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", @@ -4841,6 +6624,61 @@ "node": ">= 14" } }, + "node_modules/icon-gen": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/icon-gen/-/icon-gen-2.1.0.tgz", + "integrity": "sha512-rqIVvq9MJ8X7wnJW0NO8Eau/+5RWV7AH6L5vEt/U5Ajv5WefdDNDxGwJhGokyHuyBWeX7JqRMQ03tG0gAco4Eg==", + "dev": true, + "license": "MIT", + "dependencies": { + "commander": "^6.2.0", + "del": "^6.0.0", + "mkdirp": "^1.0.4", + "pngjs": "^6.0.0", + "svg2png": "4.1.1", + "uuid": "^8.3.1" + }, + "bin": { + "icon-gen": "dist/bin/index.js" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/icon-gen/node_modules/commander": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", + "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/icon-gen/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "license": "MIT", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/icon-gen/node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "deprecated": "uuid@10 and below is no longer supported. For ESM codebases, update to uuid@latest. For CommonJS codebases, use uuid@11 (but be aware this version will likely be deprecated in 2028).", + "dev": true, + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, "node_modules/iconv-corefoundation": { "version": "1.1.7", "resolved": "https://registry.npmjs.org/iconv-corefoundation/-/iconv-corefoundation-1.1.7.tgz", @@ -4892,6 +6730,33 @@ ], "license": "BSD-3-Clause" }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/image-q": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/image-q/-/image-q-4.0.0.tgz", + "integrity": "sha512-PfJGVgIfKQJuq3s0tTDOKtztksibuUEbJQIYT3by6wctQo+Rdlh7ef4evJ5NCdxY4CfMbvFkocEwbl4BF8RlJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "16.9.1" + } + }, + "node_modules/image-q/node_modules/@types/node": { + "version": "16.9.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.9.1.tgz", + "integrity": "sha512-QpLcX9ZSsq3YYUUnD3nFDY8H7wctAhQj/TFKL8Ya8v5fMm3CFXxo8zStsLAl780ltoYoo1WvKUVGBQK+1ifr7g==", + "dev": true, + "license": "MIT" + }, "node_modules/indent-string": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", @@ -4926,6 +6791,49 @@ "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", "license": "ISC" }, + "node_modules/invert-kv": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha512-xgs2NH9AE66ucSq4cNG1nhSFghr5l6tdL15Pk+jl46bmmBapgoaY/AacXyaDznAqmGL99TiLSQgO/XazFSKYeQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true, + "license": "MIT" + }, + "node_modules/is-core-module": { + "version": "2.16.2", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.2.tgz", + "integrity": "sha512-evOr8xfXKxE6qSR0hSXL2r3sd7ALj8+7jQEUvPYcm5sgZFdJ+AYzT6yNmJenvIYQBgIGwfwz08sL8zoL7yq2BA==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", @@ -4936,6 +6844,56 @@ "node": ">=8" } }, + "node_modules/is-function": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.2.tgz", + "integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-path-cwd": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", + "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/is-potential-custom-element-name": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", @@ -4943,6 +6901,37 @@ "dev": true, "license": "MIT" }, + "node_modules/is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", + "dev": true, + "license": "MIT" + }, + "node_modules/is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "license": "MIT" + }, "node_modules/isbinaryfile": { "version": "5.0.7", "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-5.0.7.tgz", @@ -4966,6 +6955,13 @@ "node": ">=18" } }, + "node_modules/isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==", + "dev": true, + "license": "MIT" + }, "node_modules/jake": { "version": "10.9.4", "resolved": "https://registry.npmjs.org/jake/-/jake-10.9.4.tgz", @@ -4984,6 +6980,20 @@ "node": ">=10" } }, + "node_modules/jimp": { + "version": "0.16.13", + "resolved": "https://registry.npmjs.org/jimp/-/jimp-0.16.13.tgz", + "integrity": "sha512-Bxz8q7V4rnCky9A0ktTNGA9SkNFVWRHodddI/DaAWZJzF7sVUlFYKQ60y9JGqrKpi48ECA/TnfMzzc5C70VByA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/custom": "^0.16.13", + "@jimp/plugins": "^0.16.13", + "@jimp/types": "^0.16.13", + "regenerator-runtime": "^0.13.3" + } + }, "node_modules/jiti": { "version": "2.6.1", "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.6.1.tgz", @@ -4994,6 +7004,13 @@ "jiti": "lib/jiti-cli.mjs" } }, + "node_modules/jpeg-js": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/jpeg-js/-/jpeg-js-0.4.4.tgz", + "integrity": "sha512-WZzeDOEtTOBK4Mdsar0IqEU5sMr3vSV2RqkAIzUEV2BHnUfKGyswWFPFwK5EeDo93K3FohSHbLAjj0s1Wzd+dg==", + "dev": true, + "license": "BSD-3-Clause" + }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -5014,6 +7031,13 @@ "js-yaml": "bin/js-yaml.js" } }, + "node_modules/jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==", + "dev": true, + "license": "MIT" + }, "node_modules/jsdom": { "version": "29.1.1", "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-29.1.1.tgz", @@ -5095,6 +7119,13 @@ "dev": true, "license": "MIT" }, + "node_modules/json-schema": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", + "dev": true, + "license": "(AFL-2.1 OR BSD-3-Clause)" + }, "node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", @@ -5107,8 +7138,7 @@ "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", "dev": true, - "license": "ISC", - "optional": true + "license": "ISC" }, "node_modules/json5": { "version": "2.2.3", @@ -5133,6 +7163,54 @@ "graceful-fs": "^4.1.6" } }, + "node_modules/jsprim": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", + "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", + "dev": true, + "license": "MIT", + "dependencies": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.4.0", + "verror": "1.10.0" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/jsprim/node_modules/extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", + "dev": true, + "engines": [ + "node >=0.6.0" + ], + "license": "MIT" + }, + "node_modules/jsprim/node_modules/verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", + "dev": true, + "engines": [ + "node >=0.6.0" + ], + "license": "MIT", + "dependencies": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "node_modules/kew": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/kew/-/kew-0.7.0.tgz", + "integrity": "sha512-IG6nm0+QtAMdXt9KvbgbGdvY50RSrw+U4sGZg+KlrSKPJEwVE5JVoI3d7RWfSMdBQneRheeAOj3lIjX5VL/9RQ==", + "dev": true, + "license": "Apache-2.0" + }, "node_modules/keyv": { "version": "4.5.4", "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", @@ -5143,6 +7221,16 @@ "json-buffer": "3.0.1" } }, + "node_modules/klaw": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz", + "integrity": "sha512-TED5xi9gGQjGpNnvRWknrwAB1eL5GciPfVFOt3Vk1OJCVDQbzuSfrF3hkUQKlsgKrG1F+0t5W0m+Fje1jIt8rw==", + "dev": true, + "license": "MIT", + "optionalDependencies": { + "graceful-fs": "^4.1.9" + } + }, "node_modules/lazy-val": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/lazy-val/-/lazy-val-1.0.5.tgz", @@ -5150,6 +7238,90 @@ "dev": true, "license": "MIT" }, + "node_modules/lcid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha512-YiGkH6EnGrDGqLMITnGjXtGmNtjoXw9SVUzcaos8RBi7Ps0VBylkq+vOcY9QE5poLasPCR849ucFUkl0UzUyOw==", + "dev": true, + "license": "MIT", + "dependencies": { + "invert-kv": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/leven": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz", + "integrity": "sha512-nvVPLpIHUxCUoRLrFqTgSxXJ614d8AgQoWl7zPe/2VadE8+1dpU3LBhowRuBAcuwruWtOdD8oYC9jDNJjXDPyA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/load-bmfont": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/load-bmfont/-/load-bmfont-1.4.2.tgz", + "integrity": "sha512-qElWkmjW9Oq1F9EI5Gt7aD9zcdHb9spJCW1L/dmPf7KzCCEJxq8nhHz5eCgI9aMf7vrG/wyaCqdsI+Iy9ZTlog==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-equal": "0.0.1", + "mime": "^1.3.4", + "parse-bmfont-ascii": "^1.0.3", + "parse-bmfont-binary": "^1.0.5", + "parse-bmfont-xml": "^1.1.4", + "phin": "^3.7.1", + "xhr": "^2.0.1", + "xtend": "^4.0.0" + } + }, + "node_modules/load-bmfont/node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true, + "license": "MIT", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/load-bmfont/node_modules/phin": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/phin/-/phin-3.7.1.tgz", + "integrity": "sha512-GEazpTWwTZaEQ9RhL7Nyz0WwqilbqgLahDM3D0hxWwmVDI52nXEybHqiN6/elwpkJBhcuj+WbBu+QfT0uhPGfQ==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "dev": true, + "license": "MIT", + "dependencies": { + "centra": "^2.7.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha512-cy7ZdNRXdablkXYNI049pthVeXFurRyb9+hA/dZzerZ0pGTx42z+y+ssxBaVV2l70t1muq5IdKhn4UtcoGUY9A==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/lodash": { "version": "4.18.1", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.18.1.tgz", @@ -5229,6 +7401,43 @@ "dev": true, "license": "CC0-1.0" }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/micromatch/node_modules/picomatch": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz", + "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/mime": { "version": "2.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", @@ -5275,6 +7484,16 @@ "node": ">=4" } }, + "node_modules/min-document": { + "version": "2.19.2", + "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.2.tgz", + "integrity": "sha512-8S5I8db/uZN8r9HSLFVWPdJCvYOejMcEC82VIzNUc6Zkklf/d1gg2psfE79/vyhWOj4+J8MtwmoOz3TmvaGu5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "dom-walk": "^0.1.0" + } + }, "node_modules/min-indent": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", @@ -5339,7 +7558,6 @@ "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "minimist": "^1.2.6" }, @@ -5353,6 +7571,16 @@ "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", "license": "MIT" }, + "node_modules/mri": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/mri/-/mri-1.1.4.tgz", + "integrity": "sha512-6y7IjGPm8AzlvoUrwAaw1tLnUBudaS3752vcd8JtrpGGQn+rXIe63LFVHm/YMwtqAuh+LJPCFdlLYPWM1nYn6w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, "node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", @@ -5537,6 +7765,36 @@ "node": "^20.17.0 || >=22.9.0" } }, + "node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/normalize-package-data/node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true, + "license": "ISC" + }, + "node_modules/normalize-package-data/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, "node_modules/normalize-url": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", @@ -5550,6 +7808,26 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "*" + } + }, "node_modules/object-keys": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", @@ -5572,6 +7850,13 @@ ], "license": "MIT" }, + "node_modules/omggif": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/omggif/-/omggif-1.0.10.tgz", + "integrity": "sha512-LMJTtvgc/nugXj0Vcrrs68Mn2D1r0zf630VNtqtpI1FEO7e+O9FP4gqs9AcnBaSEeoHIPm28u6qgPR0oyEpGSw==", + "dev": true, + "license": "MIT" + }, "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", @@ -5581,6 +7866,19 @@ "wrappy": "1" } }, + "node_modules/os-locale": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", + "integrity": "sha512-PRT7ZORmwu2MEFt4/fv3Q+mEfN4zetKxufQrkShY2oGvUms9r8otu5HfdyIFHkYXjO7laNsoVGmM2MANfuTA8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "lcid": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/p-cancelable": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", @@ -5607,6 +7905,74 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "dev": true, + "license": "(MIT AND Zlib)" + }, + "node_modules/parse-bmfont-ascii": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/parse-bmfont-ascii/-/parse-bmfont-ascii-1.0.6.tgz", + "integrity": "sha512-U4RrVsUFCleIOBsIGYOMKjn9PavsGOXxbvYGtMOEfnId0SVNsgehXh1DxUdVPLoxd5mvcEtvmKs2Mmf0Mpa1ZA==", + "dev": true, + "license": "MIT" + }, + "node_modules/parse-bmfont-binary": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/parse-bmfont-binary/-/parse-bmfont-binary-1.0.6.tgz", + "integrity": "sha512-GxmsRea0wdGdYthjuUeWTMWPqm2+FAd4GI8vCvhgJsFnoGhTrLhXDDupwTo7rXVAgaLIGoVHDZS9p/5XbSqeWA==", + "dev": true, + "license": "MIT" + }, + "node_modules/parse-bmfont-xml": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/parse-bmfont-xml/-/parse-bmfont-xml-1.1.6.tgz", + "integrity": "sha512-0cEliVMZEhrFDwMh4SxIyVJpqYoOWDJ9P895tFuS+XuNzI5UBmBk5U5O4KuJdTnZpSBI4LFA2+ZiJaiwfSwlMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "xml-parse-from-string": "^1.0.0", + "xml2js": "^0.5.0" + } + }, + "node_modules/parse-headers": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.6.tgz", + "integrity": "sha512-Tz11t3uKztEW5FEVZnj1ox8GKblWn+PvHY9TmJV5Mll2uHEwRdR/5Li1OlXoECjLYkApdhWy44ocONwXLiKO5A==", + "dev": true, + "license": "MIT" + }, + "node_modules/parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "error-ex": "^1.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/parse5": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/parse5/-/parse5-8.0.1.tgz", @@ -5620,6 +7986,19 @@ "url": "https://github.com/inikulin/parse5?sponsor=1" } }, + "node_modules/path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha512-yTltuKuhtNeFJKa1PiRzfLAU5182q1y4Eb4XCJ3PBqyzEDkAZRzBrKKBct682ls9reBVHf9udYLN5Nd+K1B9BQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", @@ -5640,6 +8019,23 @@ "node": ">=8" } }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true, + "license": "MIT" + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/pathe": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", @@ -5662,6 +8058,20 @@ "url": "https://github.com/sponsors/jet2jet" } }, + "node_modules/peek-readable": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-4.1.0.tgz", + "integrity": "sha512-ZI3LnwUv5nOGbQzD9c2iDG6toheuXSZP5esSHBjopsXH4dg19soufvpUGA3uohi5anFtGb2lhAVdHzH6R/Evvg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Borewit" + } + }, "node_modules/pend": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", @@ -5669,6 +8079,128 @@ "dev": true, "license": "MIT" }, + "node_modules/performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==", + "dev": true, + "license": "MIT" + }, + "node_modules/phantomjs-prebuilt": { + "version": "2.1.16", + "resolved": "https://registry.npmjs.org/phantomjs-prebuilt/-/phantomjs-prebuilt-2.1.16.tgz", + "integrity": "sha512-PIiRzBhW85xco2fuj41FmsyuYHKjKuXWmhjy3A/Y+CMpN/63TV+s9uzfVhsUwFe0G77xWtHBG8xmXf5BqEUEuQ==", + "deprecated": "this package is now deprecated", + "dev": true, + "hasInstallScript": true, + "license": "Apache-2.0", + "dependencies": { + "es6-promise": "^4.0.3", + "extract-zip": "^1.6.5", + "fs-extra": "^1.0.0", + "hasha": "^2.2.0", + "kew": "^0.7.0", + "progress": "^1.1.8", + "request": "^2.81.0", + "request-progress": "^2.0.1", + "which": "^1.2.10" + }, + "bin": { + "phantomjs": "bin/phantomjs" + } + }, + "node_modules/phantomjs-prebuilt/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/phantomjs-prebuilt/node_modules/extract-zip": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.7.0.tgz", + "integrity": "sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "concat-stream": "^1.6.2", + "debug": "^2.6.9", + "mkdirp": "^0.5.4", + "yauzl": "^2.10.0" + }, + "bin": { + "extract-zip": "cli.js" + } + }, + "node_modules/phantomjs-prebuilt/node_modules/fs-extra": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-1.0.0.tgz", + "integrity": "sha512-VerQV6vEKuhDWD2HGOybV6v5I73syoc/cXAbKlgTC7M/oFVEtklWlp9QH2Ijw3IaWDOQcMkldSPa7zXy79Z/UQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.1.2", + "jsonfile": "^2.1.0", + "klaw": "^1.0.0" + } + }, + "node_modules/phantomjs-prebuilt/node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true, + "license": "ISC" + }, + "node_modules/phantomjs-prebuilt/node_modules/jsonfile": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", + "integrity": "sha512-PKllAqbgLgxHaj8TElYymKCAgrASebJrWpTnEkOaTowt23VKXXN0sUeriJ+eh7y6ufb/CC5ap11pz71/cM0hUw==", + "dev": true, + "license": "MIT", + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/phantomjs-prebuilt/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true, + "license": "MIT" + }, + "node_modules/phantomjs-prebuilt/node_modules/progress": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/progress/-/progress-1.1.8.tgz", + "integrity": "sha512-UdA8mJ4weIkUBO224tIarHzuHs4HuYiJvsuGT7j/SPQiUJVjYvNDBIPa0hAorduOfjGohB/qHWRa/lrrWX/mXw==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/phantomjs-prebuilt/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/phin": { + "version": "2.9.3", + "resolved": "https://registry.npmjs.org/phin/-/phin-2.9.3.tgz", + "integrity": "sha512-CzFr90qM24ju5f88quFC/6qohjC144rehe5n6DH900lgXmUe86+xCKc10ev56gRKC4/BkHUoG4uSiQgBiIXwDA==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "dev": true, + "license": "MIT" + }, "node_modules/picocolors": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", @@ -5689,6 +8221,62 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "pinkie": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pixelmatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/pixelmatch/-/pixelmatch-4.0.2.tgz", + "integrity": "sha512-J8B6xqiO37sU/gkcMglv6h5Jbd9xNER7aHzpfRdNmV4IbQBzBpe4l9XmbG+xPF/znacgu2jfEw+wHffaq/YkXA==", + "dev": true, + "license": "ISC", + "dependencies": { + "pngjs": "^3.0.0" + }, + "bin": { + "pixelmatch": "bin/pixelmatch" + } + }, + "node_modules/pixelmatch/node_modules/pngjs": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz", + "integrity": "sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4.0.0" + } + }, "node_modules/playwright": { "version": "1.59.1", "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.59.1.tgz", @@ -5736,6 +8324,23 @@ "node": ">=10.4.0" } }, + "node_modules/pn": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/pn/-/pn-1.1.0.tgz", + "integrity": "sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA==", + "dev": true, + "license": "MIT" + }, + "node_modules/pngjs": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-6.0.0.tgz", + "integrity": "sha512-TRzzuFRRmEoSW/p1KVAmiOgPco2Irlah+bGFCeNfJXxxYGwSw7YwAOAcd7X28K/m5bjBWKsC29KyoMfHbypayg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.13.0" + } + }, "node_modules/postcss": { "version": "8.5.10", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.10.tgz", @@ -5862,6 +8467,23 @@ "node": "^20.17.0 || >=22.9.0" } }, + "node_modules/process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true, + "license": "MIT" + }, "node_modules/progress": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", @@ -5898,6 +8520,19 @@ "signal-exit": "^3.0.2" } }, + "node_modules/psl": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.15.0.tgz", + "integrity": "sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==", + "dev": true, + "license": "MIT", + "dependencies": { + "punycode": "^2.3.1" + }, + "funding": { + "url": "https://github.com/sponsors/lupomontero" + } + }, "node_modules/pump": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.4.tgz", @@ -5918,6 +8553,37 @@ "node": ">=6" } }, + "node_modules/qs": { + "version": "6.5.5", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.5.tgz", + "integrity": "sha512-mzR4sElr1bfCaPJe7m8ilJ6ZXdDaGoObcYR0ZHSsktM/Lt21MVHj5De30GQH2eiZ1qGRTO7LCAzQsUeXTNexWQ==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, "node_modules/quick-lru": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", @@ -5998,6 +8664,50 @@ "read-binary-file-arch": "cli.js" } }, + "node_modules/read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha512-7BGwRHqt4s/uVbuyoeejRn4YmFnYZiFl4AuaeXHlgZf3sONF0SOGlxs2Pw8g6hCKupo08RafIO5YXFNOKTfwsQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha512-WD9MTlNtI55IwYUS27iHh9tK3YoIVhxis8yKhLpTqWtml739uXc9NWTpxoHkfZf3+DkCCsXox94/VWZniuZm6A==", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/read-pkg/node_modules/path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha512-S4eENJz1pkiQn9Znv33Q+deTOKmbl+jj1Fl+qiP/vYezj+S8x+J3Uo0ISrx/QoEvIlOaDWJhPaRd1flJ9HXZqg==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/readable-stream": { "version": "3.6.2", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", @@ -6012,6 +8722,65 @@ "node": ">= 6" } }, + "node_modules/readable-web-to-node-stream": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/readable-web-to-node-stream/-/readable-web-to-node-stream-3.0.4.tgz", + "integrity": "sha512-9nX56alTf5bwXQ3ZDipHJhusu9NTQJ/CVPtb/XHAJCXihZeitfJvIRS4GqQ/mfIoOE3IelHMrpayVrosdHBuLw==", + "dev": true, + "license": "MIT", + "dependencies": { + "readable-stream": "^4.7.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Borewit" + } + }, + "node_modules/readable-web-to-node-stream/node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/readable-web-to-node-stream/node_modules/readable-stream": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.7.0.tgz", + "integrity": "sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg==", + "dev": true, + "license": "MIT", + "dependencies": { + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10", + "string_decoder": "^1.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, "node_modules/redent": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", @@ -6026,6 +8795,96 @@ "node": ">=8" } }, + "node_modules/regenerator-runtime": { + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", + "dev": true, + "license": "MIT" + }, + "node_modules/request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/request-progress": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/request-progress/-/request-progress-2.0.1.tgz", + "integrity": "sha512-dxdraeZVUNEn9AvLrxkgB2k6buTlym71dJk1fk4v8j3Ou3RKNm07BcgbHdj2lLgYGfqX71F+awb1MR+tWPFJzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "throttleit": "^1.0.0" + } + }, + "node_modules/request/node_modules/form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 0.12" + } + }, + "node_modules/request/node_modules/tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/request/node_modules/uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "deprecated": "uuid@10 and below is no longer supported. For ESM codebases, update to uuid@latest. For CommonJS codebases, use uuid@11 (but be aware this version will likely be deprecated in 2028).", + "dev": true, + "license": "MIT", + "bin": { + "uuid": "bin/uuid" + } + }, "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -6046,6 +8905,13 @@ "node": ">=0.10.0" } }, + "node_modules/require-main-filename": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha512-IqSUtOVP4ksd1C/ej5zeEh/BIP2ajqpn8c5x+q99gvcIG/Qf0cud5raVnE/Dwd0ua9TXYDoDc0RE5hBSdz22Ug==", + "dev": true, + "license": "ISC" + }, "node_modules/resedit": { "version": "1.7.2", "resolved": "https://registry.npmjs.org/resedit/-/resedit-1.7.2.tgz", @@ -6064,6 +8930,28 @@ "url": "https://github.com/sponsors/jet2jet" } }, + "node_modules/resolve": { + "version": "1.22.12", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.12.tgz", + "integrity": "sha512-TyeJ1zif53BPfHootBGwPRYT1RUt6oGWsaQr8UyZW/eAm9bKoijtvruSDEmZHm92CwS9nj7/fWttqPCgzep8CA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "is-core-module": "^2.16.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/resolve-alpn": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", @@ -6094,6 +8982,17 @@ "node": ">= 4" } }, + "node_modules/reusify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, "node_modules/rimraf": { "version": "2.6.3", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", @@ -6173,6 +9072,30 @@ "fsevents": "~2.3.2" } }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, "node_modules/safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", @@ -6274,6 +9197,71 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", + "dev": true, + "license": "ISC" + }, + "node_modules/sharp": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.34.5.tgz", + "integrity": "sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg==", + "dev": true, + "hasInstallScript": true, + "license": "Apache-2.0", + "dependencies": { + "@img/colour": "^1.0.0", + "detect-libc": "^2.1.2", + "semver": "^7.7.3" + }, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-darwin-arm64": "0.34.5", + "@img/sharp-darwin-x64": "0.34.5", + "@img/sharp-libvips-darwin-arm64": "1.2.4", + "@img/sharp-libvips-darwin-x64": "1.2.4", + "@img/sharp-libvips-linux-arm": "1.2.4", + "@img/sharp-libvips-linux-arm64": "1.2.4", + "@img/sharp-libvips-linux-ppc64": "1.2.4", + "@img/sharp-libvips-linux-riscv64": "1.2.4", + "@img/sharp-libvips-linux-s390x": "1.2.4", + "@img/sharp-libvips-linux-x64": "1.2.4", + "@img/sharp-libvips-linuxmusl-arm64": "1.2.4", + "@img/sharp-libvips-linuxmusl-x64": "1.2.4", + "@img/sharp-linux-arm": "0.34.5", + "@img/sharp-linux-arm64": "0.34.5", + "@img/sharp-linux-ppc64": "0.34.5", + "@img/sharp-linux-riscv64": "0.34.5", + "@img/sharp-linux-s390x": "0.34.5", + "@img/sharp-linux-x64": "0.34.5", + "@img/sharp-linuxmusl-arm64": "0.34.5", + "@img/sharp-linuxmusl-x64": "0.34.5", + "@img/sharp-wasm32": "0.34.5", + "@img/sharp-win32-arm64": "0.34.5", + "@img/sharp-win32-ia32": "0.34.5", + "@img/sharp-win32-x64": "0.34.5" + } + }, + "node_modules/sharp/node_modules/semver": { + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.0.tgz", + "integrity": "sha512-AcM7dV/5ul4EekoQ29Agm5vri8JNqRyj39o0qpX6vDF2GZrtutZl5RwgD1XnZjiTAfncsJhMI48QQH3sN87YNA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -6382,6 +9370,16 @@ "node": ">=10" } }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/slice-ansi": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", @@ -6441,6 +9439,42 @@ "source-map": "^0.6.0" } }, + "node_modules/spdx-correct": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", + "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", + "dev": true, + "license": "CC-BY-3.0" + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.23", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.23.tgz", + "integrity": "sha512-CWLcCCH7VLu13TgOH+r8p1O/Znwhqv/dbb6lqWy67G+pT1kHmeD/+V36AVb/vq8QMIQwVShJ6Ssl5FPh0fuSdw==", + "dev": true, + "license": "CC0-1.0" + }, "node_modules/sprintf-js": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", @@ -6449,6 +9483,32 @@ "license": "BSD-3-Clause", "optional": true }, + "node_modules/sshpk": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.18.0.tgz", + "integrity": "sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + }, + "bin": { + "sshpk-conv": "bin/sshpk-conv", + "sshpk-sign": "bin/sshpk-sign", + "sshpk-verify": "bin/sshpk-verify" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/stackback": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", @@ -6510,6 +9570,19 @@ "node": ">=8" } }, + "node_modules/strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-utf8": "^0.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/strip-indent": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", @@ -6532,6 +9605,24 @@ "node": ">=0.10.0" } }, + "node_modules/strtok3": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/strtok3/-/strtok3-6.3.0.tgz", + "integrity": "sha512-fZtbhtvI9I48xDSywd/somNqgUHl2L2cstmXCCif0itOf96jeW18MBSyrLuNicYQVkvpOxkZtkzujiTJ9LW5Jw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@tokenizer/token": "^0.3.0", + "peek-readable": "^4.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Borewit" + } + }, "node_modules/sumchecker": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/sumchecker/-/sumchecker-3.0.1.tgz", @@ -6558,6 +9649,168 @@ "node": ">=8" } }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/svg2png": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/svg2png/-/svg2png-4.1.1.tgz", + "integrity": "sha512-9tOp9Ugjlunuf1ugqkhiYboTmTaTI7p48dz5ZjNA5NQJ5xS1NLTZZ1tF8vkJOIBb/ZwxGJsKZvRWqVpo4q9z9Q==", + "dev": true, + "license": "WTFPL", + "dependencies": { + "file-url": "^2.0.0", + "phantomjs-prebuilt": "^2.1.14", + "pn": "^1.0.0", + "yargs": "^6.5.0" + }, + "bin": { + "svg2png": "bin/svg2png-cli.js" + } + }, + "node_modules/svg2png/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/svg2png/node_modules/camelcase": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", + "integrity": "sha512-4nhGqUkc4BqbBBB4Q6zLuD7lzzrHYrjKGeYaEji/3tFR5VdJu9v+LilhGIVe8wxEJPPOeWo7eg8dwY13TZ1BNg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/svg2png/node_modules/cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha512-0yayqDxWQbqk3ojkYqUKqaAQ6AfNKeKWRNA8kR0WXzAsdHpP4BIaOmMAG87JGuO6qcobyW4GjxHd9PmhEd+T9w==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" + } + }, + "node_modules/svg2png/node_modules/get-caller-file": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", + "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", + "dev": true, + "license": "ISC" + }, + "node_modules/svg2png/node_modules/is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "number-is-nan": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/svg2png/node_modules/string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==", + "dev": true, + "license": "MIT", + "dependencies": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/svg2png/node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/svg2png/node_modules/wrap-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha512-vAaEaDM946gbNpH5pLVNR+vX2ht6n0Bt3GXwVB1AuAqZosOvHNF3P7wDnh8KLkSqgUh0uh77le7Owgoz+Z9XBw==", + "dev": true, + "license": "MIT", + "dependencies": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/svg2png/node_modules/y18n": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz", + "integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/svg2png/node_modules/yargs": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-6.6.0.tgz", + "integrity": "sha512-6/QWTdisjnu5UHUzQGst+UOEuEVwIzFVGBjq3jMTFNs5WJQsH/X6nMURSaScIdF5txylr1Ao9bvbWiKi2yXbwA==", + "dev": true, + "license": "MIT", + "dependencies": { + "camelcase": "^3.0.0", + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "get-caller-file": "^1.0.1", + "os-locale": "^1.4.0", + "read-pkg-up": "^1.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^1.0.2", + "which-module": "^1.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^4.2.0" + } + }, + "node_modules/svg2png/node_modules/yargs-parser": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-4.2.1.tgz", + "integrity": "sha512-+QQWqC2xeL0N5/TE+TY6OGEqyNRM+g2/r712PDNYgiCdXYCApXf1vzfmDSLBxfGRwV+moTq/V8FnMI24JCm2Yg==", + "dev": true, + "license": "ISC", + "dependencies": { + "camelcase": "^3.0.0" + } + }, "node_modules/symbol-tree": { "version": "3.2.4", "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", @@ -6694,6 +9947,23 @@ "node": ">= 10.0.0" } }, + "node_modules/throttleit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-1.0.1.tgz", + "integrity": "sha512-vDZpf9Chs9mAdfY046mcPt8fg5QSZr37hEH4TXYBnDF+izxgrbRGUAAaBvIk/fJm9aOFCGFd1EsNg5AZCbnQCQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/timm": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/timm/-/timm-1.7.1.tgz", + "integrity": "sha512-IjZc9KIotudix8bMaBW6QvMuq64BrJWFs1+4V0lXwWGQZwH+LnX87doAYhem4caOEusRP9/g6jVDQmZ8XOk1nw==", + "dev": true, + "license": "MIT" + }, "node_modules/tiny-async-pool": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/tiny-async-pool/-/tiny-async-pool-1.3.0.tgz", @@ -6721,6 +9991,13 @@ "dev": true, "license": "MIT" }, + "node_modules/tinycolor2": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.6.0.tgz", + "integrity": "sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==", + "dev": true, + "license": "MIT" + }, "node_modules/tinyexec": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.1.1.tgz", @@ -6798,6 +10075,37 @@ "tmp": "^0.2.0" } }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/token-types": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/token-types/-/token-types-4.2.1.tgz", + "integrity": "sha512-6udB24Q737UD/SDsKAHI9FCRP7Bqc9D/MQUV02ORQg5iskjtLJlZJNdN4kKtcdtwCeWIwIHDGaUsTsCCAa8sFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@tokenizer/token": "^0.3.0", + "ieee754": "^1.2.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Borewit" + } + }, "node_modules/tough-cookie": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-6.0.1.tgz", @@ -6834,6 +10142,14 @@ "utf8-byte-length": "^1.0.1" } }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "dev": true, + "license": "0BSD", + "optional": true + }, "node_modules/tunnel-agent": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", @@ -6846,6 +10162,13 @@ "node": "*" } }, + "node_modules/tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==", + "dev": true, + "license": "Unlicense" + }, "node_modules/type-fest": { "version": "0.13.1", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz", @@ -6860,6 +10183,13 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", + "dev": true, + "license": "MIT" + }, "node_modules/typescript": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/typescript/-/typescript-6.0.3.tgz", @@ -6949,6 +10279,16 @@ "dev": true, "license": "(WTFPL OR MIT)" }, + "node_modules/utif": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/utif/-/utif-2.0.1.tgz", + "integrity": "sha512-Z/S1fNKCicQTf375lIP9G8Sa1H/phcysstNrrSdZKj1f9g58J4NMgb5IgiEZN9/nLMPDwF0W7hdOe9Qq2IYoLg==", + "dev": true, + "license": "MIT", + "dependencies": { + "pako": "^1.0.5" + } + }, "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", @@ -6968,6 +10308,17 @@ "uuid": "dist-node/bin/uuid" } }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, "node_modules/verror": { "version": "1.10.1", "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.1.tgz", @@ -7712,6 +11063,13 @@ "node": "^18.17.0 || >=20.5.0" } }, + "node_modules/which-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", + "integrity": "sha512-F6+WgncZi/mJDrammbTuHe1q0R5hOXv/mBaiNA2TCNT/LTHusX0V+CJnj9XT8ki5ln2UZyyddDgHfCzyrOH7MQ==", + "dev": true, + "license": "ISC" + }, "node_modules/why-is-node-running": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz", @@ -7753,6 +11111,19 @@ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", "license": "ISC" }, + "node_modules/xhr": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/xhr/-/xhr-2.6.0.tgz", + "integrity": "sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA==", + "dev": true, + "license": "MIT", + "dependencies": { + "global": "~4.4.0", + "is-function": "^1.0.1", + "parse-headers": "^2.0.0", + "xtend": "^4.0.0" + } + }, "node_modules/xml-name-validator": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-5.0.0.tgz", @@ -7763,6 +11134,37 @@ "node": ">=18" } }, + "node_modules/xml-parse-from-string": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/xml-parse-from-string/-/xml-parse-from-string-1.0.1.tgz", + "integrity": "sha512-ErcKwJTF54uRzzNMXq2X5sMIy88zJvfN2DmdoQvy7PAFJ+tPRU6ydWuOKNMyfmOjdyBQTFREi60s0Y0SyI0G0g==", + "dev": true, + "license": "MIT" + }, + "node_modules/xml2js": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.5.0.tgz", + "integrity": "sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/xml2js/node_modules/xmlbuilder": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", + "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4.0" + } + }, "node_modules/xmlbuilder": { "version": "15.1.1", "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-15.1.1.tgz", @@ -7780,6 +11182,16 @@ "dev": true, "license": "MIT" }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4" + } + }, "node_modules/y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", diff --git a/package.json b/package.json index 0e9411e..db019cc 100644 --- a/package.json +++ b/package.json @@ -30,7 +30,9 @@ "predist:mac": "npm run rebuild:electron && npm run build", "dist:mac": "electron-builder --mac --arm64", "predist:linux": "npm run rebuild:electron && npm run build", - "dist:linux": "electron-builder --linux --x64" + "dist:linux": "electron-builder --linux --x64", + "build:icons:png": "node scripts/svg-to-png.mjs assets/icon.svg build/icon-source.png 1024", + "build:icons": "npm run build:icons:png && electron-icon-builder --input=build/icon-source.png --output=build --flatten && node scripts/finalize-icons.mjs" }, "build": { "appId": "xyz.altair823.inkling", @@ -44,8 +46,14 @@ "**/*.node" ], "win": { + "icon": "build/icon.ico", "target": [ - { "target": "nsis", "arch": ["x64"] } + { + "target": "nsis", + "arch": [ + "x64" + ] + } ] }, "nsis": { @@ -56,16 +64,33 @@ "shortcutName": "Inkling" }, "mac": { + "icon": "build/icon.icns", "target": [ - { "target": "dmg", "arch": ["arm64"] } + { + "target": "dmg", + "arch": [ + "arm64" + ] + } ], "category": "public.app-category.productivity", "identity": null }, "linux": { + "icon": "build/icon.png", "target": [ - { "target": "AppImage", "arch": ["x64"] }, - { "target": "deb", "arch": ["x64"] } + { + "target": "AppImage", + "arch": [ + "x64" + ] + }, + { + "target": "deb", + "arch": [ + "x64" + ] + } ], "category": "Utility", "synopsis": "로컬 메모 캡처 + AI 태그", @@ -92,8 +117,10 @@ "@vitejs/plugin-react": "5.1.4", "electron": "41.3.0", "electron-builder": "26.8.1", + "electron-icon-builder": "^2.0.1", "electron-vite": "5.0.0", "jsdom": "^29.1.1", + "sharp": "^0.34.5", "typescript": "6.0.3", "undici": "8.1.0", "vite": "7.3.2", diff --git a/scripts/finalize-icons.mjs b/scripts/finalize-icons.mjs new file mode 100644 index 0000000..726693b --- /dev/null +++ b/scripts/finalize-icons.mjs @@ -0,0 +1,35 @@ +import { copyFileSync, renameSync, existsSync } from 'node:fs'; +import { join } from 'node:path'; + +// electron-icon-builder --flatten 은 build/icons/ 안에 icon.ico, icon.icns, x.png +// 들을 만든다. electron-builder 는 build/icon.ico, build/icon.icns, build/icon.png 를 +// 기대 — 정규 위치로 옮긴다. +const buildDir = 'build'; +const iconsDir = join(buildDir, 'icons'); + +const moves = [ + ['icon.ico', 'icon.ico'], + ['icon.icns', 'icon.icns'], +]; + +for (const [src, dest] of moves) { + const from = join(iconsDir, src); + const to = join(buildDir, dest); + if (existsSync(from)) { + renameSync(from, to); + console.log(`Moved: ${from} -> ${to}`); + } else { + console.error(`MISSING: ${from}`); + process.exit(1); + } +} + +const png1024 = join(iconsDir, '1024x1024.png'); +const pngOut = join(buildDir, 'icon.png'); +if (existsSync(png1024)) { + copyFileSync(png1024, pngOut); + console.log(`Copied: ${png1024} -> ${pngOut}`); +} else { + console.error(`MISSING: ${png1024}`); + process.exit(1); +} diff --git a/scripts/svg-to-png.mjs b/scripts/svg-to-png.mjs new file mode 100644 index 0000000..fcb4aee --- /dev/null +++ b/scripts/svg-to-png.mjs @@ -0,0 +1,14 @@ +import sharp from 'sharp'; +import { readFileSync, writeFileSync, mkdirSync } from 'node:fs'; +import { dirname } from 'node:path'; + +const [, , input, output, size = '1024'] = process.argv; +if (!input || !output) { + console.error('Usage: svg-to-png.mjs [size]'); + process.exit(1); +} +mkdirSync(dirname(output), { recursive: true }); +const svg = readFileSync(input); +const png = await sharp(svg).resize(Number(size), Number(size)).png().toBuffer(); +writeFileSync(output, png); +console.log(`OK: ${output} (${size}x${size})`); From 29259eef327fa6b474f3274e4c793e3567d44098 Mon Sep 17 00:00:00 2001 From: altair823 Date: Sat, 9 May 2026 14:23:51 +0900 Subject: [PATCH 5/6] =?UTF-8?q?chore(release):=20v0.2.8=20=E2=80=94=20Cut?= =?UTF-8?q?=20A=20(=EC=9D=B4=EB=AF=B8=EC=A7=80=20=EB=A0=8C=EB=8D=94?= =?UTF-8?q?=EB=A7=81=20+=20=EC=95=B1=20=EC=95=84=EC=9D=B4=EC=BD=98)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../specs/2026-04-25-dogfood-feedback.md | 73 ++++++++++++++++++- package.json | 2 +- 2 files changed, 72 insertions(+), 3 deletions(-) diff --git a/docs/superpowers/specs/2026-04-25-dogfood-feedback.md b/docs/superpowers/specs/2026-04-25-dogfood-feedback.md index 4adf57e..a991f2d 100644 --- a/docs/superpowers/specs/2026-04-25-dogfood-feedback.md +++ b/docs/superpowers/specs/2026-04-25-dogfood-feedback.md @@ -1307,8 +1307,77 @@ app.on('activate', () => { --- +## F22. NoteCard 이미지가 회색 placeholder 만 표시 (🚀 promoted → docs/superpowers/specs/2026-05-09-v028-cut-a-design.md) + +**진행 상태:** 🚀 promoted → v0.2.8 Cut A. inkling-media:// custom protocol + NoteCard `` + IPC inbox:open-media + OS viewer 클릭. (commit 470384b + f6bea62 + 9cdea15) + +**발견:** 2026-05-09 v0.2.7 release 후 본인 dogfood. 사용자 표현: "이미지 렌더링이 제대로 되지 않는 것 같아". + +### 관찰 + +[src/renderer/inbox/components/NoteCard.tsx:334-340](src/renderer/inbox/components/NoteCard.tsx#L334-L340): + +```tsx +{local.media.length > 0 && ( +

+ {local.media.map((m) => ( +
+ ))} +
+)} +``` + +**`` 가 아니라 회색 `
`**. 즉 capture 시 첨부한 이미지가 보관함에서 회색 48x48 사각형만 표시 — title attribute (relPath) 만 hover tooltip 으로 보임. 실제 이미지 렌더링 자체 부재. + +`MediaStore` 는 `/media//` 절대 경로로 파일 보존. relPath = `media//` 형태. Electron renderer 에서 직접 `file://` 또는 custom protocol 로 src 매핑 필요. + +### 추정 원인 (placeholder 인 이유) + +- 초기 v0.4 slice 단계에 thumbnail 렌더는 후순위로 미루고 placeholder 로 둔 채 그대로 잔류. +- Electron renderer 가 raw `file://` 경로 보안 정책상 직접 접근 어려움 — custom protocol (`inkling-media://`) 또는 IPC handle 로 base64 변환 필요. + +### 제안 방향 + +**A. Custom protocol 등록** (권장): +- main process 에서 `protocol.registerFileProtocol('inkling-media', ...)` 등록 — `/media/` 하위 경로를 `inkling-media:///` 으로 매핑 +- NoteCard: `` +- 보안: scheme 별 allowlist + protocol handler 가 path traversal 검사 + +**B. IPC 로 base64 변환** (작은 이미지에 한정): +- `inboxApi.getMediaDataUrl(relPath)` → main 이 file 읽고 `data:image/png;base64,...` 반환 +- renderer 에 `` +- 큰 이미지 (수 MB) 시 메모리 부담 + +**C. file:// 직접** (Electron 특수 설정 필요): +- `webPreferences.webSecurity: false` — 보안 약화 risk. **Reject**. + +### 결정 대기 + +- thumbnail 표시 vs 클릭 시 full-size modal — UX 선택 +- 다중 이미지 (현재 capture 가 N개 첨부 가능) 의 grid layout +- 이미지 alt text — capture 시 입력 또는 AI 자동 생성 (옵션) + +### 가설·측정 + +- 본인 dogfood: capture 시 이미지 첨부 빈도 — 현재 추정치 < 일 1건. ≥ 일 1건이면 이미지 흐름 가치 큼. +- 옵션 A 도입 후 NoteCard 클릭 시 modal full-size 사용 빈도 — UX 선택 검증. + +### 범위 + +- A (custom protocol + thumbnail): 1-2일. +- A + click → full-size modal: + 0.5일. +- alt text AI 생성: 별도 cut. + +### 영향 + +- 명확한 bug 수정 — 사용자 마찰 명백. +- F19 (recall) 의 시각적 단서 — 이미지 보일 때 메모 회상 ↑. +- v0.2.8 narrow scope 에 포함 가치 (1-2일 작업). + +--- + ## (다음 항목 자리) -새 피드백 추가 시 `## F17. 짧은 제목 (🌱 raw)` 헤더로 시작. 표준 슬롯 6개 채우거나 비워둔 채 시작 가능. +새 피드백 추가 시 `## F23. 짧은 제목 (🌱 raw)` 헤더로 시작. 표준 슬롯 6개 채우거나 비워둔 채 시작 가능. -dogfood ≥1주 soak (v0.2.6 release 후) 동안 새 발견 항목들 여기 누적 → v0.2.7 brainstorm 트리거. +v0.2.8 release 후 dogfood ≥1주 soak 동안 새 발견 항목들 여기 누적 → v0.2.9 brainstorm 트리거. diff --git a/package.json b/package.json index db019cc..0a19a87 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "inkling", - "version": "0.2.7", + "version": "0.2.8", "private": true, "description": "Inkling — local-first 한 줄 보관 도구", "author": "altair823 ", From 6db449f86d9bab1dcb26f9a6a859c93e95ae9753 Mon Sep 17 00:00:00 2001 From: altair823 Date: Sat, 9 May 2026 14:27:42 +0900 Subject: [PATCH 6/6] =?UTF-8?q?chore(v028):=20final=20review=20minor=203?= =?UTF-8?q?=EA=B1=B4=20cleanup?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - inklingMedia.ts:39 no-op replace 제거 + 명료한 host+pathname 결합 코멘트 - inbox:open-media 빈 relPath 명시적 거절 (typeof + length 검사) - NoteCard alt="" decorative 의도 코멘트 472/472 + typecheck 0 유지. Co-Authored-By: Claude Opus 4.7 (1M context) --- src/main/ipc/inboxApi.ts | 3 +++ src/main/protocol/inklingMedia.ts | 3 ++- src/renderer/inbox/components/NoteCard.tsx | 1 + 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/main/ipc/inboxApi.ts b/src/main/ipc/inboxApi.ts index a95b639..4da6e71 100644 --- a/src/main/ipc/inboxApi.ts +++ b/src/main/ipc/inboxApi.ts @@ -159,6 +159,9 @@ export function registerInboxApi(deps: InboxIpcDeps): void { // v0.2.8 Cut A — 첨부 이미지 클릭 시 OS 기본 뷰어로 열기 (Task 3). // path traversal 검사는 inkling-media:// protocol handler 와 동일한 패턴 (Task 1). ipcMain.handle('inbox:open-media', async (_e, relPath: string) => { + if (typeof relPath !== 'string' || relPath.length === 0) { + return { ok: false as const, reason: 'invalid path' as const }; + } const profileDir = deps.paths.profileDir; const mediaRoot = join(profileDir, 'media'); const target = normalize(join(profileDir, relPath)); diff --git a/src/main/protocol/inklingMedia.ts b/src/main/protocol/inklingMedia.ts index 3eede61..4443004 100644 --- a/src/main/protocol/inklingMedia.ts +++ b/src/main/protocol/inklingMedia.ts @@ -36,7 +36,8 @@ export function registerInklingMediaProtocol(profileDir: string): void { return new Response(null, { status: 403 }); } const url = new URL(req.url); - const relPath = decodeURIComponent((url.host + url.pathname).replace(/^media\//, 'media/')); + // inkling-media://media// → host='media', pathname='//' + const relPath = decodeURIComponent(`${url.host}${url.pathname}`); const target = normalize(join(profileDir, relPath)); if (!target.startsWith(mediaRoot + sep) && target !== mediaRoot) { return new Response(null, { status: 403 }); diff --git a/src/renderer/inbox/components/NoteCard.tsx b/src/renderer/inbox/components/NoteCard.tsx index 4f96f34..7c9c98a 100644 --- a/src/renderer/inbox/components/NoteCard.tsx +++ b/src/renderer/inbox/components/NoteCard.tsx @@ -334,6 +334,7 @@ export function NoteCard({ note, onDeleted, onUpdated, mode = 'inbox', onRestore {local.media.length > 0 && (
{local.media.map((m) => ( + // alt="" — decorative (relPath 는 사용자 의미 X). title 이 hover tooltip.