diff --git a/backend/src/models/User.js b/backend/src/models/User.js index 03e9164..8bdbd18 100644 --- a/backend/src/models/User.js +++ b/backend/src/models/User.js @@ -369,6 +369,31 @@ const UserSchema = new mongoose.Schema({ }, { _id: false }), default: () => new Map() }, + // External tool API keys (e.g. Tavily web search). User's own key, else a + // Prompd-paid env key is used at call time. Same encrypted shape as llmProviders. + externalTools: { + type: Map, + of: new mongoose.Schema({ + hasKey: { type: Boolean, default: false }, + encryptedKey: String, // AES-256-GCM + iv: String, + addedAt: { type: Date, default: Date.now } + }, { _id: false }), + default: () => new Map() + }, + // Remote MCP servers the agent can call (proxied through the backend). Keyed + // by a stable id; encryptedKey is an optional bearer token for the server. + mcpServers: { + type: Map, + of: new mongoose.Schema({ + label: String, + url: String, // remote HTTP MCP endpoint + encryptedKey: String, + iv: String, + addedAt: { type: Date, default: Date.now } + }, { _id: false }), + default: () => new Map() + }, // Default provider preference defaultProvider: { type: String, @@ -467,6 +492,13 @@ UserSchema.virtual('canCreateProjects').get(function() { return true // Simplified for now }) +// The authenticated user's id, sourced from the Clerk token (decoded.sub is +// stored as clerkUserId). Many routes/middleware read req.user.userId; the User +// document has no such path, so without this they all silently get undefined. +UserSchema.virtual('userId').get(function() { + return this.clerkUserId +}) + // Instance methods UserSchema.methods.comparePassword = async function(candidatePassword) { return bcrypt.compare(candidatePassword, this.password) @@ -619,6 +651,58 @@ UserSchema.methods.getProviderKeyData = function(providerId) { return providers.get(providerId) || null } +/* ---- external tool keys (e.g. Tavily) ---- */ +UserSchema.methods.setToolKey = function(tool, encryptedKey, iv) { + if (!this.aiFeatures) this.aiFeatures = {} + if (!this.aiFeatures.externalTools) this.aiFeatures.externalTools = new Map() + const data = { hasKey: true, encryptedKey, iv, addedAt: new Date() } + this.aiFeatures.externalTools.set(tool, data) + this.markModified('aiFeatures.externalTools') + return data +} +UserSchema.methods.getToolKeyData = function(tool) { + const tools = this.aiFeatures?.externalTools + if (!tools) return null + return (typeof tools.get === 'function' ? tools.get(tool) : tools[tool]) || null +} +UserSchema.methods.removeToolKey = function(tool) { + const tools = this.aiFeatures?.externalTools + if (tools?.has?.(tool)) { + tools.delete(tool) + this.markModified('aiFeatures.externalTools') + return true + } + return false +} + +/* ---- remote MCP servers ---- */ +UserSchema.methods.setMcpServer = function(id, server) { + if (!this.aiFeatures) this.aiFeatures = {} + if (!this.aiFeatures.mcpServers) this.aiFeatures.mcpServers = new Map() + this.aiFeatures.mcpServers.set(id, { ...server, addedAt: new Date() }) + this.markModified('aiFeatures.mcpServers') +} +UserSchema.methods.getMcpServer = function(id) { + const m = this.aiFeatures?.mcpServers + if (!m) return null + return (typeof m.get === 'function' ? m.get(id) : m[id]) || null +} +UserSchema.methods.listMcpServers = function() { + const m = this.aiFeatures?.mcpServers + if (!m) return [] + const entries = typeof m.entries === 'function' ? [...m.entries()] : Object.entries(m) + return entries.map(([id, s]) => ({ id, ...(typeof s.toObject === 'function' ? s.toObject() : s) })) +} +UserSchema.methods.removeMcpServer = function(id) { + const m = this.aiFeatures?.mcpServers + if (m?.has?.(id)) { + m.delete(id) + this.markModified('aiFeatures.mcpServers') + return true + } + return false +} + UserSchema.methods.canPerformAction = async function(action, resourceType = null) { if (this.isSuspended) return false diff --git a/backend/src/routes/chatCompletions.js b/backend/src/routes/chatCompletions.js new file mode 100644 index 0000000..39919a1 --- /dev/null +++ b/backend/src/routes/chatCompletions.js @@ -0,0 +1,192 @@ +/** + * OpenAI-compatible chat-completions gateway. + * + * The browser agent harness speaks the OpenAI Chat Completions spec; this + * endpoint is a THIN passthrough: Clerk auth guard -> look up the user's + * configured OpenAI key -> forward the request straight to OpenAI (server-side + * key, never exposed to the browser). Supports streaming (stream: true) by + * piping OpenAI's SSE response through unchanged. + * + * POST /api/v1/chat/completions (Clerk Bearer) + * body: standard OpenAI ChatCompletion request { model, messages, tools, stream, ... } + * + * For now OpenAI only; a multi-provider impl (or a LiteLLM sidecar) can slot in + * behind this same endpoint later without the harness changing. + */ +import express from 'express' +import crypto from 'node:crypto' +import { Readable } from 'node:stream' +import { clerkAuth } from '../middleware/clerkAuth.js' +import { validateAiQuota, incrementAiUsage } from '../middleware/aiQuota.js' + +const router = express.Router() + +const OPENAI_URL = 'https://api.openai.com/v1/chat/completions' +const MAX_MESSAGES = 200 +const MAX_BODY_BYTES = 1 * 1024 * 1024 // 1MB request cap +const MAX_OUTPUT_TOKENS = 8192 +// Models the FREE server key is allowed to run — the server-side ENFORCEMENT of the +// cost tier. Own-key users are UNRESTRICTED (their key, any model). The client picker +// allowlist (prompd-web src/lib/models.ts ALLOWED_GATEWAY_MODELS) is only UX; this is +// the real gate. Widen both together. +const ALLOWED_MODELS = new Set(['gpt-4.1-mini', 'gpt-4o-mini']) + +/** Read a provider config from the user's aiFeatures.llmProviders (Map or object). */ +function getUserProviderConfig(providers, providerId) { + if (!providers) return null + if (typeof providers.get === 'function') return providers.get(providerId) + return providers[providerId] +} + +/** Decrypt an AES-256-GCM key the same way EncryptionService stores it. */ +function decryptApiKey(encryptedKeyHex, ivHex) { + if (!encryptedKeyHex || !ivHex) return null + try { + const secret = process.env.ENCRYPTION_SECRET || process.env.JWT_SECRET + if (!secret) return null + const KEY = crypto.scryptSync(secret, 'prompd-salt', 32) + const ivBuffer = Buffer.from(ivHex, 'hex') + const encryptedText = encryptedKeyHex.slice(0, -32) + const authTag = Buffer.from(encryptedKeyHex.slice(-32), 'hex') + const decipher = crypto.createDecipheriv('aes-256-gcm', KEY, ivBuffer) + decipher.setAuthTag(authTag) + let decrypted = decipher.update(encryptedText, 'hex', 'utf8') + decrypted += decipher.final('utf8') + return decrypted + } catch (error) { + console.error('[chatCompletions] Failed to decrypt user OpenAI key:', error.message) + return null + } +} + +function getOpenAIKey(user) { + const cfg = getUserProviderConfig(user?.aiFeatures?.llmProviders, 'openai') + if (!cfg?.hasKey) return null + return decryptApiKey(cfg.encryptedKey, cfg.iv) +} + +router.post('/', clerkAuth, async (req, res) => { + const body = req.body || {} + + // Light guards — it's the user's own key/quota, but stop runaway loops. The model + // ALLOWLIST is enforced below for the server-key path only (own-key = any model). + if (typeof body.model !== 'string' || !body.model) { + return res.status(400).json({ error: { message: 'model is required', type: 'invalid_request_error' } }) + } + if (!Array.isArray(body.messages) || body.messages.length === 0) { + return res.status(400).json({ error: { message: 'messages[] is required', type: 'invalid_request_error' } }) + } + if (body.messages.length > MAX_MESSAGES) { + return res.status(400).json({ error: { message: `too many messages (max ${MAX_MESSAGES})`, type: 'invalid_request_error' } }) + } + if (Buffer.byteLength(JSON.stringify(body), 'utf8') > MAX_BODY_BYTES) { + return res.status(413).json({ error: { message: 'request too large', type: 'invalid_request_error' } }) + } + if (typeof body.max_tokens === 'number') { + body.max_tokens = Math.min(body.max_tokens, MAX_OUTPUT_TOKENS) + } + + // Key + quota resolution (the server-side guard). + // - Bring-your-own key -> UNLIMITED (the user pays OpenAI directly, nothing of + // ours to meter), and quota is never touched. + // - No own key -> fall back to the SERVER key, but gated by the account's + // execution quota (free tier) so server-key usage can't be run unbounded. This + // is the real enforcement point: the browser guard is only a CTA, this 402 is + // the boundary that actually blocks (validateAiQuota also frees enterprise/admin + // and any own-key user). NOTE: one POST = one agent turn, so a multi-turn agent + // run consumes several executions against the lifetime quota. + let apiKey = getOpenAIKey(req.user) + let meterQuota = false + if (!apiKey) { + const serverKey = process.env.OPENAI_API_KEY + if (!serverKey) { + return res.status(402).json({ + error: { message: 'No OpenAI API key configured for your account. Add one in provider settings.', type: 'no_api_key' }, + }) + } + // Free server-key path: only the allowlisted cheap models may run on OUR key. + if (!ALLOWED_MODELS.has(body.model)) { + return res.status(403).json({ + error: { + message: `Model "${body.model}" isn't available on the free tier. Add your own OpenAI key in provider settings for full access, or choose one of: ${[...ALLOWED_MODELS].join(', ')}.`, + type: 'model_not_allowed', + code: 'MODEL_NOT_ALLOWED', + allowed_models: [...ALLOWED_MODELS], + can_add_api_key: true, + }, + }) + } + const quota = await validateAiQuota(req.user, 'execute') + if (!quota.allowed) { + return res.status(402).json({ + error: { + message: `Free execution limit reached (${quota.reason}). Add your own OpenAI key in provider settings for unlimited use${quota.upgradeRequired ? `, or upgrade to ${quota.upgradeRequired}` : ''}.`, + type: 'quota_exceeded', + code: 'QUOTA_EXCEEDED', + upgrade_required: quota.upgradeRequired || null, + can_add_api_key: quota.canAddApiKey ?? true, + }, + }) + } + apiKey = serverKey + meterQuota = true + } + + // Count one execution against quota only when the SERVER key was used and OpenAI + // accepted the request. Best-effort: a save failure must not break the response. + const meter = async () => { + if (!meterQuota) return + try { await incrementAiUsage(req.user, 'execute') } + catch (e) { console.error('[chatCompletions] usage increment failed:', e.message) } + } + + const wantStream = body.stream === true + + let upstream + try { + upstream = await fetch(OPENAI_URL, { + method: 'POST', + headers: { 'Content-Type': 'application/json', Authorization: `Bearer ${apiKey}` }, + body: JSON.stringify(body), + }) + } catch (error) { + return res.status(502).json({ error: { message: `Upstream request failed: ${error.message}`, type: 'upstream_error' } }) + } + + // Non-streaming: forward status + JSON as-is. + if (!wantStream) { + const text = await upstream.text() + if (upstream.ok) await meter() + res.status(upstream.status) + res.setHeader('Content-Type', upstream.headers.get('content-type') || 'application/json') + return res.send(text) + } + + // Streaming: pipe OpenAI's SSE response straight through. + if (!upstream.ok || !upstream.body) { + const text = await upstream.text().catch(() => '') + res.status(upstream.status) + res.setHeader('Content-Type', upstream.headers.get('content-type') || 'application/json') + return res.send(text) + } + // upstream accepted the request and is streaming — count one execution. + await meter() + res.status(200) + res.setHeader('Content-Type', 'text/event-stream; charset=utf-8') + res.setHeader('Cache-Control', 'no-cache, no-transform') + res.setHeader('Connection', 'keep-alive') + res.flushHeaders?.() + try { + await new Promise((resolve, reject) => { + const nodeStream = Readable.fromWeb(upstream.body) + nodeStream.on('error', reject) + res.on('close', () => nodeStream.destroy()) + nodeStream.pipe(res).on('finish', resolve).on('error', reject) + }) + } catch (error) { + if (!res.writableEnded) res.end() + console.error('[chatCompletions] stream pipe error:', error.message) + } +}) + +export default router diff --git a/backend/src/routes/compilation.js b/backend/src/routes/compilation.js index e2d200a..6ca867a 100644 --- a/backend/src/routes/compilation.js +++ b/backend/src/routes/compilation.js @@ -492,4 +492,23 @@ router.post('/execute', compilationRateLimit, validate(executeSchema), async (re } }) +/** + * POST /api/compilation/execute-prompt + * Pass-through single execution: runs an ALREADY-RENDERED prompt against the + * provider WITHOUT compiling it (no frontmatter/inherits resolution). The client + * compiles first (e.g. via /preview-public); this endpoint just calls the model. + */ +router.post('/execute-prompt', compilationRateLimit, validate(executeSchema), async (req, res, next) => { + try { + const { prompt, provider, model, parameters } = req.body + const result = await compilationService.execute( + prompt, provider, model, parameters || {}, + req.user._id, null, req.user, null, null, null, true // skipCompile — pass-through + ) + res.json({ success: true, data: result }) + } catch (error) { + next(error) + } +}) + export default router \ No newline at end of file diff --git a/backend/src/routes/llmProviders.js b/backend/src/routes/llmProviders.js index 8ea9021..1c2f2f2 100644 --- a/backend/src/routes/llmProviders.js +++ b/backend/src/routes/llmProviders.js @@ -110,6 +110,11 @@ router.get('/available', clerkAuth, async (req, res) => { .sort({ sortOrder: 1, displayName: 1 }) .lean() + // The user's own configured keys — so the client can show a provider's FULL + // catalog when the user brought their own key (the gateway forwards any model + // for an own-key user), vs the limited free server-key set otherwise. + const userProviders = req.user?.aiFeatures?.llmProviders + // Get pricing for each provider const providersWithPricing = await Promise.all( providerConfigs.map(async (config) => { @@ -119,6 +124,7 @@ router.get('/available', clerkAuth, async (req, res) => { return { providerId: providerId, displayName: config.displayName, + hasKey: getUserProviderConfig(userProviders, providerId)?.hasKey || false, keyPrefix: config.metadata?.keyPrefix, consoleUrl: config.metadata?.consoleUrl, isLocal: config.metadata?.isLocal || false, @@ -130,6 +136,7 @@ router.get('/available', clerkAuth, async (req, res) => { contextWindow: p.capabilities?.contextWindow, supportsVision: p.capabilities?.supportsVision, supportsTools: p.capabilities?.supportsTools, + supportsReasoning: p.capabilities?.supportsReasoning || false, supportsImageGeneration: p.capabilities?.supportsImageGeneration || false })) } diff --git a/backend/src/routes/mcp.js b/backend/src/routes/mcp.js new file mode 100644 index 0000000..18e6926 --- /dev/null +++ b/backend/src/routes/mcp.js @@ -0,0 +1,103 @@ +/* Remote MCP servers: per-user registration + a proxy for tools/list & tools/call. + * Server bearer keys are encrypted server-side; the agent never holds them. */ +import express from 'express' +import Joi from 'joi' +import crypto from 'crypto' +import { clerkAuth } from '../middleware/clerkAuth.js' +import { validate } from '../middleware/validation.js' +import { rateLimit } from '../middleware/rateLimit.js' +import { encryptApiKey } from '../services/EncryptionService.js' +import * as mcp from '../services/McpProxyService.js' + +const router = express.Router() +const mcpRateLimit = rateLimit({ windowMs: 60 * 1000, max: 120, message: 'Too many MCP requests, slow down.' }) + +/* In-memory per-user cache of the aggregated tools/list, so we don't re-handshake + * every MCP server on every agent run. Invalidated when the user edits servers; + * a short TTL backstops external changes. Pass ?fresh=1 to bypass. */ +const TOOLS_TTL_MS = 60 * 1000 +const toolsCache = new Map() // userId -> { ts, tools } +const cacheKey = (req) => String(req.user._id) +const invalidateTools = (req) => toolsCache.delete(cacheKey(req)) + +const addSchema = Joi.object({ + label: Joi.string().min(1).max(80).required(), + url: Joi.string().uri({ scheme: ['http', 'https'] }).required(), + apiKey: Joi.string().max(400).allow('').optional(), +}) +const callSchema = Joi.object({ + serverId: Joi.string().required(), + name: Joi.string().required(), + args: Joi.object().unknown(true).default({}), +}) + +/** Strip secrets before returning a server to the client. */ +const publicServer = (s) => ({ id: s.id, label: s.label, url: s.url, hasKey: !!s.encryptedKey }) + +/** Normalize a stored server (Mongoose subdoc or plain) to a plain object. */ +const plain = (s) => (s && typeof s.toObject === 'function' ? s.toObject() : s) + +router.get('/servers', clerkAuth, async (req, res) => { + res.json({ success: true, servers: req.user.listMcpServers().map(publicServer) }) +}) + +router.post('/servers', clerkAuth, validate(addSchema), async (req, res, next) => { + try { + const { label, url, apiKey } = req.body + const id = crypto.randomUUID() + const server = { label, url } + if (apiKey) { + const { encryptedKey, iv } = encryptApiKey(apiKey) + server.encryptedKey = encryptedKey + server.iv = iv + } + req.user.setMcpServer(id, server) + await req.user.save() + invalidateTools(req) + res.json({ success: true, server: publicServer({ id, ...server }) }) + } catch (error) { next(error) } +}) + +router.delete('/servers/:id', clerkAuth, async (req, res, next) => { + try { + req.user.removeMcpServer(req.params.id) + await req.user.save() + invalidateTools(req) + res.json({ success: true }) + } catch (error) { next(error) } +}) + +/** GET /api/mcp/tools — aggregate tools/list across the user's servers. Per-server + * failures are reported inline (as {error}) so one bad server can't break the set. */ +router.get('/tools', mcpRateLimit, clerkAuth, async (req, res) => { + const fresh = req.query.fresh === '1' || req.query.fresh === 'true' + const cached = toolsCache.get(cacheKey(req)) + if (!fresh && cached && Date.now() - cached.ts < TOOLS_TTL_MS) { + return res.json({ success: true, tools: cached.tools, cached: true }) + } + const servers = req.user.listMcpServers() + const tools = [] + for (const s of servers) { + try { + const list = await mcp.listTools(s) + for (const t of list) tools.push({ serverId: s.id, serverLabel: s.label, ...t }) + } catch (error) { + tools.push({ serverId: s.id, serverLabel: s.label, error: String(error?.message || error) }) + } + } + toolsCache.set(cacheKey(req), { ts: Date.now(), tools }) + res.json({ success: true, tools }) +}) + +/** POST /api/mcp/call — proxy a single tools/call to one of the user's servers. */ +router.post('/call', mcpRateLimit, clerkAuth, validate(callSchema), async (req, res, next) => { + try { + const { serverId, name, args } = req.body + const server = req.user.getMcpServer(serverId) + if (!server) return res.status(404).json({ error: 'MCP server not found' }) + const data = await mcp.callTool({ id: serverId, ...plain(server) }, name, args) + res.json({ success: true, data }) + } catch (error) { next(error) } +}) + +export default router diff --git a/backend/src/routes/pricing.js b/backend/src/routes/pricing.js index 83eabfb..857e9cc 100644 --- a/backend/src/routes/pricing.js +++ b/backend/src/routes/pricing.js @@ -4,6 +4,15 @@ import { requireAuth } from '../middleware/auth.js' const router = express.Router() +// reseed-all hits every provider's API, so it's expensive and abusable from a +// user-facing "refresh models" button. Throttle it process-wide: one run at a +// time, and at most once per window (the result is cached and returned to callers +// that arrive inside the window). +const RESEED_MIN_INTERVAL_MS = 60_000 +let reseedInProgress = false +let lastReseedAt = 0 +let lastReseedResult = null + /** * GET /api/pricing * Get all current pricing for all providers @@ -335,6 +344,14 @@ router.post('/reseed/:provider', requireAuth, async (req, res) => { * Requires authentication */ router.post('/reseed-all', requireAuth, async (req, res) => { + // Throttle: return the recent result instead of re-hitting every provider API. + if (reseedInProgress) { + return res.status(202).json({ success: true, throttled: true, data: lastReseedResult, message: 'A refresh is already in progress.' }) + } + if (Date.now() - lastReseedAt < RESEED_MIN_INTERVAL_MS && lastReseedResult) { + return res.json({ success: true, throttled: true, data: lastReseedResult, message: 'Models were refreshed recently; serving the latest result.' }) + } + reseedInProgress = true try { // Import dependencies const { ModelPricing } = await import('../models/ModelPricing.js') @@ -418,19 +435,20 @@ router.post('/reseed-all', requireAuth, async (req, res) => { // Invalidate all cache pricingCacheService.invalidateAll() - res.json({ - success: true, - data: { - ...results, - message: `All providers: ${results.totalExpired} deprecated, ${results.totalAdded} added, ${results.totalStillValid} unchanged` - } - }) + lastReseedResult = { + ...results, + message: `All providers: ${results.totalExpired} deprecated, ${results.totalAdded} added, ${results.totalStillValid} unchanged` + } + lastReseedAt = Date.now() + res.json({ success: true, data: lastReseedResult }) } catch (error) { console.error('Error reseeding all pricing:', error) res.status(500).json({ success: false, error: 'Failed to reseed pricing' }) + } finally { + reseedInProgress = false } }) diff --git a/backend/src/routes/tools.js b/backend/src/routes/tools.js new file mode 100644 index 0000000..de537ef --- /dev/null +++ b/backend/src/routes/tools.js @@ -0,0 +1,66 @@ +/* External agent tools: web search (Tavily) + per-user tool key management. Keys + * are encrypted server-side; calls use the user's key, else a Prompd-paid env key. */ +import express from 'express' +import Joi from 'joi' +import { clerkAuth } from '../middleware/clerkAuth.js' +import { validate } from '../middleware/validation.js' +import { rateLimit } from '../middleware/rateLimit.js' +import { encryptApiKey } from '../services/EncryptionService.js' +import { getToolKey, tavilySearch } from '../services/ToolsService.js' + +const router = express.Router() + +const toolsRateLimit = rateLimit({ windowMs: 60 * 1000, max: 60, message: 'Too many tool requests, slow down.' }) + +// Tools that support a Prompd-paid fallback, mapped to their env var. +const PAID_ENV = { tavily: 'TAVILY_API_KEY' } + +const searchSchema = Joi.object({ query: Joi.string().min(1).max(2000).required() }) +const keySchema = Joi.object({ apiKey: Joi.string().min(8).max(400).required() }) + +/** GET /api/tools — which tool keys the user has set + whether a paid fallback exists. */ +router.get('/', clerkAuth, async (req, res) => { + const tools = {} + for (const [tool, env] of Object.entries(PAID_ENV)) { + tools[tool] = { + hasKey: !!req.user.getToolKeyData?.(tool)?.hasKey, + paidFallback: !!process.env[env], + } + } + res.json({ success: true, tools }) +}) + +/** POST /api/tools/keys/:tool — store the user's key for a tool (encrypted). */ +router.post('/keys/:tool', clerkAuth, validate(keySchema), async (req, res, next) => { + try { + const { tool } = req.params + if (!(tool in PAID_ENV)) return res.status(400).json({ error: `Unknown tool: ${tool}` }) + const { encryptedKey, iv } = encryptApiKey(req.body.apiKey) + req.user.setToolKey(tool, encryptedKey, iv) + await req.user.save() + res.json({ success: true, hasKey: true }) + } catch (error) { next(error) } +}) + +/** DELETE /api/tools/keys/:tool — remove the user's key for a tool. */ +router.delete('/keys/:tool', clerkAuth, async (req, res, next) => { + try { + req.user.removeToolKey(req.params.tool) + await req.user.save() + res.json({ success: true, hasKey: false }) + } catch (error) { next(error) } +}) + +/** POST /api/tools/web-search — Tavily search via the user's key or the paid key. */ +router.post('/web-search', toolsRateLimit, clerkAuth, validate(searchSchema), async (req, res, next) => { + try { + const got = getToolKey(req.user, 'tavily', 'TAVILY_API_KEY') + if (!got) { + return res.status(400).json({ error: 'No web-search key. Add a Tavily key in Settings → Tools.' }) + } + const data = await tavilySearch(req.body.query, got.key) + res.json({ success: true, data }) + } catch (error) { next(error) } +}) + +export default router diff --git a/backend/src/server.js b/backend/src/server.js index d0efe43..865d107 100644 --- a/backend/src/server.js +++ b/backend/src/server.js @@ -31,6 +31,7 @@ import fileRoutes from './routes/files.js' import registryRoutes from './routes/registry.js' import providerRoutes from './routes/providers.js' import llmProvidersRoutes from './routes/llmProviders.js' +import chatCompletionsRoutes from './routes/chatCompletions.js' import aiRoutes from './routes/ai.js' import conversationalAiRoutes from './routes/conversational-ai.js' import chatRoutes from './routes/chat.js' @@ -42,6 +43,8 @@ import startupRoutes from './routes/startup.js' import errorReportRoutes from './routes/errors.js' import webhookRoutes from './routes/webhooks.js' import webhookProxyRoutes from './routes/webhookProxy.js' +import toolRoutes from './routes/tools.js' +import mcpRoutes from './routes/mcp.js' import { errorHandler } from './middleware/errorHandler.js' import { pricingService } from './services/PricingService.js' import { requestLogger } from './middleware/logger.js' @@ -95,7 +98,17 @@ app.use(cors({ ], credentials: true })) -app.use(compression()) +app.use(compression({ + // Never compress Server-Sent Event streams: the compressor buffers the body and + // would hold token-by-token deltas instead of flushing each one, which hangs the + // chat-completions gateway (/api/v1/chat/completions) and SSE compile route. The + // route sets Content-Type before the first write, so it's known when this runs. + filter: (req, res) => { + const type = String(res.getHeader('Content-Type') || '') + if (type.includes('text/event-stream')) return false + return compression.filter(req, res) + } +})) app.use(limiter) app.use(express.json({ limit: '50mb' })) app.use(express.urlencoded({ extended: true, limit: '50mb' })) @@ -108,6 +121,7 @@ app.use('/api/compilation', compilationRoutes) app.use('/api/files', fileRoutes) app.use('/api/registry', registryRoutes) app.use('/api/v1/providers', providerRoutes) +app.use('/api/v1/chat/completions', chatCompletionsRoutes) app.use('/api/llm-providers', llmProvidersRoutes) app.use('/api/ai', aiRoutes) app.use('/api/conversational-ai', conversationalAiRoutes) @@ -120,6 +134,8 @@ app.use('/api/startup', startupRoutes) app.use('/api/errors', errorReportRoutes) app.use('/api/webhooks', webhookRoutes) app.use('/api/webhook-proxy', webhookProxyRoutes) +app.use('/api/tools', toolRoutes) +app.use('/api/mcp', mcpRoutes) // Health check app.get('/health', (req, res) => { diff --git a/backend/src/services/CompilationService.js b/backend/src/services/CompilationService.js index 5c23d73..ca6979a 100644 --- a/backend/src/services/CompilationService.js +++ b/backend/src/services/CompilationService.js @@ -49,9 +49,13 @@ export class CompilationService { '/main.prmd': content }) - // Compile using @prompd/cli library - // Pass registryUrl for package resolution - const result = await this.compiler.compile('/main.prmd', { + // Compile using @prompd/cli library. + // NOTE: compiler.compile() returns only the compiled string and throws on + // any error, so it cannot surface output and structured validation together + // (that left preview-public always returning no output and isValid:true). + // compileWithContext() returns the full CompilationContext - the pipeline + // accumulates errors per-stage instead of throwing - which we normalize below. + const context = await this.compiler.compileWithContext('/main.prmd', { outputFormat: this.mapFormatToCompiler(format), parameters: parameters, fileSystem: memFS, @@ -59,6 +63,7 @@ export class CompilationService { }) const compilationTime = Date.now() - startTime + const result = this.normalizeContext(context) // Cache the successful result if (result.success) { @@ -99,6 +104,52 @@ export class CompilationService { } } + /** + * Normalize a @prompd/cli CompilationContext into the structured result shape + * expected by callers and the cache ({ success, output, stages, dependencies, + * validation }). compileWithContext() does not throw on compilation errors, so + * compiled output and diagnostics are returned together. + */ + normalizeContext(context) { + const compiledResult = context.compiledResult + const output = typeof compiledResult === 'string' + ? compiledResult + : (compiledResult ? compiledResult.toString('utf-8') : '') + + const toDiagnostic = (d, severity) => ({ + type: 'compilation', + message: typeof d === 'string' ? d : d.message, + severity, + ...(d && typeof d === 'object' && d.line != null ? { line: d.line, column: d.column } : {}) + }) + + const errors = (typeof context.getErrors === 'function' + ? context.getErrors() + : (context.errors || []) + ).map(d => toDiagnostic(d, 'error')) + + const warnings = (typeof context.getWarnings === 'function' + ? context.getWarnings() + : (context.warnings || []) + ).map(d => toDiagnostic(d, 'warning')) + + const isValid = typeof context.hasErrors === 'function' + ? !context.hasErrors() + : errors.length === 0 + + const dependencies = context.dependencies + ? (Array.isArray(context.dependencies) ? context.dependencies : Object.keys(context.dependencies)) + : [] + + return { + success: isValid, + output, + stages: context.stages || [], + dependencies, + validation: { isValid, errors, warnings } + } + } + /** * Map format string to compiler output format */ @@ -359,7 +410,7 @@ export class CompilationService { /** * Execute compiled prompt with stored provider API keys */ - async execute(prompt, providerName = 'openai', model = 'gpt-4o-mini', parameters = {}, userId = null, projectId = null, user = null, packageRef = null, files = null, sourceFilePath = null) { + async execute(prompt, providerName = 'openai', model = 'gpt-4o-mini', parameters = {}, userId = null, projectId = null, user = null, packageRef = null, files = null, sourceFilePath = null, skipCompile = false) { const startTime = Date.now() try { @@ -602,6 +653,12 @@ export class CompilationService { // First, compile to markdown to get the compiled prompt let compiledPrompt = '' + if (skipCompile) { + // Pass-through: the caller already rendered the prompt (e.g. via + // /preview-public). Run it as-is — no re-compile, no inherits resolution. + compiledPrompt = prompt + console.log('[CompilationService] skipCompile — running the provided rendered prompt as-is') + } else { try { console.log('[CompilationService] Attempting compilation with @prompd/cli') console.log('[CompilationService] Input prompt length:', prompt.length) @@ -692,6 +749,7 @@ export class CompilationService { // Don't silently fall back - propagate the error so users know their .prmd has issues throw new Error(`Compilation failed: ${compileError.message}`) } + } // Now execute against the LLM provider using appropriate SDK let result diff --git a/backend/src/services/McpProxyService.js b/backend/src/services/McpProxyService.js new file mode 100644 index 0000000..ab27b61 --- /dev/null +++ b/backend/src/services/McpProxyService.js @@ -0,0 +1,86 @@ +/* Minimal MCP client over the Streamable-HTTP transport (JSON-RPC). Proxies + * tools/list + tools/call to a user's remote MCP server, decrypting its optional + * bearer key. Stateless: each call does the initialize handshake, which is fine + * for a proxy. Handles both JSON and SSE (event:/data:) responses. */ +import { decryptApiKey } from './EncryptionService.js' + +function authHeader(server) { + if (server?.encryptedKey && server?.iv) { + try { return `Bearer ${decryptApiKey(server.encryptedKey, server.iv)}` } catch { return null } + } + return null +} + +/** Parse a JSON or SSE (last `data:` line) MCP response body. */ +function parseBody(text) { + const t = (text || '').trim() + if (!t) return null + if (t.startsWith('{') || t.startsWith('[')) { + try { return JSON.parse(t) } catch { return null } + } + const dataLines = t.split('\n').filter((l) => l.startsWith('data:')).map((l) => l.slice(5).trim()) + for (let i = dataLines.length - 1; i >= 0; i--) { + try { return JSON.parse(dataLines[i]) } catch { /* keep looking */ } + } + return null +} + +async function rpc(url, body, headers) { + const res = await fetch(url, { + method: 'POST', + headers: { 'Content-Type': 'application/json', Accept: 'application/json, text/event-stream', ...headers }, + body: JSON.stringify(body), + }) + const sessionId = res.headers.get('mcp-session-id') || undefined + const text = await res.text() + if (!res.ok) throw new Error(`MCP HTTP ${res.status}${text ? `: ${text.slice(0, 200)}` : ''}`) + const json = parseBody(text) + if (json?.error) throw new Error(`MCP error ${json.error.code ?? ''}: ${json.error.message || 'unknown'}`) + return { result: json?.result, sessionId } +} + +/** initialize + initialized; returns the headers (incl. any session id) for follow-ups. */ +async function handshake(server) { + const auth = authHeader(server) + const base = auth ? { Authorization: auth } : {} + const init = await rpc(server.url, { + jsonrpc: '2.0', id: 1, method: 'initialize', + params: { protocolVersion: '2024-11-05', capabilities: {}, clientInfo: { name: 'prompd-web', version: '1.0.0' } }, + }, base) + const headers = { ...base } + if (init.sessionId) headers['Mcp-Session-Id'] = init.sessionId + // Best-effort initialized notification (some servers require it before tools/*). + try { + await fetch(server.url, { + method: 'POST', + headers: { 'Content-Type': 'application/json', Accept: 'application/json, text/event-stream', ...headers }, + body: JSON.stringify({ jsonrpc: '2.0', method: 'notifications/initialized' }), + }) + } catch { /* ignore */ } + return headers +} + +export async function listTools(server) { + const headers = await handshake(server) + const { result } = await rpc(server.url, { jsonrpc: '2.0', id: 2, method: 'tools/list' }, headers) + return (result?.tools || []).map((t) => ({ + name: t.name, + description: t.description || '', + inputSchema: t.inputSchema || { type: 'object', properties: {} }, + // Behaviour hints (MCP tool annotations) so the client can decide whether a + // call needs a permission prompt. readOnlyHint=true => safe to run freely. + annotations: t.annotations || {}, + })) +} + +export async function callTool(server, name, args) { + const headers = await handshake(server) + const { result } = await rpc(server.url, { + jsonrpc: '2.0', id: 3, method: 'tools/call', params: { name, arguments: args || {} }, + }, headers) + const content = result?.content || [] + const text = content + .map((c) => (c.type === 'text' ? c.text : c.type === 'json' ? JSON.stringify(c.json) : `[${c.type} content]`)) + .join('\n') + return { text: text || JSON.stringify(result ?? {}), isError: !!result?.isError } +} diff --git a/backend/src/services/ToolsService.js b/backend/src/services/ToolsService.js new file mode 100644 index 0000000..81a7833 --- /dev/null +++ b/backend/src/services/ToolsService.js @@ -0,0 +1,45 @@ +/* External agent tools proxied through the backend so secrets stay server-side. + * Key model: use the user's own key, else fall back to a Prompd-paid env key. */ +import { decryptApiKey } from './EncryptionService.js' + +/** + * Resolve a tool's API key: the user's stored (encrypted) key first, else the + * Prompd-paid env key. Returns { key, source } or null when neither exists. + */ +export function getToolKey(user, tool, envVar) { + const data = user?.getToolKeyData?.(tool) + if (data?.encryptedKey && data?.iv) { + try { + return { key: decryptApiKey(data.encryptedKey, data.iv), source: 'user' } + } catch { + /* corrupt/rotated key — fall through to the paid key */ + } + } + const envKey = process.env[envVar] + if (envKey) return { key: envKey, source: 'prompd' } + return null +} + +/** Tavily web search over raw HTTP (no SDK). Returns a normalized result set. */ +export async function tavilySearch(query, key, opts = {}) { + const res = await fetch('https://api.tavily.com/search', { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ + api_key: key, + query, + max_results: Math.min(opts.maxResults ?? 5, 10), + search_depth: opts.depth === 'advanced' ? 'advanced' : 'basic', + include_answer: true, + }), + }) + if (!res.ok) { + const text = await res.text().catch(() => '') + throw new Error(`Tavily HTTP ${res.status}${text ? `: ${text.slice(0, 200)}` : ''}`) + } + const data = await res.json() + return { + answer: data.answer || '', + results: (data.results || []).map((r) => ({ title: r.title, url: r.url, content: r.content })), + } +} diff --git a/backend/src/services/pricing/BasePricingFetcher.js b/backend/src/services/pricing/BasePricingFetcher.js index 523d39f..aaea31f 100644 --- a/backend/src/services/pricing/BasePricingFetcher.js +++ b/backend/src/services/pricing/BasePricingFetcher.js @@ -2,6 +2,7 @@ * Base class for provider-specific pricing fetchers * Each provider implements their own fetcher extending this class */ +import { modelsDevSource } from './ModelsDevSource.js' export class BasePricingFetcher { constructor(provider) { @@ -91,32 +92,36 @@ export class BasePricingFetcher { } /** - * Get pricing - tries API first, falls back to defaults. - * Enriches all models with pattern-based capability inference. + * Get pricing - tries API first, falls back to defaults. Enriches all models + * with pattern-based capability inference, then overlays live pricing + + * capabilities from models.dev (seeds remain the fallback per model). */ async getPricing() { + let data = null + let source = 'seed' + if (this.supportsPricingApi()) { try { const apiPricing = await this.fetchPricing() this.validatePricingData(apiPricing) - this.enrichCapabilities(apiPricing) + data = apiPricing + source = 'api' console.log(`[${this.provider}] Fetched ${apiPricing.length} models from API`) - return { - source: 'api', - data: apiPricing - } } catch (error) { console.warn(`[${this.provider}] API fetch failed: ${error.message}. Using defaults.`) } } - const defaults = this.getDefaultPricing() - this.validatePricingData(defaults) - this.enrichCapabilities(defaults) - console.log(`[${this.provider}] Using ${defaults.length} models from defaults`) - return { - source: 'seed', - data: defaults + if (!data) { + data = this.getDefaultPricing() + this.validatePricingData(data) + console.log(`[${this.provider}] Using ${data.length} models from defaults`) } + + this.enrichCapabilities(data) + // Overlay live values from models.dev (never throws; no-op if unavailable). + await modelsDevSource.overlay(this.provider, data) + + return { source, data } } } diff --git a/backend/src/services/pricing/ModelsDevSource.js b/backend/src/services/pricing/ModelsDevSource.js new file mode 100644 index 0000000..9b15050 --- /dev/null +++ b/backend/src/services/pricing/ModelsDevSource.js @@ -0,0 +1,115 @@ +/** + * models.dev live catalog source. + * + * models.dev publishes a single api.json with up-to-date pricing, context + * limits, and capability flags for models across every provider. We fetch it + * once (cached ~24h, stale-on-error) and overlay its values onto each provider + * fetcher's data in BasePricingFetcher.getPricing(). Provider seeds remain the + * fallback for any model models.dev doesn't list; OpenAI's /v1/models still + * gates which models are actually available. + * + * Disable with MODELS_DEV_DISABLED=1. + */ + +const CATALOG_URL = 'https://models.dev/api.json' +const TTL_MS = 24 * 60 * 60 * 1000 + +// Our provider id -> models.dev provider key (most are identical). +const PROVIDER_ALIAS = { + together: 'togetherai' +} + +const num = (v) => (typeof v === 'number' && Number.isFinite(v) ? v : undefined) + +/** Map a models.dev model entry to our fetcher shape (overlay fragment). */ +function mapEntry(e) { + const pricing = {} + if (num(e?.cost?.input) !== undefined) pricing.inputTokens = e.cost.input + if (num(e?.cost?.output) !== undefined) pricing.outputTokens = e.cost.output + if (num(e?.cost?.cache_read) !== undefined) pricing.cachedInputTokens = e.cost.cache_read + + const capabilities = {} + if (num(e?.limit?.context) !== undefined) capabilities.contextWindow = e.limit.context + if (num(e?.limit?.output) !== undefined) capabilities.maxOutputTokens = e.limit.output + if (Array.isArray(e?.modalities?.input)) capabilities.supportsVision = e.modalities.input.includes('image') + if (typeof e?.tool_call === 'boolean') capabilities.supportsTools = e.tool_call + if (typeof e?.reasoning === 'boolean') capabilities.supportsReasoning = e.reasoning + capabilities.supportsStreaming = true + + return { displayName: e?.name, pricing, capabilities } +} + +class ModelsDevSource { + constructor() { + this.catalog = null + this.fetchedAt = 0 + this.loading = null + } + + enabled() { + return process.env.MODELS_DEV_DISABLED !== '1' + } + + /** Load (and cache) the catalog. Returns null on failure with no prior cache. */ + async load() { + if (!this.enabled()) return null + const fresh = this.catalog && Date.now() - this.fetchedAt < TTL_MS + if (fresh) return this.catalog + if (this.loading) return this.loading + + this.loading = (async () => { + try { + const res = await fetch(CATALOG_URL, { headers: { Accept: 'application/json' } }) + if (!res.ok) throw new Error(`HTTP ${res.status}`) + const json = await res.json() + this.catalog = json + this.fetchedAt = Date.now() + console.log(`[models.dev] catalog loaded (${Object.keys(json).length} providers)`) + return json + } catch (error) { + console.warn(`[models.dev] catalog fetch failed: ${error.message}.` + (this.catalog ? ' Using stale cache.' : ' No overlay applied.')) + return this.catalog // stale (or null) + } finally { + this.loading = null + } + })() + return this.loading + } + + /** + * Overlay live pricing/capabilities onto a fetcher's model list, in place. + * Only fields models.dev provides are written, so provider seeds remain the + * fallback. Never throws — pricing must still resolve if models.dev is down. + */ + async overlay(provider, models) { + try { + const catalog = await this.load() + if (!catalog) return models + const key = PROVIDER_ALIAS[provider] || provider + const prov = catalog[key] + if (!prov || !prov.models) return models + + let hits = 0 + for (const m of models) { + const entry = prov.models[m.model] + if (!entry) continue + const o = mapEntry(entry) + m.pricing = m.pricing || {} + if (o.pricing.inputTokens !== undefined) m.pricing.inputTokens = o.pricing.inputTokens + if (o.pricing.outputTokens !== undefined) m.pricing.outputTokens = o.pricing.outputTokens + if (o.pricing.cachedInputTokens !== undefined) m.pricing.cachedInputTokens = o.pricing.cachedInputTokens + m.capabilities = { ...(m.capabilities || {}), ...o.capabilities } + if (!m.displayName && o.displayName) m.displayName = o.displayName + hits++ + } + if (hits) console.log(`[models.dev] overlaid ${hits}/${models.length} ${provider} models`) + return models + } catch (error) { + console.warn(`[models.dev] overlay error for ${provider}: ${error.message}`) + return models + } + } +} + +export const modelsDevSource = new ModelsDevSource() +export { ModelsDevSource } diff --git a/frontend/public/licenses.json b/frontend/public/licenses.json index fba9ba7..dd30985 100644 --- a/frontend/public/licenses.json +++ b/frontend/public/licenses.json @@ -44,11 +44,25 @@ "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@hono\\node-server\\LICENSE" }, "@img/colour@1.0.0": { + "licenses": "MIT", + "repository": "https://github.com/lovell/colour", + "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\@img\\colour", + "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\@img\\colour\\LICENSE.md" + }, + "@img/colour@1.1.0": { "licenses": "MIT", "repository": "https://github.com/lovell/colour", "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\@img\\colour", "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\@img\\colour\\LICENSE.md" }, + "@img/sharp-win32-x64@0.34.5": { + "licenses": "Apache-2.0 AND LGPL-3.0-or-later", + "repository": "https://github.com/lovell/sharp", + "publisher": "Lovell Fuller", + "email": "npm@lovell.info", + "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\@img\\sharp-win32-x64", + "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\@img\\sharp-win32-x64\\LICENSE" + }, "@inquirer/external-editor@1.0.3": { "licenses": "MIT", "repository": "https://github.com/SBoudrias/Inquirer.js", @@ -57,7 +71,7 @@ "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\@inquirer\\external-editor", "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\@inquirer\\external-editor\\LICENSE" }, - "@inquirer/figures@1.0.13": { + "@inquirer/figures@1.0.15": { "licenses": "MIT", "repository": "https://github.com/SBoudrias/Inquirer.js", "publisher": "Simon Boudrias", @@ -105,6 +119,14 @@ "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@modelcontextprotocol\\sdk", "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@modelcontextprotocol\\sdk\\LICENSE" }, + "@modelcontextprotocol/sdk@1.29.0": { + "licenses": "MIT", + "repository": "https://github.com/modelcontextprotocol/typescript-sdk", + "publisher": "Anthropic, PBC", + "url": "https://anthropic.com", + "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\@modelcontextprotocol\\sdk", + "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\@modelcontextprotocol\\sdk\\LICENSE" + }, "@monaco-editor/loader@1.7.0": { "licenses": "MIT", "repository": "https://github.com/suren-atoyan/monaco-loader", @@ -511,13 +533,19 @@ "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\react\\node_modules\\@types\\ms", "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\react\\node_modules\\@types\\ms\\LICENSE" }, + "@types/node@14.18.63": { + "licenses": "MIT", + "repository": "https://github.com/DefinitelyTyped/DefinitelyTyped", + "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\@fast-csv\\format\\node_modules\\@types\\node", + "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\@fast-csv\\format\\node_modules\\@types\\node\\LICENSE" + }, "@types/node@18.19.130": { "licenses": "MIT", "repository": "https://github.com/DefinitelyTyped/DefinitelyTyped", "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\@types\\node", "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\@types\\node\\LICENSE" }, - "@types/node@20.19.11": { + "@types/node@20.19.39": { "licenses": "MIT", "repository": "https://github.com/DefinitelyTyped/DefinitelyTyped", "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\@types\\node", @@ -603,6 +631,12 @@ "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\react\\node_modules\\@ungap\\structured-clone\\LICENSE" }, "@xmldom/xmldom@0.8.11": { + "licenses": "MIT", + "repository": "https://github.com/xmldom/xmldom", + "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\@xmldom\\xmldom", + "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\@xmldom\\xmldom\\LICENSE" + }, + "@xmldom/xmldom@0.8.13": { "licenses": "MIT", "repository": "https://github.com/xmldom/xmldom", "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\@xmldom\\xmldom", @@ -631,8 +665,8 @@ "accepts@1.3.8": { "licenses": "MIT", "repository": "https://github.com/jshttp/accepts", - "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\accepts", - "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\accepts\\LICENSE" + "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\accepts", + "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\accepts\\LICENSE" }, "accepts@2.0.0": { "licenses": "MIT", @@ -644,10 +678,19 @@ "licenses": "Apache-2.0", "repository": "https://github.com/SheetJS/js-adler32", "publisher": "sheetjs", - "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\adler-32", - "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\adler-32\\LICENSE" + "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\adler-32", + "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\adler-32\\LICENSE" }, "adm-zip@0.5.16": { + "licenses": "MIT", + "repository": "https://github.com/cthackers/adm-zip", + "publisher": "Nasca Iacob", + "email": "sy@another-d-mention.ro", + "url": "https://github.com/cthackers", + "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\adm-zip", + "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\adm-zip\\LICENSE" + }, + "adm-zip@0.5.17": { "licenses": "MIT", "repository": "https://github.com/cthackers/adm-zip", "publisher": "Nasca Iacob", @@ -688,7 +731,7 @@ "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\ansi-regex", "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\ansi-regex\\license" }, - "ansi-regex@6.2.0": { + "ansi-regex@6.2.2": { "licenses": "MIT", "repository": "https://github.com/chalk/ansi-regex", "publisher": "Sindre Sorhus", @@ -703,10 +746,10 @@ "publisher": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com", - "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\chalk\\node_modules\\ansi-styles", - "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\chalk\\node_modules\\ansi-styles\\license" + "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\ansi-styles", + "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\ansi-styles\\license" }, - "ansi-styles@6.2.1": { + "ansi-styles@6.2.3": { "licenses": "MIT", "repository": "https://github.com/chalk/ansi-styles", "publisher": "Sindre Sorhus", @@ -723,6 +766,22 @@ "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\anymatch", "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\anymatch\\LICENSE" }, + "archiver-utils@2.1.0": { + "licenses": "MIT", + "repository": "https://github.com/archiverjs/archiver-utils", + "publisher": "Chris Talkington", + "url": "http://christalkington.com/", + "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\exceljs\\node_modules\\archiver-utils", + "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\exceljs\\node_modules\\archiver-utils\\LICENSE" + }, + "archiver-utils@3.0.4": { + "licenses": "MIT", + "repository": "https://github.com/archiverjs/archiver-utils", + "publisher": "Chris Talkington", + "url": "http://christalkington.com/", + "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\exceljs\\node_modules\\zip-stream\\node_modules\\archiver-utils", + "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\exceljs\\node_modules\\zip-stream\\node_modules\\archiver-utils\\LICENSE" + }, "archiver-utils@4.0.1": { "licenses": "MIT", "repository": "https://github.com/archiverjs/archiver-utils", @@ -731,6 +790,14 @@ "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\archiver-utils", "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\archiver-utils\\LICENSE" }, + "archiver@5.3.2": { + "licenses": "MIT", + "repository": "https://github.com/archiverjs/node-archiver", + "publisher": "Chris Talkington", + "url": "http://christalkington.com/", + "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\exceljs\\node_modules\\archiver", + "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\exceljs\\node_modules\\archiver\\LICENSE" + }, "archiver@6.0.2": { "licenses": "MIT", "repository": "https://github.com/archiverjs/node-archiver", @@ -757,8 +824,8 @@ "publisher": "Blake Embrey", "email": "hello@blakeembrey.com", "url": "http://blakeembrey.me", - "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\array-flatten", - "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\array-flatten\\LICENSE" + "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\array-flatten", + "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\array-flatten\\LICENSE" }, "asap@2.0.6": { "licenses": "MIT", @@ -795,27 +862,20 @@ "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\axios", "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\axios\\LICENSE" }, - "axios@1.13.6": { + "axios@1.15.1": { "licenses": "MIT", "repository": "https://github.com/axios/axios", "publisher": "Matt Zabriskie", "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\axios", "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\axios\\LICENSE" }, - "b4a@1.6.7": { + "b4a@1.8.0": { "licenses": "Apache-2.0", "repository": "https://github.com/holepunchto/b4a", "publisher": "Holepunch", "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\b4a", "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\b4a\\LICENSE" }, - "b4a@1.8.0": { - "licenses": "Apache-2.0", - "repository": "https://github.com/holepunchto/b4a", - "publisher": "Holepunch", - "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\b4a", - "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\b4a\\LICENSE" - }, "bail@2.0.2": { "licenses": "MIT", "repository": "https://github.com/wooorm/bail", @@ -834,19 +894,48 @@ "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\balanced-match", "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\balanced-match\\LICENSE.md" }, - "bare-events@2.6.1": { + "bare-events@2.8.2": { "licenses": "Apache-2.0", "repository": "https://github.com/holepunchto/bare-events", "publisher": "Holepunch", "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\bare-events", "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\bare-events\\LICENSE" }, - "bare-events@2.8.2": { + "bare-fs@4.7.1": { "licenses": "Apache-2.0", - "repository": "https://github.com/holepunchto/bare-events", + "repository": "https://github.com/holepunchto/bare-fs", + "publisher": "Holepunch", + "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\bare-fs", + "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\bare-fs\\LICENSE" + }, + "bare-os@3.8.7": { + "licenses": "Apache-2.0", + "repository": "https://github.com/holepunchto/bare-os", + "publisher": "Holepunch", + "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\bare-os", + "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\bare-os\\LICENSE" + }, + "bare-path@3.0.0": { + "licenses": "Apache-2.0", + "repository": "https://github.com/holepunchto/bare-path", + "publisher": "Holepunch", + "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\bare-path", + "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\bare-path\\LICENSE", + "noticeFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\bare-path\\NOTICE" + }, + "bare-stream@2.13.0": { + "licenses": "Apache-2.0", + "repository": "https://github.com/holepunchto/bare-stream", + "publisher": "Holepunch", + "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\bare-stream", + "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\bare-stream\\LICENSE" + }, + "bare-url@2.4.1": { + "licenses": "Apache-2.0", + "repository": "https://github.com/holepunchto/bare-url", "publisher": "Holepunch", - "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\bare-events", - "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\bare-events\\LICENSE" + "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\bare-url", + "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\bare-url\\LICENSE" }, "base64-js@1.5.1": { "licenses": "MIT", @@ -881,6 +970,15 @@ "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\binary-extensions", "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\binary-extensions\\license" }, + "binary@0.3.0": { + "licenses": "MIT", + "repository": "https://github.com/substack/node-binary", + "publisher": "James Halliday", + "email": "mail@substack.net", + "url": "http://substack.net", + "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\binary", + "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\binary\\README.markdown" + }, "bindings@1.5.0": { "licenses": "MIT", "repository": "https://github.com/TooTallNate/node-bindings", @@ -908,8 +1006,8 @@ "body-parser@1.20.4": { "licenses": "MIT", "repository": "https://github.com/expressjs/body-parser", - "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\body-parser", - "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\body-parser\\LICENSE" + "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\body-parser", + "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\body-parser\\LICENSE" }, "body-parser@2.2.2": { "licenses": "MIT", @@ -918,6 +1016,15 @@ "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\body-parser\\LICENSE" }, "brace-expansion@2.0.2": { + "licenses": "MIT", + "repository": "https://github.com/juliangruber/brace-expansion", + "publisher": "Julian Gruber", + "email": "mail@juliangruber.com", + "url": "http://juliangruber.com", + "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\brace-expansion", + "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\brace-expansion\\LICENSE" + }, + "brace-expansion@2.1.0": { "licenses": "MIT", "repository": "https://github.com/juliangruber/brace-expansion", "publisher": "Julian Gruber", @@ -957,6 +1064,13 @@ "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\buffer-equal-constant-time", "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\buffer-equal-constant-time\\LICENSE.txt" }, + "buffer-indexof-polyfill@1.0.2": { + "licenses": "MIT", + "repository": "https://github.com/sarosia/buffer-indexof-polyfill", + "publisher": "https://github.com/sarosia", + "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\buffer-indexof-polyfill", + "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\buffer-indexof-polyfill\\LICENSE" + }, "buffer@5.7.1": { "licenses": "MIT", "repository": "https://github.com/feross/buffer", @@ -966,6 +1080,15 @@ "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\buffer", "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\buffer\\LICENSE" }, + "buffers@0.1.1": { + "licenses": "Custom: http://github.com/substack/node-bufferlist", + "repository": "https://github.com/substack/node-buffers", + "publisher": "James Halliday", + "email": "mail@substack.net", + "url": "http://substack.net", + "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\buffers", + "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\buffers\\README.markdown" + }, "builder-util-runtime@9.5.1": { "licenses": "MIT", "repository": "https://github.com/electron-userland/electron-builder", @@ -1011,8 +1134,17 @@ "licenses": "Apache-2.0", "repository": "https://github.com/SheetJS/js-cfb", "publisher": "sheetjs", - "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\cfb", - "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\cfb\\LICENSE" + "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\cfb", + "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\cfb\\LICENSE" + }, + "chainsaw@0.1.0": { + "licenses": "MIT*", + "repository": "https://github.com/substack/node-chainsaw", + "publisher": "James Halliday", + "email": "mail@substack.net", + "url": "http://substack.net", + "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\chainsaw", + "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\chainsaw\\README.markdown" }, "chalk@4.1.2": { "licenses": "MIT", @@ -1154,8 +1286,8 @@ "licenses": "Apache-2.0", "repository": "https://github.com/SheetJS/js-codepage", "publisher": "SheetJS", - "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\codepage", - "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\codepage\\LICENSE" + "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\codepage", + "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\codepage\\LICENSE" }, "color-convert@2.0.1": { "licenses": "MIT", @@ -1207,6 +1339,14 @@ "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\nunjucks\\node_modules\\commander", "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\nunjucks\\node_modules\\commander\\LICENSE" }, + "compress-commons@4.1.2": { + "licenses": "MIT", + "repository": "https://github.com/archiverjs/node-compress-commons", + "publisher": "Chris Talkington", + "url": "http://christalkington.com/", + "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\exceljs\\node_modules\\compress-commons", + "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\exceljs\\node_modules\\compress-commons\\LICENSE" + }, "compress-commons@5.0.3": { "licenses": "MIT", "repository": "https://github.com/archiverjs/node-compress-commons", @@ -1232,8 +1372,8 @@ "repository": "https://github.com/jshttp/content-disposition", "publisher": "Douglas Christopher Wilson", "email": "doug@somethingdoug.com", - "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\content-disposition", - "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\content-disposition\\LICENSE" + "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\content-disposition", + "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\content-disposition\\LICENSE" }, "content-disposition@1.0.1": { "licenses": "MIT", @@ -1243,6 +1383,14 @@ "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\content-disposition", "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\content-disposition\\LICENSE" }, + "content-disposition@1.1.0": { + "licenses": "MIT", + "repository": "https://github.com/jshttp/content-disposition", + "publisher": "Douglas Christopher Wilson", + "email": "doug@somethingdoug.com", + "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\content-disposition", + "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\content-disposition\\LICENSE" + }, "content-type@1.0.5": { "licenses": "MIT", "repository": "https://github.com/jshttp/content-type", @@ -1251,14 +1399,6 @@ "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\content-type", "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\content-type\\LICENSE" }, - "cookie-signature@1.0.6": { - "licenses": "MIT", - "repository": "https://github.com/visionmedia/node-cookie-signature", - "publisher": "TJ Holowaychuk", - "email": "tj@learnboost.com", - "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\cookie-signature", - "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\cookie-signature\\Readme.md" - }, "cookie-signature@1.0.7": { "licenses": "MIT", "repository": "https://github.com/visionmedia/node-cookie-signature", @@ -1275,14 +1415,6 @@ "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\cookie-signature", "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\cookie-signature\\LICENSE" }, - "cookie@0.7.1": { - "licenses": "MIT", - "repository": "https://github.com/jshttp/cookie", - "publisher": "Roman Shtylman", - "email": "shtylman@gmail.com", - "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\cookie", - "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\cookie\\LICENSE" - }, "cookie@0.7.2": { "licenses": "MIT", "repository": "https://github.com/jshttp/cookie", @@ -1300,15 +1432,6 @@ "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\core-util-is", "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\core-util-is\\LICENSE" }, - "cors@2.8.5": { - "licenses": "MIT", - "repository": "https://github.com/expressjs/cors", - "publisher": "Troy Goode", - "email": "troygoode@gmail.com", - "url": "https://github.com/troygoode/", - "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\cors", - "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\cors\\LICENSE" - }, "cors@2.8.6": { "licenses": "MIT", "repository": "https://github.com/expressjs/cors", @@ -1325,6 +1448,14 @@ "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\crc-32", "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\crc-32\\LICENSE" }, + "crc32-stream@4.0.3": { + "licenses": "MIT", + "repository": "https://github.com/archiverjs/node-crc32-stream", + "publisher": "Chris Talkington", + "url": "http://christalkington.com/", + "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\exceljs\\node_modules\\crc32-stream", + "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\exceljs\\node_modules\\crc32-stream\\LICENSE" + }, "crc32-stream@5.0.1": { "licenses": "MIT", "repository": "https://github.com/archiverjs/node-crc32-stream", @@ -1451,13 +1582,20 @@ "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\d3-zoom", "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\d3-zoom\\LICENSE" }, + "dayjs@1.11.20": { + "licenses": "MIT", + "repository": "https://github.com/iamkun/dayjs", + "publisher": "iamkun", + "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\dayjs", + "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\dayjs\\LICENSE" + }, "debug@2.6.9": { "licenses": "MIT", "repository": "https://github.com/visionmedia/debug", "publisher": "TJ Holowaychuk", "email": "tj@vision-media.ca", - "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\compression\\node_modules\\debug", - "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\compression\\node_modules\\debug\\LICENSE" + "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\debug", + "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\debug\\LICENSE" }, "debug@4.4.3": { "licenses": "MIT", @@ -1542,8 +1680,8 @@ "publisher": "Jonathan Ong", "email": "me@jongleberry.com", "url": "http://jongleberry.com", - "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\destroy", - "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\destroy\\LICENSE" + "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\destroy", + "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\destroy\\LICENSE" }, "detect-libc@2.1.2": { "licenses": "Apache-2.0", @@ -1601,6 +1739,15 @@ "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\dunder-proto", "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\dunder-proto\\LICENSE" }, + "duplexer2@0.1.4": { + "licenses": "BSD-3-Clause", + "repository": "https://github.com/deoxxa/duplexer2", + "publisher": "Conrad Pankoff", + "email": "deoxxa@fknsrs.biz", + "url": "http://www.fknsrs.biz/", + "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\duplexer2", + "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\duplexer2\\LICENSE.md" + }, "eastasianwidth@0.2.0": { "licenses": "MIT", "repository": "https://github.com/komagata/eastasianwidth", @@ -1655,12 +1802,6 @@ "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\@isaacs\\cliui\\node_modules\\emoji-regex", "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\@isaacs\\cliui\\node_modules\\emoji-regex\\LICENSE-MIT.txt" }, - "encodeurl@1.0.2": { - "licenses": "MIT", - "repository": "https://github.com/pillarjs/encodeurl", - "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\send\\node_modules\\encodeurl", - "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\send\\node_modules\\encodeurl\\LICENSE" - }, "encodeurl@2.0.0": { "licenses": "MIT", "repository": "https://github.com/pillarjs/encodeurl", @@ -1672,8 +1813,8 @@ "repository": "https://github.com/mafintosh/end-of-stream", "publisher": "Mathias Buus", "email": "mathiasbuus@gmail.com", - "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\end-of-stream", - "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\end-of-stream\\LICENSE" + "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\end-of-stream", + "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\end-of-stream\\LICENSE" }, "engine.io-client@6.6.4": { "licenses": "MIT", @@ -1778,8 +1919,8 @@ "licenses": "Apache-2.0", "repository": "https://github.com/holepunchto/events-universal", "publisher": "Holepunch", - "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\events-universal", - "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\events-universal\\LICENSE" + "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\events-universal", + "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\events-universal\\LICENSE" }, "eventsource-parser@3.0.6": { "licenses": "MIT", @@ -1789,6 +1930,14 @@ "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\eventsource-parser", "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\eventsource-parser\\LICENSE" }, + "eventsource-parser@3.0.8": { + "licenses": "MIT", + "repository": "https://github.com/rexxars/eventsource-parser", + "publisher": "Espen Hovlandsdal", + "email": "espen@hovlandsdal.com", + "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\eventsource-parser", + "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\eventsource-parser\\LICENSE" + }, "eventsource@3.0.7": { "licenses": "MIT", "repository": "git://git@github.com/EventSource/eventsource", @@ -1797,6 +1946,14 @@ "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\eventsource", "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\eventsource\\LICENSE" }, + "exceljs@4.4.0": { + "licenses": "MIT", + "repository": "https://github.com/exceljs/exceljs", + "publisher": "Guyon Roche", + "email": "guyon@live.com", + "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\exceljs", + "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\exceljs\\LICENSE" + }, "expand-template@2.0.3": { "licenses": "(MIT OR WTFPL)", "repository": "https://github.com/ralphtheninja/expand-template", @@ -1821,13 +1978,21 @@ "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\express-rate-limit", "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\express-rate-limit\\license.md" }, + "express-rate-limit@8.3.2": { + "licenses": "MIT", + "repository": "https://github.com/express-rate-limit/express-rate-limit", + "publisher": "Nathan Friedly", + "url": "http://nfriedly.com/", + "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\@modelcontextprotocol\\sdk\\node_modules\\express-rate-limit", + "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\@modelcontextprotocol\\sdk\\node_modules\\express-rate-limit\\license.md" + }, "express@4.22.1": { "licenses": "MIT", "repository": "https://github.com/expressjs/express", "publisher": "TJ Holowaychuk", "email": "tj@vision-media.ca", - "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\express", - "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\express\\LICENSE" + "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\express", + "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\express\\LICENSE" }, "express@5.2.1": { "licenses": "MIT", @@ -1846,6 +2011,13 @@ "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\react\\node_modules\\extend", "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\react\\node_modules\\extend\\LICENSE" }, + "fast-csv@4.3.6": { + "licenses": "MIT", + "repository": "https://github.com/C2FO/fast-csv", + "publisher": "Doug Martin", + "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\fast-csv", + "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\fast-csv\\LICENSE" + }, "fast-deep-equal@3.1.3": { "licenses": "MIT", "repository": "https://github.com/epoberezkin/fast-deep-equal", @@ -1894,14 +2066,6 @@ "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\fill-range", "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\fill-range\\LICENSE" }, - "finalhandler@1.3.1": { - "licenses": "MIT", - "repository": "https://github.com/pillarjs/finalhandler", - "publisher": "Douglas Christopher Wilson", - "email": "doug@somethingdoug.com", - "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\finalhandler", - "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\finalhandler\\LICENSE" - }, "finalhandler@1.3.2": { "licenses": "MIT", "repository": "https://github.com/pillarjs/finalhandler", @@ -1919,6 +2083,15 @@ "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\finalhandler\\LICENSE" }, "follow-redirects@1.15.11": { + "licenses": "MIT", + "repository": "https://github.com/follow-redirects/follow-redirects", + "publisher": "Ruben Verborgh", + "email": "ruben@verborgh.org", + "url": "https://ruben.verborgh.org/", + "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\follow-redirects", + "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\follow-redirects\\LICENSE" + }, + "follow-redirects@1.16.0": { "licenses": "MIT", "repository": "https://github.com/follow-redirects/follow-redirects", "publisher": "Ruben Verborgh", @@ -1955,8 +2128,8 @@ "licenses": "Apache-2.0", "repository": "https://github.com/SheetJS/frac", "publisher": "SheetJS", - "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\frac", - "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\frac\\LICENSE" + "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\frac", + "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\frac\\LICENSE" }, "fresh@0.5.2": { "licenses": "MIT", @@ -1964,8 +2137,8 @@ "publisher": "TJ Holowaychuk", "email": "tj@vision-media.ca", "url": "http://tjholowaychuk.com", - "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\fresh", - "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\fresh\\LICENSE" + "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\fresh", + "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\fresh\\LICENSE" }, "fresh@2.0.0": { "licenses": "MIT", @@ -1981,8 +2154,8 @@ "repository": "https://github.com/mafintosh/fs-constants", "publisher": "Mathias Buus", "url": "@mafintosh", - "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\fs-constants", - "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\fs-constants\\LICENSE" + "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\fs-constants", + "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\fs-constants\\LICENSE" }, "fs-extra@10.1.0": { "licenses": "MIT", @@ -1992,21 +2165,21 @@ "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\fs-extra", "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\fs-extra\\LICENSE" }, - "fs-extra@11.3.1": { + "fs-extra@11.3.3": { "licenses": "MIT", "repository": "https://github.com/jprichardson/node-fs-extra", "publisher": "JP Richardson", "email": "jprichardson@gmail.com", - "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\fs-extra", - "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\fs-extra\\LICENSE" + "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\fs-extra", + "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\fs-extra\\LICENSE" }, - "fs-extra@11.3.3": { + "fs-extra@11.3.4": { "licenses": "MIT", "repository": "https://github.com/jprichardson/node-fs-extra", "publisher": "JP Richardson", "email": "jprichardson@gmail.com", - "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\fs-extra", - "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\fs-extra\\LICENSE" + "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\fs-extra", + "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\fs-extra\\LICENSE" }, "fs.realpath@1.0.0": { "licenses": "ISC", @@ -2017,6 +2190,15 @@ "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\fs.realpath", "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\fs.realpath\\LICENSE" }, + "fstream@1.0.12": { + "licenses": "ISC", + "repository": "https://github.com/npm/fstream", + "publisher": "Isaac Z. Schlueter", + "email": "i@izs.me", + "url": "http://blog.izs.me/", + "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\fstream", + "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\fstream\\LICENSE" + }, "function-bind@1.1.2": { "licenses": "MIT", "repository": "https://github.com/Raynos/function-bind", @@ -2083,6 +2265,15 @@ "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\glob", "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\glob\\LICENSE" }, + "glob@7.2.3": { + "licenses": "ISC", + "repository": "https://github.com/isaacs/node-glob", + "publisher": "Isaac Z. Schlueter", + "email": "i@izs.me", + "url": "http://blog.izs.me/", + "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\exceljs\\node_modules\\glob", + "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\exceljs\\node_modules\\glob\\LICENSE" + }, "glob@8.1.0": { "licenses": "ISC", "repository": "https://github.com/isaacs/node-glob", @@ -2141,6 +2332,14 @@ "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\hasown", "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\hasown\\LICENSE" }, + "hasown@2.0.3": { + "licenses": "MIT", + "repository": "https://github.com/inspect-js/hasOwn", + "publisher": "Jordan Harband", + "email": "ljharb@gmail.com", + "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\hasown", + "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\hasown\\LICENSE" + }, "hast-util-from-parse5@8.0.3": { "licenses": "MIT", "repository": "https://github.com/syntax-tree/hast-util-from-parse5", @@ -2245,17 +2444,17 @@ "publisher": "Yusuke Wada", "email": "yusuke@kamawada.com", "url": "https://github.com/yusukebe", - "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\hono", - "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\hono\\LICENSE" + "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\hono", + "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\hono\\LICENSE" }, - "hono@4.12.7": { + "hono@4.12.8": { "licenses": "MIT", "repository": "https://github.com/honojs/hono", "publisher": "Yusuke Wada", "email": "yusuke@kamawada.com", "url": "https://github.com/yusukebe", - "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\hono", - "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\hono\\LICENSE" + "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\hono", + "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\hono\\LICENSE" }, "hono@4.12.8": { "licenses": "MIT", @@ -2284,15 +2483,6 @@ "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\html-void-elements", "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\html-void-elements\\license" }, - "http-errors@2.0.0": { - "licenses": "MIT", - "repository": "https://github.com/jshttp/http-errors", - "publisher": "Jonathan Ong", - "email": "me@jongleberry.com", - "url": "http://jongleberry.com", - "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\http-errors", - "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\http-errors\\LICENSE" - }, "http-errors@2.0.1": { "licenses": "MIT", "repository": "https://github.com/jshttp/http-errors", @@ -2307,8 +2497,8 @@ "repository": "https://github.com/ashtuchkin/iconv-lite", "publisher": "Alexander Shtuchkin", "email": "ashtuchkin@gmail.com", - "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\iconv-lite", - "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\iconv-lite\\LICENSE" + "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\iconv-lite", + "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\iconv-lite\\LICENSE" }, "iconv-lite@0.7.2": { "licenses": "MIT", @@ -2610,20 +2800,13 @@ "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\jsonfile", "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\jsonfile\\LICENSE" }, - "jsonwebtoken@9.0.2": { + "jsonwebtoken@9.0.3": { "licenses": "MIT", "repository": "https://github.com/auth0/node-jsonwebtoken", "publisher": "auth0", "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\jsonwebtoken", "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\jsonwebtoken\\LICENSE" }, - "jsonwebtoken@9.0.3": { - "licenses": "MIT", - "repository": "https://github.com/auth0/node-jsonwebtoken", - "publisher": "auth0", - "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\jsonwebtoken", - "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\jsonwebtoken\\LICENSE" - }, "jszip@3.10.1": { "licenses": "(MIT OR GPL-3.0-or-later)", "repository": "https://github.com/Stuk/jszip", @@ -2632,7 +2815,7 @@ "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\jszip", "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\jszip\\LICENSE.markdown" }, - "jwa@1.4.2": { + "jwa@2.0.1": { "licenses": "MIT", "repository": "https://github.com/brianloveswords/node-jwa", "publisher": "Brian J. Brennan", @@ -2640,28 +2823,13 @@ "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\jwa", "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\jwa\\LICENSE" }, - "jwa@2.0.1": { - "licenses": "MIT", - "repository": "https://github.com/brianloveswords/node-jwa", - "publisher": "Brian J. Brennan", - "email": "brianloveswords@gmail.com", - "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\jwa", - "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\jwa\\LICENSE" - }, - "jws@3.2.3": { + "jws@4.0.1": { "licenses": "MIT", "repository": "https://github.com/brianloveswords/node-jws", "publisher": "Brian J Brennan", "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\jws", "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\jws\\LICENSE" }, - "jws@4.0.1": { - "licenses": "MIT", - "repository": "https://github.com/brianloveswords/node-jws", - "publisher": "Brian J Brennan", - "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\jws", - "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\jws\\LICENSE" - }, "lazy-val@1.0.5": { "licenses": "MIT", "repository": "https://github.com/develar/lazy-val", @@ -2712,8 +2880,17 @@ "publisher": "John-David Dalton", "email": "john.david.dalton@gmail.com", "url": "http://allyoucanleet.com/", - "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\lodash.defaults", - "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\lodash.defaults\\LICENSE" + "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\lodash.defaults", + "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\lodash.defaults\\LICENSE" + }, + "lodash.difference@4.5.0": { + "licenses": "MIT", + "repository": "https://github.com/lodash/lodash", + "publisher": "John-David Dalton", + "email": "john.david.dalton@gmail.com", + "url": "http://allyoucanleet.com/", + "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\lodash.difference", + "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\lodash.difference\\LICENSE" }, "lodash.escaperegexp@4.1.2": { "licenses": "MIT", @@ -2721,8 +2898,26 @@ "publisher": "John-David Dalton", "email": "john.david.dalton@gmail.com", "url": "http://allyoucanleet.com/", - "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\lodash.escaperegexp", - "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\lodash.escaperegexp\\LICENSE" + "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\lodash.escaperegexp", + "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\lodash.escaperegexp\\LICENSE" + }, + "lodash.flatten@4.4.0": { + "licenses": "MIT", + "repository": "https://github.com/lodash/lodash", + "publisher": "John-David Dalton", + "email": "john.david.dalton@gmail.com", + "url": "http://allyoucanleet.com/", + "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\lodash.flatten", + "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\lodash.flatten\\LICENSE" + }, + "lodash.groupby@4.6.0": { + "licenses": "MIT", + "repository": "https://github.com/lodash/lodash", + "publisher": "John-David Dalton", + "email": "john.david.dalton@gmail.com", + "url": "http://allyoucanleet.com/", + "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\lodash.groupby", + "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\lodash.groupby\\LICENSE" }, "lodash.includes@4.3.0": { "licenses": "MIT", @@ -2757,8 +2952,17 @@ "publisher": "John-David Dalton", "email": "john.david.dalton@gmail.com", "url": "http://allyoucanleet.com/", - "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\lodash.isequal", - "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\lodash.isequal\\LICENSE" + "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\lodash.isequal", + "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\lodash.isequal\\LICENSE" + }, + "lodash.isfunction@3.0.9": { + "licenses": "MIT", + "repository": "https://github.com/lodash/lodash", + "publisher": "John-David Dalton", + "email": "john.david.dalton@gmail.com", + "url": "http://allyoucanleet.com/", + "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\lodash.isfunction", + "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\lodash.isfunction\\LICENSE" }, "lodash.isinteger@4.0.4": { "licenses": "MIT", @@ -2769,6 +2973,15 @@ "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\lodash.isinteger", "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\lodash.isinteger\\LICENSE" }, + "lodash.isnil@4.0.0": { + "licenses": "MIT", + "repository": "https://github.com/lodash/lodash", + "publisher": "John-David Dalton", + "email": "john.david.dalton@gmail.com", + "url": "http://allyoucanleet.com/", + "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\lodash.isnil", + "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\lodash.isnil\\LICENSE" + }, "lodash.isnumber@3.0.3": { "licenses": "MIT", "repository": "https://github.com/lodash/lodash", @@ -2796,6 +3009,15 @@ "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\lodash.isstring", "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\lodash.isstring\\LICENSE" }, + "lodash.isundefined@3.0.1": { + "licenses": "MIT", + "repository": "https://github.com/lodash/lodash", + "publisher": "John-David Dalton", + "email": "john.david.dalton@gmail.com", + "url": "http://allyoucanleet.com/", + "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\lodash.isundefined", + "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\lodash.isundefined\\LICENSE.txt" + }, "lodash.once@4.1.1": { "licenses": "MIT", "repository": "https://github.com/lodash/lodash", @@ -2805,7 +3027,33 @@ "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\lodash.once", "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\lodash.once\\LICENSE" }, + "lodash.union@4.6.0": { + "licenses": "MIT", + "repository": "https://github.com/lodash/lodash", + "publisher": "John-David Dalton", + "email": "john.david.dalton@gmail.com", + "url": "http://allyoucanleet.com/", + "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\lodash.union", + "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\lodash.union\\LICENSE" + }, + "lodash.uniq@4.5.0": { + "licenses": "MIT", + "repository": "https://github.com/lodash/lodash", + "publisher": "John-David Dalton", + "email": "john.david.dalton@gmail.com", + "url": "http://allyoucanleet.com/", + "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\lodash.uniq", + "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\lodash.uniq\\LICENSE" + }, "lodash@4.17.23": { + "licenses": "MIT", + "repository": "https://github.com/lodash/lodash", + "publisher": "John-David Dalton", + "email": "john.david.dalton@gmail.com", + "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\lodash", + "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\lodash\\LICENSE" + }, + "lodash@4.18.1": { "licenses": "MIT", "repository": "https://github.com/lodash/lodash", "publisher": "John-David Dalton", @@ -2901,6 +3149,14 @@ "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\luxon\\LICENSE.md" }, "mammoth@1.11.0": { + "licenses": "BSD-2-Clause", + "repository": "https://github.com/mwilliamson/mammoth.js", + "publisher": "Michael Williamson", + "email": "mike@zwobble.org", + "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\mammoth", + "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\mammoth\\LICENSE" + }, + "mammoth@1.12.0": { "licenses": "BSD-2-Clause", "repository": "https://github.com/mwilliamson/mammoth.js", "publisher": "Michael Williamson", @@ -3100,8 +3356,8 @@ "repository": "https://github.com/jshttp/media-typer", "publisher": "Douglas Christopher Wilson", "email": "doug@somethingdoug.com", - "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\media-typer", - "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\media-typer\\LICENSE" + "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\media-typer", + "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\media-typer\\LICENSE" }, "media-typer@1.1.0": { "licenses": "MIT", @@ -3125,8 +3381,8 @@ "publisher": "Jonathan Ong", "email": "me@jongleberry.com", "url": "http://jongleberry.com", - "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\merge-descriptors", - "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\merge-descriptors\\LICENSE" + "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\merge-descriptors", + "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\merge-descriptors\\LICENSE" }, "merge-descriptors@2.0.0": { "licenses": "MIT", @@ -3137,8 +3393,8 @@ "methods@1.1.2": { "licenses": "MIT", "repository": "https://github.com/jshttp/methods", - "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\methods", - "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\methods\\LICENSE" + "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\methods", + "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\methods\\LICENSE" }, "micromark-core-commonmark@2.0.3": { "licenses": "MIT", @@ -3395,8 +3651,8 @@ "mime-db@1.52.0": { "licenses": "MIT", "repository": "https://github.com/jshttp/mime-db", - "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\mime-db", - "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\mime-db\\LICENSE" + "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\form-data\\node_modules\\mime-db", + "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\form-data\\node_modules\\mime-db\\LICENSE" }, "mime-db@1.54.0": { "licenses": "MIT", @@ -3407,8 +3663,8 @@ "mime-types@2.1.35": { "licenses": "MIT", "repository": "https://github.com/jshttp/mime-types", - "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\mime-types", - "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\mime-types\\LICENSE" + "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\form-data\\node_modules\\mime-types", + "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\form-data\\node_modules\\mime-types\\LICENSE" }, "mime-types@3.0.2": { "licenses": "MIT", @@ -3422,8 +3678,8 @@ "publisher": "Robert Kieffer", "email": "robert@broofa.com", "url": "http://github.com/broofa", - "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\mime", - "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\mime\\LICENSE" + "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\mime", + "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\mime\\LICENSE" }, "mimic-fn@2.1.0": { "licenses": "MIT", @@ -3443,6 +3699,15 @@ "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\mimic-response", "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\mimic-response\\license" }, + "minimatch@3.1.5": { + "licenses": "ISC", + "repository": "https://github.com/isaacs/minimatch", + "publisher": "Isaac Z. Schlueter", + "email": "i@izs.me", + "url": "http://blog.izs.me", + "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\exceljs\\node_modules\\minimatch", + "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\exceljs\\node_modules\\minimatch\\LICENSE" + }, "minimatch@5.1.9": { "licenses": "ISC", "repository": "https://github.com/isaacs/minimatch", @@ -3476,17 +3741,8 @@ "publisher": "James Halliday", "email": "mail@substack.net", "url": "http://substack.net", - "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\minimist", - "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\minimist\\LICENSE" - }, - "minipass@7.1.2": { - "licenses": "ISC", - "repository": "https://github.com/isaacs/minipass", - "publisher": "Isaac Z. Schlueter", - "email": "i@izs.me", - "url": "http://blog.izs.me/", - "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\minipass", - "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\minipass\\LICENSE" + "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\minimist", + "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\minimist\\LICENSE" }, "minipass@7.1.3": { "licenses": "BlueOak-1.0.0", @@ -3494,8 +3750,8 @@ "publisher": "Isaac Z. Schlueter", "email": "i@izs.me", "url": "http://blog.izs.me/", - "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\minipass", - "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\minipass\\LICENSE.md" + "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\glob\\node_modules\\minipass", + "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\glob\\node_modules\\minipass\\LICENSE.md" }, "minizlib@3.1.0": { "licenses": "MIT", @@ -3514,6 +3770,15 @@ "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\mkdirp-classic", "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\mkdirp-classic\\LICENSE" }, + "mkdirp@0.5.6": { + "licenses": "MIT", + "repository": "https://github.com/substack/node-mkdirp", + "publisher": "James Halliday", + "email": "mail@substack.net", + "url": "http://substack.net", + "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\mkdirp", + "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\mkdirp\\LICENSE" + }, "monaco-editor@0.55.1": { "licenses": "MIT", "repository": "https://github.com/microsoft/monaco-editor", @@ -3538,8 +3803,8 @@ "ms@2.0.0": { "licenses": "MIT", "repository": "https://github.com/zeit/ms", - "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\compression\\node_modules\\ms", - "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\compression\\node_modules\\ms\\license.md" + "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\ms", + "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\ms\\license.md" }, "ms@2.1.3": { "licenses": "MIT", @@ -3580,8 +3845,8 @@ "negotiator@0.6.3": { "licenses": "MIT", "repository": "https://github.com/jshttp/negotiator", - "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\accepts\\node_modules\\negotiator", - "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\accepts\\node_modules\\negotiator\\LICENSE" + "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\accepts\\node_modules\\negotiator", + "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\accepts\\node_modules\\negotiator\\LICENSE" }, "negotiator@0.6.4": { "licenses": "MIT", @@ -3769,8 +4034,8 @@ "path-to-regexp@0.1.12": { "licenses": "MIT", "repository": "https://github.com/pillarjs/path-to-regexp", - "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\path-to-regexp", - "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\path-to-regexp\\LICENSE" + "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\path-to-regexp", + "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\path-to-regexp\\LICENSE" }, "path-to-regexp@8.3.0": { "licenses": "MIT", @@ -3778,6 +4043,12 @@ "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\path-to-regexp", "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\path-to-regexp\\LICENSE" }, + "path-to-regexp@8.4.2": { + "licenses": "MIT", + "repository": "https://github.com/pillarjs/path-to-regexp", + "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\path-to-regexp", + "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\path-to-regexp\\LICENSE" + }, "pdf-parse@2.4.5": { "licenses": "Apache-2.0", "repository": "https://github.com/mehmet-kozan/pdf-parse", @@ -4039,6 +4310,15 @@ "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\proxy-addr\\LICENSE" }, "proxy-from-env@1.1.0": { + "licenses": "MIT", + "repository": "https://github.com/Rob--W/proxy-from-env", + "publisher": "Rob Wu", + "email": "rob@robwu.nl", + "url": "https://robwu.nl/", + "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\proxy-from-env", + "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\proxy-from-env\\LICENSE" + }, + "proxy-from-env@2.1.0": { "licenses": "MIT", "repository": "https://github.com/Rob--W/proxy-from-env", "publisher": "Rob Wu", @@ -4091,6 +4371,12 @@ "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\qs", "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\qs\\LICENSE.md" }, + "qs@6.15.1": { + "licenses": "BSD-3-Clause", + "repository": "https://github.com/ljharb/qs", + "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\qs", + "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\qs\\LICENSE.md" + }, "range-parser@1.2.1": { "licenses": "MIT", "repository": "https://github.com/jshttp/range-parser", @@ -4106,8 +4392,8 @@ "publisher": "Jonathan Ong", "email": "me@jongleberry.com", "url": "http://jongleberry.com", - "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\body-parser\\node_modules\\raw-body", - "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\body-parser\\node_modules\\raw-body\\LICENSE" + "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\body-parser\\node_modules\\raw-body", + "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\body-parser\\node_modules\\raw-body\\LICENSE" }, "raw-body@3.0.2": { "licenses": "MIT", @@ -4277,6 +4563,15 @@ "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\restore-cursor", "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\restore-cursor\\license" }, + "rimraf@2.7.1": { + "licenses": "ISC", + "repository": "https://github.com/isaacs/rimraf", + "publisher": "Isaac Z. Schlueter", + "email": "i@izs.me", + "url": "http://blog.izs.me/", + "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\rimraf", + "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\rimraf\\LICENSE" + }, "rope-sequence@1.3.4": { "licenses": "MIT", "repository": "https://github.com/marijnh/rope-sequence", @@ -4345,13 +4640,21 @@ "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\sax", "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\sax\\LICENSE.md" }, + "saxes@5.0.1": { + "licenses": "ISC", + "repository": "https://github.com/lddubeau/saxes", + "publisher": "Louis-Dominique Dubeau", + "email": "ldd@lddubeau.com", + "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\saxes", + "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\saxes\\README.md" + }, "scheduler@0.23.2": { "licenses": "MIT", "repository": "https://github.com/facebook/react", "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\react\\node_modules\\scheduler", "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\react\\node_modules\\scheduler\\LICENSE" }, - "semver@7.7.2": { + "semver@7.7.4": { "licenses": "ISC", "repository": "https://github.com/npm/node-semver", "publisher": "GitHub Inc.", @@ -4427,7 +4730,7 @@ "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\setprototypeof", "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\setprototypeof\\LICENSE" }, - "sharp@0.34.4": { + "sharp@0.34.5": { "licenses": "Apache-2.0", "repository": "https://github.com/lovell/sharp", "publisher": "Lovell Fuller", @@ -4435,14 +4738,6 @@ "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\sharp", "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\sharp\\LICENSE" }, - "sharp@0.34.5": { - "licenses": "Apache-2.0", - "repository": "https://github.com/lovell/sharp", - "publisher": "Lovell Fuller", - "email": "npm@lovell.info", - "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\sharp", - "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\sharp\\LICENSE" - }, "shebang-command@2.0.0": { "licenses": "MIT", "repository": "https://github.com/kevva/shebang-command", @@ -4469,6 +4764,14 @@ "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\side-channel-list", "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\side-channel-list\\LICENSE" }, + "side-channel-list@1.0.1": { + "licenses": "MIT", + "repository": "https://github.com/ljharb/side-channel-list", + "publisher": "Jordan Harband", + "email": "ljharb@gmail.com", + "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\side-channel-list", + "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\side-channel-list\\LICENSE" + }, "side-channel-map@1.0.1": { "licenses": "MIT", "repository": "https://github.com/ljharb/side-channel-map", @@ -4598,8 +4901,8 @@ "licenses": "Apache-2.0", "repository": "https://github.com/SheetJS/ssf", "publisher": "sheetjs", - "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\ssf", - "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\ssf\\LICENSE" + "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\ssf", + "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\ssf\\LICENSE" }, "standard-as-callback@2.1.0": { "licenses": "MIT", @@ -4617,12 +4920,6 @@ "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\state-local", "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\state-local\\LICENSE" }, - "statuses@2.0.1": { - "licenses": "MIT", - "repository": "https://github.com/jshttp/statuses", - "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\statuses", - "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\statuses\\LICENSE" - }, "statuses@2.0.2": { "licenses": "MIT", "repository": "https://github.com/jshttp/statuses", @@ -4635,21 +4932,21 @@ "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\std-env", "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\std-env\\LICENCE" }, - "streamx@2.22.1": { + "streamx@2.23.0": { "licenses": "MIT", "repository": "https://github.com/mafintosh/streamx", "publisher": "Mathias Buus", "url": "@mafintosh", - "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\streamx", - "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\streamx\\LICENSE" + "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\streamx", + "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\streamx\\LICENSE" }, - "streamx@2.23.0": { + "streamx@2.25.0": { "licenses": "MIT", "repository": "https://github.com/mafintosh/streamx", "publisher": "Mathias Buus", "url": "@mafintosh", - "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\streamx", - "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\streamx\\LICENSE" + "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\streamx", + "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\streamx\\LICENSE" }, "string-width@4.2.3": { "licenses": "MIT", @@ -4699,7 +4996,7 @@ "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\strip-ansi", "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\strip-ansi\\license" }, - "strip-ansi@7.1.0": { + "strip-ansi@7.2.0": { "licenses": "MIT", "repository": "https://github.com/chalk/strip-ansi", "publisher": "Sindre Sorhus", @@ -4760,10 +5057,10 @@ "repository": "https://github.com/mafintosh/tar-stream", "publisher": "Mathias Buus", "email": "mathiasbuus@gmail.com", - "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\tar-stream", - "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\tar-stream\\LICENSE" + "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\exceljs\\node_modules\\tar-stream", + "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\exceljs\\node_modules\\tar-stream\\LICENSE" }, - "tar-stream@3.1.7": { + "tar-stream@3.1.8": { "licenses": "MIT", "repository": "https://github.com/mafintosh/tar-stream", "publisher": "Mathias Buus", @@ -4771,7 +5068,7 @@ "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\tar-stream", "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\tar-stream\\LICENSE" }, - "tar@7.5.11": { + "tar@7.5.13": { "licenses": "BlueOak-1.0.0", "repository": "https://github.com/isaacs/node-tar", "publisher": "Isaac Z. Schlueter", @@ -4785,19 +5082,20 @@ "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\tar", "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\tar\\LICENSE.md" }, - "text-decoder@1.2.3": { - "licenses": "Apache-2.0", - "repository": "https://github.com/holepunchto/text-decoder", - "publisher": "Holepunch", - "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\text-decoder", - "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\text-decoder\\LICENSE" + "teex@1.0.1": { + "licenses": "MIT", + "repository": "https://github.com/mafintosh/teex", + "publisher": "Mathias Buus", + "url": "@mafintosh", + "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\teex", + "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\teex\\LICENSE" }, "text-decoder@1.2.7": { "licenses": "Apache-2.0", "repository": "https://github.com/holepunchto/text-decoder", "publisher": "Holepunch", - "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\text-decoder", - "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\text-decoder\\LICENSE" + "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\text-decoder", + "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\text-decoder\\LICENSE" }, "tiny-typed-emitter@2.1.0": { "licenses": "MIT", @@ -4814,6 +5112,14 @@ "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\tiptap-markdown", "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\tiptap-markdown\\LICENSE" }, + "tmp@0.2.5": { + "licenses": "MIT", + "repository": "https://github.com/raszi/node-tmp", + "publisher": "KARASZI István", + "email": "github@spam.raszi.hu", + "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\tmp", + "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\tmp\\LICENSE" + }, "to-regex-range@5.0.1": { "licenses": "MIT", "repository": "https://github.com/micromatch/to-regex-range", @@ -4838,6 +5144,13 @@ "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\tr46", "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\tr46\\LICENSE.md" }, + "traverse@0.3.9": { + "licenses": "MIT*", + "repository": "https://github.com/substack/js-traverse", + "publisher": "James Halliday", + "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\traverse", + "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\traverse\\LICENSE" + }, "trim-lines@3.0.1": { "licenses": "MIT", "repository": "https://github.com/wooorm/trim-lines", @@ -4884,8 +5197,8 @@ "type-is@1.6.18": { "licenses": "MIT", "repository": "https://github.com/jshttp/type-is", - "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\type-is", - "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\type-is\\LICENSE" + "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\type-is", + "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\type-is\\LICENSE" }, "type-is@2.0.1": { "licenses": "MIT", @@ -5004,6 +5317,14 @@ "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\unpipe", "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\unpipe\\LICENSE" }, + "unzipper@0.10.14": { + "licenses": "MIT", + "repository": "https://github.com/ZJONSSON/node-unzipper", + "publisher": "Evan Oxfeld", + "email": "eoxfeld@gmail.com", + "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\unzipper", + "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\unzipper\\LICENSE" + }, "use-sync-external-store@1.6.0": { "licenses": "MIT", "repository": "https://github.com/facebook/react", @@ -5025,14 +5346,14 @@ "publisher": "Jared Hanson", "email": "jaredhanson@gmail.com", "url": "http://www.jaredhanson.net/", - "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\utils-merge", - "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\utils-merge\\LICENSE" + "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\utils-merge", + "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\utils-merge\\LICENSE" }, "uuid@8.3.2": { "licenses": "MIT", "repository": "https://github.com/uuidjs/uuid", - "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\uuid", - "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\uuid\\LICENSE.md" + "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\uuid", + "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\uuid\\LICENSE.md" }, "vary@1.1.2": { "licenses": "MIT", @@ -5123,15 +5444,15 @@ "licenses": "Apache-2.0", "repository": "https://github.com/SheetJS/js-wmf", "publisher": "sheetjs", - "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\wmf", - "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\wmf\\LICENSE" + "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\wmf", + "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\wmf\\LICENSE" }, "word@0.3.0": { "licenses": "Apache-2.0", "repository": "https://github.com/SheetJS/js-word", "publisher": "sheetjs", - "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\word", - "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\word\\LICENSE" + "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\word", + "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\word\\LICENSE" }, "wrap-ansi@6.2.0": { "licenses": "MIT", @@ -5182,8 +5503,8 @@ "licenses": "Apache-2.0", "repository": "https://github.com/SheetJS/sheetjs", "publisher": "sheetjs", - "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\xlsx", - "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\xlsx\\LICENSE" + "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\xlsx", + "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\xlsx\\LICENSE" }, "xmlbuilder@10.1.1": { "licenses": "MIT", @@ -5193,6 +5514,14 @@ "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\xmlbuilder", "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\xmlbuilder\\LICENSE" }, + "xmlchars@2.2.0": { + "licenses": "MIT", + "repository": "https://github.com/lddubeau/xmlchars", + "publisher": "Louis-Dominique Dubeau", + "email": "ldd@lddubeau.com", + "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\xmlchars", + "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\xmlchars\\LICENSE" + }, "xmlhttprequest-ssl@2.1.2": { "licenses": "MIT", "repository": "https://github.com/mjwwit/node-XMLHttpRequest", @@ -5217,21 +5546,21 @@ "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\tar\\node_modules\\yallist", "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\tar\\node_modules\\yallist\\LICENSE.md" }, - "yaml@2.8.1": { + "yaml@2.8.2": { "licenses": "ISC", "repository": "https://github.com/eemeli/yaml", "publisher": "Eemeli Aro", "email": "eemeli@gmail.com", - "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\yaml", - "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\yaml\\LICENSE" + "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\yaml", + "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\yaml\\LICENSE" }, - "yaml@2.8.2": { + "yaml@2.8.3": { "licenses": "ISC", "repository": "https://github.com/eemeli/yaml", "publisher": "Eemeli Aro", "email": "eemeli@gmail.com", - "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\yaml", - "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\scheduler\\node_modules\\yaml\\LICENSE" + "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\yaml", + "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\yaml\\LICENSE" }, "yoctocolors-cjs@2.1.3": { "licenses": "MIT", @@ -5242,6 +5571,14 @@ "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\yoctocolors-cjs", "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\yoctocolors-cjs\\license" }, + "zip-stream@4.1.1": { + "licenses": "MIT", + "repository": "https://github.com/archiverjs/node-zip-stream", + "publisher": "Chris Talkington", + "url": "http://christalkington.com/", + "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\exceljs\\node_modules\\zip-stream", + "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\exceljs\\node_modules\\zip-stream\\LICENSE" + }, "zip-stream@5.0.2": { "licenses": "MIT", "repository": "https://github.com/archiverjs/node-zip-stream", @@ -5257,13 +5594,12 @@ "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\zod-to-json-schema", "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\zod-to-json-schema\\LICENSE" }, - "zod@3.25.76": { - "licenses": "MIT", - "repository": "https://github.com/colinhacks/zod", - "publisher": "Colin McDonnell", - "email": "zod@colinhacks.com", - "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\zod", - "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\zod\\LICENSE" + "zod-to-json-schema@3.25.2": { + "licenses": "ISC", + "repository": "https://github.com/StefanTerdell/zod-to-json-schema", + "publisher": "Stefan Terdell", + "path": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\zod-to-json-schema", + "licenseFile": "C:\\git\\github\\Prompd\\prompd-app\\frontend\\node_modules\\@prompd\\cli\\node_modules\\zod-to-json-schema\\LICENSE" }, "zod@4.3.6": { "licenses": "MIT",