From 9e075ec9419b5b43ac2173771440681a669b3c16 Mon Sep 17 00:00:00 2001 From: Zaine Qayyum Date: Wed, 19 Aug 2026 09:56:06 +0100 Subject: [PATCH] Testing --- .gitignore | 5 + css/style.css | 653 +++++ data/library.json | 43 + electron/main.js | 292 +++ electron/pdf-import.js | 90 + electron/preload.js | 16 + index.html | 106 + js/app.js | 844 +++++++ package-lock.json | 5322 ++++++++++++++++++++++++++++++++++++++++ package.json | 43 + 10 files changed, 7414 insertions(+) create mode 100644 .gitignore create mode 100644 css/style.css create mode 100644 data/library.json create mode 100644 electron/main.js create mode 100644 electron/pdf-import.js create mode 100644 electron/preload.js create mode 100644 index.html create mode 100644 js/app.js create mode 100644 package-lock.json create mode 100644 package.json diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..188af2e --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +node_modules/ +dist/ +data/pdfs/ +*.log +.DS_Store diff --git a/css/style.css b/css/style.css new file mode 100644 index 0000000..582ea6a --- /dev/null +++ b/css/style.css @@ -0,0 +1,653 @@ +:root { + --paper: #f3ead3; + --paper-dark: #e8dcb8; + --ink: #1a1714; + --muted: #4a443c; + --rule: #1a1714; + --sidebar: 16.5rem; + --focus: #1a1714; +} + +html[data-theme="dark"] { + --paper: #1c1916; + --paper-dark: #141210; + --ink: #f3ead3; + --muted: #c9bda8; + --rule: #d4c6aa; + --focus: #f3ead3; +} + +*, +*::before, +*::after { + box-sizing: border-box; +} + +html, +body { + margin: 0; + height: 100%; + width: 100%; + overflow: hidden; +} + +html { + font-size: 18px; +} + +body { + background: var(--paper); + color: var(--ink); + font-family: "Courier New", Courier, ui-monospace, monospace; + line-height: 1.55; +} + +.app { + display: grid; + grid-template-columns: var(--sidebar) 1fr; + height: 100vh; + width: 100vw; +} + +.sidebar { + display: flex; + flex-direction: column; + min-height: 0; + border-right: 1px solid var(--rule); + background: var(--paper-dark); +} + +.sidebar-head { + padding: 1rem 1rem 0.6rem; + border-bottom: 1px solid var(--rule); +} + +.sidebar-head h2 { + margin: 0 0 0.65rem; + font-family: Georgia, "Times New Roman", Times, serif; + font-weight: 400; + font-size: 1.25rem; +} + +.vault-picker { + display: flex; + flex-direction: column; + gap: 0.2rem; + margin-bottom: 0.55rem; + font-size: 0.78rem; + text-transform: uppercase; + letter-spacing: 0.04em; +} + +.vault-picker select { + text-transform: none; + letter-spacing: 0; + font-size: 0.9rem; + width: 100%; +} + +.vault-actions { + display: flex; + gap: 0.35rem; + margin-bottom: 0.4rem; +} + +.vault-actions button, +#remove-vault { + flex: 1; + font-size: 0.72rem; +} + +#remove-vault { + width: 100%; +} + +.folder-heading { + padding: 0.7rem 1rem 0; +} + +.eyebrow { + margin: 0 0 0.25rem; + font-size: 0.8rem; + letter-spacing: 0.06em; + text-transform: uppercase; + color: var(--muted); +} + +.folder-list { + flex: 1; + overflow: auto; + padding: 0.5rem 0; +} + +.folder-row { + display: grid; + grid-template-columns: 1fr auto auto; + align-items: stretch; +} + +.folder-row button[data-folder-action] { + border: 0; + background: transparent; + padding: 0 0.45rem; + text-transform: none; + letter-spacing: 0; + font-size: 1rem; +} + +.folder-item { + display: flex; + align-items: center; + gap: 0.35rem; + width: 100%; + text-align: left; + border: 0; + background: transparent; + padding: 0.45rem 0.85rem; + text-transform: none; + letter-spacing: 0; + font-size: 0.95rem; + cursor: pointer; +} + +.folder-item .count { + margin-left: auto; + color: var(--muted); + font-size: 0.85rem; +} + +.folder-item.active { + background: var(--ink); + color: var(--paper); +} + +.folder-item.active .count { + color: var(--paper); +} + +.folder-item:hover:not(.active) { + text-decoration: underline; +} + +.folder-item.nested { + padding-left: 1.6rem; +} + +.sidebar-actions { + display: flex; + gap: 0.4rem; + padding: 0.75rem; + border-top: 1px solid var(--rule); +} + +.sidebar-actions button { + flex: 1; +} + +.file-path { + margin: 0; + padding: 0 0.75rem 0.75rem; + font-size: 0.75rem; + color: var(--muted); + word-break: break-all; +} + +.workspace { + display: flex; + flex-direction: column; + min-width: 0; + min-height: 0; + height: 100vh; +} + +.masthead { + flex: 0 0 auto; + padding: 0.9rem 1.15rem 0.8rem; + border-bottom: 1px solid var(--rule); +} + +.masthead-row { + display: flex; + justify-content: space-between; + align-items: baseline; + gap: 1rem; +} + +h1 { + margin: 0; + font-family: Georgia, "Times New Roman", Times, serif; + font-size: 1.85rem; + font-weight: 400; +} + +.subtitle { + margin: 0.15rem 0 0; + text-transform: uppercase; + letter-spacing: 0.14em; + font-size: 0.8rem; +} + +.masthead-meta { + display: flex; + align-items: center; + gap: 0.6rem; +} + +.datestamp { + margin: 0; + font-size: 0.9rem; + white-space: nowrap; +} + +.toolbar { + display: flex; + flex-wrap: wrap; + gap: 0.6rem 1rem; + align-items: flex-end; + margin-top: 0.75rem; +} + +.search { + display: flex; + flex-direction: column; + gap: 0.25rem; + flex: 1 1 14rem; + font-size: 0.8rem; + text-transform: uppercase; + letter-spacing: 0.04em; +} + +input[type="search"], +input[type="number"], +input[type="text"], +input[type="url"], +select, +textarea, +button { + font: inherit; + color: var(--ink); + background: var(--paper); + border: 1px solid var(--rule); + border-radius: 0; + padding: 0.4rem 0.55rem; +} + +input[type="search"] { + text-transform: none; + letter-spacing: 0; + font-size: 1rem; +} + +.actions { + display: flex; + gap: 0.45rem; +} + +button { + cursor: pointer; + text-transform: uppercase; + letter-spacing: 0.04em; + font-size: 0.8rem; +} + +button:hover { + text-decoration: underline; +} + +button:focus-visible, +input:focus-visible, +select:focus-visible, +textarea:focus-visible { + outline: 2px solid var(--focus); + outline-offset: 2px; +} + +.toast { + margin: 0.55rem 0 0; + font-size: 0.9rem; +} + +.stats { + display: grid; + grid-template-columns: repeat(4, 1fr); + flex: 0 0 auto; + border-bottom: 1px solid var(--rule); +} + +.stat { + padding: 0.65rem 0.95rem; + border-right: 1px solid var(--rule); +} + +.stat:last-child { + border-right: 0; +} + +.stat .value { + display: block; + font-family: Georgia, "Times New Roman", Times, serif; + font-size: 1.45rem; +} + +.stat .label { + display: block; + font-size: 0.78rem; + text-transform: uppercase; + letter-spacing: 0.04em; + color: var(--muted); +} + +.filters { + display: grid; + grid-template-columns: 1fr 1fr 2fr; + flex: 0 0 auto; + border-bottom: 1px solid var(--rule); +} + +.filters fieldset { + margin: 0; + border: 0; + border-right: 1px solid var(--rule); + padding: 0.55rem 0.9rem 0.7rem; +} + +.filters fieldset:last-child { + border-right: 0; +} + +.filters legend { + padding: 0; + font-size: 0.78rem; + text-transform: uppercase; + letter-spacing: 0.04em; + color: var(--muted); +} + +.filters label { + display: inline-block; + margin: 0.2rem 0.85rem 0 0; + font-size: 0.95rem; +} + +.filters input { + accent-color: var(--ink); +} + +.catalog { + flex: 1 1 auto; + min-height: 0; + overflow: auto; + padding: 1.1rem 1.15rem 1.6rem; +} + +.section { + margin-bottom: 1.5rem; +} + +.section h2 { + margin: 0 0 0.7rem; + font-family: Georgia, "Times New Roman", Times, serif; + font-size: 1.25rem; + font-weight: 400; + border-bottom: 1px solid var(--rule); + padding-bottom: 0.3rem; +} + +.cards { + display: grid; + grid-template-columns: repeat(auto-fill, minmax(24rem, 1fr)); + gap: 0.9rem; +} + +.card { + border: 1px solid var(--rule); + padding: 1rem 1.05rem 1rem; + background: var(--paper); + display: flex; + flex-direction: column; +} + +.card-head { + display: flex; + justify-content: space-between; + align-items: flex-start; + gap: 0.75rem; + border-bottom: 1px solid var(--rule); + padding-bottom: 0.55rem; + margin-bottom: 0.7rem; +} + +.card h3 { + margin: 0; + font-family: Georgia, "Times New Roman", Times, serif; + font-size: 1.2rem; + font-weight: 400; +} + +.meta { + margin: 0.2rem 0 0; + font-size: 0.95rem; + color: var(--muted); +} + +.stamps { + display: flex; + flex-wrap: wrap; + justify-content: flex-end; + gap: 0.3rem; +} + +.stamp { + display: inline-block; + border: 1px solid var(--rule); + padding: 0.15rem 0.4rem; + font-size: 0.75rem; + letter-spacing: 0.06em; + text-transform: uppercase; + white-space: nowrap; +} + +.stamp.filled { + background: var(--ink); + color: var(--paper); +} + +.progress-row { + display: flex; + align-items: center; + gap: 0.45rem; + margin: 0.4rem 0 0.35rem; +} + +.progress-row button { + padding: 0.2rem 0.55rem; + min-width: 2rem; +} + +.progress-row input[type="number"] { + width: 4.4rem; + text-align: right; +} + +.progress-row .of { + font-size: 0.95rem; + color: var(--muted); +} + +.bar { + height: 0.7rem; + border: 1px solid var(--rule); + margin: 0.15rem 0 0.65rem; +} + +.bar > span { + display: block; + height: 100%; + background: var(--ink); +} + +.card-controls { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 0.55rem; + margin-top: auto; +} + +.field { + display: flex; + flex-direction: column; + gap: 0.2rem; + font-size: 0.78rem; + text-transform: uppercase; + letter-spacing: 0.04em; +} + +.field.wide { + grid-column: 1 / -1; +} + +.field select, +.field textarea, +.field input { + text-transform: none; + letter-spacing: 0; + font-size: 0.95rem; +} + +.field textarea { + min-height: 3.4rem; + resize: vertical; +} + +.card-foot { + display: flex; + justify-content: space-between; + align-items: center; + gap: 0.5rem; + margin-top: 0.65rem; + padding-top: 0.5rem; + border-top: 1px dashed var(--rule); + font-size: 0.9rem; +} + +.card-foot a { + color: var(--ink); +} + +.card-foot a:hover { + text-decoration: underline; +} + +.card-foot-actions { + display: flex; + gap: 0.4rem; +} + +.drop-overlay { + position: fixed; + inset: 0.75rem; + z-index: 20; + display: flex; + align-items: center; + justify-content: center; + border: 1px dashed var(--rule); + background: color-mix(in srgb, var(--paper) 92%, transparent); + font-family: Georgia, "Times New Roman", Times, serif; + font-size: 1.4rem; + color: var(--ink); + pointer-events: none; +} + +.drop-overlay[hidden] { + display: none; +} + +.tags { + margin: 0.35rem 0 0; + font-size: 0.85rem; + color: var(--muted); +} + +.muted, +.empty { + color: var(--muted); + font-size: 1rem; +} + +.error { + border: 1px solid var(--rule); + padding: 1rem; +} + +.empty-vault { + max-width: 36rem; +} + +.empty-vault p { + margin: 0 0 0.75rem; +} + +.empty-vault ol { + margin: 0 0 1rem; + padding-left: 1.2rem; +} + +.sheet { + width: min(34rem, calc(100vw - 2rem)); + border: 1px solid var(--rule); + background: var(--paper); + color: var(--ink); + padding: 0; +} + +.sheet::backdrop { + background: rgba(0, 0, 0, 0.4); +} + +.sheet form { + padding: 1.1rem 1.15rem 1.15rem; +} + +.sheet h2 { + margin: 0 0 0.9rem; + font-family: Georgia, "Times New Roman", Times, serif; + font-weight: 400; + font-size: 1.3rem; + border-bottom: 1px solid var(--rule); + padding-bottom: 0.4rem; +} + +.dialog-fields { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 0.7rem; +} + +.dialog-fields .field.wide { + grid-column: 1 / -1; +} + +.dialog-actions { + display: flex; + gap: 0.5rem; + margin-top: 1rem; + justify-content: flex-end; +} + +@media (max-width: 900px) { + .app { + grid-template-columns: 1fr; + grid-template-rows: auto 1fr; + } + + .sidebar { + max-height: 11rem; + border-right: 0; + border-bottom: 1px solid var(--rule); + } + + .workspace { + height: auto; + min-height: 0; + } +} diff --git a/data/library.json b/data/library.json new file mode 100644 index 0000000..984289d --- /dev/null +++ b/data/library.json @@ -0,0 +1,43 @@ +{ + "folders": [ + { + "id": "books-msyr7amm", + "name": "Books", + "parentId": "" + }, + { + "id": "articles-msysxgse", + "name": "Articles", + "parentId": "" + } + ], + "books": [ + { + "id": "quick-start-kubernetes-msyslnvy", + "title": "Quick Start Kubernetes", + "author": "Nigel Poulton", + "format": "pdf", + "status": "reading", + "totalPages": 102, + "currentPage": 31, + "folderId": "books-msyr7amm", + "tags": [], + "notes": "", + "pdfPath": "D:\\Personal Projects\\ResourceLoader\\data\\pdfs\\quickstartkubernetes-2.pdf", + "sourceName": "quickstartkubernetes.pdf" + } + ], + "resources": [ + { + "id": "you-won-t-make-it-it-makes-you-msysxceg", + "title": "You Won’t Make It. It Makes You.", + "kind": "article", + "url": "https://medium.com/westenberg/you-wont-make-it-it-makes-you-5580fb0ae28c?sharedUserId=nworb", + "source": "", + "status": "backlog", + "folderId": "articles-msysxgse", + "tags": [], + "notes": "" + } + ] +} \ No newline at end of file diff --git a/electron/main.js b/electron/main.js new file mode 100644 index 0000000..e65bce5 --- /dev/null +++ b/electron/main.js @@ -0,0 +1,292 @@ +const { app, BrowserWindow, ipcMain, shell, dialog } = require("electron"); +const fs = require("fs"); +const path = require("path"); +const { importPdfFiles } = require("./pdf-import"); + +const EMPTY_CATALOG = { + folders: [], + books: [], + resources: [], +}; + +function settingsPath() { + return path.join(app.getPath("userData"), "settings.json"); +} + +function readSettings() { + try { + const data = JSON.parse(fs.readFileSync(settingsPath(), "utf8")); + return { + vaults: Array.isArray(data.vaults) ? data.vaults : [], + activeVaultId: data.activeVaultId || "", + }; + } catch { + return { vaults: [], activeVaultId: "" }; + } +} + +function writeSettings(settings) { + const payload = { + vaults: Array.isArray(settings.vaults) ? settings.vaults : [], + activeVaultId: settings.activeVaultId || "", + }; + fs.mkdirSync(path.dirname(settingsPath()), { recursive: true }); + fs.writeFileSync(settingsPath(), JSON.stringify(payload, null, 2)); + return payload; +} + +function activeVault(settings = readSettings()) { + return settings.vaults.find((vault) => vault.id === settings.activeVaultId) || null; +} + +function makeVaultId(name) { + const slug = String(name || "vault") + .toLowerCase() + .replace(/[^a-z0-9]+/g, "-") + .replace(/^-|-$/g, "") + .slice(0, 40); + return `${slug || "vault"}-${Date.now().toString(36)}`; +} + +function addOrSelectVault(folderPath, name) { + const settings = readSettings(); + const resolved = path.resolve(folderPath); + let vault = settings.vaults.find((item) => path.resolve(item.path) === resolved); + if (!vault) { + vault = { + id: makeVaultId(name || path.basename(resolved)), + name: (name || path.basename(resolved)).trim() || path.basename(resolved), + path: resolved, + }; + settings.vaults.push(vault); + } + settings.activeVaultId = vault.id; + return { settings: writeSettings(settings), vault }; +} + +function ensureVaultFiles(folderPath) { + if (!fs.existsSync(folderPath)) { + return { ok: false, reason: "missing-folder", path: folderPath }; + } + const libraryFile = path.join(folderPath, "library.json"); + fs.mkdirSync(path.join(folderPath, "pdfs"), { recursive: true }); + if (!fs.existsSync(libraryFile)) { + fs.writeFileSync(libraryFile, JSON.stringify(EMPTY_CATALOG, null, 2)); + } + return { ok: true, libraryPath: libraryFile, path: folderPath }; +} + +function parseCatalog(raw) { + const data = JSON.parse(raw); + return { + folders: Array.isArray(data.folders) ? data.folders : [], + books: Array.isArray(data.books) ? data.books : [], + resources: Array.isArray(data.resources) ? data.resources : [], + }; +} + +function loadLibrary() { + const settings = readSettings(); + const vault = activeVault(settings); + if (!vault) { + return { ok: false, reason: "no-vault", settings }; + } + const ensured = ensureVaultFiles(vault.path); + if (!ensured.ok) { + return { ...ensured, settings, vault }; + } + try { + return { + ok: true, + settings, + vault, + catalog: parseCatalog(fs.readFileSync(ensured.libraryPath, "utf8")), + libraryPath: ensured.libraryPath, + }; + } catch (err) { + return { + ok: false, + reason: "unreadable", + error: err.message, + settings, + vault, + path: vault.path, + }; + } +} + +function saveLibrary(data) { + const loaded = loadLibrary(); + if (!loaded.ok) return loaded; + const payload = { + folders: Array.isArray(data.folders) ? data.folders : [], + books: Array.isArray(data.books) ? data.books : [], + resources: Array.isArray(data.resources) ? data.resources : [], + }; + fs.writeFileSync(loaded.libraryPath, JSON.stringify(payload, null, 2)); + return { ...loaded, catalog: payload }; +} + +function resolvePdfPath(vaultRoot, pdfPath) { + if (!pdfPath) return ""; + if (path.isAbsolute(pdfPath) && fs.existsSync(pdfPath)) return pdfPath; + const joined = path.join(vaultRoot, pdfPath); + if (fs.existsSync(joined)) return joined; + return ""; +} + +function toPosixRelative(from, to) { + return path.relative(from, to).split(path.sep).join("/"); +} + +async function importIntoActiveVault(filePaths, existingNames) { + const loaded = loadLibrary(); + if (!loaded.ok) { + return { imported: [], skipped: [], errors: [], cancelled: false, ...loaded }; + } + const destDir = path.join(loaded.vault.path, "pdfs"); + const result = await importPdfFiles(filePaths || [], destDir, existingNames || []); + result.imported = result.imported.map((item) => ({ + ...item, + pdfPath: toPosixRelative(loaded.vault.path, item.pdfPath), + })); + return result; +} + +function focusedWindow() { + return BrowserWindow.getFocusedWindow(); +} + +function createWindow() { + const win = new BrowserWindow({ + width: 1280, + height: 800, + minWidth: 900, + minHeight: 600, + backgroundColor: "#f3ead3", + autoHideMenuBar: true, + webPreferences: { + preload: path.join(__dirname, "preload.js"), + contextIsolation: true, + nodeIntegration: false, + }, + }); + + win.loadFile(path.join(__dirname, "..", "index.html")); + win.maximize(); + + win.webContents.setWindowOpenHandler(({ url }) => { + shell.openExternal(url); + return { action: "deny" }; + }); +} + +app.whenReady().then(() => { + ipcMain.handle("library:load", () => loadLibrary()); + ipcMain.handle("library:save", (_event, data) => saveLibrary(data)); + ipcMain.handle("settings:load", () => { + const settings = readSettings(); + return { settings, vault: activeVault(settings) }; + }); + + ipcMain.handle("vault:open", async () => { + const result = await dialog.showOpenDialog(focusedWindow(), { + title: "Open vault folder", + properties: ["openDirectory"], + }); + if (result.canceled || !result.filePaths[0]) { + return { ok: false, cancelled: true, ...loadLibrary() }; + } + const folderPath = result.filePaths[0]; + if (!fs.existsSync(folderPath)) { + return { + ok: false, + reason: "missing-folder", + path: folderPath, + settings: readSettings(), + }; + } + addOrSelectVault(folderPath, path.basename(folderPath)); + return loadLibrary(); + }); + + ipcMain.handle("vault:create", async (_event, name) => { + const folderName = String(name || "").trim(); + if (!folderName) { + return { ok: false, reason: "no-name", settings: readSettings() }; + } + const result = await dialog.showOpenDialog(focusedWindow(), { + title: "Choose parent folder for the new vault", + properties: ["openDirectory", "createDirectory"], + }); + if (result.canceled || !result.filePaths[0]) { + return { ok: false, cancelled: true, ...loadLibrary() }; + } + const folderPath = path.join(result.filePaths[0], folderName); + fs.mkdirSync(folderPath, { recursive: true }); + addOrSelectVault(folderPath, folderName); + return loadLibrary(); + }); + + ipcMain.handle("vault:switch", (_event, id) => { + const settings = readSettings(); + if (!settings.vaults.some((vault) => vault.id === id)) { + return loadLibrary(); + } + writeSettings({ ...settings, activeVaultId: id }); + return loadLibrary(); + }); + + ipcMain.handle("vault:remove", (_event, id) => { + const settings = readSettings(); + const vaults = settings.vaults.filter((vault) => vault.id !== id); + const activeVaultId = + settings.activeVaultId === id ? vaults[0]?.id || "" : settings.activeVaultId; + writeSettings({ vaults, activeVaultId }); + return loadLibrary(); + }); + + ipcMain.handle("pdf:import", async (_event, existingNames) => { + const loaded = loadLibrary(); + if (!loaded.ok) { + return { imported: [], skipped: [], errors: [], cancelled: false, ...loaded }; + } + const result = await dialog.showOpenDialog(focusedWindow(), { + title: "Import PDFs", + properties: ["openFile", "multiSelections"], + filters: [{ name: "PDF documents", extensions: ["pdf"] }], + }); + if (result.canceled || !result.filePaths.length) { + return { imported: [], skipped: [], errors: [], cancelled: true }; + } + return importIntoActiveVault(result.filePaths, existingNames); + }); + + ipcMain.handle("pdf:importPaths", async (_event, filePaths, existingNames) => { + return importIntoActiveVault(filePaths, existingNames); + }); + + ipcMain.handle("pdf:open", async (_event, pdfPath) => { + const vault = activeVault(); + if (!vault) return { ok: false, error: "No vault open." }; + const resolved = resolvePdfPath(vault.path, pdfPath); + if (!resolved) { + return { + ok: false, + error: "File not found. Wait for Google Drive to finish syncing, then try again.", + }; + } + const error = await shell.openPath(resolved); + return { ok: !error, error: error || "" }; + }); + + createWindow(); + + app.on("activate", () => { + if (BrowserWindow.getAllWindows().length === 0) createWindow(); + }); +}); + +app.on("window-all-closed", () => { + if (process.platform !== "darwin") app.quit(); +}); diff --git a/electron/pdf-import.js b/electron/pdf-import.js new file mode 100644 index 0000000..eb4a129 --- /dev/null +++ b/electron/pdf-import.js @@ -0,0 +1,90 @@ +const fs = require("fs"); +const path = require("path"); +const { PDFDocument } = require("pdf-lib"); + +function clean(value) { + if (value == null) return ""; + return String(value).replace(/\0/g, "").replace(/\s+/g, " ").trim(); +} + +function titleFromFilename(filePath) { + return path + .basename(filePath, path.extname(filePath)) + .replace(/[_]+/g, " ") + .replace(/\s+/g, " ") + .trim(); +} + +function parseKeywords(value) { + if (!value) return []; + const list = Array.isArray(value) ? value : String(value).split(/[,;]+/); + return [...new Set(list.map(clean).filter(Boolean))]; +} + +function uniqueDest(dir, originalName) { + const ext = path.extname(originalName) || ".pdf"; + const stem = + path + .basename(originalName, ext) + .replace(/[<>:"/\\|?*]+/g, "-") + .slice(0, 80) || "document"; + let dest = path.join(dir, `${stem}${ext}`); + let n = 2; + while (fs.existsSync(dest)) { + dest = path.join(dir, `${stem}-${n}${ext}`); + n += 1; + } + return dest; +} + +async function extractMetadata(filePath) { + const bytes = fs.readFileSync(filePath); + const pdf = await PDFDocument.load(bytes, { + ignoreEncryption: true, + updateMetadata: false, + }); + return { + title: clean(pdf.getTitle()) || titleFromFilename(filePath), + author: clean(pdf.getAuthor()), + totalPages: pdf.getPageCount(), + notes: clean(pdf.getSubject()), + tags: parseKeywords(pdf.getKeywords()), + }; +} + +async function importPdfFiles(filePaths, destDir, existingNames) { + fs.mkdirSync(destDir, { recursive: true }); + const known = new Set((existingNames || []).map((name) => name.toLowerCase())); + const imported = []; + const skipped = []; + const errors = []; + + for (const filePath of filePaths) { + const sourceName = path.basename(filePath); + if (!filePath.toLowerCase().endsWith(".pdf")) { + skipped.push({ file: sourceName, reason: "not a PDF" }); + continue; + } + if (known.has(sourceName.toLowerCase())) { + skipped.push({ file: sourceName, reason: "already in catalog" }); + continue; + } + try { + const meta = await extractMetadata(filePath); + const dest = uniqueDest(destDir, sourceName); + fs.copyFileSync(filePath, dest); + known.add(sourceName.toLowerCase()); + imported.push({ + ...meta, + pdfPath: dest, + sourceName, + }); + } catch (err) { + errors.push({ file: sourceName, message: err.message }); + } + } + + return { imported, skipped, errors }; +} + +module.exports = { importPdfFiles }; diff --git a/electron/preload.js b/electron/preload.js new file mode 100644 index 0000000..3a48c59 --- /dev/null +++ b/electron/preload.js @@ -0,0 +1,16 @@ +const { contextBridge, ipcRenderer, webUtils } = require("electron"); + +contextBridge.exposeInMainWorld("libraryAPI", { + load: () => ipcRenderer.invoke("library:load"), + save: (data) => ipcRenderer.invoke("library:save", data), + settings: () => ipcRenderer.invoke("settings:load"), + openVault: () => ipcRenderer.invoke("vault:open"), + createVault: (name) => ipcRenderer.invoke("vault:create", name), + switchVault: (id) => ipcRenderer.invoke("vault:switch", id), + removeVault: (id) => ipcRenderer.invoke("vault:remove", id), + importPdfs: (existingNames) => ipcRenderer.invoke("pdf:import", existingNames), + importPdfPaths: (filePaths, existingNames) => + ipcRenderer.invoke("pdf:importPaths", filePaths, existingNames), + openPdf: (pdfPath) => ipcRenderer.invoke("pdf:open", pdfPath), + pathForFile: (file) => webUtils.getPathForFile(file), +}); diff --git a/index.html b/index.html new file mode 100644 index 0000000..2c939f4 --- /dev/null +++ b/index.html @@ -0,0 +1,106 @@ + + + + + + + Personal Library · Resource Index + + + +
+ + +
+
+
+
+

Personal Library

+

Resource Index

+
+
+

+ +
+
+
+ +
+ + + +
+
+ +
+ +
+ +
+
+ Format + + +
+
+ Kind + + +
+
+ Status + + + + + + + +
+
+ +
+

Loading catalog…

+
+
+
+ + + + +
+

Add

+
+
+ + +
+
+
+ + + + diff --git a/js/app.js b/js/app.js new file mode 100644 index 0000000..f75d6de --- /dev/null +++ b/js/app.js @@ -0,0 +1,844 @@ +const BOOK_STATUSES = ["reading", "shelf", "paused", "finished"]; +const RESOURCE_STATUSES = ["backlog", "in_progress", "done"]; +const UNFILED = ""; +const THEME_KEY = "resourceLoader.theme"; + +const catalogEl = document.getElementById("catalog"); +const statsEl = document.getElementById("stats"); +const searchEl = document.getElementById("search"); +const toastEl = document.getElementById("toast"); +const dateEl = document.getElementById("datestamp"); +const folderListEl = document.getElementById("folder-list"); +const filePathEl = document.getElementById("file-path"); +const vaultNameEl = document.getElementById("vault-name"); +const vaultSelectEl = document.getElementById("vault-select"); +const dialogEl = document.getElementById("dialog"); +const dialogForm = document.getElementById("dialog-form"); +const dialogTitle = document.getElementById("dialog-title"); +const dialogFields = document.getElementById("dialog-fields"); + +let catalog = { folders: [], books: [], resources: [] }; +let settings = { vaults: [], activeVaultId: "" }; +let vault = null; +let vaultReady = false; +let activeFolder = "all"; +let dialogMode = null; + +dateEl.textContent = formatDate(new Date()); +initTheme(); +init(); + +async function init() { + if (!window.libraryAPI) { + catalogEl.innerHTML = ` +
+

Desktop app required.

+

Run npm start from this folder, or build an .exe with npm run build.

+
`; + return; + } + + bind(); + await applyLoadResult(await window.libraryAPI.load()); +} + +function preferredTheme() { + const saved = localStorage.getItem(THEME_KEY); + if (saved === "dark" || saved === "light") return saved; + return window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light"; +} + +function applyTheme(theme) { + document.documentElement.dataset.theme = theme; + const button = document.getElementById("theme-toggle"); + if (button) button.textContent = theme === "dark" ? "Light mode" : "Dark mode"; +} + +function initTheme() { + applyTheme(preferredTheme()); +} + +function toggleTheme() { + const next = document.documentElement.dataset.theme === "dark" ? "light" : "dark"; + localStorage.setItem(THEME_KEY, next); + applyTheme(next); +} + +function bind() { + searchEl.addEventListener("input", render); + document.querySelectorAll(".filters input").forEach((input) => { + input.addEventListener("change", render); + }); + document.getElementById("add-book").addEventListener("click", () => openBookDialog()); + document.getElementById("add-resource").addEventListener("click", () => openResourceDialog()); + document.getElementById("theme-toggle").addEventListener("click", toggleTheme); + document.getElementById("import-pdf").addEventListener("click", () => importPdfs()); + document.getElementById("new-folder").addEventListener("click", () => openFolderDialog()); + document.getElementById("open-vault").addEventListener("click", openExistingVault); + document.getElementById("new-vault").addEventListener("click", openNewVaultDialog); + document.getElementById("remove-vault").addEventListener("click", removeActiveVault); + vaultSelectEl.addEventListener("change", async (event) => { + await applyLoadResult(await window.libraryAPI.switchVault(event.target.value)); + }); + document.getElementById("dialog-cancel").addEventListener("click", () => dialogEl.close()); + dialogForm.addEventListener("submit", onDialogSubmit); + + folderListEl.addEventListener("click", onFolderClick); + catalogEl.addEventListener("click", onCatalogClick); + catalogEl.addEventListener("change", onCatalogChange); + catalogEl.addEventListener("focusout", onCatalogFocusOut); + bindDrop(); +} + +function existingPdfNames() { + return catalog.books.map((book) => book.sourceName).filter(Boolean); +} + +function currentFolderId() { + return activeFolder !== "all" && activeFolder !== "unfiled" ? activeFolder : ""; +} + +async function applyLoadResult(result) { + settings = result.settings || { vaults: [], activeVaultId: "" }; + vault = result.vault || null; + vaultReady = Boolean(result.ok); + catalog = result.ok && result.catalog ? result.catalog : { folders: [], books: [], resources: [] }; + activeFolder = "all"; + renderVaultChrome(); + setWorkspaceEnabled(vaultReady); + if (!result.ok) { + catalogEl.innerHTML = vaultEmptyHtml(result); + statsEl.innerHTML = ""; + folderListEl.innerHTML = ""; + return; + } + render(); +} + +function renderVaultChrome() { + vaultNameEl.textContent = vault ? vault.name : "No vault"; + filePathEl.textContent = vault ? vault.path : "Choose a Google Drive folder as a vault."; + vaultSelectEl.innerHTML = settings.vaults.length + ? settings.vaults + .map( + (item) => + `` + ) + .join("") + : ``; + vaultSelectEl.disabled = settings.vaults.length === 0; + document.getElementById("remove-vault").disabled = !vault; +} + +function setWorkspaceEnabled(enabled) { + ["import-pdf", "add-book", "add-resource", "new-folder", "search"].forEach((id) => { + const el = document.getElementById(id); + if (el) el.disabled = !enabled; + }); +} + +function vaultEmptyHtml(result) { + if (result.reason === "missing-folder") { + return ` +
+

Vault folder not found.

+

${escapeHtml(result.path || "")}

+

If this lives on Google Drive, wait until Drive finishes syncing, then Open vault again. Don’t edit the same vault on two PCs at once.

+
`; + } + if (result.reason === "unreadable") { + return ` +
+

Could not read library.json.

+

${escapeHtml(result.error || "")}

+

Drive may still be syncing. Try again in a moment.

+
`; + } + return ` +
+

No vault open on this computer.

+

A vault is a folder (usually in Google Drive) with library.json and a pdfs folder. Use one vault for Work and another for Personal.

+
    +
  1. Install Google Drive for desktop and wait for folders to sync.
  2. +
  3. New vault: create Work or Personal under ResourceLoader in Drive.
  4. +
  5. Open vault: point this app at that folder. Work laptop: add Work only.
  6. +
+

Don’t edit the same vault on two PCs at once. Last save wins.

+
`; +} + +async function openExistingVault() { + const result = await window.libraryAPI.openVault(); + if (result.cancelled) return; + await applyLoadResult(result); +} + +function openNewVaultDialog() { + dialogMode = "vault-create"; + dialogTitle.textContent = "New vault"; + dialogFields.innerHTML = ` + +

Next you will choose the parent folder (for example your Google Drive ResourceLoader folder).

+ `; + dialogEl.showModal(); +} + +async function removeActiveVault() { + if (!vault) return; + if (!confirm(`Remove “${vault.name}” from this PC? Files in Drive are not deleted.`)) return; + await applyLoadResult(await window.libraryAPI.removeVault(vault.id)); +} + +async function importPdfs() { + const result = await window.libraryAPI.importPdfs(existingPdfNames()); + await applyImportResult(result); +} + +async function applyImportResult(result) { + if (!result || result.cancelled) return; + if (result.ok === false) { + showToast(result.reason === "no-vault" ? "Open a vault first." : vaultMessage(result)); + return; + } + const folderId = currentFolderId(); + for (const pdf of result.imported || []) { + catalog.books.push({ + id: makeId(pdf.title), + title: pdf.title, + author: pdf.author || "", + format: "pdf", + status: "shelf", + totalPages: Number(pdf.totalPages) || 0, + currentPage: 0, + folderId, + tags: Array.isArray(pdf.tags) ? pdf.tags : [], + notes: pdf.notes || "", + pdfPath: pdf.pdfPath || "", + sourceName: pdf.sourceName || "", + }); + } + if (result.imported && result.imported.length) { + await persist(); + render(); + } + const parts = []; + if (result.imported?.length) parts.push(`Imported ${result.imported.length} PDF${result.imported.length === 1 ? "" : "s"}.`); + if (result.skipped?.length) parts.push(`Skipped ${result.skipped.length}.`); + if (result.errors?.length) parts.push(`Failed ${result.errors.length}.`); + if (parts.length) showToast(parts.join(" ")); +} + +function bindDrop() { + const overlay = document.getElementById("drop-overlay"); + let dragDepth = 0; + + window.addEventListener("dragenter", (event) => { + event.preventDefault(); + dragDepth += 1; + overlay.hidden = false; + }); + window.addEventListener("dragover", (event) => { + event.preventDefault(); + overlay.hidden = false; + }); + window.addEventListener("dragleave", (event) => { + event.preventDefault(); + dragDepth = Math.max(0, dragDepth - 1); + if (dragDepth === 0) overlay.hidden = true; + }); + window.addEventListener("drop", async (event) => { + event.preventDefault(); + dragDepth = 0; + overlay.hidden = true; + const files = [...(event.dataTransfer?.files || [])]; + const paths = files + .map((file) => { + try { + return window.libraryAPI.pathForFile(file); + } catch { + return ""; + } + }) + .filter((filePath) => filePath && filePath.toLowerCase().endsWith(".pdf")); + if (!paths.length) { + showToast("Drop one or more PDF files."); + return; + } + const result = await window.libraryAPI.importPdfPaths(paths, existingPdfNames()); + await applyImportResult(result); + }); +} + +function vaultMessage(result) { + if (result.reason === "missing-folder") return "Vault folder not found. Wait for Drive to sync."; + if (result.reason === "unreadable") return "Could not read library.json."; + if (result.reason === "no-vault") return "Open a vault first."; + return result.error || "Vault is not ready."; +} + +async function persist() { + if (!vaultReady) return; + const result = await window.libraryAPI.save(catalog); + if (!result.ok) { + showToast(vaultMessage(result)); + return; + } + catalog = result.catalog; +} + +function inFolder(item) { + if (activeFolder === "all") return true; + if (activeFolder === "unfiled") return !item.folderId; + return item.folderId === activeFolder; +} + +function itemCount(folderId) { + const match = (item) => + folderId === "unfiled" ? !item.folderId : item.folderId === folderId; + return catalog.books.filter(match).length + catalog.resources.filter(match).length; +} + +function folderOptions(selected) { + const rows = [``]; + for (const folder of sortedFolders()) { + const prefix = folder.parentId ? "— " : ""; + rows.push( + `` + ); + } + return rows.join(""); +} + +function sortedFolders() { + const roots = catalog.folders.filter((f) => !f.parentId).sort(byName); + const children = catalog.folders.filter((f) => f.parentId); + const ordered = []; + for (const root of roots) { + ordered.push(root); + ordered.push(...children.filter((c) => c.parentId === root.id).sort(byName)); + } + const hanging = children.filter((c) => !ordered.includes(c)).sort(byName); + return [...ordered, ...hanging]; +} + +function byName(a, b) { + return a.name.localeCompare(b.name); +} + +function getFilters() { + const checked = (name) => + [...document.querySelectorAll(`input[name="${name}"]:checked`)].map((el) => el.value); + return { + query: searchEl.value.trim().toLowerCase(), + formats: checked("format"), + kinds: checked("kind"), + statuses: checked("status"), + }; +} + +function matches(item, filters) { + if (!inFolder(item)) return false; + if (filters.statuses.length && !filters.statuses.includes(item.status)) return false; + if (item.type === "book") { + if (filters.formats.length && !filters.formats.includes(item.format)) return false; + if (filters.kinds.length && !filters.formats.length) return false; + } else { + if (filters.kinds.length && !filters.kinds.includes(item.kind)) return false; + if (filters.formats.length && !filters.kinds.length) return false; + } + if (!filters.query) return true; + const hay = [ + item.title, + item.author, + item.source, + item.format, + item.kind, + ...(item.tags || []), + ] + .filter(Boolean) + .join(" ") + .toLowerCase(); + return hay.includes(filters.query); +} + +function tagged(list, type) { + return list.map((item) => ({ ...item, type })); +} + +function render() { + renderFolders(); + const books = tagged(catalog.books, "book"); + const resources = tagged(catalog.resources, "resource"); + const filters = getFilters(); + const visibleBooks = books.filter((b) => matches(b, filters)); + const visibleResources = resources.filter((r) => matches(r, filters)); + + renderStats(books.filter(inFolder), resources.filter(inFolder)); + + const nowReading = [ + ...visibleBooks.filter((b) => b.status === "reading"), + ...visibleResources.filter((r) => r.status === "in_progress"), + ]; + const shelf = [ + ...visibleBooks.filter((b) => b.status === "shelf" || b.status === "paused"), + ...visibleResources.filter((r) => r.status === "backlog"), + ]; + const finished = [ + ...visibleBooks.filter((b) => b.status === "finished"), + ...visibleResources.filter((r) => r.status === "done"), + ]; + + catalogEl.innerHTML = [ + section("Now reading", nowReading), + section("On the shelf", shelf), + section("Finished", finished), + ].join(""); +} + +function renderFolders() { + const allCount = catalog.books.length + catalog.resources.length; + const items = [ + folderButton("all", "All items", allCount, false), + folderButton("unfiled", "Unfiled", itemCount("unfiled"), false), + ...sortedFolders().map((folder) => + folderButton(folder.id, folder.name, itemCount(folder.id), Boolean(folder.parentId), folder.id) + ), + ]; + folderListEl.innerHTML = items.join(""); +} + +function folderButton(id, name, count, nested, folderId) { + const active = activeFolder === id ? " active" : ""; + const nest = nested ? " nested" : ""; + const manage = + folderId + ? ` + ` + : ""; + return ` +
+ + ${manage} +
`; +} + +function renderStats(books, resources) { + const reading = books.filter((b) => b.status === "reading").length; + const shelf = books.filter((b) => b.status === "shelf" || b.status === "paused").length; + const pages = books.reduce((sum, b) => sum + (Number(b.currentPage) || 0), 0); + const backlog = resources.filter((r) => r.status === "backlog").length; + statsEl.innerHTML = [ + stat(reading, "Now reading"), + stat(shelf, "On the shelf"), + stat(pages, "Pages logged"), + stat(backlog, "Resource backlog"), + ].join(""); +} + +function stat(value, label) { + return `
${escapeHtml(String(value))}${escapeHtml(label)}
`; +} + +function section(title, items) { + const body = + items.length === 0 + ? `

— none —

` + : `
${items.map(card).join("")}
`; + return `

${escapeHtml(title)}

${body}
`; +} + +function card(item) { + return item.type === "book" ? bookCard(item) : resourceCard(item); +} + +function bookCard(book) { + const total = Number(book.totalPages) || 0; + const page = Number(book.currentPage) || 0; + const pct = total ? Math.round((page / total) * 100) : 0; + return ` +
+
+
+

${escapeHtml(book.title)}

+

${escapeHtml(book.author || "Unknown author")}

+ ${tagsHtml(book.tags)} +
+
+ ${escapeHtml(book.format || "book")} + ${escapeHtml(labelStatus(book.status))} +
+
+
+ + + / ${total} + +
+ +
+ ${statusField(book.status, BOOK_STATUSES)} + ${folderField(book.folderId)} + ${notesField(book.notes)} +
+
+ ${pct}% of ${total} pp. + + ${book.pdfPath ? `` : ""} + + +
+
`; +} + +function resourceCard(item) { + const url = item.url || ""; + return ` +
+
+
+

${escapeHtml(item.title)}

+

${escapeHtml(item.source || "Unknown source")}

+ ${tagsHtml(item.tags)} +
+
+ ${escapeHtml(item.kind || "resource")} + ${escapeHtml(labelStatus(item.status))} +
+
+
+ ${statusField(item.status, RESOURCE_STATUSES)} + ${folderField(item.folderId)} + ${notesField(item.notes)} +
+
+ ${ + url + ? `Open ${escapeHtml(item.kind || "link")}` + : `No URL` + } + +
+
`; +} + +function statusField(status, options) { + const opts = options + .map( + (value) => + `` + ) + .join(""); + return ``; +} + +function folderField(folderId) { + return ``; +} + +function notesField(notes) { + return ``; +} + +function tagsHtml(tags) { + if (!tags || !tags.length) return ""; + return `

${tags.map((t) => `#${escapeHtml(t)}`).join(" ")}

`; +} + +function labelStatus(status) { + return String(status || "").replaceAll("_", " "); +} + +function onFolderClick(event) { + const manage = event.target.closest("[data-folder-action]"); + if (manage) { + const id = manage.dataset.id; + if (manage.dataset.folderAction === "rename") openFolderDialog(id); + if (manage.dataset.folderAction === "delete") deleteFolder(id); + return; + } + const button = event.target.closest("[data-folder]"); + if (!button) return; + activeFolder = button.dataset.folder; + render(); +} + +async function deleteFolder(id) { + const folder = catalog.folders.find((f) => f.id === id); + if (!folder) return; + if (!confirm(`Delete folder “${folder.name}”? Items inside move to Unfiled.`)) return; + catalog.folders = catalog.folders.filter((f) => f.id !== id && f.parentId !== id); + for (const book of catalog.books) { + if (book.folderId === id) book.folderId = ""; + } + for (const resource of catalog.resources) { + if (resource.folderId === id) resource.folderId = ""; + } + if (activeFolder === id) activeFolder = "all"; + await persist(); + render(); + showToast(`Deleted folder ${folder.name}.`); +} + +async function onCatalogClick(event) { + const button = event.target.closest("button[data-action]"); + if (!button) return; + const cardEl = button.closest(".card"); + if (!cardEl) return; + const id = cardEl.dataset.id; + const kind = cardEl.dataset.type; + + if (button.dataset.action === "delete") { + if (!confirm("Delete this item?")) return; + if (kind === "book") catalog.books = catalog.books.filter((b) => b.id !== id); + else catalog.resources = catalog.resources.filter((r) => r.id !== id); + await persist(); + render(); + showToast("Deleted."); + return; + } + + if (button.dataset.action === "open-pdf") { + const book = catalog.books.find((b) => b.id === id); + if (!book?.pdfPath) return; + const opened = await window.libraryAPI.openPdf(book.pdfPath); + if (!opened.ok) showToast(opened.error || "Could not open PDF."); + return; + } + + if (button.dataset.action === "page") { + const book = catalog.books.find((b) => b.id === id); + if (!book) return; + const next = clamp( + (Number(book.currentPage) || 0) + Number(button.dataset.delta), + 0, + Number(book.totalPages) || 0 + ); + book.currentPage = next; + await persist(); + render(); + } +} + +async function onCatalogChange(event) { + const field = event.target.dataset.field; + const cardEl = event.target.closest(".card"); + if (!field || !cardEl || field === "notes") return; + const item = findItem(cardEl.dataset.id, cardEl.dataset.type); + if (!item) return; + + if (field === "status") item.status = event.target.value; + if (field === "folderId") item.folderId = event.target.value; + if (field === "currentPage") { + const total = Number(item.totalPages) || 0; + item.currentPage = clamp(Number(event.target.value) || 0, 0, total); + } + await persist(); + render(); +} + +async function onCatalogFocusOut(event) { + if (event.target.dataset.field !== "notes") return; + const cardEl = event.target.closest(".card"); + if (!cardEl) return; + const item = findItem(cardEl.dataset.id, cardEl.dataset.type); + if (!item || item.notes === event.target.value) return; + item.notes = event.target.value; + await persist(); +} + +function findItem(id, type) { + return type === "book" + ? catalog.books.find((b) => b.id === id) + : catalog.resources.find((r) => r.id === id); +} + +function openBookDialog() { + dialogMode = "book"; + dialogTitle.textContent = "Add book"; + const folderPrefill = activeFolder !== "all" && activeFolder !== "unfiled" ? activeFolder : ""; + dialogFields.innerHTML = ` + + + + + + + + + + `; + dialogEl.showModal(); +} + +function openResourceDialog() { + dialogMode = "resource"; + dialogTitle.textContent = "Add resource"; + const folderPrefill = activeFolder !== "all" && activeFolder !== "unfiled" ? activeFolder : ""; + dialogFields.innerHTML = ` + + + + + + + + + `; + dialogEl.showModal(); +} + +function openFolderDialog(id) { + const existing = catalog.folders.find((f) => f.id === id); + dialogMode = existing ? "folder-edit" : "folder"; + dialogTitle.textContent = existing ? "Rename folder" : "New folder"; + const parentPrefill = !existing && activeFolder !== "all" && activeFolder !== "unfiled" ? activeFolder : ""; + dialogFields.innerHTML = ` + + + ${ + existing + ? "" + : `` + } + `; + dialogEl.showModal(); +} + +function options(values, selected) { + return values + .map( + (value) => + `` + ) + .join(""); +} + +async function onDialogSubmit(event) { + event.preventDefault(); + const data = Object.fromEntries(new FormData(dialogForm)); + if (dialogMode === "book") { + catalog.books.push({ + id: makeId(data.title), + title: data.title.trim(), + author: (data.author || "").trim(), + format: data.format === "pdf" ? "pdf" : "physical", + status: BOOK_STATUSES.includes(data.status) ? data.status : "shelf", + totalPages: Math.max(0, Number(data.totalPages) || 0), + currentPage: clamp(Number(data.currentPage) || 0, 0, Math.max(0, Number(data.totalPages) || 0)), + folderId: data.folderId || "", + tags: parseTags(data.tags), + notes: data.notes || "", + }); + showToast("Book added."); + } else if (dialogMode === "resource") { + catalog.resources.push({ + id: makeId(data.title), + title: data.title.trim(), + kind: data.kind === "video" ? "video" : "article", + url: (data.url || "").trim(), + source: (data.source || "").trim(), + status: RESOURCE_STATUSES.includes(data.status) ? data.status : "backlog", + folderId: data.folderId || "", + tags: parseTags(data.tags), + notes: data.notes || "", + }); + showToast("Resource added."); + } else if (dialogMode === "folder") { + catalog.folders.push({ + id: makeId(data.name), + name: data.name.trim(), + parentId: data.parentId || "", + }); + showToast("Folder created."); + } else if (dialogMode === "folder-edit") { + const folder = catalog.folders.find((f) => f.id === data.id); + if (folder) folder.name = data.name.trim(); + showToast("Folder renamed."); + } else if (dialogMode === "vault-create") { + dialogEl.close(); + const result = await window.libraryAPI.createVault(data.name.trim()); + if (result.cancelled) return; + await applyLoadResult(result); + showToast(result.ok ? "Vault created." : vaultMessage(result)); + return; + } + dialogEl.close(); + await persist(); + render(); +} + +function parseTags(value) { + return String(value || "") + .split(",") + .map((t) => t.trim()) + .filter(Boolean); +} + +function makeId(title) { + const slug = String(title || "item") + .toLowerCase() + .replace(/[^a-z0-9]+/g, "-") + .replace(/^-|-$/g, "") + .slice(0, 40); + return `${slug || "item"}-${Date.now().toString(36)}`; +} + +function showToast(message) { + toastEl.hidden = false; + toastEl.textContent = message; +} + +function formatDate(date) { + return date + .toLocaleDateString("en-GB", { + day: "2-digit", + month: "short", + year: "numeric", + }) + .toUpperCase(); +} + +function clamp(n, min, max) { + return Math.min(max, Math.max(min, n)); +} + +function escapeHtml(value) { + return String(value) + .replaceAll("&", "&") + .replaceAll("<", "<") + .replaceAll(">", ">") + .replaceAll('"', """); +} + +function escapeAttr(value) { + return escapeHtml(value); +} diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..087e725 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,5322 @@ +{ + "name": "resource-loader", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "resource-loader", + "version": "1.0.0", + "license": "UNLICENSED", + "dependencies": { + "pdf-lib": "^1.17.1" + }, + "devDependencies": { + "electron": "^33.2.1", + "electron-builder": "^25.1.8" + } + }, + "node_modules/@develar/schema-utils": { + "version": "2.6.5", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/@develar/schema-utils/-/schema-utils-2.6.5.tgz", + "integrity": "sha1-Ps4ixYOEAkGabgQl+FdCuWHZtsY=", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.12.0", + "ajv-keywords": "^3.4.1" + }, + "engines": { + "node": ">= 8.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/@electron/asar": { + "version": "3.4.1", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/@electron/asar/-/asar-3.4.1.tgz", + "integrity": "sha1-TpGWpLVPuhjFbNjVysZ8W9xYgGU=", + "dev": true, + "license": "MIT", + "dependencies": { + "commander": "^5.0.0", + "glob": "^7.1.6", + "minimatch": "^3.0.4" + }, + "bin": { + "asar": "bin/asar.js" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/@electron/asar/node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha1-6D46fj8wCzTLnYf2FfoMvzV2kO4=", + "dev": true, + "license": "MIT" + }, + "node_modules/@electron/asar/node_modules/brace-expansion": { + "version": "1.1.18", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/brace-expansion/-/brace-expansion-1.1.18.tgz", + "integrity": "sha1-POdNiYhRNr4VNTQfjD1EJcKaXKs=", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@electron/asar/node_modules/minimatch": { + "version": "3.1.5", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha1-WAyI+NVEXyvWqo88re+g3nn71p4=", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@electron/get": { + "version": "2.0.3", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/@electron/get/-/get-2.0.3.tgz", + "integrity": "sha1-+6VSaD04euvZ8/ytvK/I4S7k+WA=", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.1.1", + "env-paths": "^2.2.0", + "fs-extra": "^8.1.0", + "got": "^11.8.5", + "progress": "^2.0.3", + "semver": "^6.2.0", + "sumchecker": "^3.0.1" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "global-agent": "^3.0.0" + } + }, + "node_modules/@electron/notarize": { + "version": "2.5.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/@electron/notarize/-/notarize-2.5.0.tgz", + "integrity": "sha1-1NJTVq36Kd9Kdr1kqL00cjfNJR4=", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.1.1", + "fs-extra": "^9.0.1", + "promise-retry": "^2.0.1" + }, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@electron/notarize/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha1-WVRGDHZKjaIJS6NVS/g55rmnyG0=", + "dev": true, + "license": "MIT", + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@electron/notarize/node_modules/jsonfile": { + "version": "6.2.1", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/jsonfile/-/jsonfile-6.2.1.tgz", + "integrity": "sha1-tuMXF/Isw3MwsIHOAFHtXeU68vY=", + "dev": true, + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/@electron/notarize/node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha1-Fo78IYCWTmOG0GHglN9hr+I5sY0=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@electron/osx-sign": { + "version": "1.3.1", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/@electron/osx-sign/-/osx-sign-1.3.1.tgz", + "integrity": "sha1-+vfuynygBKa+VB3Ez3ob1Z7Fmxw=", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "compare-version": "^0.1.2", + "debug": "^4.3.4", + "fs-extra": "^10.0.0", + "isbinaryfile": "^4.0.8", + "minimist": "^1.2.6", + "plist": "^3.0.5" + }, + "bin": { + "electron-osx-flat": "bin/electron-osx-flat.js", + "electron-osx-sign": "bin/electron-osx-sign.js" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/@electron/osx-sign/node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha1-Aoc8+8QITd4SfqpfmQXu8jJdGr8=", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@electron/osx-sign/node_modules/isbinaryfile": { + "version": "4.0.10", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/isbinaryfile/-/isbinaryfile-4.0.10.tgz", + "integrity": "sha1-DFteMMJVei8G/r03tzIpRqruQrM=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/gjtorikian/" + } + }, + "node_modules/@electron/osx-sign/node_modules/jsonfile": { + "version": "6.2.1", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/jsonfile/-/jsonfile-6.2.1.tgz", + "integrity": "sha1-tuMXF/Isw3MwsIHOAFHtXeU68vY=", + "dev": true, + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/@electron/osx-sign/node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha1-Fo78IYCWTmOG0GHglN9hr+I5sY0=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@electron/rebuild": { + "version": "3.6.1", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/@electron/rebuild/-/rebuild-3.6.1.tgz", + "integrity": "sha1-WejjbD9ua5SmmUJd+2HwOUw91N8=", + "dev": true, + "license": "MIT", + "dependencies": { + "@malept/cross-spawn-promise": "^2.0.0", + "chalk": "^4.0.0", + "debug": "^4.1.1", + "detect-libc": "^2.0.1", + "fs-extra": "^10.0.0", + "got": "^11.7.0", + "node-abi": "^3.45.0", + "node-api-version": "^0.2.0", + "node-gyp": "^9.0.0", + "ora": "^5.1.0", + "read-binary-file-arch": "^1.0.6", + "semver": "^7.3.5", + "tar": "^6.0.5", + "yargs": "^17.0.1" + }, + "bin": { + "electron-rebuild": "lib/cli.js" + }, + "engines": { + "node": ">=12.13.0" + } + }, + "node_modules/@electron/rebuild/node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha1-Aoc8+8QITd4SfqpfmQXu8jJdGr8=", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@electron/rebuild/node_modules/jsonfile": { + "version": "6.2.1", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/jsonfile/-/jsonfile-6.2.1.tgz", + "integrity": "sha1-tuMXF/Isw3MwsIHOAFHtXeU68vY=", + "dev": true, + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/@electron/rebuild/node_modules/semver": { + "version": "7.8.5", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/semver/-/semver-7.8.5.tgz", + "integrity": "sha1-ObZGA33VDBT7RR5+TKxY7YuGP2k=", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@electron/rebuild/node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha1-Fo78IYCWTmOG0GHglN9hr+I5sY0=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@electron/universal": { + "version": "2.0.1", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/@electron/universal/-/universal-2.0.1.tgz", + "integrity": "sha1-ewcKs1XgKVc4jz29aOLDzQjESK4=", + "dev": true, + "license": "MIT", + "dependencies": { + "@electron/asar": "^3.2.7", + "@malept/cross-spawn-promise": "^2.0.0", + "debug": "^4.3.1", + "dir-compare": "^4.2.0", + "fs-extra": "^11.1.1", + "minimatch": "^9.0.3", + "plist": "^3.1.0" + }, + "engines": { + "node": ">=16.4" + } + }, + "node_modules/@electron/universal/node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha1-6D46fj8wCzTLnYf2FfoMvzV2kO4=", + "dev": true, + "license": "MIT" + }, + "node_modules/@electron/universal/node_modules/brace-expansion": { + "version": "2.1.4", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/brace-expansion/-/brace-expansion-2.1.4.tgz", + "integrity": "sha1-WJ2rEcABjQNmvmTNi/Esjb7MgyY=", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@electron/universal/node_modules/fs-extra": { + "version": "11.4.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/fs-extra/-/fs-extra-11.4.0.tgz", + "integrity": "sha1-+I7W0YCsnhS2GwjmeUaPCxtrRzA=", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/@electron/universal/node_modules/jsonfile": { + "version": "6.2.1", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/jsonfile/-/jsonfile-6.2.1.tgz", + "integrity": "sha1-tuMXF/Isw3MwsIHOAFHtXeU68vY=", + "dev": true, + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/@electron/universal/node_modules/minimatch": { + "version": "9.0.9", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/minimatch/-/minimatch-9.0.9.tgz", + "integrity": "sha1-mwy5/LeAh/b9fqur4lEcTT1gV04=", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.2" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@electron/universal/node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha1-Fo78IYCWTmOG0GHglN9hr+I5sY0=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@gar/promisify": { + "version": "1.1.3", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/@gar/promisify/-/promisify-1.1.3.tgz", + "integrity": "sha1-VVGTqy47s7atw9VRycAw2ehg2vY=", + "dev": true, + "license": "MIT" + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha1-s3Znt7wYHBaHgiWbq0JHT79StVA=", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.3.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/ansi-regex/-/ansi-regex-6.3.0.tgz", + "integrity": "sha1-JHyOe3ChpDsQzhTAIm/L9Y6IFdU=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-styles": { + "version": "6.2.3", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/ansi-styles/-/ansi-styles-6.2.3.tgz", + "integrity": "sha1-wETV3MUhoHZBNHJZehrLHxA8QEE=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha1-hAyIA7DYBH9P8M+WMXazLU7z7XI=", + "dev": true, + "license": "MIT" + }, + "node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha1-FPja7G2B5yIdKjV+Zoyrc728p5Q=", + "dev": true, + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.2.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/strip-ansi/-/strip-ansi-7.2.0.tgz", + "integrity": "sha1-0iomlSKDamJ6+NBLXD/Sx/o+MuM=", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.2.2" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha1-VtwiNo7lcPrOG0mBmXXZuaXq0hQ=", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/@malept/cross-spawn-promise": { + "version": "2.0.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/@malept/cross-spawn-promise/-/cross-spawn-promise-2.0.0.tgz", + "integrity": "sha1-0Hct4apoCgv7m6LzK0yCjHhXy50=", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/malept" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/subscription/pkg/npm-.malept-cross-spawn-promise?utm_medium=referral&utm_source=npm_fund" + } + ], + "license": "Apache-2.0", + "dependencies": { + "cross-spawn": "^7.0.1" + }, + "engines": { + "node": ">= 12.13.0" + } + }, + "node_modules/@malept/flatpak-bundler": { + "version": "0.4.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/@malept/flatpak-bundler/-/flatpak-bundler-0.4.0.tgz", + "integrity": "sha1-6KMsMKldIMKxu2NcxYCYGgY4mFg=", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.1.1", + "fs-extra": "^9.0.0", + "lodash": "^4.17.15", + "tmp-promise": "^3.0.2" + }, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@malept/flatpak-bundler/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha1-WVRGDHZKjaIJS6NVS/g55rmnyG0=", + "dev": true, + "license": "MIT", + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@malept/flatpak-bundler/node_modules/jsonfile": { + "version": "6.2.1", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/jsonfile/-/jsonfile-6.2.1.tgz", + "integrity": "sha1-tuMXF/Isw3MwsIHOAFHtXeU68vY=", + "dev": true, + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/@malept/flatpak-bundler/node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha1-Fo78IYCWTmOG0GHglN9hr+I5sY0=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@npmcli/fs": { + "version": "2.1.2", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/@npmcli/fs/-/fs-2.1.2.tgz", + "integrity": "sha1-qeJUGkov7C5pwps15gYJc9p5uGU=", + "dev": true, + "license": "ISC", + "dependencies": { + "@gar/promisify": "^1.1.3", + "semver": "^7.3.5" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/@npmcli/fs/node_modules/semver": { + "version": "7.8.5", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/semver/-/semver-7.8.5.tgz", + "integrity": "sha1-ObZGA33VDBT7RR5+TKxY7YuGP2k=", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@npmcli/move-file": { + "version": "2.0.1", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/@npmcli/move-file/-/move-file-2.0.1.tgz", + "integrity": "sha1-Jva9w3nYf3XlVzm6uJ21JbBhAOQ=", + "dev": true, + "license": "MIT", + "dependencies": { + "mkdirp": "^1.0.4", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/@pdf-lib/standard-fonts": { + "version": "1.0.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/@pdf-lib/standard-fonts/-/standard-fonts-1.0.0.tgz", + "integrity": "sha1-i6aRxEIfcWYu0HyaApS0RSivLX8=", + "license": "MIT", + "dependencies": { + "pako": "^1.0.6" + } + }, + "node_modules/@pdf-lib/upng": { + "version": "1.0.1", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/@pdf-lib/upng/-/upng-1.0.1.tgz", + "integrity": "sha1-fcnGNicaygB6nfTery3X55YCgMs=", + "license": "MIT", + "dependencies": { + "pako": "^1.0.10" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha1-p36nQvqyV3UUVDTrHSMoz1ATrDM=", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@sindresorhus/is": { + "version": "4.6.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/@sindresorhus/is/-/is-4.6.0.tgz", + "integrity": "sha1-PHycRuZ4/u/nouW7YJ09vWZf+z8=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/is?sponsor=1" + } + }, + "node_modules/@szmarczak/http-timer": { + "version": "4.0.6", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", + "integrity": "sha1-tKkUu2LnwnLU5Zif5EQPgSqx2Ac=", + "dev": true, + "license": "MIT", + "dependencies": { + "defer-to-connect": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@tootallnate/once": { + "version": "2.0.1", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/@tootallnate/once/-/once-2.0.1.tgz", + "integrity": "sha1-Na3GIi42YvoiIs4SO5YUdqdGueo=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "node_modules/@types/cacheable-request": { + "version": "6.0.3", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/@types/cacheable-request/-/cacheable-request-6.0.3.tgz", + "integrity": "sha1-pDCzJgRmyntcpb/XNWk7Nuep0YM=", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/http-cache-semantics": "*", + "@types/keyv": "^3.1.4", + "@types/node": "*", + "@types/responselike": "^1.0.0" + } + }, + "node_modules/@types/debug": { + "version": "4.1.13", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/@types/debug/-/debug-4.1.13.tgz", + "integrity": "sha1-ItHMnVQtNZPK6nZPl0MGqzYobuc=", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/ms": "*" + } + }, + "node_modules/@types/fs-extra": { + "version": "9.0.13", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/@types/fs-extra/-/fs-extra-9.0.13.tgz", + "integrity": "sha1-dZT7rgT+fxkYzos9IT90/0SsH0U=", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/http-cache-semantics": { + "version": "4.2.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/@types/http-cache-semantics/-/http-cache-semantics-4.2.0.tgz", + "integrity": "sha1-9qd4j0OMv94V8prK1GUStMAZE7M=", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/keyv": { + "version": "3.1.4", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/@types/keyv/-/keyv-3.1.4.tgz", + "integrity": "sha1-PM2xxnUbDH5SMAvNrNW8v4+qdbY=", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/ms": { + "version": "2.1.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/@types/ms/-/ms-2.1.0.tgz", + "integrity": "sha1-BSqmekjszEMJ1/AZG35BQ0uQu3g=", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "20.19.43", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/@types/node/-/node-20.19.43.tgz", + "integrity": "sha1-/Oz1gLpCoNtVz0BMNyyXlzw3bJc=", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~6.21.0" + } + }, + "node_modules/@types/plist": { + "version": "3.0.5", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/@types/plist/-/plist-3.0.5.tgz", + "integrity": "sha1-mgxJwPmIbIyGlqeQTdcD9ihANuA=", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@types/node": "*", + "xmlbuilder": ">=11.0.1" + } + }, + "node_modules/@types/responselike": { + "version": "1.0.3", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/@types/responselike/-/responselike-1.0.3.tgz", + "integrity": "sha1-zClwbwo5fP5t+J3r/kv1zqFZ21A=", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/verror": { + "version": "1.10.11", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/@types/verror/-/verror-1.10.11.tgz", + "integrity": "sha1-09a0GJeMiqIC1B5bs0gyJ7bswbs=", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/@types/yauzl": { + "version": "2.10.3", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/@types/yauzl/-/yauzl-2.10.3.tgz", + "integrity": "sha1-6bKAi08QlQSgPNqVglmHb2EBeZk=", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@xmldom/xmldom": { + "version": "0.9.11", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/@xmldom/xmldom/-/xmldom-0.9.11.tgz", + "integrity": "sha1-LtdaGGiGODYkzxZACTDta5raplY=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.6" + } + }, + "node_modules/7zip-bin": { + "version": "5.2.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/7zip-bin/-/7zip-bin-5.2.0.tgz", + "integrity": "sha1-egMxRoTdZXK336ieaM4x1gKGhU0=", + "dev": true, + "license": "MIT" + }, + "node_modules/abbrev": { + "version": "1.1.1", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha1-+PLIh60Qv2f2NPAFtph/7TF5qsg=", + "dev": true, + "license": "ISC" + }, + "node_modules/agent-base": { + "version": "7.1.4", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/agent-base/-/agent-base-7.1.4.tgz", + "integrity": "sha1-48121MVI7oldPD/Y3B9sW5Ay56g=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14" + } + }, + "node_modules/agentkeepalive": { + "version": "4.6.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/agentkeepalive/-/agentkeepalive-4.6.0.tgz", + "integrity": "sha1-Nfc+lLP0C/ZfEFIZxiOtGcE26mo=", + "dev": true, + "license": "MIT", + "dependencies": { + "humanize-ms": "^1.2.1" + }, + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha1-kmcP9Q9TWb23o+DUDQ7DDFc3aHo=", + "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://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/ajv/-/ajv-6.15.0.tgz", + "integrity": "sha1-B+mCx0YmFnqnoklcU4F4ktcTlJI=", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha1-MfKdpatuANHC0yms97WSlhTVAU0=", + "dev": true, + "license": "MIT", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha1-CCyyyJyf6GWaMRpTvWpNxTAdswQ=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/app-builder-bin": { + "version": "5.0.0-alpha.10", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/app-builder-bin/-/app-builder-bin-5.0.0-alpha.10.tgz", + "integrity": "sha1-zxLlk7a4R/udBAJ/p1XGxmENd4s=", + "dev": true, + "license": "MIT" + }, + "node_modules/app-builder-lib": { + "version": "25.1.8", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/app-builder-lib/-/app-builder-lib-25.1.8.tgz", + "integrity": "sha1-rjdgOcXyacfVYq9JSgh+W8YxDxs=", + "dev": true, + "license": "MIT", + "dependencies": { + "@develar/schema-utils": "~2.6.5", + "@electron/notarize": "2.5.0", + "@electron/osx-sign": "1.3.1", + "@electron/rebuild": "3.6.1", + "@electron/universal": "2.0.1", + "@malept/flatpak-bundler": "^0.4.0", + "@types/fs-extra": "9.0.13", + "async-exit-hook": "^2.0.1", + "bluebird-lst": "^1.0.9", + "builder-util": "25.1.7", + "builder-util-runtime": "9.2.10", + "chromium-pickle-js": "^0.2.0", + "config-file-ts": "0.2.8-rc1", + "debug": "^4.3.4", + "dotenv": "^16.4.5", + "dotenv-expand": "^11.0.6", + "ejs": "^3.1.8", + "electron-publish": "25.1.7", + "form-data": "^4.0.0", + "fs-extra": "^10.1.0", + "hosted-git-info": "^4.1.0", + "is-ci": "^3.0.0", + "isbinaryfile": "^5.0.0", + "js-yaml": "^4.1.0", + "json5": "^2.2.3", + "lazy-val": "^1.0.5", + "minimatch": "^10.0.0", + "resedit": "^1.7.0", + "sanitize-filename": "^1.6.3", + "semver": "^7.3.8", + "tar": "^6.1.12", + "temp-file": "^3.4.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "dmg-builder": "25.1.8", + "electron-builder-squirrel-windows": "25.1.8" + } + }, + "node_modules/app-builder-lib/node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha1-Aoc8+8QITd4SfqpfmQXu8jJdGr8=", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/app-builder-lib/node_modules/jsonfile": { + "version": "6.2.1", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/jsonfile/-/jsonfile-6.2.1.tgz", + "integrity": "sha1-tuMXF/Isw3MwsIHOAFHtXeU68vY=", + "dev": true, + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/app-builder-lib/node_modules/semver": { + "version": "7.8.5", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/semver/-/semver-7.8.5.tgz", + "integrity": "sha1-ObZGA33VDBT7RR5+TKxY7YuGP2k=", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/app-builder-lib/node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha1-Fo78IYCWTmOG0GHglN9hr+I5sY0=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/aproba": { + "version": "2.1.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/aproba/-/aproba-2.1.0.tgz", + "integrity": "sha1-dVAKGQMT2Vxk6HHn5ChMasIZ8LE=", + "dev": true, + "license": "ISC" + }, + "node_modules/archiver": { + "version": "5.3.2", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/archiver/-/archiver-5.3.2.tgz", + "integrity": "sha1-mZkdWVflO9AwOjkpeSdqxN3M87A=", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "archiver-utils": "^2.1.0", + "async": "^3.2.4", + "buffer-crc32": "^0.2.1", + "readable-stream": "^3.6.0", + "readdir-glob": "^1.1.2", + "tar-stream": "^2.2.0", + "zip-stream": "^4.1.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/archiver-utils": { + "version": "2.1.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/archiver-utils/-/archiver-utils-2.1.0.tgz", + "integrity": "sha1-6KRg6UtpPD49oYKgmMpihbqSSeI=", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "glob": "^7.1.4", + "graceful-fs": "^4.2.0", + "lazystream": "^1.0.0", + "lodash.defaults": "^4.2.0", + "lodash.difference": "^4.5.0", + "lodash.flatten": "^4.4.0", + "lodash.isplainobject": "^4.0.6", + "lodash.union": "^4.6.0", + "normalize-path": "^3.0.0", + "readable-stream": "^2.0.0" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/archiver-utils/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha1-kRJegEK7obmIf0k0X2J3Anzovps=", + "dev": true, + "license": "MIT", + "peer": true, + "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/archiver-utils/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha1-mR7GnSluAxN0fVm9/St0XDX4go0=", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/archiver-utils/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha1-nPFhG6YmhdcDCunkujQUnDrwP8g=", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/are-we-there-yet": { + "version": "3.0.1", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", + "integrity": "sha1-Z53yIrJ4xk8s26EXXNwAsNlhZL0=", + "dev": true, + "license": "ISC", + "dependencies": { + "delegates": "^1.0.0", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha1-JG9Q88p4oyQPbJl+ipvR6sSeSzg=", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/assert-plus": { + "version": "1.0.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/astral-regex": { + "version": "2.0.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha1-SDFDxWeu7UeFdZwIZXhtx319LjE=", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/async": { + "version": "3.2.6", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/async/-/async-3.2.6.tgz", + "integrity": "sha1-Gwco4Ukp1RuFtEm38G4nwRReOM4=", + "dev": true, + "license": "MIT" + }, + "node_modules/async-exit-hook": { + "version": "2.0.1", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/async-exit-hook/-/async-exit-hook-2.0.1.tgz", + "integrity": "sha1-i9iwJLDsmxwBzMua+dspvXF9+vM=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "dev": true, + "license": "MIT" + }, + "node_modules/at-least-node": { + "version": "1.0.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha1-YCzUtG6EStTv/JKoARo8RuAjjcI=", + "dev": true, + "license": "ISC", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/balanced-match": { + "version": "4.0.4", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/balanced-match/-/balanced-match-4.0.4.tgz", + "integrity": "sha1-v7EGYv7tgZaixi58aOF3IMJ0F5o=", + "dev": true, + "license": "MIT", + "engines": { + "node": "18 || 20 || >=22" + } + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha1-GxtEAWClv3rUC2UPCVljSBkDkwo=", + "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/bl": { + "version": "4.1.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/bl/-/bl-4.1.0.tgz", + "integrity": "sha1-RRU1JkGCvsL7vIOmKrmM8R2fezo=", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/bluebird": { + "version": "3.7.2", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha1-nyKcFb4nJFT/qXOs4NvueaGww28=", + "dev": true, + "license": "MIT" + }, + "node_modules/bluebird-lst": { + "version": "1.0.9", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/bluebird-lst/-/bluebird-lst-1.0.9.tgz", + "integrity": "sha1-pkoOQ2Vli5q1/odeud+2lBibtBw=", + "dev": true, + "license": "MIT", + "dependencies": { + "bluebird": "^3.5.5" + } + }, + "node_modules/boolean": { + "version": "3.2.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/boolean/-/boolean-3.2.0.tgz", + "integrity": "sha1-nlKUr06YMUSUy7F5efpUyhWfEWs=", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/brace-expansion": { + "version": "5.0.9", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/brace-expansion/-/brace-expansion-5.0.9.tgz", + "integrity": "sha1-fHJDiAm1+lur9UGZofHCgaaYT88=", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^4.0.2" + }, + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha1-umLnwTEzBTWCGXFghRqPZI6Z7tA=", + "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.1.13" + } + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha1-KxRqb9cugLT1XSVfNe1Zo6mkG9U=", + "dev": true, + "license": "MIT" + }, + "node_modules/builder-util": { + "version": "25.1.7", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/builder-util/-/builder-util-25.1.7.tgz", + "integrity": "sha1-oHtATwyxpjWqFlkCvmUpfViTL/g=", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/debug": "^4.1.6", + "7zip-bin": "~5.2.0", + "app-builder-bin": "5.0.0-alpha.10", + "bluebird-lst": "^1.0.9", + "builder-util-runtime": "9.2.10", + "chalk": "^4.1.2", + "cross-spawn": "^7.0.3", + "debug": "^4.3.4", + "fs-extra": "^10.1.0", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.0", + "is-ci": "^3.0.0", + "js-yaml": "^4.1.0", + "source-map-support": "^0.5.19", + "stat-mode": "^1.0.0", + "temp-file": "^3.4.0" + } + }, + "node_modules/builder-util-runtime": { + "version": "9.2.10", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/builder-util-runtime/-/builder-util-runtime-9.2.10.tgz", + "integrity": "sha1-oPfZ4hQVhALni3SnRcjZ+HDGBLw=", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.3.4", + "sax": "^1.2.4" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/builder-util/node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha1-Aoc8+8QITd4SfqpfmQXu8jJdGr8=", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/builder-util/node_modules/jsonfile": { + "version": "6.2.1", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/jsonfile/-/jsonfile-6.2.1.tgz", + "integrity": "sha1-tuMXF/Isw3MwsIHOAFHtXeU68vY=", + "dev": true, + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/builder-util/node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha1-Fo78IYCWTmOG0GHglN9hr+I5sY0=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/cacache": { + "version": "16.1.3", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/cacache/-/cacache-16.1.3.tgz", + "integrity": "sha1-oCufNOz6+aeMn0vBb865TV1no44=", + "dev": true, + "license": "ISC", + "dependencies": { + "@npmcli/fs": "^2.1.0", + "@npmcli/move-file": "^2.0.0", + "chownr": "^2.0.0", + "fs-minipass": "^2.1.0", + "glob": "^8.0.1", + "infer-owner": "^1.0.4", + "lru-cache": "^7.7.1", + "minipass": "^3.1.6", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "mkdirp": "^1.0.4", + "p-map": "^4.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^3.0.2", + "ssri": "^9.0.0", + "tar": "^6.1.11", + "unique-filename": "^2.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/cacache/node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha1-6D46fj8wCzTLnYf2FfoMvzV2kO4=", + "dev": true, + "license": "MIT" + }, + "node_modules/cacache/node_modules/brace-expansion": { + "version": "2.1.4", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/brace-expansion/-/brace-expansion-2.1.4.tgz", + "integrity": "sha1-WJ2rEcABjQNmvmTNi/Esjb7MgyY=", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/cacache/node_modules/glob": { + "version": "8.1.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/glob/-/glob-8.1.0.tgz", + "integrity": "sha1-04j2Vlk+9wjuPjRkD9+5mp/Rwz4=", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/cacache/node_modules/lru-cache": { + "version": "7.18.3", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha1-95OJbg/Q6VSlnf3YLwdzgI32qok=", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/cacache/node_modules/minimatch": { + "version": "5.1.9", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/minimatch/-/minimatch-5.1.9.tgz", + "integrity": "sha1-EpPvFdsAmLOUVA6Pn3RPn9qN7ks=", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/cacheable-lookup": { + "version": "5.0.4", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", + "integrity": "sha1-WmuGWyxENXvj1evCpGewMnGacAU=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.6.0" + } + }, + "node_modules/cacheable-request": { + "version": "7.0.4", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/cacheable-request/-/cacheable-request-7.0.4.tgz", + "integrity": "sha1-ejPr8IYTF4tANjW+e4mdPmm76Bc=", + "dev": true, + "license": "MIT", + "dependencies": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^4.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^6.0.1", + "responselike": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha1-S1QowiK+mF15w9gmV0edvgtZstY=", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha1-qsTit3NKdAhnrrFr8CqtVWoeegE=", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chownr": { + "version": "2.0.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha1-Fb++U9LqtM9w8YqM1o6+Wzyx3s4=", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/chromium-pickle-js": { + "version": "0.2.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/chromium-pickle-js/-/chromium-pickle-js-0.2.0.tgz", + "integrity": "sha1-BKEGZywYsIWrd02YPfo+oTjyIgU=", + "dev": true, + "license": "MIT" + }, + "node_modules/ci-info": { + "version": "3.9.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha1-QnmmICinsfJi80c/yWBfXiGMWbQ=", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha1-7oRy27Ep5yezHooQpCfe6d/kAIs=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/cli-cursor": { + "version": "3.1.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha1-JkMFp65JDR0Dvwybp8kl0XU68wc=", + "dev": true, + "license": "MIT", + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-spinners": { + "version": "2.9.2", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/cli-spinners/-/cli-spinners-2.9.2.tgz", + "integrity": "sha1-F3Oo9LnE1qwxVj31Oz/B15Ri/kE=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-truncate": { + "version": "2.1.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/cli-truncate/-/cli-truncate-2.1.0.tgz", + "integrity": "sha1-w54ovwXtzeW+O5iZKiLe7Vork8c=", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "slice-ansi": "^3.0.0", + "string-width": "^4.2.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha1-DASwddsCy/5g3I5s8vVIaxo2CKo=", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/clone": { + "version": "1.0.4", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/clone/-/clone-1.0.4.tgz", + "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/clone-response": { + "version": "1.0.3", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/clone-response/-/clone-response-1.0.3.tgz", + "integrity": "sha1-ryAyqkeBY5nPXwodDbkC9ReruMM=", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-response": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=", + "dev": true, + "license": "MIT" + }, + "node_modules/color-support": { + "version": "1.1.3", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/color-support/-/color-support-1.1.3.tgz", + "integrity": "sha1-k4NDeaHMmgxh+C9S8NBDIiUb1aI=", + "dev": true, + "license": "ISC", + "bin": { + "color-support": "bin.js" + } + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha1-w9RaizT9cwYxoRCoolIGgrMdWn8=", + "dev": true, + "license": "MIT", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "5.1.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/commander/-/commander-5.1.0.tgz", + "integrity": "sha1-Rqu9FlL44Fm92u+Zu9yyrZzxea4=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/compare-version": { + "version": "0.1.2", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/compare-version/-/compare-version-0.1.2.tgz", + "integrity": "sha1-AWLsLZNR9d3VmpICy6k1NmpyUIA=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/compress-commons": { + "version": "4.1.2", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/compress-commons/-/compress-commons-4.1.2.tgz", + "integrity": "sha1-ZULlnLY+H0aoshsOBvmjLkyLBt8=", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "buffer-crc32": "^0.2.13", + "crc32-stream": "^4.0.2", + "normalize-path": "^3.0.0", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true, + "license": "MIT" + }, + "node_modules/config-file-ts": { + "version": "0.2.8-rc1", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/config-file-ts/-/config-file-ts-0.2.8-rc1.tgz", + "integrity": "sha1-+3/GzLLjE/advrePHbCwADgEneA=", + "dev": true, + "license": "MIT", + "dependencies": { + "glob": "^10.3.12", + "typescript": "^5.4.3" + } + }, + "node_modules/config-file-ts/node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha1-6D46fj8wCzTLnYf2FfoMvzV2kO4=", + "dev": true, + "license": "MIT" + }, + "node_modules/config-file-ts/node_modules/brace-expansion": { + "version": "2.1.4", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/brace-expansion/-/brace-expansion-2.1.4.tgz", + "integrity": "sha1-WJ2rEcABjQNmvmTNi/Esjb7MgyY=", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/config-file-ts/node_modules/glob": { + "version": "10.5.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/glob/-/glob-10.5.0.tgz", + "integrity": "sha1-jsA1WRnNMzjChCiiPU8k7MX+c4w=", + "dev": true, + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/config-file-ts/node_modules/minimatch": { + "version": "9.0.9", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/minimatch/-/minimatch-9.0.9.tgz", + "integrity": "sha1-mwy5/LeAh/b9fqur4lEcTT1gV04=", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.2" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/config-file-ts/node_modules/minipass": { + "version": "7.1.3", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/minipass/-/minipass-7.1.3.tgz", + "integrity": "sha1-eTibTrG7LQA6m7qH1JLyvTe9xls=", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/console-control-strings": { + "version": "1.1.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", + "dev": true, + "license": "ISC" + }, + "node_modules/core-util-is": { + "version": "1.0.2", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "dev": true, + "license": "MIT" + }, + "node_modules/crc": { + "version": "3.8.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/crc/-/crc-3.8.0.tgz", + "integrity": "sha1-rWAmnCyFb4wpnixMwN5FVpFAVsY=", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "buffer": "^5.1.0" + } + }, + "node_modules/crc-32": { + "version": "1.2.2", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/crc-32/-/crc-32-1.2.2.tgz", + "integrity": "sha1-PK01qTS4v3HyXKUkttpR+36s4v8=", + "dev": true, + "license": "Apache-2.0", + "peer": true, + "bin": { + "crc32": "bin/crc32.njs" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/crc32-stream": { + "version": "4.0.3", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/crc32-stream/-/crc32-stream-4.0.3.tgz", + "integrity": "sha1-hd1nfrePp8rRuhfMUGpZfUH8bzM=", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "crc-32": "^1.2.0", + "readable-stream": "^3.4.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha1-ilj+ePANzXDDcEUXWd+/rwPo7p8=", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/debug/-/debug-4.4.3.tgz", + "integrity": "sha1-xq5DLZvZZiWC/OCHCbA4xY6ePWo=", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decompress-response": { + "version": "6.0.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha1-yjh2Et234QS9FthaqwDV7PCcZvw=", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-response": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/decompress-response/node_modules/mimic-response": { + "version": "3.1.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha1-LR1Zr5wbEpgVrMwsRqAipc4fo8k=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/defaults": { + "version": "1.0.4", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/defaults/-/defaults-1.0.4.tgz", + "integrity": "sha1-sLAgYsHiqmL/XZUo8PmLqpCXjXo=", + "dev": true, + "license": "MIT", + "dependencies": { + "clone": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/defer-to-connect": { + "version": "2.0.1", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/defer-to-connect/-/defer-to-connect-2.0.1.tgz", + "integrity": "sha1-gBa9tBQ+RjK3ejRJxiNid95SBYc=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha1-iU3BQbt9MGCuQ2b2oBB+aPvkjF4=", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha1-EHgcxhbrlRqAoDS6/Kpzd/avK2w=", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/delegates": { + "version": "1.0.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", + "dev": true, + "license": "MIT" + }, + "node_modules/detect-libc": { + "version": "2.1.2", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/detect-libc/-/detect-libc-2.1.2.tgz", + "integrity": "sha1-aJxdzcGQDvVYOky59te0c3QgdK0=", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=8" + } + }, + "node_modules/detect-node": { + "version": "2.1.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha1-yccHdaScPQO8LAbZpzvlUPl4+LE=", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/dir-compare": { + "version": "4.2.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/dir-compare/-/dir-compare-4.2.0.tgz", + "integrity": "sha1-0dSZnBT79VKBBx/a5Ck7O5zobxk=", + "dev": true, + "license": "MIT", + "dependencies": { + "minimatch": "^3.0.5", + "p-limit": "^3.1.0 " + } + }, + "node_modules/dir-compare/node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha1-6D46fj8wCzTLnYf2FfoMvzV2kO4=", + "dev": true, + "license": "MIT" + }, + "node_modules/dir-compare/node_modules/brace-expansion": { + "version": "1.1.18", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/brace-expansion/-/brace-expansion-1.1.18.tgz", + "integrity": "sha1-POdNiYhRNr4VNTQfjD1EJcKaXKs=", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/dir-compare/node_modules/minimatch": { + "version": "3.1.5", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha1-WAyI+NVEXyvWqo88re+g3nn71p4=", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/dmg-builder": { + "version": "25.1.8", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/dmg-builder/-/dmg-builder-25.1.8.tgz", + "integrity": "sha1-QfO3Je3YlhVuiRAWpEEp4b1YBDA=", + "dev": true, + "license": "MIT", + "dependencies": { + "app-builder-lib": "25.1.8", + "builder-util": "25.1.7", + "builder-util-runtime": "9.2.10", + "fs-extra": "^10.1.0", + "iconv-lite": "^0.6.2", + "js-yaml": "^4.1.0" + }, + "optionalDependencies": { + "dmg-license": "^1.0.11" + } + }, + "node_modules/dmg-builder/node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha1-Aoc8+8QITd4SfqpfmQXu8jJdGr8=", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/dmg-builder/node_modules/jsonfile": { + "version": "6.2.1", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/jsonfile/-/jsonfile-6.2.1.tgz", + "integrity": "sha1-tuMXF/Isw3MwsIHOAFHtXeU68vY=", + "dev": true, + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/dmg-builder/node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha1-Fo78IYCWTmOG0GHglN9hr+I5sY0=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/dmg-license": { + "version": "1.0.11", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/dmg-license/-/dmg-license-1.0.11.tgz", + "integrity": "sha1-ezvDdF0bUr51BrTugMth325M15o=", + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "dependencies": { + "@types/plist": "^3.0.1", + "@types/verror": "^1.10.3", + "ajv": "^6.10.0", + "crc": "^3.8.0", + "iconv-corefoundation": "^1.1.7", + "plist": "^3.0.4", + "smart-buffer": "^4.0.2", + "verror": "^1.10.0" + }, + "bin": { + "dmg-license": "bin/dmg-license.js" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dotenv": { + "version": "16.6.1", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/dotenv/-/dotenv-16.6.1.tgz", + "integrity": "sha1-dz8OaVJ6gxXHKF1e5zxEWdIKgCA=", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, + "node_modules/dotenv-expand": { + "version": "11.0.7", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/dotenv-expand/-/dotenv-expand-11.0.7.tgz", + "integrity": "sha1-r2la6gB9b9yEyGzY0K1760CgvQg=", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "dotenv": "^16.4.5" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha1-165mfh3INIL4tw/Q9u78UNow9Yo=", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha1-aWzi7Aqg5uqTo5f/zySqeEDIJ8s=", + "dev": true, + "license": "MIT" + }, + "node_modules/ejs": { + "version": "3.1.10", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/ejs/-/ejs-3.1.10.tgz", + "integrity": "sha1-aauDWLFOiW+AzDnmIIe4hQDDrDs=", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "jake": "^10.8.5" + }, + "bin": { + "ejs": "bin/cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/electron": { + "version": "33.4.11", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/electron/-/electron-33.4.11.tgz", + "integrity": "sha1-Il1/EG7T7feIztMYxjhY2LikRtw=", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "@electron/get": "^2.0.0", + "@types/node": "^20.9.0", + "extract-zip": "^2.0.1" + }, + "bin": { + "electron": "cli.js" + }, + "engines": { + "node": ">= 12.20.55" + } + }, + "node_modules/electron-builder": { + "version": "25.1.8", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/electron-builder/-/electron-builder-25.1.8.tgz", + "integrity": "sha1-sOMQ8WAHh2ELuEw/Obx6rbJUhIY=", + "dev": true, + "license": "MIT", + "dependencies": { + "app-builder-lib": "25.1.8", + "builder-util": "25.1.7", + "builder-util-runtime": "9.2.10", + "chalk": "^4.1.2", + "dmg-builder": "25.1.8", + "fs-extra": "^10.1.0", + "is-ci": "^3.0.0", + "lazy-val": "^1.0.5", + "simple-update-notifier": "2.0.0", + "yargs": "^17.6.2" + }, + "bin": { + "electron-builder": "cli.js", + "install-app-deps": "install-app-deps.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/electron-builder-squirrel-windows": { + "version": "25.1.8", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/electron-builder-squirrel-windows/-/electron-builder-squirrel-windows-25.1.8.tgz", + "integrity": "sha1-vEL42jqqeQB/muw40IeY4egzZv4=", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "app-builder-lib": "25.1.8", + "archiver": "^5.3.1", + "builder-util": "25.1.7", + "fs-extra": "^10.1.0" + } + }, + "node_modules/electron-builder-squirrel-windows/node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha1-Aoc8+8QITd4SfqpfmQXu8jJdGr8=", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/electron-builder-squirrel-windows/node_modules/jsonfile": { + "version": "6.2.1", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/jsonfile/-/jsonfile-6.2.1.tgz", + "integrity": "sha1-tuMXF/Isw3MwsIHOAFHtXeU68vY=", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/electron-builder-squirrel-windows/node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha1-Fo78IYCWTmOG0GHglN9hr+I5sY0=", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/electron-builder/node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha1-Aoc8+8QITd4SfqpfmQXu8jJdGr8=", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/electron-builder/node_modules/jsonfile": { + "version": "6.2.1", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/jsonfile/-/jsonfile-6.2.1.tgz", + "integrity": "sha1-tuMXF/Isw3MwsIHOAFHtXeU68vY=", + "dev": true, + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/electron-builder/node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha1-Fo78IYCWTmOG0GHglN9hr+I5sY0=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/electron-publish": { + "version": "25.1.7", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/electron-publish/-/electron-publish-25.1.7.tgz", + "integrity": "sha1-FOUMKj+v3BxFTq27xH6tiaSLtVQ=", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/fs-extra": "^9.0.11", + "builder-util": "25.1.7", + "builder-util-runtime": "9.2.10", + "chalk": "^4.1.2", + "fs-extra": "^10.1.0", + "lazy-val": "^1.0.5", + "mime": "^2.5.2" + } + }, + "node_modules/electron-publish/node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha1-Aoc8+8QITd4SfqpfmQXu8jJdGr8=", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/electron-publish/node_modules/jsonfile": { + "version": "6.2.1", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/jsonfile/-/jsonfile-6.2.1.tgz", + "integrity": "sha1-tuMXF/Isw3MwsIHOAFHtXeU68vY=", + "dev": true, + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/electron-publish/node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha1-Fo78IYCWTmOG0GHglN9hr+I5sY0=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha1-6Bj9ac5cz8tARZT4QpY79TFkzDc=", + "dev": true, + "license": "MIT" + }, + "node_modules/encoding": { + "version": "0.1.13", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha1-VldK/deR9UqOmyeFwFgqLSYhD6k=", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "iconv-lite": "^0.6.2" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.5", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/end-of-stream/-/end-of-stream-1.4.5.tgz", + "integrity": "sha1-c0TXEd6kDgt0q8LtSXeHQ8ztsIw=", + "dev": true, + "license": "MIT", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha1-QgOZ1BbOH76bwKB8Yvpo1n/Q+PI=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/err-code": { + "version": "2.0.3", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/err-code/-/err-code-2.0.3.tgz", + "integrity": "sha1-I8Lzt1b/38YI0w4nyalBAkgH5/k=", + "dev": true, + "license": "MIT" + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha1-mD6y+aZyTpMD9hrd8BHHLgngsPo=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha1-BfdaJdq5jk+x3NXhRywFRtUFfI8=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.1.2", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/es-object-atoms/-/es-object-atoms-1.1.2.tgz", + "integrity": "sha1-otCzcyBXJN+lJdI7DD4bHKWCyZs=", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha1-8x274MGDsAptJutjJcgQwP0YvU0=", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es6-error": { + "version": "4.1.1", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/es6-error/-/es6-error-4.1.1.tgz", + "integrity": "sha1-njr0B0Wd7tR+mpH5uIWoTrBcVh0=", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha1-ARo/aYVroYnf+n3I/M6Z0qh5A+U=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha1-FLqDpdNz49MR5a/KKc9b+tllvzQ=", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/exponential-backoff": { + "version": "3.1.3", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/exponential-backoff/-/exponential-backoff-3.1.3.tgz", + "integrity": "sha1-Uc+SwcBJPHZgU/nTq+5ENMJE0vY=", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/extract-zip": { + "version": "2.0.1", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/extract-zip/-/extract-zip-2.0.1.tgz", + "integrity": "sha1-Zj3KVv5G34kNXxMe9KBtIruLoTo=", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "debug": "^4.1.1", + "get-stream": "^5.1.0", + "yauzl": "^2.10.0" + }, + "bin": { + "extract-zip": "cli.js" + }, + "engines": { + "node": ">= 10.17.0" + }, + "optionalDependencies": { + "@types/yauzl": "^2.9.1" + } + }, + "node_modules/extsprintf": { + "version": "1.4.1", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/extsprintf/-/extsprintf-1.4.1.tgz", + "integrity": "sha1-jRcsBkhn8jXAyEpZaAbSeb9LzAc=", + "dev": true, + "engines": [ + "node >=0.6.0" + ], + "license": "MIT", + "optional": true + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha1-On1WtVnWy8PrUSMlJE5hmmXGxSU=", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha1-h0v2nG9ATCtdmcSBNBOZ/VWJJjM=", + "dev": true, + "license": "MIT" + }, + "node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", + "dev": true, + "license": "MIT", + "dependencies": { + "pend": "~1.2.0" + } + }, + "node_modules/filelist": { + "version": "1.0.6", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/filelist/-/filelist-1.0.6.tgz", + "integrity": "sha1-HohwlCp8Y2yGL3xJuTlJN7aplaM=", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "minimatch": "^5.0.1" + } + }, + "node_modules/filelist/node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha1-6D46fj8wCzTLnYf2FfoMvzV2kO4=", + "dev": true, + "license": "MIT" + }, + "node_modules/filelist/node_modules/brace-expansion": { + "version": "2.1.4", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/brace-expansion/-/brace-expansion-2.1.4.tgz", + "integrity": "sha1-WJ2rEcABjQNmvmTNi/Esjb7MgyY=", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/filelist/node_modules/minimatch": { + "version": "5.1.9", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/minimatch/-/minimatch-5.1.9.tgz", + "integrity": "sha1-EpPvFdsAmLOUVA6Pn3RPn9qN7ks=", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/foreground-child": { + "version": "3.3.1", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/foreground-child/-/foreground-child-3.3.1.tgz", + "integrity": "sha1-Mujp7Rtoo0l777msK2rfkqY4V28=", + "dev": true, + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.6", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/foreground-child/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha1-lSGIwcvVRgcOLdIND0HArgUwywQ=", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/form-data": { + "version": "4.0.6", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/form-data/-/form-data-4.0.6.tgz", + "integrity": "sha1-KOhk4beG2+u2jbH0UvljUnhmWCc=", + "dev": true, + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.4", + "mime-types": "^2.1.35" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fs-constants": { + "version": "1.0.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha1-a+Dem+mYzhavivwkSXue6bfM2a0=", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha1-SdQ8RaiM2Wd2aMt74bRu/bjS4cA=", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/fs-minipass": { + "version": "2.1.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha1-f1A2/b8SxjwWkZDL5BmchSJx+fs=", + "dev": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true, + "license": "ISC" + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha1-LALYZNl/PqbIgwxGTL0Rq26rehw=", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gauge": { + "version": "4.0.4", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/gauge/-/gauge-4.0.4.tgz", + "integrity": "sha1-Uv8GUvK79gepiXk9U7dRvvIyjc4=", + "dev": true, + "license": "ISC", + "dependencies": { + "aproba": "^1.0.3 || ^2.0.0", + "color-support": "^1.1.3", + "console-control-strings": "^1.1.0", + "has-unicode": "^2.0.1", + "signal-exit": "^3.0.7", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "wide-align": "^1.1.5" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha1-T5RBKoLbMvNuOwuXQfipf+sDH34=", + "dev": true, + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha1-dD8OO2lkqTpUke0b/6rgVNf5jQE=", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha1-FQs/J0OGnvPoUewMSdFbHRTQDuE=", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha1-SWaheV7lrOZecGxLe+txJX1uItM=", + "dev": true, + "license": "MIT", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/glob/-/glob-7.2.3.tgz", + "integrity": "sha1-uN8PuAK7+o6JvR2Ti04WV47UTys=", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob/node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha1-6D46fj8wCzTLnYf2FfoMvzV2kO4=", + "dev": true, + "license": "MIT" + }, + "node_modules/glob/node_modules/brace-expansion": { + "version": "1.1.18", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/brace-expansion/-/brace-expansion-1.1.18.tgz", + "integrity": "sha1-POdNiYhRNr4VNTQfjD1EJcKaXKs=", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/glob/node_modules/minimatch": { + "version": "3.1.5", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha1-WAyI+NVEXyvWqo88re+g3nn71p4=", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/global-agent": { + "version": "3.0.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/global-agent/-/global-agent-3.0.0.tgz", + "integrity": "sha1-rnzTG9NYO5PFoWQ3oa/ifMM6GrY=", + "dev": true, + "license": "BSD-3-Clause", + "optional": true, + "dependencies": { + "boolean": "^3.0.1", + "es6-error": "^4.1.1", + "matcher": "^3.0.0", + "roarr": "^2.15.3", + "semver": "^7.3.2", + "serialize-error": "^7.0.1" + }, + "engines": { + "node": ">=10.0" + } + }, + "node_modules/global-agent/node_modules/semver": { + "version": "7.8.5", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/semver/-/semver-7.8.5.tgz", + "integrity": "sha1-ObZGA33VDBT7RR5+TKxY7YuGP2k=", + "dev": true, + "license": "ISC", + "optional": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/globalthis": { + "version": "1.0.4", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha1-dDDtOpddl7+1m8zkH1yruvplEjY=", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "define-properties": "^1.2.1", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha1-ifVrghe9vIgCvSmd9tfxCB1+UaE=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/got": { + "version": "11.8.6", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/got/-/got-11.8.6.tgz", + "integrity": "sha1-J26Cfq2Hcu3bz8lxcFkLhBgjIzo=", + "dev": true, + "license": "MIT", + "dependencies": { + "@sindresorhus/is": "^4.0.0", + "@szmarczak/http-timer": "^4.0.5", + "@types/cacheable-request": "^6.0.1", + "@types/responselike": "^1.0.0", + "cacheable-lookup": "^5.0.3", + "cacheable-request": "^7.0.2", + "decompress-response": "^6.0.0", + "http2-wrapper": "^1.0.0-beta.5.2", + "lowercase-keys": "^2.0.0", + "p-cancelable": "^2.0.0", + "responselike": "^2.0.0" + }, + "engines": { + "node": ">=10.19.0" + }, + "funding": { + "url": "https://github.com/sindresorhus/got?sponsor=1" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha1-QYPk6L8Iu24Fu7L30uDI9xLKQOM=", + "dev": true, + "license": "ISC" + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha1-lj7X0HHce/XwhMW/vg0bYiJYaFQ=", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha1-/JxqeDoISVHQuXH+EBjegTcHozg=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha1-LNxC1AvvLltO6rfAGnPFTOerWrw=", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-unicode": { + "version": "2.0.1", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", + "dev": true, + "license": "ISC" + }, + "node_modules/hasown": { + "version": "2.0.4", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/hasown/-/hasown-2.0.4.tgz", + "integrity": "sha1-jGLYy5C+sqrV0KW2dYGtmFTD8AM=", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/hosted-git-info": { + "version": "4.1.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha1-gnuChn6f8cjQxNnVOIA5fSyG0iQ=", + "dev": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/http-cache-semantics": { + "version": "4.2.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/http-cache-semantics/-/http-cache-semantics-4.2.0.tgz", + "integrity": "sha1-IF9Ntk+FYrdqT/kjWqUnmDmgndU=", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/http-proxy-agent": { + "version": "7.0.2", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", + "integrity": "sha1-mosfJGhmwChQlIZYX2K48sGMJw4=", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/http2-wrapper": { + "version": "1.0.3", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/http2-wrapper/-/http2-wrapper-1.0.3.tgz", + "integrity": "sha1-uPVeDB8l1OvQizsMLAeflZCACz0=", + "dev": true, + "license": "MIT", + "dependencies": { + "quick-lru": "^5.1.1", + "resolve-alpn": "^1.0.0" + }, + "engines": { + "node": ">=10.19.0" + } + }, + "node_modules/https-proxy-agent": { + "version": "7.0.6", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", + "integrity": "sha1-2o3+rH2hMLBcK6S1nJts1mYRprk=", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/humanize-ms": { + "version": "1.2.1", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/humanize-ms/-/humanize-ms-1.2.1.tgz", + "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.0.0" + } + }, + "node_modules/iconv-corefoundation": { + "version": "1.1.7", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/iconv-corefoundation/-/iconv-corefoundation-1.1.7.tgz", + "integrity": "sha1-MQZearLJJyFUyLCCEVHiyI8bACo=", + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "dependencies": { + "cli-truncate": "^2.1.0", + "node-addon-api": "^1.6.3" + }, + "engines": { + "node": "^8.11.2 || >=10" + } + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha1-pS+AvzjaGVLrXGgXkHGYcaGnJQE=", + "dev": true, + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha1-jrehCmP/8l0VpXsAFYbRd9Gw01I=", + "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": "BSD-3-Clause" + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha1-Yk+PRJfWGbLZdoUx1Y9BIoVNclE=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/infer-owner": { + "version": "1.0.4", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/infer-owner/-/infer-owner-1.0.4.tgz", + "integrity": "sha1-xM78qo5RBRwqQLos6KPScpWvlGc=", + "dev": true, + "license": "ISC" + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha1-D6LGT5MpF8NDOg3tVTY6rjdBa3w=", + "dev": true, + "license": "ISC" + }, + "node_modules/ip-address": { + "version": "10.5.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/ip-address/-/ip-address-10.5.0.tgz", + "integrity": "sha1-/NbX3+nmhBa3y3Gv6byWCz44wTs=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 12" + } + }, + "node_modules/is-ci": { + "version": "3.0.1", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/is-ci/-/is-ci-3.0.1.tgz", + "integrity": "sha1-227L7RvWWcQ9rA9FZh52dBA9GGc=", + "dev": true, + "license": "MIT", + "dependencies": { + "ci-info": "^3.2.0" + }, + "bin": { + "is-ci": "bin.js" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha1-8Rb4Bk/pCz94RKOJl8C3UFEmnx0=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-interactive": { + "version": "1.0.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha1-zqbmrlyHCnsKAAQHC3tYfgJSkS4=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-lambda": { + "version": "1.0.1", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/is-lambda/-/is-lambda-1.0.1.tgz", + "integrity": "sha1-PZh3iZ5qU+/AFgUEzeFfgubwYdU=", + "dev": true, + "license": "MIT" + }, + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha1-PybHaoCVk7Ur+i7LVxDtJ3m1Iqc=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/isbinaryfile": { + "version": "5.0.7", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/isbinaryfile/-/isbinaryfile-5.0.7.tgz", + "integrity": "sha1-Gac/IoG3No3KnTs6yKBDQHRnCXk=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 18.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/gjtorikian/" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true, + "license": "ISC" + }, + "node_modules/jackspeak": { + "version": "3.4.3", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha1-iDOp2Jq0rN5hiJQr0cU7Y5DtWoo=", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/jake": { + "version": "10.9.4", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/jake/-/jake-10.9.4.tgz", + "integrity": "sha1-1ibaEIxj1c+wCrXCX63H4AhK+OY=", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "async": "^3.2.6", + "filelist": "^1.0.4", + "picocolors": "^1.1.1" + }, + "bin": { + "jake": "bin/cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/js-yaml": { + "version": "4.3.1", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/js-yaml/-/js-yaml-4.3.1.tgz", + "integrity": "sha1-ASFsAB1n9I4s1WDXCMevIQkKOEg=", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/puzrin" + }, + { + "type": "github", + "url": "https://github.com/sponsors/nodeca" + } + ], + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha1-kziAKjDTtmBfvgYT4JQAjKjAWhM=", + "dev": true, + "license": "MIT" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha1-afaofZUTq4u4/mO9sJecRI5oRmA=", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "dev": true, + "license": "ISC", + "optional": true + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/json5/-/json5-2.2.3.tgz", + "integrity": "sha1-eM1vGhm9wStz21rQxh79ZsHikoM=", + "dev": true, + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "license": "MIT", + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha1-qHmpnilFL5QkOfKkBeOvizHU3pM=", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/lazy-val": { + "version": "1.0.5", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/lazy-val/-/lazy-val-1.0.5.tgz", + "integrity": "sha1-bPO59bwxzufuPjacCDK3WD3Nkj0=", + "dev": true, + "license": "MIT" + }, + "node_modules/lazystream": { + "version": "1.0.1", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/lazystream/-/lazystream-1.0.1.tgz", + "integrity": "sha1-SUyDEGLx+UCCUexE2xy6KSQqJjg=", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "readable-stream": "^2.0.5" + }, + "engines": { + "node": ">= 0.6.3" + } + }, + "node_modules/lazystream/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha1-kRJegEK7obmIf0k0X2J3Anzovps=", + "dev": true, + "license": "MIT", + "peer": true, + "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/lazystream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha1-mR7GnSluAxN0fVm9/St0XDX4go0=", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/lazystream/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha1-nPFhG6YmhdcDCunkujQUnDrwP8g=", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/lodash": { + "version": "4.18.1", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/lodash/-/lodash-4.18.1.tgz", + "integrity": "sha1-/ytmwfYybVlRPeJAe/iBQ5gSdxw=", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.defaults": { + "version": "4.2.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/lodash.defaults/-/lodash.defaults-4.2.0.tgz", + "integrity": "sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw=", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/lodash.difference": { + "version": "4.5.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/lodash.difference/-/lodash.difference-4.5.0.tgz", + "integrity": "sha1-nMtOUF1Ia5FlE0V3KIWi3yf9AXw=", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/lodash.flatten": { + "version": "4.4.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/lodash.flatten/-/lodash.flatten-4.4.0.tgz", + "integrity": "sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/lodash.union": { + "version": "4.6.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/lodash.union/-/lodash.union-4.6.0.tgz", + "integrity": "sha1-SLtQiECfFvGCFmZkHETdGqrjzYg=", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha1-P727lbRoOsn8eFER55LlWNSr1QM=", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lowercase-keys": { + "version": "2.0.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha1-JgPni3tLAAbLyi+8yKMgJVislHk=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha1-bW/mVw69lqr5D8rR2vo7JWbbOpQ=", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/make-fetch-happen": { + "version": "10.2.1", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/make-fetch-happen/-/make-fetch-happen-10.2.1.tgz", + "integrity": "sha1-9eODXF6YF7YX8ncIcNlJLShngWQ=", + "dev": true, + "license": "ISC", + "dependencies": { + "agentkeepalive": "^4.2.1", + "cacache": "^16.1.0", + "http-cache-semantics": "^4.1.0", + "http-proxy-agent": "^5.0.0", + "https-proxy-agent": "^5.0.0", + "is-lambda": "^1.0.1", + "lru-cache": "^7.7.1", + "minipass": "^3.1.6", + "minipass-collect": "^1.0.2", + "minipass-fetch": "^2.0.3", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.3", + "promise-retry": "^2.0.1", + "socks-proxy-agent": "^7.0.0", + "ssri": "^9.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/make-fetch-happen/node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha1-Sf/1hXfP7j83F2/qtMIuAPhtf3c=", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/make-fetch-happen/node_modules/http-proxy-agent": { + "version": "5.0.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", + "integrity": "sha1-USmAAgNSDUNPFCvHj/PBcIAPK0M=", + "dev": true, + "license": "MIT", + "dependencies": { + "@tootallnate/once": "2", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/make-fetch-happen/node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha1-xZ7yJKBP6LdU89sAY6Jeow0ABdY=", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/make-fetch-happen/node_modules/lru-cache": { + "version": "7.18.3", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha1-95OJbg/Q6VSlnf3YLwdzgI32qok=", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/matcher": { + "version": "3.0.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/matcher/-/matcher-3.0.0.tgz", + "integrity": "sha1-vZBg9MW3CqgEHMxvgDaHYJlPMMo=", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "escape-string-regexp": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha1-oN10voHiqlwvJ+Zc4oNgXuTit/k=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/mime": { + "version": "2.6.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/mime/-/mime-2.6.0.tgz", + "integrity": "sha1-oqaCqVzU0MsdYlfij4PafjWAA2c=", + "dev": true, + "license": "MIT", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha1-u6vNwChZ9JhzAchW4zh85exDv3A=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha1-OBqHG2KnNEUGYK497uRIE/cNlZo=", + "dev": true, + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha1-ftLCzMyvhNP/y3pptXcR/CCDQBs=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/mimic-response": { + "version": "1.0.1", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha1-SSNTiHju9CBjy4o+OweYeBSHqxs=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/minimatch": { + "version": "10.2.6", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/minimatch/-/minimatch-10.2.6.tgz", + "integrity": "sha1-/ZVrvgt3JB6fFaxdzLHGOAYJaO8=", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "brace-expansion": "^5.0.8" + }, + "engines": { + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha1-waRk52kzAuCCoHXO4MBXdBrEdyw=", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha1-e7o4TbOhUg0YycDlJRw0ROld2Uo=", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-collect": { + "version": "1.0.2", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/minipass-collect/-/minipass-collect-1.0.2.tgz", + "integrity": "sha1-IrgTv3Rdxu26JXa5QAIq1u3Ixhc=", + "dev": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minipass-fetch": { + "version": "2.1.2", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/minipass-fetch/-/minipass-fetch-2.1.2.tgz", + "integrity": "sha1-lVYLUMRy2Bo7x28g7egOrtdtit0=", + "dev": true, + "license": "MIT", + "dependencies": { + "minipass": "^3.1.6", + "minipass-sized": "^1.0.3", + "minizlib": "^2.1.2" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + }, + "optionalDependencies": { + "encoding": "^0.1.13" + } + }, + "node_modules/minipass-flush": { + "version": "1.0.7", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/minipass-flush/-/minipass-flush-1.0.7.tgz", + "integrity": "sha1-FFw4PVrilLNgMKqA1Ohy0Ivry3M=", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minipass-pipeline": { + "version": "1.2.4", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", + "integrity": "sha1-aEcveXEcCEZXwGfFxq2Tzd6oIUw=", + "dev": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-sized": { + "version": "1.0.3", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/minipass-sized/-/minipass-sized-1.0.3.tgz", + "integrity": "sha1-cO5afFBSBwr6z7wil36nne81O3A=", + "dev": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minizlib": { + "version": "2.1.2", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha1-6Q00Zrogm5MkUVCKEc49NjIUWTE=", + "dev": true, + "license": "MIT", + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha1-PrXtYmInVteaXw4qIh3+utdcL34=", + "dev": true, + "license": "MIT", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/ms/-/ms-2.1.3.tgz", + "integrity": "sha1-V0yBOM4dK1hh8LRFedut1gxmFbI=", + "dev": true, + "license": "MIT" + }, + "node_modules/negotiator": { + "version": "0.6.4", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/negotiator/-/negotiator-0.6.4.tgz", + "integrity": "sha1-d3lI4kUmUcVwtxLdAcI+JicT//c=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/node-abi": { + "version": "3.94.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/node-abi/-/node-abi-3.94.0.tgz", + "integrity": "sha1-AHGB7Q0bVq6WcOpsCE0r+DU4QF8=", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.3.5" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/node-abi/node_modules/semver": { + "version": "7.8.5", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/semver/-/semver-7.8.5.tgz", + "integrity": "sha1-ObZGA33VDBT7RR5+TKxY7YuGP2k=", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/node-addon-api": { + "version": "1.7.2", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/node-addon-api/-/node-addon-api-1.7.2.tgz", + "integrity": "sha1-PfMLlXILU8JOWZSLSVMrZiRE9U0=", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/node-api-version": { + "version": "0.2.1", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/node-api-version/-/node-api-version-0.2.1.tgz", + "integrity": "sha1-GbrVT21lYoy+5OYHoyXkSIrOLek=", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.3.5" + } + }, + "node_modules/node-api-version/node_modules/semver": { + "version": "7.8.5", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/semver/-/semver-7.8.5.tgz", + "integrity": "sha1-ObZGA33VDBT7RR5+TKxY7YuGP2k=", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/node-gyp": { + "version": "9.4.1", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/node-gyp/-/node-gyp-9.4.1.tgz", + "integrity": "sha1-ihAj4NZ2bstSdkzDpzSzb/J14YU=", + "dev": true, + "license": "MIT", + "dependencies": { + "env-paths": "^2.2.0", + "exponential-backoff": "^3.1.1", + "glob": "^7.1.4", + "graceful-fs": "^4.2.6", + "make-fetch-happen": "^10.0.3", + "nopt": "^6.0.0", + "npmlog": "^6.0.0", + "rimraf": "^3.0.2", + "semver": "^7.3.5", + "tar": "^6.1.2", + "which": "^2.0.2" + }, + "bin": { + "node-gyp": "bin/node-gyp.js" + }, + "engines": { + "node": "^12.13 || ^14.13 || >=16" + } + }, + "node_modules/node-gyp/node_modules/semver": { + "version": "7.8.5", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/semver/-/semver-7.8.5.tgz", + "integrity": "sha1-ObZGA33VDBT7RR5+TKxY7YuGP2k=", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/nopt": { + "version": "6.0.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/nopt/-/nopt-6.0.0.tgz", + "integrity": "sha1-JFgB2Ov0CcbfIqudlbZeEwnNsW0=", + "dev": true, + "license": "ISC", + "dependencies": { + "abbrev": "^1.0.0" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha1-Dc1p/yOhybEf0JeDFmRKA4ghamU=", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-url": { + "version": "6.1.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha1-QNCIW1Nd7/4/MUe+yHfQX+TFZoo=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npmlog": { + "version": "6.0.2", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/npmlog/-/npmlog-6.0.2.tgz", + "integrity": "sha1-yBZgF6QvLeqS1kUxaN2GUYanCDA=", + "dev": true, + "license": "ISC", + "dependencies": { + "are-we-there-yet": "^3.0.0", + "console-control-strings": "^1.1.0", + "gauge": "^4.0.3", + "set-blocking": "^2.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha1-HEfyct8nfzsdrwYWd9nILiMixg4=", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha1-0Oluu1awdHbfHdnEgG5SN5hcpF4=", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ora": { + "version": "5.4.1", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/ora/-/ora-5.4.1.tgz", + "integrity": "sha1-GyZ4Qmr0rEpQkAjl5KyemVnbnhg=", + "dev": true, + "license": "MIT", + "dependencies": { + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-cancelable": { + "version": "2.1.1", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/p-cancelable/-/p-cancelable-2.1.1.tgz", + "integrity": "sha1-qrf71BZYL6MqPbSYWcEiSHxe0s8=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha1-4drMvnjQ0TiMoYxk/qOOPlfjcGs=", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-map": { + "version": "4.0.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha1-uy+Vpe2i7BaOySdOBqdHw+KQTSs=", + "dev": true, + "license": "MIT", + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/package-json-from-dist": { + "version": "1.0.1", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha1-TxRxoBCCeob5TP2bByfjbSZ95QU=", + "dev": true, + "license": "BlueOak-1.0.0" + }, + "node_modules/pako": { + "version": "1.0.11", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/pako/-/pako-1.0.11.tgz", + "integrity": "sha1-bJWZ00DVTf05RjgCUqNXBaa5kr8=", + "license": "(MIT AND Zlib)" + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha1-WB9q3mWMu6ZaDTOA3ndTKVBU83U=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha1-eWCmaIiFlKByCxKpEdGnQqufEdI=", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha1-QQ/IoXtw5ZgBPfJXwkRrfzOD8Rk=", + "dev": true, + "license": "ISC" + }, + "node_modules/path-scurry/node_modules/minipass": { + "version": "7.1.3", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/minipass/-/minipass-7.1.3.tgz", + "integrity": "sha1-eTibTrG7LQA6m7qH1JLyvTe9xls=", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/pdf-lib": { + "version": "1.17.1", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/pdf-lib/-/pdf-lib-1.17.1.tgz", + "integrity": "sha1-nn3SEmGgwfsXmSWAiFs559CPRR8=", + "license": "MIT", + "dependencies": { + "@pdf-lib/standard-fonts": "^1.0.0", + "@pdf-lib/upng": "^1.0.1", + "pako": "^1.0.11", + "tslib": "^1.11.1" + } + }, + "node_modules/pe-library": { + "version": "0.4.1", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/pe-library/-/pe-library-0.4.1.tgz", + "integrity": "sha1-4mm+A0DcsTqmlJ10PafWWMPi++o=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12", + "npm": ">=6" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/jet2jet" + } + }, + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/pend/-/pend-1.2.0.tgz", + "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", + "dev": true, + "license": "MIT" + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha1-PTIa8+q5ObCDyPkpodEs2oHCa2s=", + "dev": true, + "license": "ISC" + }, + "node_modules/plist": { + "version": "3.1.1", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/plist/-/plist-3.1.1.tgz", + "integrity": "sha1-+mCZ4ePPbqGAJY6+Y3jqOHjCyEE=", + "dev": true, + "license": "MIT", + "dependencies": { + "@xmldom/xmldom": "^0.9.10", + "base64-js": "^1.5.1", + "xmlbuilder": "^15.1.1" + }, + "engines": { + "node": ">=10.4.0" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha1-eCDZsWEgzFXKmud5JoCufbptf+I=", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/progress": { + "version": "2.0.3", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/progress/-/progress-2.0.3.tgz", + "integrity": "sha1-foz42PW48jnBvGi+tOt4Vn1XLvg=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/promise-inflight": { + "version": "1.0.1", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", + "dev": true, + "license": "ISC" + }, + "node_modules/promise-retry": { + "version": "2.0.1", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/promise-retry/-/promise-retry-2.0.1.tgz", + "integrity": "sha1-/3R6E2IKtXumiPX8Z4VUEMNw2iI=", + "dev": true, + "license": "MIT", + "dependencies": { + "err-code": "^2.0.2", + "retry": "^0.12.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/pump": { + "version": "3.0.4", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/pump/-/pump-3.0.4.tgz", + "integrity": "sha1-HzE0MFJ/qLkFYi69Iv4UROdXqzw=", + "dev": true, + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha1-AnQi4vrsCyXhVJw+G9gwm5EztuU=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/quick-lru": { + "version": "5.1.1", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha1-NmST5rPkKjpoheLpnRj4D7eoyTI=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-binary-file-arch": { + "version": "1.0.6", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/read-binary-file-arch/-/read-binary-file-arch-1.0.6.tgz", + "integrity": "sha1-lZxGN9qpMigKm5EbGmdmp+RCiPw=", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.3.4" + }, + "bin": { + "read-binary-file-arch": "cli.js" + } + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha1-VqmzbqllwAxak+8x6xEaDxEFaWc=", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readdir-glob": { + "version": "1.1.3", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/readdir-glob/-/readdir-glob-1.1.3.tgz", + "integrity": "sha1-w9gx9R9ee/pi+i/75LUIxkDwlYQ=", + "dev": true, + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "minimatch": "^5.1.0" + } + }, + "node_modules/readdir-glob/node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha1-6D46fj8wCzTLnYf2FfoMvzV2kO4=", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/readdir-glob/node_modules/brace-expansion": { + "version": "2.1.4", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/brace-expansion/-/brace-expansion-2.1.4.tgz", + "integrity": "sha1-WJ2rEcABjQNmvmTNi/Esjb7MgyY=", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/readdir-glob/node_modules/minimatch": { + "version": "5.1.9", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/minimatch/-/minimatch-5.1.9.tgz", + "integrity": "sha1-EpPvFdsAmLOUVA6Pn3RPn9qN7ks=", + "dev": true, + "license": "ISC", + "peer": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resedit": { + "version": "1.7.2", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/resedit/-/resedit-1.7.2.tgz", + "integrity": "sha1-sQQRcLmYEXEME/lJx9Ilhx3kzHg=", + "dev": true, + "license": "MIT", + "dependencies": { + "pe-library": "^0.4.1" + }, + "engines": { + "node": ">=12", + "npm": ">=6" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/jet2jet" + } + }, + "node_modules/resolve-alpn": { + "version": "1.2.1", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/resolve-alpn/-/resolve-alpn-1.2.1.tgz", + "integrity": "sha1-t629rDVGqq7CC0Xn2CZZJwcnJvk=", + "dev": true, + "license": "MIT" + }, + "node_modules/responselike": { + "version": "2.0.1", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/responselike/-/responselike-2.0.1.tgz", + "integrity": "sha1-mgvI/cJS8/scymiwFlkQWboUIrw=", + "dev": true, + "license": "MIT", + "dependencies": { + "lowercase-keys": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/restore-cursor": { + "version": "3.1.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha1-OfZ8VLOnpYzqUjbZXPADQjljH34=", + "dev": true, + "license": "MIT", + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/retry": { + "version": "0.12.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/retry/-/retry-0.12.0.tgz", + "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha1-8aVAK6YiCtUswSgrrBrjqkn9Bho=", + "dev": true, + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/roarr": { + "version": "2.15.4", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/roarr/-/roarr-2.15.4.tgz", + "integrity": "sha1-9f55W3uDjM/jXcYI4Cgrnrouev0=", + "dev": true, + "license": "BSD-3-Clause", + "optional": true, + "dependencies": { + "boolean": "^3.0.1", + "detect-node": "^2.0.4", + "globalthis": "^1.0.1", + "json-stringify-safe": "^5.0.1", + "semver-compare": "^1.0.0", + "sprintf-js": "^1.1.2" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha1-Hq+fqb2x/dTsdfWPnNtOa3gn7sY=", + "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/safer-buffer": { + "version": "2.1.2", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha1-RPoWGwGHuVSd2Eu5GAL5vYOFzWo=", + "dev": true, + "license": "MIT" + }, + "node_modules/sanitize-filename": { + "version": "1.6.4", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/sanitize-filename/-/sanitize-filename-1.6.4.tgz", + "integrity": "sha1-trOevtm9GhiYuFxcAwidp0WQ1vg=", + "dev": true, + "license": "WTFPL OR ISC", + "dependencies": { + "truncate-utf8-bytes": "^1.0.0" + } + }, + "node_modules/sax": { + "version": "1.6.1", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/sax/-/sax-1.6.1.tgz", + "integrity": "sha1-TCPPYIwLaTq1S0tYiOks/pd7mEM=", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=11.0.0" + } + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/semver/-/semver-6.3.1.tgz", + "integrity": "sha1-VW0u+GiRRuRtzqS/3QlfNDTf/LQ=", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/semver-compare": { + "version": "1.0.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/semver-compare/-/semver-compare-1.0.0.tgz", + "integrity": "sha1-De4hahyUGrN+nvsXiPavxf9VN/w=", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/serialize-error": { + "version": "7.0.1", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/serialize-error/-/serialize-error-7.0.1.tgz", + "integrity": "sha1-8TYLBEf2H/tIPsQVfHN/q313jhg=", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "type-fest": "^0.13.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true, + "license": "ISC" + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha1-zNCvT4g1+9wmW4JGGq8MNmY/NOo=", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha1-rhbxZE2HPsrYQ7AwexQzYtTEIXI=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha1-qaF2f4r4QVURTqq9c/mSc8j1mtk=", + "dev": true, + "license": "ISC" + }, + "node_modules/simple-update-notifier": { + "version": "2.0.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/simple-update-notifier/-/simple-update-notifier-2.0.0.tgz", + "integrity": "sha1-1wuSvat9bZDf1zkxGVowtuPXzrs=", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/simple-update-notifier/node_modules/semver": { + "version": "7.8.5", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/semver/-/semver-7.8.5.tgz", + "integrity": "sha1-ObZGA33VDBT7RR5+TKxY7YuGP2k=", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/slice-ansi": { + "version": "3.0.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/slice-ansi/-/slice-ansi-3.0.0.tgz", + "integrity": "sha1-Md3BCTCht+C2ewjJbC9Jt3p4l4c=", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/smart-buffer": { + "version": "4.2.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha1-bh1x+k8YwF99D/IW3RakgdDo2a4=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks": { + "version": "2.8.9", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/socks/-/socks-2.8.9.tgz", + "integrity": "sha1-ql8TDKD4ikP6RPr0hpxQ0iqid1I=", + "dev": true, + "license": "MIT", + "dependencies": { + "ip-address": "^10.1.1", + "smart-buffer": "^4.2.0" + }, + "engines": { + "node": ">= 10.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks-proxy-agent": { + "version": "7.0.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz", + "integrity": "sha1-3AaezzRDZiGstB4++mbKG1/tFbY=", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^6.0.2", + "debug": "^4.3.3", + "socks": "^2.6.2" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/socks-proxy-agent/node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha1-Sf/1hXfP7j83F2/qtMIuAPhtf3c=", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha1-BP58f54e0tZiIzwoyys1ufY/bk8=", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/sprintf-js": { + "version": "1.1.3", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/sprintf-js/-/sprintf-js-1.1.3.tgz", + "integrity": "sha1-SRS5A6L4toXRf994pw6RfocuREo=", + "dev": true, + "license": "BSD-3-Clause", + "optional": true + }, + "node_modules/ssri": { + "version": "9.0.1", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/ssri/-/ssri-9.0.1.tgz", + "integrity": "sha1-VE1MNXqNe3GhlwAHS2iD/LTq4Fc=", + "dev": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.1.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/stat-mode": { + "version": "1.0.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/stat-mode/-/stat-mode-1.0.0.tgz", + "integrity": "sha1-aLVcth6mOf9XE282shaikYANFGU=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha1-QvEUWUpGzxqOMLCoT1bHjD7awh4=", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha1-JpxxF9J7Ba0uU2gwqOyJXvnG0BA=", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha1-JpxxF9J7Ba0uU2gwqOyJXvnG0BA=", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha1-nibGPTD1NEPpSJSVshBdN7Z6hdk=", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha1-nibGPTD1NEPpSJSVshBdN7Z6hdk=", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/sumchecker": { + "version": "3.0.1", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/sumchecker/-/sumchecker-3.0.1.tgz", + "integrity": "sha1-Y3fplnlauwttNI6bPh37JDRajkI=", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "debug": "^4.1.0" + }, + "engines": { + "node": ">= 8.0" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tar": { + "version": "6.2.1", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/tar/-/tar-6.2.1.tgz", + "integrity": "sha1-cXVJxUG8PCrxV1G+qUsd0GjUsDo=", + "dev": true, + "license": "ISC", + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^5.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/tar-stream": { + "version": "2.2.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/tar-stream/-/tar-stream-2.2.0.tgz", + "integrity": "sha1-rK2EwoQTawYNw/qmRHSqmuvXcoc=", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "bl": "^4.0.3", + "end-of-stream": "^1.4.1", + "fs-constants": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tar/node_modules/minipass": { + "version": "5.0.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha1-PpeI/7kLaUpdDslEeaRbXYc4Ez0=", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=8" + } + }, + "node_modules/temp-file": { + "version": "3.4.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/temp-file/-/temp-file-3.4.0.tgz", + "integrity": "sha1-dm6iiRHGg5lsJI7xog7qBNUWUsc=", + "dev": true, + "license": "MIT", + "dependencies": { + "async-exit-hook": "^2.0.1", + "fs-extra": "^10.0.0" + } + }, + "node_modules/temp-file/node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha1-Aoc8+8QITd4SfqpfmQXu8jJdGr8=", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/temp-file/node_modules/jsonfile": { + "version": "6.2.1", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/jsonfile/-/jsonfile-6.2.1.tgz", + "integrity": "sha1-tuMXF/Isw3MwsIHOAFHtXeU68vY=", + "dev": true, + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/temp-file/node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha1-Fo78IYCWTmOG0GHglN9hr+I5sY0=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/tmp": { + "version": "0.2.7", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/tmp/-/tmp-0.2.7.tgz", + "integrity": "sha1-JvTbEdFgHOgBLcuKeY7OHAapkFk=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.14" + } + }, + "node_modules/tmp-promise": { + "version": "3.0.3", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/tmp-promise/-/tmp-promise-3.0.3.tgz", + "integrity": "sha1-YKGhzJjJiGdPy/0jtuM2e96sTOc=", + "dev": true, + "license": "MIT", + "dependencies": { + "tmp": "^0.2.0" + } + }, + "node_modules/truncate-utf8-bytes": { + "version": "1.0.2", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz", + "integrity": "sha1-QFkjkJWS1W94pYGENLC3hInKXys=", + "dev": true, + "license": "WTFPL", + "dependencies": { + "utf8-byte-length": "^1.0.1" + } + }, + "node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha1-zy04vcNKE0vK8QkcQfZhni9nLQA=", + "license": "0BSD" + }, + "node_modules/type-fest": { + "version": "0.13.1", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/type-fest/-/type-fest-0.13.1.tgz", + "integrity": "sha1-AXLLW86AsL1ULqNI21DH4hg02TQ=", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "optional": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typescript": { + "version": "5.9.3", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/typescript/-/typescript-5.9.3.tgz", + "integrity": "sha1-W09Z4VMQqxeiFvXWz1PuR27eZw8=", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/undici-types": { + "version": "6.21.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/undici-types/-/undici-types-6.21.0.tgz", + "integrity": "sha1-aR0ArzkJvpOn+qE75hs6W1DvEss=", + "dev": true, + "license": "MIT" + }, + "node_modules/unique-filename": { + "version": "2.0.1", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/unique-filename/-/unique-filename-2.0.1.tgz", + "integrity": "sha1-54X4Z1qadYngrHfgtcNNLq6sbaI=", + "dev": true, + "license": "ISC", + "dependencies": { + "unique-slug": "^3.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/unique-slug": { + "version": "3.0.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/unique-slug/-/unique-slug-3.0.0.tgz", + "integrity": "sha1-bTR89XyKenpgRKq9Di105Ndtx8k=", + "dev": true, + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha1-tkb2m+OULavOzJ1mOcgNwQXvqmY=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha1-mxpSWVIlhZ5V9mnZKPiMbFfyp34=", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/utf8-byte-length": { + "version": "1.0.5", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/utf8-byte-length/-/utf8-byte-length-1.0.5.tgz", + "integrity": "sha1-+fY5ENFVNu4rLV3UZlOJcV6sXB4=", + "dev": true, + "license": "(WTFPL OR MIT)" + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true, + "license": "MIT" + }, + "node_modules/verror": { + "version": "1.10.1", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/verror/-/verror-1.10.1.tgz", + "integrity": "sha1-S/Ce7M9FY7EJ7Us9RYOAyXKwzes=", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/wcwidth": { + "version": "1.0.1", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", + "dev": true, + "license": "MIT", + "dependencies": { + "defaults": "^1.0.3" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/which/-/which-2.0.2.tgz", + "integrity": "sha1-fGqN0KY2oDJ+ELWckobu6T8/UbE=", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/wide-align": { + "version": "1.1.5", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/wide-align/-/wide-align-1.1.5.tgz", + "integrity": "sha1-3x1MIGhUNp7PPJpImPGyP72dFdM=", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^1.0.2 || 2 || 3 || 4" + } + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha1-Z+FFz/UQpqaYS98RUpEdadLrnkM=", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha1-Z+FFz/UQpqaYS98RUpEdadLrnkM=", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true, + "license": "ISC" + }, + "node_modules/xmlbuilder": { + "version": "15.1.1", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/xmlbuilder/-/xmlbuilder-15.1.1.tgz", + "integrity": "sha1-nc3OSe6mbY0QtCyulKecPI0MLsU=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.0" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha1-f0k00PfKjFb5UxSTndzS3ZHOHVU=", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha1-m7knkNnA7/7GO+c1GeEaNQGaOnI=", + "dev": true, + "license": "ISC" + }, + "node_modules/yargs": { + "version": "17.7.3", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/yargs/-/yargs-17.7.3.tgz", + "integrity": "sha1-d53/5ryv7FlqcXLpgyiaWIZH+qo=", + "dev": true, + "license": "MIT", + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha1-kJa87r+ZDSG7MfqVFuDt4pSnfTU=", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/yauzl": { + "version": "2.10.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha1-ApTrPe4FAo0x7hpfosVWpqrxChs=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/zip-stream": { + "version": "4.1.1", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/zip-stream/-/zip-stream-4.1.1.tgz", + "integrity": "sha1-Ezf+l026/9L6mhuglmKmaTK9cTU=", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "archiver-utils": "^3.0.4", + "compress-commons": "^4.1.2", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/zip-stream/node_modules/archiver-utils": { + "version": "3.0.4", + "resolved": "https://azdo.microlise.com/MicroliseCollection/_packaging/Microlise/npm/registry/archiver-utils/-/archiver-utils-3.0.4.tgz", + "integrity": "sha1-oNIB8c+PznrztaBa6gozcynpbsc=", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "glob": "^7.2.3", + "graceful-fs": "^4.2.0", + "lazystream": "^1.0.0", + "lodash.defaults": "^4.2.0", + "lodash.difference": "^4.5.0", + "lodash.flatten": "^4.4.0", + "lodash.isplainobject": "^4.0.6", + "lodash.union": "^4.6.0", + "normalize-path": "^3.0.0", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": ">= 10" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..e6b120f --- /dev/null +++ b/package.json @@ -0,0 +1,43 @@ +{ + "name": "resource-loader", + "version": "1.0.0", + "description": "Personal library and resource catalog", + "main": "electron/main.js", + "scripts": { + "start": "electron .", + "build": "electron-builder --win portable" + }, + "author": "", + "license": "UNLICENSED", + "dependencies": { + "pdf-lib": "^1.17.1" + }, + "devDependencies": { + "electron": "^33.2.1", + "electron-builder": "^25.1.8" + }, + "build": { + "appId": "local.resourceloader.app", + "productName": "Resource Loader", + "files": [ + "electron/**", + "index.html", + "css/**", + "js/**", + "data/**" + ], + "directories": { + "output": "dist" + }, + "win": { + "target": [ + { + "target": "portable", + "arch": [ + "x64" + ] + } + ] + } + } +}