diff --git a/apps/extension/.gitignore b/apps/extension/.gitignore new file mode 100644 index 00000000..5e5a5c8f --- /dev/null +++ b/apps/extension/.gitignore @@ -0,0 +1,385 @@ + +# Created by https://www.toptal.com/developers/gitignore/api/webstorm+all,visualstudiocode,sublimetext,node,react,windows,macos,linux +# Edit at https://www.toptal.com/developers/gitignore?templates=webstorm+all,visualstudiocode,sublimetext,node,react,windows,macos,linux + +### Linux ### +*~ + +# temporary files which can be created if a process still has a handle open of a deleted file +.fuse_hidden* + +# KDE directory preferences +.directory + +# Linux trash folder which might appear on any partition or disk +.Trash-* + +# .nfs files are created when an open file is removed but is still being accessed +.nfs* + +### macOS ### +# General +.DS_Store +.AppleDouble +.LSOverride + +# Icon must end with two \r +Icon + + +# Thumbnails +._* + +# Files that might appear in the root of a volume +.DocumentRevisions-V100 +.fseventsd +.Spotlight-V100 +.TemporaryItems +.Trashes +.VolumeIcon.icns +.com.apple.timemachine.donotpresent + +# Directories potentially created on remote AFP share +.AppleDB +.AppleDesktop +Network Trash Folder +Temporary Items +.apdisk + +### macOS Patch ### +# iCloud generated files +*.icloud + +### Node ### +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +lerna-debug.log* +.pnpm-debug.log* + +# Diagnostic reports (https://nodejs.org/api/report.html) +report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage +*.lcov + +# nyc test coverage +.nyc_output + +# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# Bower dependency directory (https://bower.io/) +bower_components + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (https://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +node_modules/ +jspm_packages/ + +# Snowpack dependency directory (https://snowpack.dev/) +web_modules/ + +# TypeScript cache +*.tsbuildinfo + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Optional stylelint cache +.stylelintcache + +# Microbundle cache +.rpt2_cache/ +.rts2_cache_cjs/ +.rts2_cache_es/ +.rts2_cache_umd/ + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variable files +.env +.env.development.local +.env.test.local +.env.production.local +.env.local + +# parcel-bundler cache (https://parceljs.org/) +.cache +.parcel-cache + +# Next.js build output +.next +out + +# Nuxt.js build / generate output +.nuxt +dist + +# Gatsby files +.cache/ +# Comment in the public line in if your project uses Gatsby and not Next.js +# https://nextjs.org/blog/next-9-1#public-directory-support +# public + +# vuepress build output +.vuepress/dist + +# vuepress v2.x temp and cache directory +.temp + +# Docusaurus cache and generated files +.docusaurus + +# Serverless directories +.serverless/ + +# FuseBox cache +.fusebox/ + +# DynamoDB Local files +.dynamodb/ + +# TernJS port file +.tern-port + +# Stores VSCode versions used for testing VSCode extensions +.vscode-test + +# yarn v2 +.yarn/cache +.yarn/unplugged +.yarn/build-state.yml +.yarn/install-state.gz +.pnp.* + +### Node Patch ### +# Serverless Webpack directories +.webpack/ + +# Optional stylelint cache + +# SvelteKit build / generate output +.svelte-kit + +### react ### +.DS_* +**/*.backup.* +**/*.back.* + +node_modules + +*.sublime* + +psd +thumb +sketch + +### SublimeText ### +# Cache files for Sublime Text +*.tmlanguage.cache +*.tmPreferences.cache +*.stTheme.cache + +# Workspace files are user-specific +*.sublime-workspace + +# Project files should be checked into the repository, unless a significant +# proportion of contributors will probably not be using Sublime Text +# *.sublime-project + +# SFTP configuration file +sftp-config.json +sftp-config-alt*.json + +# Package control specific files +Package Control.last-run +Package Control.ca-list +Package Control.ca-bundle +Package Control.system-ca-bundle +Package Control.cache/ +Package Control.ca-certs/ +Package Control.merged-ca-bundle +Package Control.user-ca-bundle +oscrypto-ca-bundle.crt +bh_unicode_properties.cache + +# Sublime-github package stores a github token in this file +# https://packagecontrol.io/packages/sublime-github +GitHub.sublime-settings + +### VisualStudioCode ### +.vscode/* +!.vscode/settings.json +!.vscode/tasks.json +!.vscode/launch.json +!.vscode/extensions.json +!.vscode/*.code-snippets + +# Local History for Visual Studio Code +.history/ + +# Built Visual Studio Code Extensions +*.vsix + +### VisualStudioCode Patch ### +# Ignore all local history of files +.history +.ionide + +# Support for Project snippet scope + +### WebStorm+all ### +# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider +# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 + +# User-specific stuff +.idea/**/workspace.xml +.idea/**/tasks.xml +.idea/**/usage.statistics.xml +.idea/**/dictionaries +.idea/**/shelf + +# AWS User-specific +.idea/**/aws.xml + +# Generated files +.idea/**/contentModel.xml + +# Sensitive or high-churn files +.idea/**/dataSources/ +.idea/**/dataSources.ids +.idea/**/dataSources.local.xml +.idea/**/sqlDataSources.xml +.idea/**/dynamic.xml +.idea/**/uiDesigner.xml +.idea/**/dbnavigator.xml + +# Gradle +.idea/**/gradle.xml +.idea/**/libraries + +# Gradle and Maven with auto-import +# When using Gradle or Maven with auto-import, you should exclude module files, +# since they will be recreated, and may cause churn. Uncomment if using +# auto-import. +# .idea/artifacts +# .idea/compiler.xml +# .idea/jarRepositories.xml +# .idea/modules.xml +# .idea/*.iml +# .idea/modules +# *.iml +# *.ipr + +# CMake +cmake-build-*/ + +# Mongo Explorer plugin +.idea/**/mongoSettings.xml + +# File-based project format +*.iws + +# IntelliJ +out/ + +# mpeltonen/sbt-idea plugin +.idea_modules/ + +# JIRA plugin +atlassian-ide-plugin.xml + +# Cursive Clojure plugin +.idea/replstate.xml + +# SonarLint plugin +.idea/sonarlint/ + +# Crashlytics plugin (for Android Studio and IntelliJ) +com_crashlytics_export_strings.xml +crashlytics.properties +crashlytics-build.properties +fabric.properties + +# Editor-based Rest Client +.idea/httpRequests + +# Android studio 3.1+ serialized cache file +.idea/caches/build_file_checksums.ser + +### WebStorm+all Patch ### +# Ignore everything but code style settings and run configurations +# that are supposed to be shared within teams. + +.idea/* + +!.idea/codeStyles +!.idea/runConfigurations + +### Windows ### +# Windows thumbnail cache files +Thumbs.db +Thumbs.db:encryptable +ehthumbs.db +ehthumbs_vista.db + +# Dump file +*.stackdump + +# Folder config file +[Dd]esktop.ini + +# Recycle Bin used on file shares +$RECYCLE.BIN/ + +# Windows Installer files +*.cab +*.msi +*.msix +*.msm +*.msp + +# Windows shortcuts +*.lnk + +# End of https://www.toptal.com/developers/gitignore/api/webstorm+all,visualstudiocode,sublimetext,node,react,windows,macos,linux + +# testing +/coverage + +# etc +.idea + +#generated manifest +public/manifest.json + +extension.zip \ No newline at end of file diff --git a/apps/extension/custom-vite-plugins.ts b/apps/extension/custom-vite-plugins.ts new file mode 100644 index 00000000..cc46fd32 --- /dev/null +++ b/apps/extension/custom-vite-plugins.ts @@ -0,0 +1,56 @@ +import fs from 'fs'; +import { resolve } from 'path'; +import type { PluginOption } from 'vite'; + +// plugin to remove dev icons from prod build +export function stripDevIcons (isDev: boolean) { + if (isDev) return null + + return { + name: 'strip-dev-icons', + resolveId (source: string) { + return source === 'virtual-module' ? source : null + }, + renderStart (outputOptions: any, inputOptions: any) { + const outDir = outputOptions.dir + fs.rm(resolve(outDir, 'dev-icon-32.png'), () => console.log(`Deleted dev-icon-32.png from prod build`)) + fs.rm(resolve(outDir, 'dev-icon-128.png'), () => console.log(`Deleted dev-icon-128.png from prod build`)) + } + } +} + +// plugin to support i18n +export function crxI18n (options: { localize: boolean, src: string }): PluginOption { + if (!options.localize) return null + + const getJsonFiles = (dir: string): Array => { + const files = fs.readdirSync(dir, {recursive: true}) as string[] + return files.filter(file => !!file && file.endsWith('.json')) + } + const entry = resolve(__dirname, options.src) + const localeFiles = getJsonFiles(entry) + const files = localeFiles.map(file => { + return { + id: '', + fileName: file, + source: fs.readFileSync(resolve(entry, file)) + } + }) + return { + name: 'crx-i18n', + enforce: 'pre', + buildStart: { + order: 'post', + handler() { + files.forEach((file) => { + const refId = this.emitFile({ + type: 'asset', + source: file.source, + fileName: '_locales/'+file.fileName + }) + file.id = refId + }) + } + } + } +} \ No newline at end of file diff --git a/apps/extension/manifest.dev.json b/apps/extension/manifest.dev.json new file mode 100755 index 00000000..b096887f --- /dev/null +++ b/apps/extension/manifest.dev.json @@ -0,0 +1,19 @@ +{ + "action": { + "default_icon": "public/dev-icon-32.png", + "default_popup": "src/pages/popup/index.html" + }, + "icons": { + "128": "public/dev-icon-128.png" + }, + "web_accessible_resources": [ + { + "resources": [ + "contentStyle.css", + "dev-icon-128.png", + "dev-icon-32.png" + ], + "matches": [] + } + ] +} diff --git a/apps/extension/manifest.json b/apps/extension/manifest.json new file mode 100755 index 00000000..f4b844c9 --- /dev/null +++ b/apps/extension/manifest.json @@ -0,0 +1,31 @@ +{ + "manifest_version": 3, + "name": "Postiz", + "description": "Grow faster on socials", + "options_ui": { + "page": "src/pages/options/index.html" + }, + "action": { + "default_popup": "src/pages/popup/index.html", + "default_icon": { + "32": "icon-32.png" + } + }, + "icons": { + "128": "icon-128.png" + }, + "permissions": ["activeTab", "cookies", "tabs", "storage"], + "content_scripts": [ + { + "matches": ["http://*/*", "https://*/*", ""], + "js": ["src/pages/content/index.tsx"], + "css": ["contentStyle.css"] + } + ], + "web_accessible_resources": [ + { + "resources": ["contentStyle.css", "icon-128.png", "icon-32.png"], + "matches": [] + } + ] +} diff --git a/apps/extension/nodemon.chrome.json b/apps/extension/nodemon.chrome.json new file mode 100644 index 00000000..a5d07fb7 --- /dev/null +++ b/apps/extension/nodemon.chrome.json @@ -0,0 +1,18 @@ +{ + "env": { + "__DEV__": "true" + }, + "watch": [ + "src", + "utils", + "vite.config.base.ts", + "vite.config.chrome.ts", + "manifest.json", + "manifest.dev.json" + ], + "ext": "tsx,css,html,ts,json", + "ignore": [ + "src/**/*.spec.ts" + ], + "exec": "vite build --config vite.config.chrome.ts --mode development" +} diff --git a/apps/extension/nodemon.firefox.json b/apps/extension/nodemon.firefox.json new file mode 100644 index 00000000..3f0d0092 --- /dev/null +++ b/apps/extension/nodemon.firefox.json @@ -0,0 +1,18 @@ +{ + "env": { + "__DEV__": "true" + }, + "watch": [ + "src", + "utils", + "vite.config.base.ts", + "vite.config.firefox.ts", + "manifest.json", + "manifest.dev.json" + ], + "ext": "tsx,css,html,ts,json", + "ignore": [ + "src/**/*.spec.ts" + ], + "exec": "vite build --config vite.config.firefox.ts --mode development" +} diff --git a/apps/extension/package.json b/apps/extension/package.json new file mode 100644 index 00000000..3ade2902 --- /dev/null +++ b/apps/extension/package.json @@ -0,0 +1,14 @@ +{ + "name": "postiz-extension", + "version": "1.0.0", + "description": "A simple chrome & firefox extension template with Vite, React, TypeScript and Tailwind CSS.", + "scripts": { + "build": "rm -rf dist && vite build --config vite.config.chrome.ts && zip -r extension.zip dist", + "build:chrome": "vite build --config vite.config.chrome.ts", + "build:firefox": "vite build --config vite.config.firefox.ts", + "dev": "rm -rf dist && NODE_ENV=development dotenv -e ../../.env -- vite build --config vite.config.chrome.ts --mode development --watch", + "dev:chrome": "nodemon --config nodemon.chrome.json", + "dev:firefox": "nodemon --config nodemon.firefox.json" + }, + "type": "module" +} diff --git a/apps/extension/public/contentStyle.css b/apps/extension/public/contentStyle.css new file mode 100644 index 00000000..e69de29b diff --git a/apps/extension/public/dev-icon-128.png b/apps/extension/public/dev-icon-128.png new file mode 100644 index 00000000..69c0e483 Binary files /dev/null and b/apps/extension/public/dev-icon-128.png differ diff --git a/apps/extension/public/dev-icon-32.png b/apps/extension/public/dev-icon-32.png new file mode 100755 index 00000000..704ca2d7 Binary files /dev/null and b/apps/extension/public/dev-icon-32.png differ diff --git a/apps/extension/public/icon-128.png b/apps/extension/public/icon-128.png new file mode 100644 index 00000000..69c0e483 Binary files /dev/null and b/apps/extension/public/icon-128.png differ diff --git a/apps/extension/public/icon-32.png b/apps/extension/public/icon-32.png new file mode 100755 index 00000000..704ca2d7 Binary files /dev/null and b/apps/extension/public/icon-32.png differ diff --git a/apps/extension/src/assets/img/logo.svg b/apps/extension/src/assets/img/logo.svg new file mode 100644 index 00000000..6b60c104 --- /dev/null +++ b/apps/extension/src/assets/img/logo.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/apps/extension/src/assets/styles/tailwind.css b/apps/extension/src/assets/styles/tailwind.css new file mode 100644 index 00000000..be7207b3 --- /dev/null +++ b/apps/extension/src/assets/styles/tailwind.css @@ -0,0 +1,13 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; + +@theme { + --animate-spin-slow: spin 20s linear infinite; + + @keyframes spin { + to { + transform: rotate(360deg); + } + } +} \ No newline at end of file diff --git a/apps/extension/src/global.d.ts b/apps/extension/src/global.d.ts new file mode 100644 index 00000000..7ad3edd1 --- /dev/null +++ b/apps/extension/src/global.d.ts @@ -0,0 +1,11 @@ +declare module '*.svg' { + import React = require('react'); + export const ReactComponent: React.SFC>; + const src: string; + export default src; +} + +declare module '*.json' { + const content: string; + export default content; +} diff --git a/apps/extension/src/locales/en/messages.json b/apps/extension/src/locales/en/messages.json new file mode 100644 index 00000000..be11094a --- /dev/null +++ b/apps/extension/src/locales/en/messages.json @@ -0,0 +1,10 @@ +{ + "extName": { + "message": "name in src/locales/en/messages.json", + "description": "Extension name" + }, + "extDescription": { + "message": "description in src/locales/en/messages.json", + "description": "Extension description" + } +} \ No newline at end of file diff --git a/apps/extension/src/pages/background/index.ts b/apps/extension/src/pages/background/index.ts new file mode 100644 index 00000000..fc9c73fa --- /dev/null +++ b/apps/extension/src/pages/background/index.ts @@ -0,0 +1,44 @@ +import { fetchRequestUtil } from "@gitroom/extension/utils/request.util"; + +const isDevelopment = process.env.NODE_ENV === "development"; + +chrome.runtime.onMessage.addListener(function (request, sender, sendResponse) { + if (request.action === "makeHttpRequest") { + fetchRequestUtil(request).then((response) => { + sendResponse(response); + }); + } + + if (request.action === "loadStorage") { + chrome.storage.local.get([request.key], + function (storage) { + sendResponse(storage[request.key]); + }, + ); + } + + if (request.action === "saveStorage") { + chrome.storage.local.set( + { [request.key]: request.value }, + function () { + sendResponse({ success: true }); + } + ); + } + + if (request.action === "loadCookie") { + chrome.cookies.get( + { + url: isDevelopment + ? "http://localhost:4200" + : "https://platform.postiz.com", + name: request.cookieName, + }, + function (cookies) { + sendResponse(cookies?.value); + }, + ); + } + + return true; +}); diff --git a/apps/extension/src/pages/content/elements/action.component.tsx b/apps/extension/src/pages/content/elements/action.component.tsx new file mode 100644 index 00000000..07025f28 --- /dev/null +++ b/apps/extension/src/pages/content/elements/action.component.tsx @@ -0,0 +1,99 @@ +import { FC, memo, useCallback, useEffect, useState } from 'react'; +import { ProviderInterface } from '@gitroom/extension/providers/provider.interface'; + +const Comp: FC<{ removeModal: () => void; platform: string, style: string }> = (props) => { + useEffect(() => { + if (document.querySelector('iframe#modal-postiz')) { + return; + } + + const div = document.createElement('div'); + div.style.backgroundColor = 'rgba(0, 0, 0, 0.5)'; + div.style.position = 'fixed'; + div.style.top = '0'; + div.style.left = '0'; + div.style.zIndex = '9999'; + div.style.width = '100%'; + div.style.height = '100%'; + div.style.border = 'none'; + div.style.overflow = 'hidden'; + document.body.appendChild(div); + + const iframe = document.createElement('iframe'); + iframe.style.backgroundColor = 'transparent'; + // @ts-ignore + iframe.allowTransparency = 'true'; + iframe.src = import.meta.env.FRONTEND_URL + `/modal/${props.style}/${props.platform}`; + iframe.id = 'modal-postiz'; + iframe.style.width = '100%'; + iframe.style.height = '100%'; + iframe.style.position = 'fixed'; + iframe.style.top = '0'; + iframe.style.left = '0'; + iframe.style.zIndex = '9999'; + iframe.style.border = 'none'; + div.appendChild(iframe); + + window.addEventListener('message', (event) => { + if (event.data.action === 'closeIframe') { + const iframe = document.querySelector('iframe#modal-postiz'); + if (iframe) { + props.removeModal(); + div.remove(); + } + } + }); + }, []); + return <>; +}; +export const ActionComponent: FC<{ + target: Node; + keyIndex: number; + actionType: string; + provider: ProviderInterface; + wrap: boolean; +}> = memo((props) => { + const { wrap, provider, target, actionType } = props; + const [modal, showModal] = useState(false); + const handle = useCallback(async (e: any) => { + showModal(true); + e.preventDefault(); + e.stopPropagation(); + }, []); + + useEffect(() => { + const blockingDiv = document.createElement('div'); + if (document.querySelector('#blockingDiv')) { + return; + } + + setTimeout(() => { + // @ts-ignore + const targetInformation = target.getBoundingClientRect(); + blockingDiv.style.position = 'absolute'; + blockingDiv.id = 'blockingDiv'; + blockingDiv.style.cursor = 'pointer'; + blockingDiv.style.top = `${targetInformation.top}px`; + blockingDiv.style.left = `${targetInformation.left}px`; + blockingDiv.style.width = `${targetInformation.width}px`; + blockingDiv.style.height = `${targetInformation.height}px`; + blockingDiv.style.zIndex = '9999'; + + document.body.appendChild(blockingDiv); + blockingDiv.addEventListener('click', handle); + }, 1000); + return () => { + blockingDiv.removeEventListener('click', handle); + blockingDiv.remove(); + }; + }, []); + + return ( +
+
+ {modal && ( + showModal(false)} /> + )} +
+ ); +}); diff --git a/apps/extension/src/pages/content/index.tsx b/apps/extension/src/pages/content/index.tsx new file mode 100644 index 00000000..03762830 --- /dev/null +++ b/apps/extension/src/pages/content/index.tsx @@ -0,0 +1,11 @@ +import { createRoot } from "react-dom/client"; +import "./style.css"; +import { MainContent } from "@gitroom/extension/pages/content/main.content"; +const div = document.createElement("div"); +div.id = "__root"; +document.body.appendChild(div); + +const rootContainer = document.querySelector("#__root"); +if (!rootContainer) throw new Error("Can't find Content root element"); +const root = createRoot(rootContainer); +root.render(); diff --git a/apps/extension/src/pages/content/main.content.tsx b/apps/extension/src/pages/content/main.content.tsx new file mode 100644 index 00000000..b9bdf635 --- /dev/null +++ b/apps/extension/src/pages/content/main.content.tsx @@ -0,0 +1,165 @@ +import { + FC, + Fragment, + useCallback, + useEffect, + useMemo, + useRef, + useState, +} from 'react'; +import { ProviderList } from '@gitroom/extension/providers/provider.list'; +import { createPortal } from 'react-dom'; +import { ActionComponent } from '@gitroom/extension/pages/content/elements/action.component'; + +// Define a type to track elements with their action types +interface ActionElement { + element: HTMLElement; + actionType: string; +} + +export const MainContent: FC = () => { + return ; +}; + +export const MainContentInner: FC = (props) => { + const [actionElements, setActionElements] = useState([]); + const actionSetRef = useRef(new Map()); + const provider = useMemo(() => { + return ProviderList.find((p) => { + return p.baseUrl.indexOf(new URL(window.location.href).hostname) > -1; + }); + }, []); + + useEffect(() => { + if (!provider) return; + + // Helper to scan DOM for existing matching elements + const scanDOMForExistingMatches = () => { + const action = { selector: provider.element, type: 'post' }; + const matches = document.querySelectorAll(action.selector); + matches.forEach((match) => { + const htmlMatch = match as HTMLElement; + if (!actionSetRef.current.has(htmlMatch)) { + actionSetRef.current.set(htmlMatch, action.type); + } + }); + + // Update state + const elements: ActionElement[] = []; + actionSetRef.current.forEach((actionType, element) => { + elements.push({ element, actionType }); + }); + setActionElements(elements); + }; + + // Initial scan before observing + scanDOMForExistingMatches(); + + const observer = new MutationObserver((mutationsList) => { + let addedSomething = false; + let removedSomething = false; + + for (const mutation of mutationsList) { + if (mutation.type === 'childList') { + for (const node of mutation.addedNodes) { + if (node.nodeType === Node.ELEMENT_NODE) { + const el = node as HTMLElement; + + const action = { selector: provider.element, type: 'post' }; + if ( + el.matches?.(action.selector) && + !actionSetRef.current.has(el) + ) { + actionSetRef.current.set(el, action.type); + addedSomething = true; + } + + if (el.querySelectorAll) { + const matches = el.querySelectorAll(action.selector); + matches.forEach((match) => { + const htmlMatch = match as HTMLElement; + if (!actionSetRef.current.has(htmlMatch)) { + actionSetRef.current.set(htmlMatch, action.type); + addedSomething = true; + } + }); + } + } + } + + for (const node of mutation.removedNodes) { + if (node.nodeType === Node.ELEMENT_NODE) { + const el = node as HTMLElement; + + if (actionSetRef.current.has(el)) { + actionSetRef.current.delete(el); + removedSomething = true; + } + + const action = { selector: provider.element, type: 'post' }; + if (el.querySelectorAll) { + const matches = el.querySelectorAll(action.selector); + matches.forEach((match) => { + const htmlMatch = match as HTMLElement; + if (actionSetRef.current.has(htmlMatch)) { + actionSetRef.current.delete(htmlMatch); + removedSomething = true; + } + }); + } + } + } + } + + if (mutation.type === 'attributes') { + const el = mutation.target; + if (el instanceof HTMLElement) { + const action = { selector: provider.element, type: 'post' }; + const matchesNow = el.matches(action.selector); + const wasTracked = actionSetRef.current.has(el); + + if (matchesNow && !wasTracked) { + actionSetRef.current.set(el, action.type); + addedSomething = true; + } else if (!matchesNow && wasTracked) { + actionSetRef.current.delete(el); + removedSomething = true; + } + } + } + } + + if (addedSomething || removedSomething) { + const elements: ActionElement[] = []; + actionSetRef.current.forEach((actionType, element) => { + elements.push({ element, actionType }); + }); + setActionElements(elements); + } + }); + + observer.observe(document.body, { + childList: true, + subtree: true, + attributes: true, + attributeOldValue: true, + }); + + return () => observer.disconnect(); + }, []); + + return actionElements.map((actionEl, index) => ( + + {createPortal( + , + actionEl.element + )} + + )); +}; diff --git a/apps/extension/src/pages/content/style.css b/apps/extension/src/pages/content/style.css new file mode 100644 index 00000000..42b52f44 --- /dev/null +++ b/apps/extension/src/pages/content/style.css @@ -0,0 +1,27 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; + +.my-wrapper { + left: 0 !important; + top: 0 !important; + position: fixed !important; + width: 100% !important; + height: 100% !important; + z-index: 999999 !important; + display: flex !important; + justify-content: center !important; + background: rgba(0, 0, 0, 0.5) !important; +} + +.my-wrapper > div { + background: white !important; + width: 600px !important; + height: 300px !important; + border-radius: 10px !important; + display: flex !important; + flex-direction: column !important; + justify-items: center !important; + margin-top: 100px !important; + color: black !important; +} \ No newline at end of file diff --git a/apps/extension/src/pages/options/Options.css b/apps/extension/src/pages/options/Options.css new file mode 100644 index 00000000..1ea51cba --- /dev/null +++ b/apps/extension/src/pages/options/Options.css @@ -0,0 +1,8 @@ +.container { + width: 100%; + height: 50vh; + font-size: 2rem; + display: flex; + align-items: center; + justify-content: center; +} diff --git a/apps/extension/src/pages/options/Options.tsx b/apps/extension/src/pages/options/Options.tsx new file mode 100644 index 00000000..7f5a709b --- /dev/null +++ b/apps/extension/src/pages/options/Options.tsx @@ -0,0 +1,6 @@ +import React from 'react'; +import '@gitroom/extension/pages/options/Options.css'; + +export default function Options() { + return
Options
; +} diff --git a/apps/extension/src/pages/options/index.css b/apps/extension/src/pages/options/index.css new file mode 100644 index 00000000..e69de29b diff --git a/apps/extension/src/pages/options/index.html b/apps/extension/src/pages/options/index.html new file mode 100644 index 00000000..fe96b7fd --- /dev/null +++ b/apps/extension/src/pages/options/index.html @@ -0,0 +1,12 @@ + + + + + Options + + + +
+ + + diff --git a/apps/extension/src/pages/options/index.tsx b/apps/extension/src/pages/options/index.tsx new file mode 100644 index 00000000..f24413d6 --- /dev/null +++ b/apps/extension/src/pages/options/index.tsx @@ -0,0 +1,13 @@ +import React from 'react'; +import { createRoot } from 'react-dom/client'; +import '@gitroom/extension/pages/options/index.css'; +import Options from "@gitroom/extension/pages/options/Options"; + +function init() { + const rootContainer = document.querySelector("#__root"); + if (!rootContainer) throw new Error("Can't find Options root element"); + const root = createRoot(rootContainer); + root.render(); +} + +init(); diff --git a/apps/extension/src/pages/panel/Panel.css b/apps/extension/src/pages/panel/Panel.css new file mode 100644 index 00000000..843f23e8 --- /dev/null +++ b/apps/extension/src/pages/panel/Panel.css @@ -0,0 +1,7 @@ +body { + background-color: #242424; +} + +.container { + color: #ffffff; +} \ No newline at end of file diff --git a/apps/extension/src/pages/panel/Panel.tsx b/apps/extension/src/pages/panel/Panel.tsx new file mode 100644 index 00000000..2157d549 --- /dev/null +++ b/apps/extension/src/pages/panel/Panel.tsx @@ -0,0 +1,10 @@ +import React from 'react'; +import '@pages/panel/Panel.css'; + +export default function Panel() { + return ( +
+

Side Panel

+
+ ); +} diff --git a/apps/extension/src/pages/panel/index.css b/apps/extension/src/pages/panel/index.css new file mode 100644 index 00000000..e69de29b diff --git a/apps/extension/src/pages/panel/index.html b/apps/extension/src/pages/panel/index.html new file mode 100644 index 00000000..564b65b3 --- /dev/null +++ b/apps/extension/src/pages/panel/index.html @@ -0,0 +1,12 @@ + + + + + Devtools Panel + + + +
+ + + diff --git a/apps/extension/src/pages/panel/index.tsx b/apps/extension/src/pages/panel/index.tsx new file mode 100644 index 00000000..a4541ddf --- /dev/null +++ b/apps/extension/src/pages/panel/index.tsx @@ -0,0 +1,14 @@ +import React from 'react'; +import { createRoot } from 'react-dom/client'; +import Panel from '@pages/panel/Panel'; +import '@pages/panel/index.css'; +import '@assets/styles/tailwind.css'; + +function init() { + const rootContainer = document.querySelector("#__root"); + if (!rootContainer) throw new Error("Can't find Panel root element"); + const root = createRoot(rootContainer); + root.render(); +} + +init(); diff --git a/apps/extension/src/pages/popup/Popup.tsx b/apps/extension/src/pages/popup/Popup.tsx new file mode 100644 index 00000000..153e04cc --- /dev/null +++ b/apps/extension/src/pages/popup/Popup.tsx @@ -0,0 +1,73 @@ +import React, { FC, useCallback, useEffect, useMemo, useState } from "react"; +import { ProviderList } from "@gitroom/extension/providers/provider.list"; +import { fetchCookie } from "@gitroom/extension/utils/load.cookie"; + +export const PopupContainerContainer: FC = () => { + const [url, setUrl] = useState(null); + useEffect(() => { + chrome.tabs.query({ active: true, currentWindow: true }, function (tabs) { + setUrl(tabs[0]?.url); + }); + }, []); + + if (!url) { + return
This website is not supported by Postiz
; + } + + return ; +}; + +export const PopupContainer: FC<{ url: string }> = (props) => { + const { url } = props; + const [isLoggedIn, setIsLoggedIn] = useState(false); + const [isLoading, setIsLoading] = useState(true); + const provider = useMemo(() => { + return ProviderList.find((p) => { + return p.baseUrl.indexOf(new URL(url).hostname) > -1; + }); + }, [url]); + + const loadCookie = useCallback(async () => { + try { + if (!provider) { + setIsLoading(false); + return; + } + const auth = await fetchCookie(`auth`); + + if (auth) { + setIsLoggedIn(auth); + } + + setIsLoading(false); + } catch (e) { + setIsLoading(false); + } + }, []); + + useEffect(() => { + loadCookie(); + }, []); + + if (isLoading) { + return null; + } + + if (!provider) { + return
This website is not supported by Postiz
; + } + + if (!isLoggedIn) { + return
You are not logged in to Postiz
; + } + + return
; +}; + +export default function Popup() { + return ( +
+ +
+ ); +} diff --git a/apps/extension/src/pages/popup/index.css b/apps/extension/src/pages/popup/index.css new file mode 100644 index 00000000..d4638762 --- /dev/null +++ b/apps/extension/src/pages/popup/index.css @@ -0,0 +1,16 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; + +body { + width: 300px; + height: 260px; + margin: 0; + font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', + 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', + sans-serif; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + + position: relative; +} diff --git a/apps/extension/src/pages/popup/index.html b/apps/extension/src/pages/popup/index.html new file mode 100644 index 00000000..7b8317aa --- /dev/null +++ b/apps/extension/src/pages/popup/index.html @@ -0,0 +1,12 @@ + + + + + Popup + + + +
+ + + diff --git a/apps/extension/src/pages/popup/index.tsx b/apps/extension/src/pages/popup/index.tsx new file mode 100644 index 00000000..6b92b952 --- /dev/null +++ b/apps/extension/src/pages/popup/index.tsx @@ -0,0 +1,14 @@ +import React from 'react'; +import { createRoot } from 'react-dom/client'; +import './index.css'; +import '@gitroom/extension/assets/styles/tailwind.css'; +import Popup from "@gitroom/extension/pages/popup/Popup"; + +function init() { + const rootContainer = document.querySelector("#__root"); + if (!rootContainer) throw new Error("Can't find Popup root element"); + const root = createRoot(rootContainer); + root.render(); +} + +init(); diff --git a/apps/extension/src/providers/list/linkedin.provider.ts b/apps/extension/src/providers/list/linkedin.provider.ts new file mode 100644 index 00000000..acb62dbb --- /dev/null +++ b/apps/extension/src/providers/list/linkedin.provider.ts @@ -0,0 +1,12 @@ +import { ProviderInterface } from "@gitroom/extension/providers/provider.interface"; + +export class LinkedinProvider implements ProviderInterface { + identifier = "linkedin"; + baseUrl = "https://www.linkedin.com"; + element = `.share-box-feed-entry__closed-share-box`; + attachTo = `[role="main"]`; + style = "light" as "light"; + findIdentifier = (element: HTMLElement) => { + return element.closest('[data-urn]').getAttribute("data-urn"); + }; +} diff --git a/apps/extension/src/providers/list/x.provider.ts b/apps/extension/src/providers/list/x.provider.ts new file mode 100644 index 00000000..df7f7c40 --- /dev/null +++ b/apps/extension/src/providers/list/x.provider.ts @@ -0,0 +1,24 @@ +import { ProviderInterface } from '@gitroom/extension/providers/provider.interface'; + +export class XProvider implements ProviderInterface { + identifier = 'x'; + baseUrl = 'https://x.com'; + element = `[data-testid="tweetTextarea_0_label"]`; + attachTo = `#react-root`; + style = "dark" as "dark"; + findIdentifier = (element: HTMLElement) => { + return ( + Array.from( + ( + element?.closest('article') || + element?.closest(`[aria-labelledby="modal-header"]`) + )?.querySelectorAll('a') || [] + ) + ?.find((p) => { + return p?.getAttribute('href')?.includes('/status/'); + }) + ?.getAttribute('href') + ?.split('/status/')?.[1] || window.location.href.split('/status/')?.[1] + ); + }; +} diff --git a/apps/extension/src/providers/provider.interface.ts b/apps/extension/src/providers/provider.interface.ts new file mode 100644 index 00000000..b7221211 --- /dev/null +++ b/apps/extension/src/providers/provider.interface.ts @@ -0,0 +1,8 @@ +export interface ProviderInterface { + identifier: string; + baseUrl: string; + element: string; + findIdentifier: (element: HTMLElement) => string; + attachTo: string; + style: 'dark' | 'light'; +} diff --git a/apps/extension/src/providers/provider.list.ts b/apps/extension/src/providers/provider.list.ts new file mode 100644 index 00000000..b0faf078 --- /dev/null +++ b/apps/extension/src/providers/provider.list.ts @@ -0,0 +1,8 @@ +import { XProvider } from './list/x.provider'; +import { ProviderInterface } from './provider.interface'; +import { LinkedinProvider } from './list/linkedin.provider'; + +export const ProviderList = [ + new XProvider(), + new LinkedinProvider(), +] satisfies ProviderInterface[] as ProviderInterface[]; diff --git a/apps/extension/src/utils/load.cookie.ts b/apps/extension/src/utils/load.cookie.ts new file mode 100644 index 00000000..48f0cac6 --- /dev/null +++ b/apps/extension/src/utils/load.cookie.ts @@ -0,0 +1,13 @@ +export const fetchCookie = (cookieName: string) => { + return chrome.runtime.sendMessage({ + action: "loadCookie", + cookieName, + }); +}; + +export const getCookie = async ( + cookies: chrome.cookies.Cookie[], + cookie: string, +) => { + // return cookies.find((c) => c.name === cookie).value; +}; diff --git a/apps/extension/src/utils/load.storage.ts b/apps/extension/src/utils/load.storage.ts new file mode 100644 index 00000000..309467de --- /dev/null +++ b/apps/extension/src/utils/load.storage.ts @@ -0,0 +1,6 @@ +export const fetchStorage = (key: string) => { + return chrome.runtime.sendMessage({ + action: "loadStorage", + key, + }); +}; diff --git a/apps/extension/src/utils/request.util.ts b/apps/extension/src/utils/request.util.ts new file mode 100644 index 00000000..0379965c --- /dev/null +++ b/apps/extension/src/utils/request.util.ts @@ -0,0 +1,34 @@ +const isDev = process.env.NODE_ENV === "development"; +export const sendRequest = ( + auth: string, + url: string, + method: "GET" | "POST", + body?: string, +) => { + return chrome.runtime.sendMessage({ + action: "makeHttpRequest", + url, + method, + body, + auth, + }); +}; + +export const fetchRequestUtil = async (request: any) => { + return ( + await fetch( + (isDev + ? "http://localhost:4200/v1/api" + : "https://platform.postiz.com/v1/api") + request.url, + { + method: request.method || "GET", + headers: { + "Content-Type": "application/json", + Authorization: request.auth, + // Add any auth headers here if needed + }, + ...(request.body ? { body: request.body } : {}), + }, + ) + ).json(); +}; diff --git a/apps/extension/src/utils/save.storage.ts b/apps/extension/src/utils/save.storage.ts new file mode 100644 index 00000000..6d9c19ea --- /dev/null +++ b/apps/extension/src/utils/save.storage.ts @@ -0,0 +1,7 @@ +export const saveStorage = (key: string, value: any) => { + return chrome.runtime.sendMessage({ + action: "saveStorage", + key, + value, + }); +}; \ No newline at end of file diff --git a/apps/extension/src/vite-env.d.ts b/apps/extension/src/vite-env.d.ts new file mode 100644 index 00000000..11f02fe2 --- /dev/null +++ b/apps/extension/src/vite-env.d.ts @@ -0,0 +1 @@ +/// diff --git a/apps/extension/tsconfig.json b/apps/extension/tsconfig.json new file mode 100644 index 00000000..24cdf3ee --- /dev/null +++ b/apps/extension/tsconfig.json @@ -0,0 +1,27 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "target": "esnext", + "types": ["vite/client", "node", "chrome"], + "lib": ["dom", "dom.iterable", "esnext"], + "allowJs": false, + "skipLibCheck": true, + "esModuleInterop": true, + "allowSyntheticDefaultImports": true, + "strict": true, + "forceConsistentCasingInFileNames": true, + "noFallthroughCasesInSwitch": true, + "module": "esnext", + "moduleResolution": "bundler", + "resolveJsonModule": true, + "noEmit": true, + "jsx": "react-jsx", + }, + "include": [ + "src", + "utils", + "vite.config.base.ts", + "vite.config.chrome.ts", + "vite.config.firefox.ts" + ], +} diff --git a/apps/extension/vite.config.base.ts b/apps/extension/vite.config.base.ts new file mode 100644 index 00000000..4ed39db2 --- /dev/null +++ b/apps/extension/vite.config.base.ts @@ -0,0 +1,66 @@ +import react from "@vitejs/plugin-react"; +import { resolve } from "path"; +import { ManifestV3Export } from "@crxjs/vite-plugin"; +import tailwindcss from "@tailwindcss/vite"; +import { defineConfig, BuildOptions } from "vite"; +import tsconfigPaths from "vite-tsconfig-paths"; +import { stripDevIcons, crxI18n } from "./custom-vite-plugins"; +import manifest from "./manifest.json"; +import devManifest from "./manifest.dev.json"; +import pkg from "./package.json"; +import { ProviderList } from "./src/providers/provider.list"; + +const isDev = process.env.NODE_ENV === "development"; +// set this flag to true, if you want localization support +const localize = false; + +const merge = isDev ? devManifest : ({} as ManifestV3Export); +const { matches, ...rest } = manifest?.content_scripts?.[0] || {}; + +export const baseManifest = { + ...manifest, + host_permissions: [ + ...ProviderList.map((p) => p.baseUrl + "/"), + isDev ? "http://localhost:4200/" : "https://platform.postiz.com/", + ], + permissions: [...(manifest.permissions || [])], + content_scripts: [ + { + matches: ProviderList.reduce( + (all, p) => [...all, p.baseUrl + "/*"], + [ + isDev + ? "http://localhost:4200/*" + : "https://platform.postiz.com/*", + ], + ), + ...rest, + }, + ], + version: pkg.version, + ...merge, + ...(localize + ? { + name: "__MSG_extName__", + description: "__MSG_extDescription__", + default_locale: "en", + } + : {}), +} as ManifestV3Export; + +export const baseBuildOptions: BuildOptions = { + sourcemap: isDev, + emptyOutDir: !isDev, +}; + +export default defineConfig({ + envPrefix: ["NEXT_PUBLIC_", "FRONTEND_URL"], + plugins: [ + tailwindcss(), + tsconfigPaths(), + react(), + stripDevIcons(isDev), + crxI18n({ localize, src: "./src/locales" }), + ], + publicDir: resolve(__dirname, "public"), +}); diff --git a/apps/extension/vite.config.chrome.ts b/apps/extension/vite.config.chrome.ts new file mode 100644 index 00000000..4a7aa752 --- /dev/null +++ b/apps/extension/vite.config.chrome.ts @@ -0,0 +1,52 @@ +import { resolve } from "path"; +import { mergeConfig, defineConfig } from "vite"; +import { crx, ManifestV3Export } from "@crxjs/vite-plugin"; +import baseConfig, { baseManifest, baseBuildOptions } from "./vite.config.base"; +import hotReloadExtension from "hot-reload-extension-vite"; + +const outDir = resolve(__dirname, "dist"); +const isDev = process.env.NODE_ENV === "development"; + +export default mergeConfig( + baseConfig, + defineConfig({ + plugins: [ + crx({ + manifest: { + ...baseManifest, + background: { + service_worker: "src/pages/background/index.ts", + type: "module", + }, + } as ManifestV3Export, + browser: "chrome", + contentScripts: { + injectCss: true, + }, + }), + ...(isDev + ? [ + hotReloadExtension({ + log: true, + backgroundPath: "src/pages/background/index.ts", + }), + ] + : []), + ], + build: { + ...baseBuildOptions, + outDir, + ...(isDev + ? { + rollupOptions: { + output: { + entryFileNames: "assets/[name].js", + chunkFileNames: "assets/[name].js", + assetFileNames: "assets/[name][extname]", + }, + }, + } + : {}), + }, + }), +); diff --git a/apps/extension/vite.config.firefox.ts b/apps/extension/vite.config.firefox.ts new file mode 100644 index 00000000..e24b7d25 --- /dev/null +++ b/apps/extension/vite.config.firefox.ts @@ -0,0 +1,31 @@ +import { resolve } from 'path'; +import { mergeConfig, defineConfig } from 'vite'; +import { crx, ManifestV3Export } from '@crxjs/vite-plugin'; +import baseConfig, { baseManifest, baseBuildOptions } from './vite.config.base' + +const outDir = resolve(__dirname, 'dist_firefox'); + +export default mergeConfig( + baseConfig, + defineConfig({ + plugins: [ + crx({ + manifest: { + ...baseManifest, + background: { + scripts: [ 'src/pages/background/index.ts' ] + }, + } as ManifestV3Export, + browser: 'firefox', + contentScripts: { + injectCss: true, + } + }) + ], + build: { + ...baseBuildOptions, + outDir + }, + publicDir: resolve(__dirname, 'public'), + }) +) diff --git a/apps/frontend/src/app/(modal)/layout.tsx b/apps/frontend/src/app/(modal)/layout.tsx new file mode 100644 index 00000000..b3a3a33e --- /dev/null +++ b/apps/frontend/src/app/(modal)/layout.tsx @@ -0,0 +1,10 @@ +import { ReactNode } from 'react'; +import { AppLayout } from '@gitroom/frontend/components/launches/layout.standalone'; + +export default async function AppLayoutIn({ + children, +}: { + children: ReactNode; +}) { + return {children}; +} diff --git a/apps/frontend/src/app/(modal)/modal/[style]/[platform]/page.tsx b/apps/frontend/src/app/(modal)/modal/[style]/[platform]/page.tsx new file mode 100644 index 00000000..73978fb5 --- /dev/null +++ b/apps/frontend/src/app/(modal)/modal/[style]/[platform]/page.tsx @@ -0,0 +1,11 @@ +'use client'; +import { StandaloneModal } from '@gitroom/frontend/components/standalone-modal/standalone.modal'; +import { usePathname } from 'next/navigation'; + +export default async function Modal() { + return ( +
+ +
+ ); +} diff --git a/apps/frontend/src/app/global.scss b/apps/frontend/src/app/global.scss index c919fd42..def97166 100644 --- a/apps/frontend/src/app/global.scss +++ b/apps/frontend/src/app/global.scss @@ -462,3 +462,7 @@ div div .set-font-family { padding-left: 5px; padding-right: 5px; } + +.hideCopilot .copilotKitPopup { + display: none !important; +} \ No newline at end of file diff --git a/apps/frontend/src/app/layout.tsx b/apps/frontend/src/app/layout.tsx index 68d46402..a275d788 100644 --- a/apps/frontend/src/app/layout.tsx +++ b/apps/frontend/src/app/layout.tsx @@ -28,7 +28,7 @@ export default async function AppLayout({ children }: { children: ReactNode }) { - + void; mutate: () => void; + padding?: string; + customClose?: () => void; onlyValues?: Array<{ content: string; id?: string; image?: Array<{ id: string; path: string }>; }>; }> = memo((props) => { - const { date, integrations: ints, reopenModal, mutate, onlyValues } = props; + const { + date, + integrations: ints, + reopenModal, + mutate, + onlyValues, + padding, + customClose, + } = props; const [customer, setCustomer] = useState(''); const [loading, setLoading] = useState(false); const [uploading, setUploading] = useState(false); @@ -292,6 +302,10 @@ export const AddEditModal: FC<{ 'Yes, close it!' ) ) { + if (customClose) { + customClose(); + return; + } modal.closeAll(); } }, [canUseClose]); @@ -441,6 +455,12 @@ export const AddEditModal: FC<{ ? 'Added successfully' : 'Updated successfully' ); + + if (customClose) { + setTimeout(() => { + customClose(); + }, 2000); + } modal.closeAll(); }, [ @@ -573,6 +593,7 @@ Here are the things you can do: className={clsx( 'flex flex-col md:flex-row p-[10px] rounded-[4px] bg-primary gap-[20px]' )} + style={{ padding }} > {uploading && (
diff --git a/apps/frontend/src/components/launches/layout.standalone.tsx b/apps/frontend/src/components/launches/layout.standalone.tsx new file mode 100644 index 00000000..a151d686 --- /dev/null +++ b/apps/frontend/src/components/launches/layout.standalone.tsx @@ -0,0 +1,33 @@ +'use client'; + +import { ReactNode, useMemo } from 'react'; +import { PreviewWrapper } from '@gitroom/frontend/components/preview/preview.wrapper'; +import { usePathname } from 'next/navigation'; +import dayjs from 'dayjs'; +import utc from 'dayjs/plugin/utc'; +dayjs.extend(utc); + +export const AppLayout = ({ children }: { children: ReactNode }) => { + const params = usePathname(); + const style = useMemo(() => { + const all = params.split('/'); + all.pop(); + return all.pop(); + }, [params]); + + return ( +
+ + {children} +
+ ); +} diff --git a/apps/frontend/src/components/preview/preview.wrapper.tsx b/apps/frontend/src/components/preview/preview.wrapper.tsx index 17434a5a..05b969b4 100644 --- a/apps/frontend/src/components/preview/preview.wrapper.tsx +++ b/apps/frontend/src/components/preview/preview.wrapper.tsx @@ -5,9 +5,13 @@ import { ContextWrapper } from '@gitroom/frontend/components/layout/user.context import { ReactNode, useCallback } from 'react'; import { useFetch } from '@gitroom/helpers/utils/custom.fetch'; import { Toaster } from '@gitroom/react/toaster/toaster'; +import { MantineWrapper } from '@gitroom/react/helpers/mantine.wrapper'; +import { useVariables } from '@gitroom/react/helpers/variable.context'; +import { CopilotKit } from '@copilotkit/react-core'; export const PreviewWrapper = ({ children }: { children: ReactNode }) => { const fetch = useFetch(); + const { backendUrl } = useVariables(); const load = useCallback(async (path: string) => { return await (await fetch(path)).json(); @@ -23,8 +27,15 @@ export const PreviewWrapper = ({ children }: { children: ReactNode }) => { return ( - - {children} + + + + {children} + + ); }; diff --git a/apps/frontend/src/components/standalone-modal/standalone.modal.tsx b/apps/frontend/src/components/standalone-modal/standalone.modal.tsx new file mode 100644 index 00000000..cac6438e --- /dev/null +++ b/apps/frontend/src/components/standalone-modal/standalone.modal.tsx @@ -0,0 +1,56 @@ +'use client'; +import 'reflect-metadata'; + +import { FC, useCallback } from 'react'; +import useSWR from 'swr'; +import { useFetch } from '@gitroom/helpers/utils/custom.fetch'; +import { AddEditModal } from '@gitroom/frontend/components/launches/add.edit.model'; +import dayjs from 'dayjs'; +import { usePathname } from 'next/navigation'; + +export const StandaloneModal: FC = () => { + const fetch = useFetch(); + const params = usePathname(); + const style = params.split('/').pop(); + const load = useCallback(async (path: string) => { + return (await (await fetch(path)).json()).integrations; + }, []); + + const loadDate = useCallback(async () => { + return (await (await fetch('/posts/find-slot')).json()).date; + }, []); + + const { + isLoading, + data: integrations, + mutate, + } = useSWR('/integrations/list', load, { + fallbackData: [], + }); + + const { + isLoading: isLoading2, + data, + } = useSWR('/posts/find-slot', loadDate, { + fallbackData: [], + }); + + if (isLoading || isLoading2) { + return null; + } + + return ( + { + window.parent.postMessage({ action: 'closeIframe' }, '*'); + }} + padding="50px" + mutate={() => {}} + integrations={integrations} + reopenModal={() => {}} + allIntegrations={integrations} + onlyValues={[{ content: 'asd', id: integrations[0].id, image: [] }]} + date={dayjs.utc(data).local()} + /> + ); +}; diff --git a/package.json b/package.json index f4edcac4..21d3f1d7 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,7 @@ }, "packageManager": "pnpm@10.6.1", "scripts": { - "dev": "pnpm run --filter ./apps/workers --filter ./apps/backend --filter ./apps/frontend --parallel dev", + "dev": "pnpm run --filter ./apps/extension --filter ./apps/workers --filter ./apps/backend --filter ./apps/frontend --parallel dev", "pm2": "pnpx concurrently \"pnpm run pm2-run\" \"pnpm run entryfile\"", "entryfile": "./entrypoint.sh", "pm2-run": "pm2 delete all || true && pnpm run prisma-db-push && pnpm run --parallel pm2 && pm2 logs", @@ -141,6 +141,7 @@ "fast-xml-parser": "^4.5.1", "google-auth-library": "^9.11.0", "googleapis": "^137.1.0", + "hot-reload-extension-vite": "^1.0.13", "ioredis": "^5.3.2", "json-to-graphql-query": "^2.2.5", "jsonwebtoken": "^9.0.2", @@ -195,12 +196,14 @@ "utf-8-validate": "^5.0.10", "uuid": "^10.0.0", "viem": "^2.22.9", + "webextension-polyfill": "^0.12.0", "ws": "^8.18.0", "yargs": "^17.7.2", "yup": "^1.4.0", "zod": "^3.24.1" }, "devDependencies": { + "@crxjs/vite-plugin": "^2.0.0-beta.32", "@nestjs/schematics": "^10.0.1", "@nestjs/testing": "^10.0.2", "@pmmmwh/react-refresh-webpack-plugin": "^0.5.7", @@ -208,8 +211,10 @@ "@swc-node/register": "1.9.2", "@swc/cli": "0.3.14", "@swc/core": "1.5.7", + "@tailwindcss/vite": "^4.0.17", "@testing-library/react": "15.0.6", "@types/cache-manager-redis-store": "^2.0.4", + "@types/chrome": "^0.0.319", "@types/cookie-parser": "^1.4.6", "@types/jest": "29.5.12", "@types/node": "18.16.9", @@ -217,6 +222,7 @@ "@types/react": "18.3.1", "@types/react-dom": "18.3.0", "@types/uuid": "^9.0.8", + "@types/webextension-polyfill": "^0.12.3", "@types/yargs": "^17.0.32", "@typescript-eslint/eslint-plugin": "7.18.0", "@typescript-eslint/parser": "7.18.0", @@ -232,21 +238,25 @@ "eslint-plugin-jsx-a11y": "6.7.1", "eslint-plugin-react": "7.32.2", "eslint-plugin-react-hooks": "4.6.0", + "fs-extra": "^11.3.0", "jest": "29.7.0", "jest-environment-jsdom": "29.7.0", "jest-environment-node": "^29.4.1", "jest-junit": "^16.0.0", "jest-mock-extended": "^4.0.0-beta1", "jsdom": "~22.1.0", + "nodemon": "^3.1.9", "postcss": "8.4.38", "prettier": "^2.6.2", "prisma": "^6.5.0", "react-refresh": "^0.10.0", "sass": "1.62.1", + "tailwindcss": "^4.1.5", "ts-jest": "^29.1.0", "ts-node": "10.9.2", "typescript": "5.5.4", "vite": "^5.0.0", + "vite-tsconfig-paths": "^5.1.4", "vitest": "1.6.0" }, "volta": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 235caccc..14513b50 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -32,13 +32,13 @@ importers: version: 1.8.9(@types/react@18.3.1)(graphql@16.11.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@copilotkit/runtime': specifier: ^1.8.9 - version: 1.8.9(@aws-crypto/sha256-js@5.2.0)(@aws-sdk/client-s3@3.802.0)(@aws-sdk/credential-provider-node@3.799.0)(@browserbasehq/sdk@2.5.0)(@browserbasehq/stagehand@1.14.0(@playwright/test@1.52.0)(bufferutil@4.0.9)(deepmerge@4.3.1)(dotenv@16.5.0)(openai@4.97.0(ws@8.18.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.4))(utf-8-validate@5.0.10)(zod@3.24.4))(@ibm-cloud/watsonx-ai@1.6.4(@langchain/core@0.3.51(openai@4.97.0(ws@8.18.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.4))))(@smithy/util-utf8@2.3.0)(axios@1.9.0)(crypto-js@4.2.0)(fast-xml-parser@4.5.3)(google-auth-library@9.15.1)(googleapis@137.1.0)(html-to-text@9.0.5)(ibm-cloud-sdk-core@5.3.2)(ignore@5.3.2)(ioredis@5.6.1)(jsdom@22.1.0(bufferutil@4.0.9)(canvas@2.11.2)(utf-8-validate@5.0.10))(jsonwebtoken@9.0.2)(lodash@4.17.21)(playwright@1.52.0)(redis@4.7.0)(ws@8.18.2(bufferutil@4.0.9)(utf-8-validate@5.0.10)) + version: 1.8.9(@aws-crypto/sha256-js@5.2.0)(@aws-sdk/client-s3@3.802.0)(@aws-sdk/credential-provider-node@3.799.0)(@browserbasehq/sdk@2.5.0)(@browserbasehq/stagehand@1.14.0(@playwright/test@1.52.0)(bufferutil@4.0.9)(deepmerge@4.3.1)(dotenv@16.5.0)(openai@4.97.0(ws@8.18.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.4))(utf-8-validate@5.0.10)(zod@3.24.4))(@ibm-cloud/watsonx-ai@1.6.4(@langchain/core@0.3.51(openai@4.97.0(ws@8.18.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.4))))(@smithy/util-utf8@2.3.0)(axios@1.9.0)(cheerio@1.0.0)(crypto-js@4.2.0)(fast-xml-parser@4.5.3)(google-auth-library@9.15.1)(googleapis@137.1.0)(html-to-text@9.0.5)(ibm-cloud-sdk-core@5.3.2)(ignore@5.3.2)(ioredis@5.6.1)(jsdom@22.1.0(bufferutil@4.0.9)(canvas@2.11.2)(utf-8-validate@5.0.10))(jsonwebtoken@9.0.2)(lodash@4.17.21)(playwright@1.52.0)(redis@4.7.0)(ws@8.18.2(bufferutil@4.0.9)(utf-8-validate@5.0.10)) '@hookform/resolvers': specifier: ^3.3.4 version: 3.10.0(react-hook-form@7.56.2(react@18.3.1)) '@langchain/community': specifier: ^0.3.40 - version: 0.3.42(5f58a536e8f4b4881e943b2cc0e336cc) + version: 0.3.42(9a70403282cad7df9fe3853e78fee122) '@langchain/core': specifier: ^0.3.44 version: 0.3.51(openai@4.97.0(ws@8.18.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.4)) @@ -110,7 +110,7 @@ importers: version: 19.7.2(@babel/traverse@7.27.1)(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.13))(@swc/types@0.1.7)(typescript@5.5.4))(@swc/core@1.5.7(@swc/helpers@0.5.13))(@types/node@18.16.9)(@zkochan/js-yaml@0.0.7)(babel-plugin-macros@3.1.0)(chokidar@3.5.3)(eslint@8.57.0)(nx@19.7.2(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.13))(@swc/types@0.1.7)(typescript@5.5.4))(@swc/core@1.5.7(@swc/helpers@0.5.13)))(ts-node@10.9.2(@swc/core@1.5.7(@swc/helpers@0.5.13))(@types/node@18.16.9)(typescript@5.5.4))(typescript@5.5.4) '@nx/next': specifier: 19.7.2 - version: 19.7.2(@babel/core@7.27.1)(@babel/traverse@7.27.1)(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.13))(@swc/types@0.1.7)(typescript@5.5.4))(@swc/core@1.5.7(@swc/helpers@0.5.13))(@types/node@18.16.9)(@zkochan/js-yaml@0.0.7)(bufferutil@4.0.9)(esbuild@0.25.3)(eslint@8.57.0)(next@14.2.28(@babel/core@7.27.1)(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.62.1))(nx@19.7.2(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.13))(@swc/types@0.1.7)(typescript@5.5.4))(@swc/core@1.5.7(@swc/helpers@0.5.13)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4)(utf-8-validate@5.0.10)(webpack@5.99.7(@swc/core@1.5.7(@swc/helpers@0.5.13))(esbuild@0.25.3)) + version: 19.7.2(@babel/core@7.27.1)(@babel/traverse@7.27.1)(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.13))(@swc/types@0.1.7)(typescript@5.5.4))(@swc/core@1.5.7(@swc/helpers@0.5.13))(@types/node@18.16.9)(@zkochan/js-yaml@0.0.7)(bufferutil@4.0.9)(esbuild@0.25.3)(eslint@8.57.0)(lightningcss@1.29.2)(next@14.2.28(@babel/core@7.27.1)(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.62.1))(nx@19.7.2(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.13))(@swc/types@0.1.7)(typescript@5.5.4))(@swc/core@1.5.7(@swc/helpers@0.5.13)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4)(utf-8-validate@5.0.10)(webpack@5.99.7(@swc/core@1.5.7(@swc/helpers@0.5.13))(esbuild@0.25.3)) '@nx/node': specifier: 19.7.2 version: 19.7.2(@babel/traverse@7.27.1)(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.13))(@swc/types@0.1.7)(typescript@5.5.4))(@swc/core@1.5.7(@swc/helpers@0.5.13))(@types/node@18.16.9)(@zkochan/js-yaml@0.0.7)(babel-plugin-macros@3.1.0)(eslint@8.57.0)(nx@19.7.2(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.13))(@swc/types@0.1.7)(typescript@5.5.4))(@swc/core@1.5.7(@swc/helpers@0.5.13)))(ts-node@10.9.2(@swc/core@1.5.7(@swc/helpers@0.5.13))(@types/node@18.16.9)(typescript@5.5.4))(typescript@5.5.4) @@ -119,10 +119,10 @@ importers: version: 19.7.2(@babel/traverse@7.27.1)(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.13))(@swc/types@0.1.7)(typescript@5.5.4))(@swc/core@1.5.7(@swc/helpers@0.5.13))(@types/node@18.16.9)(@zkochan/js-yaml@0.0.7)(bufferutil@4.0.9)(eslint@8.57.0)(nx@19.7.2(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.13))(@swc/types@0.1.7)(typescript@5.5.4))(@swc/core@1.5.7(@swc/helpers@0.5.13)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4)(utf-8-validate@5.0.10)(webpack@5.99.7(@swc/core@1.5.7(@swc/helpers@0.5.13))(esbuild@0.25.3)) '@nx/vite': specifier: 19.7.2 - version: 19.7.2(@babel/traverse@7.27.1)(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.13))(@swc/types@0.1.7)(typescript@5.5.4))(@swc/core@1.5.7(@swc/helpers@0.5.13))(@types/node@18.16.9)(nx@19.7.2(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.13))(@swc/types@0.1.7)(typescript@5.5.4))(@swc/core@1.5.7(@swc/helpers@0.5.13)))(typescript@5.5.4)(vite@5.4.19(@types/node@18.16.9)(less@4.1.3)(sass@1.62.1)(stylus@0.59.0)(terser@5.39.0))(vitest@1.6.0) + version: 19.7.2(@babel/traverse@7.27.1)(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.13))(@swc/types@0.1.7)(typescript@5.5.4))(@swc/core@1.5.7(@swc/helpers@0.5.13))(@types/node@18.16.9)(nx@19.7.2(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.13))(@swc/types@0.1.7)(typescript@5.5.4))(@swc/core@1.5.7(@swc/helpers@0.5.13)))(typescript@5.5.4)(vite@5.4.19(@types/node@18.16.9)(less@4.1.3)(lightningcss@1.29.2)(sass@1.62.1)(stylus@0.59.0)(terser@5.39.0))(vitest@1.6.0) '@nx/webpack': specifier: 19.7.2 - version: 19.7.2(@babel/traverse@7.27.1)(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.13))(@swc/types@0.1.7)(typescript@5.5.4))(@swc/core@1.5.7(@swc/helpers@0.5.13))(@types/node@18.16.9)(bufferutil@4.0.9)(esbuild@0.25.3)(nx@19.7.2(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.13))(@swc/types@0.1.7)(typescript@5.5.4))(@swc/core@1.5.7(@swc/helpers@0.5.13)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4)(utf-8-validate@5.0.10) + version: 19.7.2(@babel/traverse@7.27.1)(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.13))(@swc/types@0.1.7)(typescript@5.5.4))(@swc/core@1.5.7(@swc/helpers@0.5.13))(@types/node@18.16.9)(bufferutil@4.0.9)(esbuild@0.25.3)(lightningcss@1.29.2)(nx@19.7.2(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.13))(@swc/types@0.1.7)(typescript@5.5.4))(@swc/core@1.5.7(@swc/helpers@0.5.13)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4)(utf-8-validate@5.0.10) '@nx/workspace': specifier: 19.7.2 version: 19.7.2(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.13))(@swc/types@0.1.7)(typescript@5.5.4))(@swc/core@1.5.7(@swc/helpers@0.5.13)) @@ -303,6 +303,9 @@ importers: googleapis: specifier: ^137.1.0 version: 137.1.0 + hot-reload-extension-vite: + specifier: ^1.0.13 + version: 1.0.13(bufferutil@4.0.9)(utf-8-validate@5.0.10) ioredis: specifier: ^5.3.2 version: 5.6.1 @@ -465,6 +468,9 @@ importers: viem: specifier: ^2.22.9 version: 2.28.4(bufferutil@4.0.9)(typescript@5.5.4)(utf-8-validate@5.0.10)(zod@3.24.4) + webextension-polyfill: + specifier: ^0.12.0 + version: 0.12.0 ws: specifier: ^8.18.0 version: 8.18.2(bufferutil@4.0.9)(utf-8-validate@5.0.10) @@ -478,6 +484,9 @@ importers: specifier: ^3.24.1 version: 3.24.4 devDependencies: + '@crxjs/vite-plugin': + specifier: ^2.0.0-beta.32 + version: 2.0.0-beta.33 '@nestjs/schematics': specifier: ^10.0.1 version: 10.2.3(chokidar@3.5.3)(typescript@5.5.4) @@ -499,12 +508,18 @@ importers: '@swc/core': specifier: 1.5.7 version: 1.5.7(@swc/helpers@0.5.13) + '@tailwindcss/vite': + specifier: ^4.0.17 + version: 4.1.6(vite@5.4.19(@types/node@18.16.9)(less@4.1.3)(lightningcss@1.29.2)(sass@1.62.1)(stylus@0.59.0)(terser@5.39.0)) '@testing-library/react': specifier: 15.0.6 version: 15.0.6(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@types/cache-manager-redis-store': specifier: ^2.0.4 version: 2.0.4 + '@types/chrome': + specifier: ^0.0.319 + version: 0.0.319 '@types/cookie-parser': specifier: ^1.4.6 version: 1.4.8(@types/express@4.17.21) @@ -526,6 +541,9 @@ importers: '@types/uuid': specifier: ^9.0.8 version: 9.0.8 + '@types/webextension-polyfill': + specifier: ^0.12.3 + version: 0.12.3 '@types/yargs': specifier: ^17.0.32 version: 17.0.33 @@ -537,7 +555,7 @@ importers: version: 7.18.0(eslint@8.57.0)(typescript@5.5.4) '@vitejs/plugin-react': specifier: ^4.2.0 - version: 4.4.1(vite@5.4.19(@types/node@18.16.9)(less@4.1.3)(sass@1.62.1)(stylus@0.59.0)(terser@5.39.0)) + version: 4.4.1(vite@5.4.19(@types/node@18.16.9)(less@4.1.3)(lightningcss@1.29.2)(sass@1.62.1)(stylus@0.59.0)(terser@5.39.0)) '@vitest/coverage-v8': specifier: 1.6.0 version: 1.6.0(vitest@1.6.0) @@ -571,6 +589,9 @@ importers: eslint-plugin-react-hooks: specifier: 4.6.0 version: 4.6.0(eslint@8.57.0) + fs-extra: + specifier: ^11.3.0 + version: 11.3.0 jest: specifier: 29.7.0 version: 29.7.0(@types/node@18.16.9)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.5.7(@swc/helpers@0.5.13))(@types/node@18.16.9)(typescript@5.5.4)) @@ -589,6 +610,9 @@ importers: jsdom: specifier: ~22.1.0 version: 22.1.0(bufferutil@4.0.9)(canvas@2.11.2)(utf-8-validate@5.0.10) + nodemon: + specifier: ^3.1.9 + version: 3.1.10 postcss: specifier: 8.4.38 version: 8.4.38 @@ -615,10 +639,13 @@ importers: version: 5.5.4 vite: specifier: ^5.0.0 - version: 5.4.19(@types/node@18.16.9)(less@4.1.3)(sass@1.62.1)(stylus@0.59.0)(terser@5.39.0) + version: 5.4.19(@types/node@18.16.9)(less@4.1.3)(lightningcss@1.29.2)(sass@1.62.1)(stylus@0.59.0)(terser@5.39.0) + vite-tsconfig-paths: + specifier: ^5.1.4 + version: 5.1.4(typescript@5.5.4)(vite@5.4.19(@types/node@18.16.9)(less@4.1.3)(lightningcss@1.29.2)(sass@1.62.1)(stylus@0.59.0)(terser@5.39.0)) vitest: specifier: 1.6.0 - version: 1.6.0(@types/node@18.16.9)(@vitest/ui@1.6.0)(happy-dom@15.11.7)(jsdom@22.1.0(bufferutil@4.0.9)(canvas@2.11.2)(utf-8-validate@5.0.10))(less@4.1.3)(sass@1.62.1)(stylus@0.59.0)(terser@5.39.0) + version: 1.6.0(@types/node@18.16.9)(@vitest/ui@1.6.0)(happy-dom@15.11.7)(jsdom@22.1.0(bufferutil@4.0.9)(canvas@2.11.2)(utf-8-validate@5.0.10))(less@4.1.3)(lightningcss@1.29.2)(sass@1.62.1)(stylus@0.59.0)(terser@5.39.0) apps/backend: {} @@ -626,6 +653,8 @@ importers: apps/cron: {} + apps/extension: {} + apps/frontend: {} apps/workers: {} @@ -1702,6 +1731,9 @@ packages: '@copilotkit/shared@1.8.9': resolution: {integrity: sha512-KHwk3yI20k6e0HVkuB2NjpFv+XV0Po+INKhpNoUOYmpsfbqnTFQm+BoKPuFw1M5opGle/kRUU4Udd1tn4fc9pw==} + '@crxjs/vite-plugin@2.0.0-beta.33': + resolution: {integrity: sha512-sSVKX6d4LBfScK6QZ9Qqs94LZ25uY0yTxoe4EOVqQfYvxb7AhnVo/YCvzeT113BRzhFA3IBCmAhTUASXS2aPKw==} + '@cspotcode/source-map-support@0.8.1': resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} engines: {node: '>=12'} @@ -2348,6 +2380,10 @@ packages: resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} engines: {node: '>=12'} + '@isaacs/fs-minipass@4.0.1': + resolution: {integrity: sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==} + engines: {node: '>=18.0.0'} + '@isaacs/ttlcache@1.4.1': resolution: {integrity: sha512-RQgQ4uQ+pLbqXfOmieB91ejmLwvSgv9nLx6sT6sD83s7umBypgg+OIBOBbEUiJXrfpnp9j0mRhYYdzp9uqq3lA==} engines: {node: '>=12'} @@ -4538,6 +4574,10 @@ packages: '@repeaterjs/repeater@3.0.6': resolution: {integrity: sha512-Javneu5lsuhwNCryN+pXH93VPQ8g0dBX7wItHFgYiwQmzE1sVdg5tWHiOgHywzL2W21XQopa7IwIEnNbmeUJYA==} + '@rollup/pluginutils@4.2.1': + resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==} + engines: {node: '>= 8.0.0'} + '@rollup/rollup-android-arm-eabi@4.40.1': resolution: {integrity: sha512-kxz0YeeCrRUHz3zyqvd7n+TVRlNyTifBsmnmNPtk3hQURUyG9eAB+usz6DAwagMusjx/zb3AjvDUvhFGDAexGw==} cpu: [arm] @@ -5496,6 +5536,96 @@ packages: resolution: {integrity: sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==} engines: {node: '>=10'} + '@tailwindcss/node@4.1.6': + resolution: {integrity: sha512-ed6zQbgmKsjsVvodAS1q1Ld2BolEuxJOSyyNc+vhkjdmfNUDCmQnlXBfQkHrlzNmslxHsQU/bFmzcEbv4xXsLg==} + + '@tailwindcss/oxide-android-arm64@4.1.6': + resolution: {integrity: sha512-VHwwPiwXtdIvOvqT/0/FLH/pizTVu78FOnI9jQo64kSAikFSZT7K4pjyzoDpSMaveJTGyAKvDjuhxJxKfmvjiQ==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [android] + + '@tailwindcss/oxide-darwin-arm64@4.1.6': + resolution: {integrity: sha512-weINOCcqv1HVBIGptNrk7c6lWgSFFiQMcCpKM4tnVi5x8OY2v1FrV76jwLukfT6pL1hyajc06tyVmZFYXoxvhQ==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [darwin] + + '@tailwindcss/oxide-darwin-x64@4.1.6': + resolution: {integrity: sha512-3FzekhHG0ww1zQjQ1lPoq0wPrAIVXAbUkWdWM8u5BnYFZgb9ja5ejBqyTgjpo5mfy0hFOoMnMuVDI+7CXhXZaQ==} + engines: {node: '>= 10'} + cpu: [x64] + os: [darwin] + + '@tailwindcss/oxide-freebsd-x64@4.1.6': + resolution: {integrity: sha512-4m5F5lpkBZhVQJq53oe5XgJ+aFYWdrgkMwViHjRsES3KEu2m1udR21B1I77RUqie0ZYNscFzY1v9aDssMBZ/1w==} + engines: {node: '>= 10'} + cpu: [x64] + os: [freebsd] + + '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.6': + resolution: {integrity: sha512-qU0rHnA9P/ZoaDKouU1oGPxPWzDKtIfX7eOGi5jOWJKdxieUJdVV+CxWZOpDWlYTd4N3sFQvcnVLJWJ1cLP5TA==} + engines: {node: '>= 10'} + cpu: [arm] + os: [linux] + + '@tailwindcss/oxide-linux-arm64-gnu@4.1.6': + resolution: {integrity: sha512-jXy3TSTrbfgyd3UxPQeXC3wm8DAgmigzar99Km9Sf6L2OFfn/k+u3VqmpgHQw5QNfCpPe43em6Q7V76Wx7ogIQ==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + + '@tailwindcss/oxide-linux-arm64-musl@4.1.6': + resolution: {integrity: sha512-8kjivE5xW0qAQ9HX9reVFmZj3t+VmljDLVRJpVBEoTR+3bKMnvC7iLcoSGNIUJGOZy1mLVq7x/gerVg0T+IsYw==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + + '@tailwindcss/oxide-linux-x64-gnu@4.1.6': + resolution: {integrity: sha512-A4spQhwnWVpjWDLXnOW9PSinO2PTKJQNRmL/aIl2U/O+RARls8doDfs6R41+DAXK0ccacvRyDpR46aVQJJCoCg==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + + '@tailwindcss/oxide-linux-x64-musl@4.1.6': + resolution: {integrity: sha512-YRee+6ZqdzgiQAHVSLfl3RYmqeeaWVCk796MhXhLQu2kJu2COHBkqlqsqKYx3p8Hmk5pGCQd2jTAoMWWFeyG2A==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + + '@tailwindcss/oxide-wasm32-wasi@4.1.6': + resolution: {integrity: sha512-qAp4ooTYrBQ5pk5jgg54/U1rCJ/9FLYOkkQ/nTE+bVMseMfB6O7J8zb19YTpWuu4UdfRf5zzOrNKfl6T64MNrQ==} + engines: {node: '>=14.0.0'} + cpu: [wasm32] + bundledDependencies: + - '@napi-rs/wasm-runtime' + - '@emnapi/core' + - '@emnapi/runtime' + - '@tybys/wasm-util' + - '@emnapi/wasi-threads' + - tslib + + '@tailwindcss/oxide-win32-arm64-msvc@4.1.6': + resolution: {integrity: sha512-nqpDWk0Xr8ELO/nfRUDjk1pc9wDJ3ObeDdNMHLaymc4PJBWj11gdPCWZFKSK2AVKjJQC7J2EfmSmf47GN7OuLg==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [win32] + + '@tailwindcss/oxide-win32-x64-msvc@4.1.6': + resolution: {integrity: sha512-5k9xF33xkfKpo9wCvYcegQ21VwIBU1/qEbYlVukfEIyQbEA47uK8AAwS7NVjNE3vHzcmxMYwd0l6L4pPjjm1rQ==} + engines: {node: '>= 10'} + cpu: [x64] + os: [win32] + + '@tailwindcss/oxide@4.1.6': + resolution: {integrity: sha512-0bpEBQiGx+227fW4G0fLQ8vuvyy5rsB1YIYNapTq3aRsJ9taF3f5cCaovDjN5pUGKKzcpMrZst/mhNaKAPOHOA==} + engines: {node: '>= 10'} + + '@tailwindcss/vite@4.1.6': + resolution: {integrity: sha512-zjtqjDeY1w3g2beYQtrMAf51n5G7o+UwmyOjtsDMP7t6XyoRMOidcoKP32ps7AkNOHIXEOK0bhIC05dj8oJp4w==} + peerDependencies: + vite: ^5.2.0 || ^6 + '@tanstack/react-virtual@3.13.7': resolution: {integrity: sha512-swd9XaQJV6nE5aVTlKwhag3lmDBF6mDAhru1eAIuqGl+vau4m8h8sdzOBV3aka/sayVvpJzsUgvHr5N0MuMWDg==} peerDependencies: @@ -5647,6 +5777,9 @@ packages: '@types/caseless@0.12.5': resolution: {integrity: sha512-hWtVTC2q7hc7xZ/RLbxapMvDMgUnDvKvMOpKal4DrMyfGBUfB1oKaZlIRr6mJL+If3bAP6sV/QneGzF6tJjZDg==} + '@types/chrome@0.0.319': + resolution: {integrity: sha512-k+E1b3VrWEj7OqQ22cPxHs3o/jrYWEEDGaocwjlIGtul+WrAn1vaBANc0iurgm0aXkyIVs7aH3ce0lpr96XYhw==} + '@types/concat-stream@2.0.3': resolution: {integrity: sha512-3qe4oQAPNwVNwK4C9c8u+VJqv9kez+2MR4qJpoPFfXtgxxif1QbFusvXzK0/Wra2VX07smostI2VMmJNSpZjuQ==} @@ -5694,9 +5827,18 @@ packages: '@types/facebook-nodejs-business-sdk@20.0.3': resolution: {integrity: sha512-x/iilSCliq/YqJWTiVoqnTsILF+hluSJdghhZF/cgWXHBNY+rHBGR5oGa3AfVyG5FVEXw/R/0fZAVui87pq7OA==} + '@types/filesystem@0.0.36': + resolution: {integrity: sha512-vPDXOZuannb9FZdxgHnqSwAG/jvdGM8Wq+6N4D/d80z+D4HWH+bItqsZaVRQykAn6WEVeEkLm2oQigyHtgb0RA==} + + '@types/filewriter@0.0.33': + resolution: {integrity: sha512-xFU8ZXTw4gd358lb2jw25nxY9QAgqn2+bKKjKOYfNCzN4DKCFetK7sPtrlpg66Ywe3vWY9FNxprZawAh9wfJ3g==} + '@types/graceful-fs@4.1.9': resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==} + '@types/har-format@1.2.16': + resolution: {integrity: sha512-fluxdy7ryD3MV6h8pTfTYpy/xQzCFC7m89nOH9y94cNqJ1mDIDPut7MnRHI3F6qRmh/cT2fUjG1MLdCNb4hE9A==} + '@types/hast@2.3.10': resolution: {integrity: sha512-McWspRw8xx8J9HurkVBfYj0xKoE25tOFlHGdx4MJ5xORQrMGZNqJhVQWaIbm6Oyla5kYOXtDiopzKRJzEOkwJw==} @@ -5906,6 +6048,9 @@ packages: '@types/validator@13.15.0': resolution: {integrity: sha512-nh7nrWhLr6CBq9ldtw0wx+z9wKnnv/uTVLA9g/3/TcOYxbpOSZE+MhKPmWqU+K0NvThjhv12uD8MuqijB0WzEA==} + '@types/webextension-polyfill@0.12.3': + resolution: {integrity: sha512-F58aDVSeN/MjUGazXo/cPsmR76EvqQhQ1v4x23hFjUX0cfAJYE+JBWwiOGW36/VJGGxoH74sVlRIF3z7SJCKyg==} + '@types/ws@7.4.7': resolution: {integrity: sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==} @@ -6388,6 +6533,9 @@ packages: '@webassemblyjs/wast-printer@1.14.1': resolution: {integrity: sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==} + '@webcomponents/custom-elements@1.6.0': + resolution: {integrity: sha512-CqTpxOlUCPWRNUPZDxT5v2NnHXA4oox612iUGnmTUGQFhZ1Gkj8kirtl/2wcF6MqX7+PqqicZzOCBKKfIn0dww==} + '@whatwg-node/disposablestack@0.0.6': resolution: {integrity: sha512-LOtTn+JgJvX8WfBVJtF08TGrdjuFzGJc4mkP8EdDI8ADbvO7kiexYep1o8dwnt0okb0jYclCDXF13xU7Ge4zSw==} engines: {node: '>=18.0.0'} @@ -7214,6 +7362,13 @@ packages: check-error@1.0.3: resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==} + cheerio-select@2.1.0: + resolution: {integrity: sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==} + + cheerio@1.0.0: + resolution: {integrity: sha512-quS9HgjQpdaXOvsZz82Oz7uxtXiy6UIsIQcpBj7HRw2M63Skasm9qlDocAM7jNuaxdhpPU7c4kJN+gA5MCu4ww==} + engines: {node: '>=18.17'} + chokidar@3.5.3: resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} engines: {node: '>= 8.10.0'} @@ -7230,6 +7385,10 @@ packages: resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} engines: {node: '>=10'} + chownr@3.0.0: + resolution: {integrity: sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==} + engines: {node: '>=18'} + chrome-launcher@0.15.2: resolution: {integrity: sha512-zdLEwNo3aUVzIhKhTtXfxhdvZhUghrnmkvcAq2NoDd+LeOHKf03H5jwZ8T/STsAlzyALkBVK552iaG1fGf1xVQ==} engines: {node: '>=12.13.0'} @@ -8192,6 +8351,9 @@ packages: resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==} engines: {node: '>= 0.8'} + encoding-sniffer@0.2.0: + resolution: {integrity: sha512-ju7Wq1kg04I3HtiYIOrUrdfdDvkyO9s5XM8QAj/bN61Yo/Vb4vgJxy5vi4Yxk01gWHbrofpPtpxM8bKger9jhg==} + end-of-stream@1.4.4: resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} @@ -8247,6 +8409,9 @@ packages: resolution: {integrity: sha512-uDn+FE1yrDzyC0pCo961B2IHbdM8y/ACZsKD4dG6WqrjV53BADjwa7D+1aom2rsNVfLyDgU/eigvlJGJ08OQ4w==} engines: {node: '>= 0.4'} + es-module-lexer@0.10.5: + resolution: {integrity: sha512-+7IwY/kiGAacQfY+YBhKMvEmyAJnw5grTUgjG85Pe7vcUI/6b7pZjZG8nQ7+48YhzEAEqrEgD2dCz/JIK+AYvw==} + es-module-lexer@1.7.0: resolution: {integrity: sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==} @@ -8472,6 +8637,9 @@ packages: estree-util-is-identifier-name@3.0.0: resolution: {integrity: sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==} + estree-walker@2.0.2: + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + estree-walker@3.0.3: resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} @@ -9088,6 +9256,9 @@ packages: resolution: {integrity: sha512-wiSuFQLZ+urS9x2gGPl1H5drc5twabmm4m2gTR27XDFyjUHJUNsS8o/2aKyIF6IoBaR630atdher0XJ5g6OMmA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + globrex@0.1.2: + resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==} + google-auth-library@8.9.0: resolution: {integrity: sha512-f7aQCJODJFmYWN6PeNKzgvy9LI2tYmXnzpNDHEjG5sDNPgGb2FXQyTBnXeSH+PAtpKESFD+LmHw3Ox3mN7e1Fg==} engines: {node: '>=12'} @@ -9190,6 +9361,10 @@ packages: resolution: {integrity: sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==} engines: {node: '>= 0.4'} + has-flag@3.0.0: + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} + engines: {node: '>=4'} + has-flag@4.0.0: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} engines: {node: '>=8'} @@ -9333,6 +9508,9 @@ packages: resolution: {integrity: sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==} engines: {node: ^16.14.0 || >=18.0.0} + hot-reload-extension-vite@1.0.13: + resolution: {integrity: sha512-bX9Bcvhay+xwVinLb/NdoA85NDAixbZ4xcmOyibvHjDjIzw1qllEGfN4LnoAi1jSfH0Mv5Sf5WrbplJS6IaMmg==} + hpack.js@2.1.6: resolution: {integrity: sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==} @@ -9359,6 +9537,9 @@ packages: htmlparser2@8.0.2: resolution: {integrity: sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==} + htmlparser2@9.1.0: + resolution: {integrity: sha512-5zfg6mHUoaer/97TxnGpxmbR7zJtPwIYFMZ/H5ucTlPZhKvtum05yiPK3Mgai3a0DyVxv7qYqoweaEd2nrYQzQ==} + http-assert@1.5.0: resolution: {integrity: sha512-uPpH7OKX4H25hBmU6G1jWNaqJGpTXxey+YOUizJUAgu0AjLUeC8D73hTrhvDS5D+GJN1DN1+hhc/eF/wpxtp0w==} engines: {node: '>= 0.8'} @@ -9481,6 +9662,9 @@ packages: ieee754@1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + ignore-by-default@1.0.1: + resolution: {integrity: sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==} + ignore@5.3.2: resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} engines: {node: '>= 4'} @@ -10096,6 +10280,10 @@ packages: resolution: {integrity: sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==} hasBin: true + jiti@2.4.2: + resolution: {integrity: sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==} + hasBin: true + jose@5.10.0: resolution: {integrity: sha512-s+3Al/p9g32Iq+oqXxkW//7jk2Vig6FF1CFqzVXoTUXt2qz89YWbL+OwS17NFYEvxC35n0FKeGO2LGYSxeM2Gg==} @@ -10450,6 +10638,70 @@ packages: lighthouse-logger@1.4.2: resolution: {integrity: sha512-gPWxznF6TKmUHrOQjlVo2UbaL2EJ71mb2CCeRs/2qBpi4L/g4LUVc9+3lKQ6DTUZwJswfM7ainGrLO1+fOqa2g==} + lightningcss-darwin-arm64@1.29.2: + resolution: {integrity: sha512-cK/eMabSViKn/PG8U/a7aCorpeKLMlK0bQeNHmdb7qUnBkNPnL+oV5DjJUo0kqWsJUapZsM4jCfYItbqBDvlcA==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [darwin] + + lightningcss-darwin-x64@1.29.2: + resolution: {integrity: sha512-j5qYxamyQw4kDXX5hnnCKMf3mLlHvG44f24Qyi2965/Ycz829MYqjrVg2H8BidybHBp9kom4D7DR5VqCKDXS0w==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [darwin] + + lightningcss-freebsd-x64@1.29.2: + resolution: {integrity: sha512-wDk7M2tM78Ii8ek9YjnY8MjV5f5JN2qNVO+/0BAGZRvXKtQrBC4/cn4ssQIpKIPP44YXw6gFdpUF+Ps+RGsCwg==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [freebsd] + + lightningcss-linux-arm-gnueabihf@1.29.2: + resolution: {integrity: sha512-IRUrOrAF2Z+KExdExe3Rz7NSTuuJ2HvCGlMKoquK5pjvo2JY4Rybr+NrKnq0U0hZnx5AnGsuFHjGnNT14w26sg==} + engines: {node: '>= 12.0.0'} + cpu: [arm] + os: [linux] + + lightningcss-linux-arm64-gnu@1.29.2: + resolution: {integrity: sha512-KKCpOlmhdjvUTX/mBuaKemp0oeDIBBLFiU5Fnqxh1/DZ4JPZi4evEH7TKoSBFOSOV3J7iEmmBaw/8dpiUvRKlQ==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [linux] + + lightningcss-linux-arm64-musl@1.29.2: + resolution: {integrity: sha512-Q64eM1bPlOOUgxFmoPUefqzY1yV3ctFPE6d/Vt7WzLW4rKTv7MyYNky+FWxRpLkNASTnKQUaiMJ87zNODIrrKQ==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [linux] + + lightningcss-linux-x64-gnu@1.29.2: + resolution: {integrity: sha512-0v6idDCPG6epLXtBH/RPkHvYx74CVziHo6TMYga8O2EiQApnUPZsbR9nFNrg2cgBzk1AYqEd95TlrsL7nYABQg==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [linux] + + lightningcss-linux-x64-musl@1.29.2: + resolution: {integrity: sha512-rMpz2yawkgGT8RULc5S4WiZopVMOFWjiItBT7aSfDX4NQav6M44rhn5hjtkKzB+wMTRlLLqxkeYEtQ3dd9696w==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [linux] + + lightningcss-win32-arm64-msvc@1.29.2: + resolution: {integrity: sha512-nL7zRW6evGQqYVu/bKGK+zShyz8OVzsCotFgc7judbt6wnB2KbiKKJwBE4SGoDBQ1O94RjW4asrCjQL4i8Fhbw==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [win32] + + lightningcss-win32-x64-msvc@1.29.2: + resolution: {integrity: sha512-EdIUW3B2vLuHmv7urfzMI/h2fmlnOQBk1xlsDxkN1tCWKjNFjfLhGxYk8C8mzpSfr+A6jFFIi8fU6LbQGsRWjA==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [win32] + + lightningcss@1.29.2: + resolution: {integrity: sha512-6b6gd/RUXKaw5keVdSEtqFVdzWnU5jMxTUjA2bVcMNPLwSQ08Sv/UodBVtETLCn7k4S1Ibxwh7k68IwLZPgKaA==} + engines: {node: '>= 12.0.0'} + lilconfig@2.1.0: resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} engines: {node: '>=10'} @@ -11184,6 +11436,10 @@ packages: resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} engines: {node: '>= 8'} + minizlib@3.0.2: + resolution: {integrity: sha512-oG62iEk+CYt5Xj2YqI5Xi9xWUeZhDI8jjQmC5oThVH5JGCTgIjr7ciJDzC7MBzYd//WvR1OTmP5Q38Q8ShQtVA==} + engines: {node: '>= 18'} + mixwith@0.1.1: resolution: {integrity: sha512-DQsf/liljH/9e+94jR+xfK8vlKceeKdOM9H9UEXLwGuvEEpO6debNtJ9yt1ZKzPKPrwqGxzMdu0BR1fnQb6i4A==} @@ -11196,6 +11452,11 @@ packages: engines: {node: '>=10'} hasBin: true + mkdirp@3.0.1: + resolution: {integrity: sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==} + engines: {node: '>=10'} + hasBin: true + mlly@1.7.4: resolution: {integrity: sha512-qmdSIPC4bDJXgZTCR7XosJiNKySV7O215tsPtDN9iEO/7q/76b/ijtgRu/+epFXSJhijtTCCGp3DWS549P3xKw==} @@ -11443,6 +11704,11 @@ packages: resolution: {integrity: sha512-Z+iLaBGVaSjbIzQ4pX6XV41HrooLsQ10ZWPUehGmuantvzWoDVBnmsdUcOIDM1t+yPor5pDhVlDESgOMEGxhHA==} engines: {node: '>=6.0.0'} + nodemon@3.1.10: + resolution: {integrity: sha512-WDjw3pJ0/0jMFmyNDp3gvY2YizjLmmOUQo6DEBY+JgdvW/yQ9mEeSw6H5ythl5Ny2ytb7f9C2nIbjSxMNzbJXw==} + engines: {node: '>=10'} + hasBin: true + nopt@5.0.0: resolution: {integrity: sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==} engines: {node: '>=6'} @@ -11810,6 +12076,12 @@ packages: resolution: {integrity: sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==} engines: {node: '>=0.10.0'} + parse5-htmlparser2-tree-adapter@7.1.0: + resolution: {integrity: sha512-ruw5xyKs6lrpo9x9rCZqZZnIUntICjQAd0Wsmp396Ul9lN/h+ifgVV1x1gZHi8euej6wTfpqX8j+BFQxF0NS/g==} + + parse5-parser-stream@7.1.2: + resolution: {integrity: sha512-JyeQc9iwFLn5TbvvqACIF/VXG6abODeB3Fwmv/TGdLk2LfbWkaySGY72at4+Ty7EkPZj854u4CrICqNk2qIbow==} + parse5@4.0.0: resolution: {integrity: sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==} @@ -12379,6 +12651,9 @@ packages: psl@1.15.0: resolution: {integrity: sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==} + pstree.remy@1.1.8: + resolution: {integrity: sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==} + public-encrypt@4.0.3: resolution: {integrity: sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==} @@ -12633,6 +12908,10 @@ packages: resolution: {integrity: sha512-PgidR3wST3dDYKr6b4pJoqQFpPGNKDSCDx4cZoshjXipw3LzO7mG1My2pwEzz2JVkF+inx3xRpDeQLFQGH/hsQ==} engines: {node: '>=0.10.0'} + react-refresh@0.13.0: + resolution: {integrity: sha512-XP8A9BT0CpRBD+NYLLeIhld/RqG9+gktUjW1FkE+Vm7OCinbG1SshcK5tb9ls4kzvjZr9mOQc7HYgBngEyPAXg==} + engines: {node: '>=0.10.0'} + react-refresh@0.14.2: resolution: {integrity: sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==} engines: {node: '>=0.10.0'} @@ -13026,6 +13305,11 @@ packages: ripemd160@2.0.2: resolution: {integrity: sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==} + rollup@2.79.2: + resolution: {integrity: sha512-fS6iqSPZDs3dr/y7Od6y5nha8dW1YnbgtsyotCVvoFGKbERG++CVRFv1meyGDE1SNItQA8BrnCw7ScdAhRJ3XQ==} + engines: {node: '>=10.0.0'} + hasBin: true + rollup@4.40.1: resolution: {integrity: sha512-C5VvvgCCyfyotVITIAv+4efVytl5F7wt+/I2i9q9GZcEXW9BP52YYOXC58igUi+LFZVHukErIIqQSWwv/M3WRw==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} @@ -13063,6 +13347,9 @@ packages: resolution: {integrity: sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==} engines: {npm: '>=2.0.0'} + rxjs@7.5.7: + resolution: {integrity: sha512-z9MzKh/UcOqB3i20H6rtrlaE/CgjLOvheWK/9ILrbhROGTweAi1BaFsTT9FbwZi5Trr1qNRs+MXkhmR06awzQA==} + rxjs@7.8.1: resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} @@ -13334,6 +13621,10 @@ packages: simple-swizzle@0.2.2: resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} + simple-update-notifier@2.0.0: + resolution: {integrity: sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==} + engines: {node: '>=10'} + simple-wcswidth@1.0.1: resolution: {integrity: sha512-xMO/8eNREtaROt7tJvWJqHBDTMFN4eiQ5I4JRMuilwfnFcV5W9u7RUkueNkdw0jPqGMX36iCywelS5yilTuOxg==} @@ -13728,6 +14019,10 @@ packages: resolution: {integrity: sha512-uV+TFRZdXsqXTL2pRvujROjdZQ4RAlBUS5BTh9IGm+jTqQntYThciG/qu57Gs69yjnVUSqdxF9YLmSnpupBW9A==} engines: {node: '>=14.0.0'} + supports-color@5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} + supports-color@7.2.0: resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} engines: {node: '>=8'} @@ -13789,6 +14084,9 @@ packages: engines: {node: '>=14.0.0'} hasBin: true + tailwindcss@4.1.6: + resolution: {integrity: sha512-j0cGLTreM6u4OWzBeLBpycK0WIh8w7kSwcUsQZoGLHZ7xDTdM69lN64AgoIEEwFi0tnhs4wSykUa5YWxAzgFYg==} + tapable@2.2.1: resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} engines: {node: '>=6'} @@ -13801,6 +14099,10 @@ packages: resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} engines: {node: '>=10'} + tar@7.4.3: + resolution: {integrity: sha512-5S7Va8hKfV7W5U6g3aYxXmlPoZVAwUMy9AOKyF2fVuZa2UD3qZjg578OrLRt8PcNN1PleVaL/5/yYATNL0ICUw==} + engines: {node: '>=18'} + telejson@7.2.0: resolution: {integrity: sha512-1QTEcJkJEhc8OnStBx/ILRu5J2p0GjvWsBx56bmZRqnrkdBMUe+nX92jxV+p3dB4CP6PZCdJMQJwCggkNBMzkQ==} @@ -13952,6 +14254,10 @@ packages: resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==} engines: {node: '>=6'} + touch@3.1.1: + resolution: {integrity: sha512-r0eojU4bI8MnHr8c5bNo7lJDdI2qXlWWJk6a9EAFG7vbhTjElYhBVS3/miuE0uOuoLdb8Mc/rVfsmm6eo5o9GA==} + hasBin: true + tough-cookie@2.5.0: resolution: {integrity: sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==} engines: {node: '>=0.8'} @@ -14079,6 +14385,16 @@ packages: '@swc/wasm': optional: true + tsconfck@3.1.5: + resolution: {integrity: sha512-CLDfGgUp7XPswWnezWwsCRxNmgQjhYq3VXHM0/XIRxhVrKw0M1if9agzryh1QS3nxjCROvV+xWxoJO1YctzzWg==} + engines: {node: ^18 || >=20} + hasBin: true + peerDependencies: + typescript: ^5.0.0 + peerDependenciesMeta: + typescript: + optional: true + tsconfig-paths-webpack-plugin@4.0.0: resolution: {integrity: sha512-fw/7265mIWukrSHd0i+wSwx64kYUSAKPfxRDksjKIYTxSAp9W9/xcZVBF4Kl0eqQd5eBpAQ/oQrc5RyM/0c1GQ==} engines: {node: '>=10.13.0'} @@ -14237,9 +14553,16 @@ packages: uncrypto@0.1.3: resolution: {integrity: sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==} + undefsafe@2.0.5: + resolution: {integrity: sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==} + undici-types@5.26.5: resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} + undici@6.21.2: + resolution: {integrity: sha512-uROZWze0R0itiAKVPsYhFov9LxrPMHLMEQFszeI2gCN6bnIIZ8twzBCJcN2LJrBBLfrP0t1FW0g+JmKVl8Vk1g==} + engines: {node: '>=18.17'} + unicode-canonical-property-names-ecmascript@2.0.1: resolution: {integrity: sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==} engines: {node: '>=4'} @@ -14618,6 +14941,14 @@ packages: engines: {node: ^18.0.0 || >=20.0.0} hasBin: true + vite-tsconfig-paths@5.1.4: + resolution: {integrity: sha512-cYj0LRuLV2c2sMqhqhGpaO3LretdtMn/BVX4cPLanIZuwwrkVl+lK84E/miEXkCHWXuq65rhNN4rXsBcOB3S4w==} + peerDependencies: + vite: '*' + peerDependenciesMeta: + vite: + optional: true + vite@5.4.19: resolution: {integrity: sha512-qO3aKv3HoQC8QKiNSTuUM1l9o/XX3+c+VTgLHbJWHZGeTPVAg2XwazI9UWzoxjIJCGCV2zU60uqMzjeLZuULqA==} engines: {node: ^18.0.0 || >=20.0.0} @@ -14711,6 +15042,9 @@ packages: web-vitals@4.2.4: resolution: {integrity: sha512-r4DIlprAGwJ7YM11VZp4R884m0Vmgr6EAKe3P+kO0PPj3Unqyvv59rczf6UiGcb9Z8QxZVcqKNwv/g0WNdWwsw==} + webextension-polyfill@0.12.0: + resolution: {integrity: sha512-97TBmpoWJEE+3nFBQ4VocyCdLKfw54rFaJ6EVQYLBCXqCIpLSZkwGgASpv4oPt9gdKCJ80RJlcmNzNn008Ag6Q==} + webidl-conversions@3.0.1: resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} @@ -14798,6 +15132,10 @@ packages: resolution: {integrity: sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==} engines: {node: '>=12'} + whatwg-encoding@3.1.1: + resolution: {integrity: sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==} + engines: {node: '>=18'} + whatwg-fetch@3.6.20: resolution: {integrity: sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg==} @@ -14805,6 +15143,10 @@ packages: resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==} engines: {node: '>=12'} + whatwg-mimetype@4.0.0: + resolution: {integrity: sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==} + engines: {node: '>=18'} + whatwg-url@11.0.0: resolution: {integrity: sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==} engines: {node: '>=12'} @@ -15004,6 +15346,10 @@ packages: yallist@4.0.0: resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + yallist@5.0.0: + resolution: {integrity: sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==} + engines: {node: '>=18'} + yaml@1.10.2: resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} engines: {node: '>= 6'} @@ -15833,7 +16179,7 @@ snapshots: '@babel/traverse': 7.27.1 '@babel/types': 7.27.1 convert-source-map: 2.0.0 - debug: 4.4.0 + debug: 4.4.0(supports-color@5.5.0) gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 @@ -15885,7 +16231,7 @@ snapshots: '@babel/core': 7.27.1 '@babel/helper-compilation-targets': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 - debug: 4.4.0 + debug: 4.4.0(supports-color@5.5.0) lodash.debounce: 4.0.8 resolve: 1.22.10 transitivePeerDependencies: @@ -16622,7 +16968,7 @@ snapshots: '@babel/parser': 7.27.1 '@babel/template': 7.27.1 '@babel/types': 7.27.1 - debug: 4.4.0 + debug: 4.4.0(supports-color@5.5.0) globals: 11.12.0 transitivePeerDependencies: - supports-color @@ -16791,7 +17137,7 @@ snapshots: - encoding - graphql - '@copilotkit/runtime@1.8.9(@aws-crypto/sha256-js@5.2.0)(@aws-sdk/client-s3@3.802.0)(@aws-sdk/credential-provider-node@3.799.0)(@browserbasehq/sdk@2.5.0)(@browserbasehq/stagehand@1.14.0(@playwright/test@1.52.0)(bufferutil@4.0.9)(deepmerge@4.3.1)(dotenv@16.5.0)(openai@4.97.0(ws@8.18.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.4))(utf-8-validate@5.0.10)(zod@3.24.4))(@ibm-cloud/watsonx-ai@1.6.4(@langchain/core@0.3.51(openai@4.97.0(ws@8.18.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.4))))(@smithy/util-utf8@2.3.0)(axios@1.9.0)(crypto-js@4.2.0)(fast-xml-parser@4.5.3)(google-auth-library@9.15.1)(googleapis@137.1.0)(html-to-text@9.0.5)(ibm-cloud-sdk-core@5.3.2)(ignore@5.3.2)(ioredis@5.6.1)(jsdom@22.1.0(bufferutil@4.0.9)(canvas@2.11.2)(utf-8-validate@5.0.10))(jsonwebtoken@9.0.2)(lodash@4.17.21)(playwright@1.52.0)(redis@4.7.0)(ws@8.18.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))': + '@copilotkit/runtime@1.8.9(@aws-crypto/sha256-js@5.2.0)(@aws-sdk/client-s3@3.802.0)(@aws-sdk/credential-provider-node@3.799.0)(@browserbasehq/sdk@2.5.0)(@browserbasehq/stagehand@1.14.0(@playwright/test@1.52.0)(bufferutil@4.0.9)(deepmerge@4.3.1)(dotenv@16.5.0)(openai@4.97.0(ws@8.18.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.4))(utf-8-validate@5.0.10)(zod@3.24.4))(@ibm-cloud/watsonx-ai@1.6.4(@langchain/core@0.3.51(openai@4.97.0(ws@8.18.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.4))))(@smithy/util-utf8@2.3.0)(axios@1.9.0)(cheerio@1.0.0)(crypto-js@4.2.0)(fast-xml-parser@4.5.3)(google-auth-library@9.15.1)(googleapis@137.1.0)(html-to-text@9.0.5)(ibm-cloud-sdk-core@5.3.2)(ignore@5.3.2)(ioredis@5.6.1)(jsdom@22.1.0(bufferutil@4.0.9)(canvas@2.11.2)(utf-8-validate@5.0.10))(jsonwebtoken@9.0.2)(lodash@4.17.21)(playwright@1.52.0)(redis@4.7.0)(ws@8.18.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))': dependencies: '@agentwire/client': 0.0.26 '@agentwire/core': 0.0.26 @@ -16800,7 +17146,7 @@ snapshots: '@anthropic-ai/sdk': 0.27.3 '@copilotkit/shared': 1.8.9 '@graphql-yoga/plugin-defer-stream': 3.13.4(graphql-yoga@5.13.4(graphql@16.11.0))(graphql@16.11.0) - '@langchain/community': 0.3.42(5f58a536e8f4b4881e943b2cc0e336cc) + '@langchain/community': 0.3.42(9a70403282cad7df9fe3853e78fee122) '@langchain/core': 0.3.51(openai@4.97.0(ws@8.18.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.4)) '@langchain/google-gauth': 0.1.8(@langchain/core@0.3.51(openai@4.97.0(ws@8.18.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.4)))(zod@3.24.4) '@langchain/langgraph-sdk': 0.0.36 @@ -16812,7 +17158,7 @@ snapshots: graphql-scalars: 1.24.2(graphql@16.11.0) graphql-yoga: 5.13.4(graphql@16.11.0) groq-sdk: 0.5.0 - langchain: 0.3.24(@langchain/core@0.3.51(openai@4.97.0(ws@8.18.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.4)))(axios@1.9.0)(openai@4.97.0(ws@8.18.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.4))(ws@8.18.2(bufferutil@4.0.9)(utf-8-validate@5.0.10)) + langchain: 0.3.24(@langchain/core@0.3.51(openai@4.97.0(ws@8.18.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.4)))(axios@1.9.0)(cheerio@1.0.0)(openai@4.97.0(ws@8.18.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.4))(ws@8.18.2(bufferutil@4.0.9)(utf-8-validate@5.0.10)) openai: 4.97.0(ws@8.18.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.4) partial-json: 0.1.7 pino: 9.6.0 @@ -16978,6 +17324,26 @@ snapshots: transitivePeerDependencies: - encoding + '@crxjs/vite-plugin@2.0.0-beta.33': + dependencies: + '@rollup/pluginutils': 4.2.1 + '@webcomponents/custom-elements': 1.6.0 + acorn-walk: 8.3.4 + cheerio: 1.0.0 + convert-source-map: 1.9.0 + debug: 4.4.0(supports-color@5.5.0) + es-module-lexer: 0.10.5 + fast-glob: 3.3.3 + fs-extra: 10.1.0 + jsesc: 3.1.0 + magic-string: 0.30.17 + picocolors: 1.1.1 + react-refresh: 0.13.0 + rollup: 2.79.2 + rxjs: 7.5.7 + transitivePeerDependencies: + - supports-color + '@cspotcode/source-map-support@0.8.1': dependencies: '@jridgewell/trace-mapping': 0.3.9 @@ -17290,7 +17656,7 @@ snapshots: '@eslint/eslintrc@2.1.4': dependencies: ajv: 6.12.6 - debug: 4.4.0 + debug: 4.4.0(supports-color@5.5.0) espree: 9.6.1 globals: 13.24.0 ignore: 5.3.2 @@ -17441,7 +17807,7 @@ snapshots: '@humanwhocodes/config-array@0.11.14': dependencies: '@humanwhocodes/object-schema': 2.0.3 - debug: 4.4.0 + debug: 4.4.0(supports-color@5.5.0) minimatch: 3.1.2 transitivePeerDependencies: - supports-color @@ -17550,6 +17916,10 @@ snapshots: wrap-ansi: 8.1.0 wrap-ansi-cjs: wrap-ansi@7.0.0 + '@isaacs/fs-minipass@4.0.1': + dependencies: + minipass: 7.1.2 + '@isaacs/ttlcache@1.4.1': {} '@istanbuljs/load-nyc-config@1.1.0': @@ -17825,7 +18195,7 @@ snapshots: '@kurkle/color@0.3.4': {} - '@langchain/community@0.3.42(5f58a536e8f4b4881e943b2cc0e336cc)': + '@langchain/community@0.3.42(9a70403282cad7df9fe3853e78fee122)': dependencies: '@browserbasehq/stagehand': 1.14.0(@playwright/test@1.52.0)(bufferutil@4.0.9)(deepmerge@4.3.1)(dotenv@16.5.0)(openai@4.97.0(ws@8.18.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.4))(utf-8-validate@5.0.10)(zod@3.24.4) '@ibm-cloud/watsonx-ai': 1.6.4(@langchain/core@0.3.51(openai@4.97.0(ws@8.18.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.4))) @@ -17836,7 +18206,7 @@ snapshots: flat: 5.0.2 ibm-cloud-sdk-core: 5.3.2 js-yaml: 4.1.0 - langchain: 0.3.24(@langchain/core@0.3.51(openai@4.97.0(ws@8.18.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.4)))(axios@1.9.0)(openai@4.97.0(ws@8.18.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.4))(ws@8.18.2(bufferutil@4.0.9)(utf-8-validate@5.0.10)) + langchain: 0.3.24(@langchain/core@0.3.51(openai@4.97.0(ws@8.18.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.4)))(axios@1.9.0)(cheerio@1.0.0)(openai@4.97.0(ws@8.18.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.4))(ws@8.18.2(bufferutil@4.0.9)(utf-8-validate@5.0.10)) langsmith: 0.3.25(openai@4.97.0(ws@8.18.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.4)) openai: 4.97.0(ws@8.18.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.4) uuid: 10.0.0 @@ -17848,6 +18218,7 @@ snapshots: '@aws-sdk/credential-provider-node': 3.799.0 '@browserbasehq/sdk': 2.5.0 '@smithy/util-utf8': 2.3.0 + cheerio: 1.0.0 crypto-js: 4.2.0 fast-xml-parser: 4.5.3 google-auth-library: 9.15.1 @@ -18920,9 +19291,9 @@ snapshots: - typescript - verdaccio - '@nrwl/next@19.7.2(@babel/core@7.27.1)(@babel/traverse@7.27.1)(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.13))(@swc/types@0.1.7)(typescript@5.5.4))(@swc/core@1.5.7(@swc/helpers@0.5.13))(@types/node@18.16.9)(@zkochan/js-yaml@0.0.7)(bufferutil@4.0.9)(esbuild@0.25.3)(eslint@8.57.0)(next@14.2.28(@babel/core@7.27.1)(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.62.1))(nx@19.7.2(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.13))(@swc/types@0.1.7)(typescript@5.5.4))(@swc/core@1.5.7(@swc/helpers@0.5.13)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4)(utf-8-validate@5.0.10)(webpack@5.99.7(@swc/core@1.5.7(@swc/helpers@0.5.13))(esbuild@0.25.3))': + '@nrwl/next@19.7.2(@babel/core@7.27.1)(@babel/traverse@7.27.1)(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.13))(@swc/types@0.1.7)(typescript@5.5.4))(@swc/core@1.5.7(@swc/helpers@0.5.13))(@types/node@18.16.9)(@zkochan/js-yaml@0.0.7)(bufferutil@4.0.9)(esbuild@0.25.3)(eslint@8.57.0)(lightningcss@1.29.2)(next@14.2.28(@babel/core@7.27.1)(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.62.1))(nx@19.7.2(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.13))(@swc/types@0.1.7)(typescript@5.5.4))(@swc/core@1.5.7(@swc/helpers@0.5.13)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4)(utf-8-validate@5.0.10)(webpack@5.99.7(@swc/core@1.5.7(@swc/helpers@0.5.13))(esbuild@0.25.3))': dependencies: - '@nx/next': 19.7.2(@babel/core@7.27.1)(@babel/traverse@7.27.1)(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.13))(@swc/types@0.1.7)(typescript@5.5.4))(@swc/core@1.5.7(@swc/helpers@0.5.13))(@types/node@18.16.9)(@zkochan/js-yaml@0.0.7)(bufferutil@4.0.9)(esbuild@0.25.3)(eslint@8.57.0)(next@14.2.28(@babel/core@7.27.1)(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.62.1))(nx@19.7.2(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.13))(@swc/types@0.1.7)(typescript@5.5.4))(@swc/core@1.5.7(@swc/helpers@0.5.13)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4)(utf-8-validate@5.0.10)(webpack@5.99.7(@swc/core@1.5.7(@swc/helpers@0.5.13))(esbuild@0.25.3)) + '@nx/next': 19.7.2(@babel/core@7.27.1)(@babel/traverse@7.27.1)(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.13))(@swc/types@0.1.7)(typescript@5.5.4))(@swc/core@1.5.7(@swc/helpers@0.5.13))(@types/node@18.16.9)(@zkochan/js-yaml@0.0.7)(bufferutil@4.0.9)(esbuild@0.25.3)(eslint@8.57.0)(lightningcss@1.29.2)(next@14.2.28(@babel/core@7.27.1)(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.62.1))(nx@19.7.2(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.13))(@swc/types@0.1.7)(typescript@5.5.4))(@swc/core@1.5.7(@swc/helpers@0.5.13)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4)(utf-8-validate@5.0.10)(webpack@5.99.7(@swc/core@1.5.7(@swc/helpers@0.5.13))(esbuild@0.25.3)) transitivePeerDependencies: - '@babel/core' - '@babel/traverse' @@ -19011,9 +19382,9 @@ snapshots: - '@swc/core' - debug - '@nrwl/vite@19.7.2(@babel/traverse@7.27.1)(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.13))(@swc/types@0.1.7)(typescript@5.5.4))(@swc/core@1.5.7(@swc/helpers@0.5.13))(@types/node@18.16.9)(nx@19.7.2(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.13))(@swc/types@0.1.7)(typescript@5.5.4))(@swc/core@1.5.7(@swc/helpers@0.5.13)))(typescript@5.5.4)(vite@5.4.19(@types/node@18.16.9)(less@4.1.3)(sass@1.62.1)(stylus@0.59.0)(terser@5.39.0))(vitest@1.6.0)': + '@nrwl/vite@19.7.2(@babel/traverse@7.27.1)(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.13))(@swc/types@0.1.7)(typescript@5.5.4))(@swc/core@1.5.7(@swc/helpers@0.5.13))(@types/node@18.16.9)(nx@19.7.2(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.13))(@swc/types@0.1.7)(typescript@5.5.4))(@swc/core@1.5.7(@swc/helpers@0.5.13)))(typescript@5.5.4)(vite@5.4.19(@types/node@18.16.9)(less@4.1.3)(lightningcss@1.29.2)(sass@1.62.1)(stylus@0.59.0)(terser@5.39.0))(vitest@1.6.0)': dependencies: - '@nx/vite': 19.7.2(@babel/traverse@7.27.1)(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.13))(@swc/types@0.1.7)(typescript@5.5.4))(@swc/core@1.5.7(@swc/helpers@0.5.13))(@types/node@18.16.9)(nx@19.7.2(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.13))(@swc/types@0.1.7)(typescript@5.5.4))(@swc/core@1.5.7(@swc/helpers@0.5.13)))(typescript@5.5.4)(vite@5.4.19(@types/node@18.16.9)(less@4.1.3)(sass@1.62.1)(stylus@0.59.0)(terser@5.39.0))(vitest@1.6.0) + '@nx/vite': 19.7.2(@babel/traverse@7.27.1)(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.13))(@swc/types@0.1.7)(typescript@5.5.4))(@swc/core@1.5.7(@swc/helpers@0.5.13))(@types/node@18.16.9)(nx@19.7.2(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.13))(@swc/types@0.1.7)(typescript@5.5.4))(@swc/core@1.5.7(@swc/helpers@0.5.13)))(typescript@5.5.4)(vite@5.4.19(@types/node@18.16.9)(less@4.1.3)(lightningcss@1.29.2)(sass@1.62.1)(stylus@0.59.0)(terser@5.39.0))(vitest@1.6.0) transitivePeerDependencies: - '@babel/traverse' - '@swc-node/register' @@ -19043,9 +19414,9 @@ snapshots: - typescript - verdaccio - '@nrwl/webpack@19.7.2(@babel/traverse@7.27.1)(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.13))(@swc/types@0.1.7)(typescript@5.5.4))(@swc/core@1.5.7(@swc/helpers@0.5.13))(@types/node@18.16.9)(bufferutil@4.0.9)(esbuild@0.25.3)(nx@19.7.2(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.13))(@swc/types@0.1.7)(typescript@5.5.4))(@swc/core@1.5.7(@swc/helpers@0.5.13)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4)(utf-8-validate@5.0.10)': + '@nrwl/webpack@19.7.2(@babel/traverse@7.27.1)(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.13))(@swc/types@0.1.7)(typescript@5.5.4))(@swc/core@1.5.7(@swc/helpers@0.5.13))(@types/node@18.16.9)(bufferutil@4.0.9)(esbuild@0.25.3)(lightningcss@1.29.2)(nx@19.7.2(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.13))(@swc/types@0.1.7)(typescript@5.5.4))(@swc/core@1.5.7(@swc/helpers@0.5.13)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4)(utf-8-validate@5.0.10)': dependencies: - '@nx/webpack': 19.7.2(@babel/traverse@7.27.1)(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.13))(@swc/types@0.1.7)(typescript@5.5.4))(@swc/core@1.5.7(@swc/helpers@0.5.13))(@types/node@18.16.9)(bufferutil@4.0.9)(esbuild@0.25.3)(nx@19.7.2(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.13))(@swc/types@0.1.7)(typescript@5.5.4))(@swc/core@1.5.7(@swc/helpers@0.5.13)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4)(utf-8-validate@5.0.10) + '@nx/webpack': 19.7.2(@babel/traverse@7.27.1)(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.13))(@swc/types@0.1.7)(typescript@5.5.4))(@swc/core@1.5.7(@swc/helpers@0.5.13))(@types/node@18.16.9)(bufferutil@4.0.9)(esbuild@0.25.3)(lightningcss@1.29.2)(nx@19.7.2(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.13))(@swc/types@0.1.7)(typescript@5.5.4))(@swc/core@1.5.7(@swc/helpers@0.5.13)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4)(utf-8-validate@5.0.10) transitivePeerDependencies: - '@babel/traverse' - '@parcel/css' @@ -19323,16 +19694,16 @@ snapshots: - typescript - verdaccio - '@nx/next@19.7.2(@babel/core@7.27.1)(@babel/traverse@7.27.1)(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.13))(@swc/types@0.1.7)(typescript@5.5.4))(@swc/core@1.5.7(@swc/helpers@0.5.13))(@types/node@18.16.9)(@zkochan/js-yaml@0.0.7)(bufferutil@4.0.9)(esbuild@0.25.3)(eslint@8.57.0)(next@14.2.28(@babel/core@7.27.1)(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.62.1))(nx@19.7.2(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.13))(@swc/types@0.1.7)(typescript@5.5.4))(@swc/core@1.5.7(@swc/helpers@0.5.13)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4)(utf-8-validate@5.0.10)(webpack@5.99.7(@swc/core@1.5.7(@swc/helpers@0.5.13))(esbuild@0.25.3))': + '@nx/next@19.7.2(@babel/core@7.27.1)(@babel/traverse@7.27.1)(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.13))(@swc/types@0.1.7)(typescript@5.5.4))(@swc/core@1.5.7(@swc/helpers@0.5.13))(@types/node@18.16.9)(@zkochan/js-yaml@0.0.7)(bufferutil@4.0.9)(esbuild@0.25.3)(eslint@8.57.0)(lightningcss@1.29.2)(next@14.2.28(@babel/core@7.27.1)(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.62.1))(nx@19.7.2(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.13))(@swc/types@0.1.7)(typescript@5.5.4))(@swc/core@1.5.7(@swc/helpers@0.5.13)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4)(utf-8-validate@5.0.10)(webpack@5.99.7(@swc/core@1.5.7(@swc/helpers@0.5.13))(esbuild@0.25.3))': dependencies: '@babel/plugin-proposal-decorators': 7.27.1(@babel/core@7.27.1) - '@nrwl/next': 19.7.2(@babel/core@7.27.1)(@babel/traverse@7.27.1)(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.13))(@swc/types@0.1.7)(typescript@5.5.4))(@swc/core@1.5.7(@swc/helpers@0.5.13))(@types/node@18.16.9)(@zkochan/js-yaml@0.0.7)(bufferutil@4.0.9)(esbuild@0.25.3)(eslint@8.57.0)(next@14.2.28(@babel/core@7.27.1)(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.62.1))(nx@19.7.2(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.13))(@swc/types@0.1.7)(typescript@5.5.4))(@swc/core@1.5.7(@swc/helpers@0.5.13)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4)(utf-8-validate@5.0.10)(webpack@5.99.7(@swc/core@1.5.7(@swc/helpers@0.5.13))(esbuild@0.25.3)) + '@nrwl/next': 19.7.2(@babel/core@7.27.1)(@babel/traverse@7.27.1)(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.13))(@swc/types@0.1.7)(typescript@5.5.4))(@swc/core@1.5.7(@swc/helpers@0.5.13))(@types/node@18.16.9)(@zkochan/js-yaml@0.0.7)(bufferutil@4.0.9)(esbuild@0.25.3)(eslint@8.57.0)(lightningcss@1.29.2)(next@14.2.28(@babel/core@7.27.1)(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.62.1))(nx@19.7.2(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.13))(@swc/types@0.1.7)(typescript@5.5.4))(@swc/core@1.5.7(@swc/helpers@0.5.13)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4)(utf-8-validate@5.0.10)(webpack@5.99.7(@swc/core@1.5.7(@swc/helpers@0.5.13))(esbuild@0.25.3)) '@nx/devkit': 19.7.2(nx@19.7.2(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.13))(@swc/types@0.1.7)(typescript@5.5.4))(@swc/core@1.5.7(@swc/helpers@0.5.13))) '@nx/eslint': 19.7.2(@babel/traverse@7.27.1)(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.13))(@swc/types@0.1.7)(typescript@5.5.4))(@swc/core@1.5.7(@swc/helpers@0.5.13))(@types/node@18.16.9)(@zkochan/js-yaml@0.0.7)(eslint@8.57.0)(nx@19.7.2(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.13))(@swc/types@0.1.7)(typescript@5.5.4))(@swc/core@1.5.7(@swc/helpers@0.5.13))) '@nx/js': 19.7.2(@babel/traverse@7.27.1)(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.13))(@swc/types@0.1.7)(typescript@5.5.4))(@swc/core@1.5.7(@swc/helpers@0.5.13))(@types/node@18.16.9)(nx@19.7.2(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.13))(@swc/types@0.1.7)(typescript@5.5.4))(@swc/core@1.5.7(@swc/helpers@0.5.13)))(typescript@5.5.4) '@nx/react': 19.7.2(@babel/traverse@7.27.1)(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.13))(@swc/types@0.1.7)(typescript@5.5.4))(@swc/core@1.5.7(@swc/helpers@0.5.13))(@types/node@18.16.9)(@zkochan/js-yaml@0.0.7)(bufferutil@4.0.9)(eslint@8.57.0)(nx@19.7.2(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.13))(@swc/types@0.1.7)(typescript@5.5.4))(@swc/core@1.5.7(@swc/helpers@0.5.13)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4)(utf-8-validate@5.0.10)(webpack@5.99.7(@swc/core@1.5.7(@swc/helpers@0.5.13))(esbuild@0.25.3)) '@nx/web': 19.7.2(@babel/traverse@7.27.1)(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.13))(@swc/types@0.1.7)(typescript@5.5.4))(@swc/core@1.5.7(@swc/helpers@0.5.13))(@types/node@18.16.9)(nx@19.7.2(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.13))(@swc/types@0.1.7)(typescript@5.5.4))(@swc/core@1.5.7(@swc/helpers@0.5.13)))(typescript@5.5.4) - '@nx/webpack': 19.7.2(@babel/traverse@7.27.1)(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.13))(@swc/types@0.1.7)(typescript@5.5.4))(@swc/core@1.5.7(@swc/helpers@0.5.13))(@types/node@18.16.9)(bufferutil@4.0.9)(esbuild@0.25.3)(nx@19.7.2(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.13))(@swc/types@0.1.7)(typescript@5.5.4))(@swc/core@1.5.7(@swc/helpers@0.5.13)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4)(utf-8-validate@5.0.10) + '@nx/webpack': 19.7.2(@babel/traverse@7.27.1)(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.13))(@swc/types@0.1.7)(typescript@5.5.4))(@swc/core@1.5.7(@swc/helpers@0.5.13))(@types/node@18.16.9)(bufferutil@4.0.9)(esbuild@0.25.3)(lightningcss@1.29.2)(nx@19.7.2(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.13))(@swc/types@0.1.7)(typescript@5.5.4))(@swc/core@1.5.7(@swc/helpers@0.5.13)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4)(utf-8-validate@5.0.10) '@nx/workspace': 19.7.2(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.13))(@swc/types@0.1.7)(typescript@5.5.4))(@swc/core@1.5.7(@swc/helpers@0.5.13)) '@phenomnomnominal/tsquery': 5.0.1(typescript@5.5.4) '@svgr/webpack': 8.1.0(typescript@5.5.4) @@ -19471,9 +19842,9 @@ snapshots: - vue-tsc - webpack - '@nx/vite@19.7.2(@babel/traverse@7.27.1)(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.13))(@swc/types@0.1.7)(typescript@5.5.4))(@swc/core@1.5.7(@swc/helpers@0.5.13))(@types/node@18.16.9)(nx@19.7.2(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.13))(@swc/types@0.1.7)(typescript@5.5.4))(@swc/core@1.5.7(@swc/helpers@0.5.13)))(typescript@5.5.4)(vite@5.4.19(@types/node@18.16.9)(less@4.1.3)(sass@1.62.1)(stylus@0.59.0)(terser@5.39.0))(vitest@1.6.0)': + '@nx/vite@19.7.2(@babel/traverse@7.27.1)(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.13))(@swc/types@0.1.7)(typescript@5.5.4))(@swc/core@1.5.7(@swc/helpers@0.5.13))(@types/node@18.16.9)(nx@19.7.2(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.13))(@swc/types@0.1.7)(typescript@5.5.4))(@swc/core@1.5.7(@swc/helpers@0.5.13)))(typescript@5.5.4)(vite@5.4.19(@types/node@18.16.9)(less@4.1.3)(lightningcss@1.29.2)(sass@1.62.1)(stylus@0.59.0)(terser@5.39.0))(vitest@1.6.0)': dependencies: - '@nrwl/vite': 19.7.2(@babel/traverse@7.27.1)(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.13))(@swc/types@0.1.7)(typescript@5.5.4))(@swc/core@1.5.7(@swc/helpers@0.5.13))(@types/node@18.16.9)(nx@19.7.2(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.13))(@swc/types@0.1.7)(typescript@5.5.4))(@swc/core@1.5.7(@swc/helpers@0.5.13)))(typescript@5.5.4)(vite@5.4.19(@types/node@18.16.9)(less@4.1.3)(sass@1.62.1)(stylus@0.59.0)(terser@5.39.0))(vitest@1.6.0) + '@nrwl/vite': 19.7.2(@babel/traverse@7.27.1)(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.13))(@swc/types@0.1.7)(typescript@5.5.4))(@swc/core@1.5.7(@swc/helpers@0.5.13))(@types/node@18.16.9)(nx@19.7.2(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.13))(@swc/types@0.1.7)(typescript@5.5.4))(@swc/core@1.5.7(@swc/helpers@0.5.13)))(typescript@5.5.4)(vite@5.4.19(@types/node@18.16.9)(less@4.1.3)(lightningcss@1.29.2)(sass@1.62.1)(stylus@0.59.0)(terser@5.39.0))(vitest@1.6.0) '@nx/devkit': 19.7.2(nx@19.7.2(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.13))(@swc/types@0.1.7)(typescript@5.5.4))(@swc/core@1.5.7(@swc/helpers@0.5.13))) '@nx/js': 19.7.2(@babel/traverse@7.27.1)(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.13))(@swc/types@0.1.7)(typescript@5.5.4))(@swc/core@1.5.7(@swc/helpers@0.5.13))(@types/node@18.16.9)(nx@19.7.2(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.13))(@swc/types@0.1.7)(typescript@5.5.4))(@swc/core@1.5.7(@swc/helpers@0.5.13)))(typescript@5.5.4) '@phenomnomnominal/tsquery': 5.0.1(typescript@5.5.4) @@ -19481,8 +19852,8 @@ snapshots: enquirer: 2.3.6 minimatch: 9.0.3 tsconfig-paths: 4.2.0 - vite: 5.4.19(@types/node@18.16.9)(less@4.1.3)(sass@1.62.1)(stylus@0.59.0)(terser@5.39.0) - vitest: 1.6.0(@types/node@18.16.9)(@vitest/ui@1.6.0)(happy-dom@15.11.7)(jsdom@22.1.0(bufferutil@4.0.9)(canvas@2.11.2)(utf-8-validate@5.0.10))(less@4.1.3)(sass@1.62.1)(stylus@0.59.0)(terser@5.39.0) + vite: 5.4.19(@types/node@18.16.9)(less@4.1.3)(lightningcss@1.29.2)(sass@1.62.1)(stylus@0.59.0)(terser@5.39.0) + vitest: 1.6.0(@types/node@18.16.9)(@vitest/ui@1.6.0)(happy-dom@15.11.7)(jsdom@22.1.0(bufferutil@4.0.9)(canvas@2.11.2)(utf-8-validate@5.0.10))(less@4.1.3)(lightningcss@1.29.2)(sass@1.62.1)(stylus@0.59.0)(terser@5.39.0) transitivePeerDependencies: - '@babel/traverse' - '@swc-node/register' @@ -19516,12 +19887,12 @@ snapshots: - typescript - verdaccio - '@nx/webpack@19.7.2(@babel/traverse@7.27.1)(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.13))(@swc/types@0.1.7)(typescript@5.5.4))(@swc/core@1.5.7(@swc/helpers@0.5.13))(@types/node@18.16.9)(bufferutil@4.0.9)(esbuild@0.25.3)(nx@19.7.2(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.13))(@swc/types@0.1.7)(typescript@5.5.4))(@swc/core@1.5.7(@swc/helpers@0.5.13)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4)(utf-8-validate@5.0.10)': + '@nx/webpack@19.7.2(@babel/traverse@7.27.1)(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.13))(@swc/types@0.1.7)(typescript@5.5.4))(@swc/core@1.5.7(@swc/helpers@0.5.13))(@types/node@18.16.9)(bufferutil@4.0.9)(esbuild@0.25.3)(lightningcss@1.29.2)(nx@19.7.2(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.13))(@swc/types@0.1.7)(typescript@5.5.4))(@swc/core@1.5.7(@swc/helpers@0.5.13)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4)(utf-8-validate@5.0.10)': dependencies: '@babel/core': 7.27.1 '@module-federation/enhanced': 0.6.16(bufferutil@4.0.9)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4)(utf-8-validate@5.0.10)(webpack@5.99.7(@swc/core@1.5.7(@swc/helpers@0.5.13))(esbuild@0.25.3)) '@module-federation/sdk': 0.6.16 - '@nrwl/webpack': 19.7.2(@babel/traverse@7.27.1)(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.13))(@swc/types@0.1.7)(typescript@5.5.4))(@swc/core@1.5.7(@swc/helpers@0.5.13))(@types/node@18.16.9)(bufferutil@4.0.9)(esbuild@0.25.3)(nx@19.7.2(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.13))(@swc/types@0.1.7)(typescript@5.5.4))(@swc/core@1.5.7(@swc/helpers@0.5.13)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4)(utf-8-validate@5.0.10) + '@nrwl/webpack': 19.7.2(@babel/traverse@7.27.1)(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.13))(@swc/types@0.1.7)(typescript@5.5.4))(@swc/core@1.5.7(@swc/helpers@0.5.13))(@types/node@18.16.9)(bufferutil@4.0.9)(esbuild@0.25.3)(lightningcss@1.29.2)(nx@19.7.2(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.13))(@swc/types@0.1.7)(typescript@5.5.4))(@swc/core@1.5.7(@swc/helpers@0.5.13)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4)(utf-8-validate@5.0.10) '@nx/devkit': 19.7.2(nx@19.7.2(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.13))(@swc/types@0.1.7)(typescript@5.5.4))(@swc/core@1.5.7(@swc/helpers@0.5.13))) '@nx/js': 19.7.2(@babel/traverse@7.27.1)(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.13))(@swc/types@0.1.7)(typescript@5.5.4))(@swc/core@1.5.7(@swc/helpers@0.5.13))(@types/node@18.16.9)(nx@19.7.2(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.13))(@swc/types@0.1.7)(typescript@5.5.4))(@swc/core@1.5.7(@swc/helpers@0.5.13)))(typescript@5.5.4) '@phenomnomnominal/tsquery': 5.0.1(typescript@5.5.4) @@ -19532,7 +19903,7 @@ snapshots: chalk: 4.1.2 copy-webpack-plugin: 10.2.4(webpack@5.99.7(@swc/core@1.5.7(@swc/helpers@0.5.13))(esbuild@0.25.3)) css-loader: 6.11.0(webpack@5.99.7(@swc/core@1.5.7(@swc/helpers@0.5.13))(esbuild@0.25.3)) - css-minimizer-webpack-plugin: 5.0.1(esbuild@0.25.3)(webpack@5.99.7(@swc/core@1.5.7(@swc/helpers@0.5.13))(esbuild@0.25.3)) + css-minimizer-webpack-plugin: 5.0.1(esbuild@0.25.3)(lightningcss@1.29.2)(webpack@5.99.7(@swc/core@1.5.7(@swc/helpers@0.5.13))(esbuild@0.25.3)) express: 4.21.2 fork-ts-checker-webpack-plugin: 7.2.13(typescript@5.5.4)(webpack@5.99.7(@swc/core@1.5.7(@swc/helpers@0.5.13))(esbuild@0.25.3)) http-proxy-middleware: 3.0.5 @@ -20526,6 +20897,11 @@ snapshots: '@repeaterjs/repeater@3.0.6': {} + '@rollup/pluginutils@4.2.1': + dependencies: + estree-walker: 2.0.2 + picomatch: 2.3.1 + '@rollup/rollup-android-arm-eabi@4.40.1': optional: true @@ -21730,7 +22106,7 @@ snapshots: '@swc-node/sourcemap-support': 0.5.1 '@swc/core': 1.5.7(@swc/helpers@0.5.13) colorette: 2.0.20 - debug: 4.4.0 + debug: 4.4.0(supports-color@5.5.0) pirates: 4.0.7 tslib: 2.8.1 typescript: 5.5.4 @@ -21826,6 +22202,77 @@ snapshots: dependencies: defer-to-connect: 2.0.1 + '@tailwindcss/node@4.1.6': + dependencies: + '@ampproject/remapping': 2.3.0 + enhanced-resolve: 5.18.1 + jiti: 2.4.2 + lightningcss: 1.29.2 + magic-string: 0.30.17 + source-map-js: 1.2.1 + tailwindcss: 4.1.6 + + '@tailwindcss/oxide-android-arm64@4.1.6': + optional: true + + '@tailwindcss/oxide-darwin-arm64@4.1.6': + optional: true + + '@tailwindcss/oxide-darwin-x64@4.1.6': + optional: true + + '@tailwindcss/oxide-freebsd-x64@4.1.6': + optional: true + + '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.6': + optional: true + + '@tailwindcss/oxide-linux-arm64-gnu@4.1.6': + optional: true + + '@tailwindcss/oxide-linux-arm64-musl@4.1.6': + optional: true + + '@tailwindcss/oxide-linux-x64-gnu@4.1.6': + optional: true + + '@tailwindcss/oxide-linux-x64-musl@4.1.6': + optional: true + + '@tailwindcss/oxide-wasm32-wasi@4.1.6': + optional: true + + '@tailwindcss/oxide-win32-arm64-msvc@4.1.6': + optional: true + + '@tailwindcss/oxide-win32-x64-msvc@4.1.6': + optional: true + + '@tailwindcss/oxide@4.1.6': + dependencies: + detect-libc: 2.0.4 + tar: 7.4.3 + optionalDependencies: + '@tailwindcss/oxide-android-arm64': 4.1.6 + '@tailwindcss/oxide-darwin-arm64': 4.1.6 + '@tailwindcss/oxide-darwin-x64': 4.1.6 + '@tailwindcss/oxide-freebsd-x64': 4.1.6 + '@tailwindcss/oxide-linux-arm-gnueabihf': 4.1.6 + '@tailwindcss/oxide-linux-arm64-gnu': 4.1.6 + '@tailwindcss/oxide-linux-arm64-musl': 4.1.6 + '@tailwindcss/oxide-linux-x64-gnu': 4.1.6 + '@tailwindcss/oxide-linux-x64-musl': 4.1.6 + '@tailwindcss/oxide-wasm32-wasi': 4.1.6 + '@tailwindcss/oxide-win32-arm64-msvc': 4.1.6 + '@tailwindcss/oxide-win32-x64-msvc': 4.1.6 + + '@tailwindcss/vite@4.1.6(vite@5.4.19(@types/node@18.16.9)(less@4.1.3)(lightningcss@1.29.2)(sass@1.62.1)(stylus@0.59.0)(terser@5.39.0))': + dependencies: + '@tailwindcss/node': 4.1.6 + '@tailwindcss/oxide': 4.1.6 + tailwindcss: 4.1.6 + vite: 5.4.19(@types/node@18.16.9)(less@4.1.3)(lightningcss@1.29.2)(sass@1.62.1)(stylus@0.59.0)(terser@5.39.0) + '@tanstack/react-virtual@3.13.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@tanstack/virtual-core': 3.13.7 @@ -21857,7 +22304,7 @@ snapshots: '@tokenizer/inflate@0.2.7': dependencies: - debug: 4.4.0 + debug: 4.4.0(supports-color@5.5.0) fflate: 0.8.2 token-types: 6.0.0 transitivePeerDependencies: @@ -22035,6 +22482,11 @@ snapshots: '@types/caseless@0.12.5': {} + '@types/chrome@0.0.319': + dependencies: + '@types/filesystem': 0.0.36 + '@types/har-format': 1.2.16 + '@types/concat-stream@2.0.3': dependencies: '@types/node': 18.16.9 @@ -22103,10 +22555,18 @@ snapshots: '@types/facebook-nodejs-business-sdk@20.0.3': {} + '@types/filesystem@0.0.36': + dependencies: + '@types/filewriter': 0.0.33 + + '@types/filewriter@0.0.33': {} + '@types/graceful-fs@4.1.9': dependencies: '@types/node': 18.16.9 + '@types/har-format@1.2.16': {} + '@types/hast@2.3.10': dependencies: '@types/unist': 2.0.11 @@ -22318,6 +22778,8 @@ snapshots: '@types/validator@13.15.0': {} + '@types/webextension-polyfill@0.12.3': {} + '@types/ws@7.4.7': dependencies: '@types/node': 18.16.9 @@ -22360,7 +22822,7 @@ snapshots: '@typescript-eslint/types': 7.18.0 '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.5.4) '@typescript-eslint/visitor-keys': 7.18.0 - debug: 4.4.0 + debug: 4.4.0(supports-color@5.5.0) eslint: 8.57.0 optionalDependencies: typescript: 5.5.4 @@ -22376,7 +22838,7 @@ snapshots: dependencies: '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.5.4) '@typescript-eslint/utils': 7.18.0(eslint@8.57.0)(typescript@5.5.4) - debug: 4.4.0 + debug: 4.4.0(supports-color@5.5.0) eslint: 8.57.0 ts-api-utils: 1.4.3(typescript@5.5.4) optionalDependencies: @@ -22390,7 +22852,7 @@ snapshots: dependencies: '@typescript-eslint/types': 7.18.0 '@typescript-eslint/visitor-keys': 7.18.0 - debug: 4.4.0 + debug: 4.4.0(supports-color@5.5.0) globby: 11.1.0 is-glob: 4.0.3 minimatch: 9.0.5 @@ -22657,14 +23119,14 @@ snapshots: transitivePeerDependencies: - graphql - '@vitejs/plugin-react@4.4.1(vite@5.4.19(@types/node@18.16.9)(less@4.1.3)(sass@1.62.1)(stylus@0.59.0)(terser@5.39.0))': + '@vitejs/plugin-react@4.4.1(vite@5.4.19(@types/node@18.16.9)(less@4.1.3)(lightningcss@1.29.2)(sass@1.62.1)(stylus@0.59.0)(terser@5.39.0))': dependencies: '@babel/core': 7.27.1 '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.27.1) '@babel/plugin-transform-react-jsx-source': 7.27.1(@babel/core@7.27.1) '@types/babel__core': 7.20.5 react-refresh: 0.17.0 - vite: 5.4.19(@types/node@18.16.9)(less@4.1.3)(sass@1.62.1)(stylus@0.59.0)(terser@5.39.0) + vite: 5.4.19(@types/node@18.16.9)(less@4.1.3)(lightningcss@1.29.2)(sass@1.62.1)(stylus@0.59.0)(terser@5.39.0) transitivePeerDependencies: - supports-color @@ -22672,7 +23134,7 @@ snapshots: dependencies: '@ampproject/remapping': 2.3.0 '@bcoe/v8-coverage': 0.2.3 - debug: 4.4.0 + debug: 4.4.0(supports-color@5.5.0) istanbul-lib-coverage: 3.2.2 istanbul-lib-report: 3.0.1 istanbul-lib-source-maps: 5.0.6 @@ -22683,7 +23145,7 @@ snapshots: std-env: 3.9.0 strip-literal: 2.1.1 test-exclude: 6.0.0 - vitest: 1.6.0(@types/node@18.16.9)(@vitest/ui@1.6.0)(happy-dom@15.11.7)(jsdom@22.1.0(bufferutil@4.0.9)(canvas@2.11.2)(utf-8-validate@5.0.10))(less@4.1.3)(sass@1.62.1)(stylus@0.59.0)(terser@5.39.0) + vitest: 1.6.0(@types/node@18.16.9)(@vitest/ui@1.6.0)(happy-dom@15.11.7)(jsdom@22.1.0(bufferutil@4.0.9)(canvas@2.11.2)(utf-8-validate@5.0.10))(less@4.1.3)(lightningcss@1.29.2)(sass@1.62.1)(stylus@0.59.0)(terser@5.39.0) transitivePeerDependencies: - supports-color @@ -22718,7 +23180,7 @@ snapshots: pathe: 1.1.2 picocolors: 1.1.1 sirv: 2.0.4 - vitest: 1.6.0(@types/node@18.16.9)(@vitest/ui@1.6.0)(happy-dom@15.11.7)(jsdom@22.1.0(bufferutil@4.0.9)(canvas@2.11.2)(utf-8-validate@5.0.10))(less@4.1.3)(sass@1.62.1)(stylus@0.59.0)(terser@5.39.0) + vitest: 1.6.0(@types/node@18.16.9)(@vitest/ui@1.6.0)(happy-dom@15.11.7)(jsdom@22.1.0(bufferutil@4.0.9)(canvas@2.11.2)(utf-8-validate@5.0.10))(less@4.1.3)(lightningcss@1.29.2)(sass@1.62.1)(stylus@0.59.0)(terser@5.39.0) '@vitest/utils@1.6.0': dependencies: @@ -23353,6 +23815,8 @@ snapshots: '@webassemblyjs/ast': 1.14.1 '@xtuc/long': 4.2.2 + '@webcomponents/custom-elements@1.6.0': {} + '@whatwg-node/disposablestack@0.0.6': dependencies: '@whatwg-node/promise-helpers': 1.3.1 @@ -23395,7 +23859,7 @@ snapshots: '@wyw-in-js/shared@0.5.5': dependencies: - debug: 4.4.0 + debug: 4.4.0(supports-color@5.5.0) find-up: 5.0.0 minimatch: 9.0.5 transitivePeerDependencies: @@ -23492,7 +23956,7 @@ snapshots: agent-base@6.0.2: dependencies: - debug: 4.4.0 + debug: 4.4.0(supports-color@5.5.0) transitivePeerDependencies: - supports-color @@ -24034,7 +24498,7 @@ snapshots: dependencies: bytes: 3.1.2 content-type: 1.0.5 - debug: 4.4.0 + debug: 4.4.0(supports-color@5.5.0) http-errors: 2.0.0 iconv-lite: 0.6.3 on-finished: 2.4.1 @@ -24350,6 +24814,29 @@ snapshots: dependencies: get-func-name: 2.0.2 + cheerio-select@2.1.0: + dependencies: + boolbase: 1.0.0 + css-select: 5.1.0 + css-what: 6.1.0 + domelementtype: 2.3.0 + domhandler: 5.0.3 + domutils: 3.2.2 + + cheerio@1.0.0: + dependencies: + cheerio-select: 2.1.0 + dom-serializer: 2.0.0 + domhandler: 5.0.3 + domutils: 3.2.2 + encoding-sniffer: 0.2.0 + htmlparser2: 9.1.0 + parse5: 7.3.0 + parse5-htmlparser2-tree-adapter: 7.1.0 + parse5-parser-stream: 7.1.2 + undici: 6.21.2 + whatwg-mimetype: 4.0.0 + chokidar@3.5.3: dependencies: anymatch: 3.1.3 @@ -24380,6 +24867,8 @@ snapshots: chownr@2.0.0: {} + chownr@3.0.0: {} + chrome-launcher@0.15.2: dependencies: '@types/node': 18.16.9 @@ -24877,7 +25366,7 @@ snapshots: optionalDependencies: webpack: 5.99.7(@swc/core@1.5.7(@swc/helpers@0.5.13))(esbuild@0.25.3) - css-minimizer-webpack-plugin@5.0.1(esbuild@0.25.3)(webpack@5.99.7(@swc/core@1.5.7(@swc/helpers@0.5.13))(esbuild@0.25.3)): + css-minimizer-webpack-plugin@5.0.1(esbuild@0.25.3)(lightningcss@1.29.2)(webpack@5.99.7(@swc/core@1.5.7(@swc/helpers@0.5.13))(esbuild@0.25.3)): dependencies: '@jridgewell/trace-mapping': 0.3.25 cssnano: 6.1.2(postcss@8.4.38) @@ -24888,6 +25377,7 @@ snapshots: webpack: 5.99.7(@swc/core@1.5.7(@swc/helpers@0.5.13))(esbuild@0.25.3) optionalDependencies: esbuild: 0.25.3 + lightningcss: 1.29.2 css-select@5.1.0: dependencies: @@ -25044,9 +25534,11 @@ snapshots: dependencies: ms: 2.1.3 - debug@4.4.0: + debug@4.4.0(supports-color@5.5.0): dependencies: ms: 2.1.3 + optionalDependencies: + supports-color: 5.5.0 decamelize@1.2.0: {} @@ -25168,7 +25660,7 @@ snapshots: detect-port@1.6.1: dependencies: address: 1.2.2 - debug: 4.4.0 + debug: 4.4.0(supports-color@5.5.0) transitivePeerDependencies: - supports-color @@ -25354,6 +25846,11 @@ snapshots: encodeurl@2.0.0: {} + encoding-sniffer@0.2.0: + dependencies: + iconv-lite: 0.6.3 + whatwg-encoding: 3.1.1 + end-of-stream@1.4.4: dependencies: once: 1.4.0 @@ -25477,6 +25974,8 @@ snapshots: iterator.prototype: 1.1.5 safe-array-concat: 1.1.3 + es-module-lexer@0.10.5: {} + es-module-lexer@1.7.0: {} es-object-atoms@1.1.1: @@ -25510,7 +26009,7 @@ snapshots: esbuild-register@3.6.0(esbuild@0.25.3): dependencies: - debug: 4.4.0 + debug: 4.4.0(supports-color@5.5.0) esbuild: 0.25.3 transitivePeerDependencies: - supports-color @@ -25624,7 +26123,7 @@ snapshots: eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.31.0)(eslint@8.57.0): dependencies: '@nolyfill/is-core-module': 1.0.39 - debug: 4.4.0 + debug: 4.4.0(supports-color@5.5.0) eslint: 8.57.0 get-tsconfig: 4.10.0 is-bun-module: 2.0.0 @@ -25814,7 +26313,7 @@ snapshots: ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.6 - debug: 4.4.0 + debug: 4.4.0(supports-color@5.5.0) doctrine: 3.0.0 escape-string-regexp: 4.0.0 eslint-scope: 7.2.2 @@ -25866,6 +26365,8 @@ snapshots: estree-util-is-identifier-name@3.0.0: {} + estree-walker@2.0.2: {} + estree-walker@3.0.3: dependencies: '@types/estree': 1.0.7 @@ -26030,7 +26531,7 @@ snapshots: content-type: 1.0.5 cookie: 0.7.2 cookie-signature: 1.2.2 - debug: 4.4.0 + debug: 4.4.0(supports-color@5.5.0) encodeurl: 2.0.0 escape-html: 1.0.3 etag: 1.8.1 @@ -26255,7 +26756,7 @@ snapshots: finalhandler@2.1.0: dependencies: - debug: 4.4.0 + debug: 4.4.0(supports-color@5.5.0) encodeurl: 2.0.0 escape-html: 1.0.3 on-finished: 2.4.1 @@ -26316,7 +26817,7 @@ snapshots: follow-redirects@1.15.9(debug@4.4.0): optionalDependencies: - debug: 4.4.0 + debug: 4.4.0(supports-color@5.5.0) for-each@0.3.5: dependencies: @@ -26577,7 +27078,7 @@ snapshots: dependencies: basic-ftp: 5.0.5 data-uri-to-buffer: 6.0.2 - debug: 4.4.0 + debug: 4.4.0(supports-color@5.5.0) transitivePeerDependencies: - supports-color @@ -26669,6 +27170,8 @@ snapshots: merge2: 1.4.1 slash: 4.0.0 + globrex@0.1.2: {} + google-auth-library@8.9.0: dependencies: arrify: 2.0.1 @@ -26834,6 +27337,8 @@ snapshots: has-bigints@1.1.0: {} + has-flag@3.0.0: {} + has-flag@4.0.0: {} has-own-prop@2.0.0: {} @@ -27069,6 +27574,13 @@ snapshots: dependencies: lru-cache: 10.4.3 + hot-reload-extension-vite@1.0.13(bufferutil@4.0.9)(utf-8-validate@5.0.10): + dependencies: + ws: 8.18.2(bufferutil@4.0.9)(utf-8-validate@5.0.10) + transitivePeerDependencies: + - bufferutil + - utf-8-validate + hpack.js@2.1.6: dependencies: inherits: 2.0.4 @@ -27103,6 +27615,13 @@ snapshots: domutils: 3.2.2 entities: 4.5.0 + htmlparser2@9.1.0: + dependencies: + domelementtype: 2.3.0 + domhandler: 5.0.3 + domutils: 3.2.2 + entities: 4.5.0 + http-assert@1.5.0: dependencies: deep-equal: 1.0.1 @@ -27141,14 +27660,14 @@ snapshots: dependencies: '@tootallnate/once': 2.0.0 agent-base: 6.0.2 - debug: 4.4.0 + debug: 4.4.0(supports-color@5.5.0) transitivePeerDependencies: - supports-color http-proxy-agent@7.0.2: dependencies: agent-base: 7.1.3 - debug: 4.4.0 + debug: 4.4.0(supports-color@5.5.0) transitivePeerDependencies: - supports-color @@ -27167,7 +27686,7 @@ snapshots: http-proxy-middleware@3.0.5: dependencies: '@types/http-proxy': 1.17.16 - debug: 4.4.0 + debug: 4.4.0(supports-color@5.5.0) http-proxy: 1.18.1(debug@4.4.0) is-glob: 4.0.3 is-plain-object: 5.0.0 @@ -27222,14 +27741,14 @@ snapshots: https-proxy-agent@5.0.1: dependencies: agent-base: 6.0.2 - debug: 4.4.0 + debug: 4.4.0(supports-color@5.5.0) transitivePeerDependencies: - supports-color https-proxy-agent@7.0.6: dependencies: agent-base: 7.1.3 - debug: 4.4.0 + debug: 4.4.0(supports-color@5.5.0) transitivePeerDependencies: - supports-color @@ -27252,7 +27771,7 @@ snapshots: '@types/tough-cookie': 4.0.5 axios: 1.9.0(debug@4.4.0) camelcase: 6.3.0 - debug: 4.4.0 + debug: 4.4.0(supports-color@5.5.0) dotenv: 16.5.0 extend: 3.0.2 file-type: 16.5.4 @@ -27285,6 +27804,8 @@ snapshots: ieee754@1.2.1: {} + ignore-by-default@1.0.1: {} + ignore@5.3.2: {} image-size@0.5.5: @@ -27405,7 +27926,7 @@ snapshots: dependencies: '@ioredis/commands': 1.2.0 cluster-key-slot: 1.1.2 - debug: 4.4.0 + debug: 4.4.0(supports-color@5.5.0) denque: 2.1.0 lodash.defaults: 4.2.0 lodash.isarguments: 3.1.0 @@ -27710,7 +28231,7 @@ snapshots: istanbul-lib-source-maps@4.0.1: dependencies: - debug: 4.4.0 + debug: 4.4.0(supports-color@5.5.0) istanbul-lib-coverage: 3.2.2 source-map: 0.6.1 transitivePeerDependencies: @@ -27719,7 +28240,7 @@ snapshots: istanbul-lib-source-maps@5.0.6: dependencies: '@jridgewell/trace-mapping': 0.3.25 - debug: 4.4.0 + debug: 4.4.0(supports-color@5.5.0) istanbul-lib-coverage: 3.2.2 transitivePeerDependencies: - supports-color @@ -28126,6 +28647,8 @@ snapshots: jiti@1.21.7: {} + jiti@2.4.2: {} + jose@5.10.0: {} joycon@3.1.1: {} @@ -28411,7 +28934,7 @@ snapshots: content-disposition: 0.5.4 content-type: 1.0.5 cookies: 0.9.1 - debug: 4.4.0 + debug: 4.4.0(supports-color@5.5.0) delegates: 1.0.0 depd: 2.0.0 destroy: 1.2.0 @@ -28434,7 +28957,7 @@ snapshots: konva@9.3.20: {} - langchain@0.3.24(@langchain/core@0.3.51(openai@4.97.0(ws@8.18.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.4)))(axios@1.9.0)(openai@4.97.0(ws@8.18.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.4))(ws@8.18.2(bufferutil@4.0.9)(utf-8-validate@5.0.10)): + langchain@0.3.24(@langchain/core@0.3.51(openai@4.97.0(ws@8.18.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.4)))(axios@1.9.0)(cheerio@1.0.0)(openai@4.97.0(ws@8.18.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.4))(ws@8.18.2(bufferutil@4.0.9)(utf-8-validate@5.0.10)): dependencies: '@langchain/core': 0.3.51(openai@4.97.0(ws@8.18.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.4)) '@langchain/openai': 0.5.10(@langchain/core@0.3.51(openai@4.97.0(ws@8.18.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.4)))(ws@8.18.2(bufferutil@4.0.9)(utf-8-validate@5.0.10)) @@ -28451,6 +28974,7 @@ snapshots: zod-to-json-schema: 3.24.5(zod@3.24.4) optionalDependencies: axios: 1.9.0(debug@4.4.0) + cheerio: 1.0.0 transitivePeerDependencies: - encoding - openai @@ -28527,6 +29051,51 @@ snapshots: transitivePeerDependencies: - supports-color + lightningcss-darwin-arm64@1.29.2: + optional: true + + lightningcss-darwin-x64@1.29.2: + optional: true + + lightningcss-freebsd-x64@1.29.2: + optional: true + + lightningcss-linux-arm-gnueabihf@1.29.2: + optional: true + + lightningcss-linux-arm64-gnu@1.29.2: + optional: true + + lightningcss-linux-arm64-musl@1.29.2: + optional: true + + lightningcss-linux-x64-gnu@1.29.2: + optional: true + + lightningcss-linux-x64-musl@1.29.2: + optional: true + + lightningcss-win32-arm64-msvc@1.29.2: + optional: true + + lightningcss-win32-x64-msvc@1.29.2: + optional: true + + lightningcss@1.29.2: + dependencies: + detect-libc: 2.0.4 + optionalDependencies: + lightningcss-darwin-arm64: 1.29.2 + lightningcss-darwin-x64: 1.29.2 + lightningcss-freebsd-x64: 1.29.2 + lightningcss-linux-arm-gnueabihf: 1.29.2 + lightningcss-linux-arm64-gnu: 1.29.2 + lightningcss-linux-arm64-musl: 1.29.2 + lightningcss-linux-x64-gnu: 1.29.2 + lightningcss-linux-x64-musl: 1.29.2 + lightningcss-win32-arm64-msvc: 1.29.2 + lightningcss-win32-x64-msvc: 1.29.2 + lilconfig@2.1.0: {} lilconfig@3.1.3: {} @@ -28628,7 +29197,7 @@ snapshots: log4js@6.9.1: dependencies: date-format: 4.0.14 - debug: 4.4.0 + debug: 4.4.0(supports-color@5.5.0) flatted: 3.3.3 rfdc: 1.4.1 streamroller: 3.1.5 @@ -29104,7 +29673,7 @@ snapshots: metro-file-map@0.82.2: dependencies: - debug: 4.4.0 + debug: 4.4.0(supports-color@5.5.0) fb-watchman: 2.0.2 flow-enums-runtime: 0.0.6 graceful-fs: 4.2.11 @@ -29200,7 +29769,7 @@ snapshots: chalk: 4.1.2 ci-info: 2.0.0 connect: 3.7.0 - debug: 4.4.0 + debug: 4.4.0(supports-color@5.5.0) error-stack-parser: 2.1.4 flow-enums-runtime: 0.0.6 graceful-fs: 4.2.11 @@ -29585,7 +30154,7 @@ snapshots: micromark@3.2.0: dependencies: '@types/debug': 4.1.12 - debug: 4.4.0 + debug: 4.4.0(supports-color@5.5.0) decode-named-character-reference: 1.1.0 micromark-core-commonmark: 1.1.0 micromark-factory-space: 1.1.0 @@ -29607,7 +30176,7 @@ snapshots: micromark@4.0.2: dependencies: '@types/debug': 4.1.12 - debug: 4.4.0 + debug: 4.4.0(supports-color@5.5.0) decode-named-character-reference: 1.1.0 devlop: 1.1.0 micromark-core-commonmark: 2.0.3 @@ -29716,6 +30285,10 @@ snapshots: minipass: 3.3.6 yallist: 4.0.0 + minizlib@3.0.2: + dependencies: + minipass: 7.1.2 + mixwith@0.1.1: {} mkdirp@0.5.6: @@ -29724,6 +30297,8 @@ snapshots: mkdirp@1.0.4: {} + mkdirp@3.0.1: {} + mlly@1.7.4: dependencies: acorn: 8.14.1 @@ -29975,6 +30550,19 @@ snapshots: nodemailer@6.10.1: {} + nodemon@3.1.10: + dependencies: + chokidar: 3.6.0 + debug: 4.4.0(supports-color@5.5.0) + ignore-by-default: 1.0.1 + minimatch: 3.1.2 + pstree.remy: 1.1.8 + semver: 7.7.1 + simple-update-notifier: 2.0.0 + supports-color: 5.5.0 + touch: 3.1.1 + undefsafe: 2.0.5 + nopt@5.0.0: dependencies: abbrev: 1.1.1 @@ -30391,7 +30979,7 @@ snapshots: dependencies: '@tootallnate/quickjs-emscripten': 0.23.0 agent-base: 7.1.3 - debug: 4.4.0 + debug: 4.4.0(supports-color@5.5.0) get-uri: 6.0.4 http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.6 @@ -30464,6 +31052,15 @@ snapshots: parse-passwd@1.0.0: {} + parse5-htmlparser2-tree-adapter@7.1.0: + dependencies: + domhandler: 5.0.3 + parse5: 7.3.0 + + parse5-parser-stream@7.1.2: + dependencies: + parse5: 7.3.0 + parse5@4.0.0: {} parse5@7.3.0: @@ -30682,7 +31279,7 @@ snapshots: portfinder@1.0.37: dependencies: async: 3.2.6 - debug: 4.4.0 + debug: 4.4.0(supports-color@5.5.0) transitivePeerDependencies: - supports-color @@ -31012,7 +31609,7 @@ snapshots: proxy-agent@6.5.0: dependencies: agent-base: 7.1.3 - debug: 4.4.0 + debug: 4.4.0(supports-color@5.5.0) http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.6 lru-cache: 7.18.3 @@ -31035,6 +31632,8 @@ snapshots: dependencies: punycode: 2.3.1 + pstree.remy@1.1.8: {} + public-encrypt@4.0.3: dependencies: bn.js: 4.12.2 @@ -31387,6 +31986,8 @@ snapshots: react-refresh@0.10.0: {} + react-refresh@0.13.0: {} + react-refresh@0.14.2: {} react-refresh@0.17.0: {} @@ -31896,6 +32497,10 @@ snapshots: hash-base: 3.0.5 inherits: 2.0.4 + rollup@2.79.2: + optionalDependencies: + fsevents: 2.3.3 + rollup@4.40.1: dependencies: '@types/estree': 1.0.7 @@ -31924,7 +32529,7 @@ snapshots: router@2.2.0: dependencies: - debug: 4.4.0 + debug: 4.4.0(supports-color@5.5.0) depd: 2.0.0 is-promise: 4.0.0 parseurl: 1.3.3 @@ -31968,6 +32573,10 @@ snapshots: dependencies: tslib: 1.14.1 + rxjs@7.5.7: + dependencies: + tslib: 2.8.1 + rxjs@7.8.1: dependencies: tslib: 2.8.1 @@ -32112,7 +32721,7 @@ snapshots: send@1.2.0: dependencies: - debug: 4.4.0 + debug: 4.4.0(supports-color@5.5.0) encodeurl: 2.0.0 escape-html: 1.0.3 etag: 1.8.1 @@ -32306,6 +32915,10 @@ snapshots: dependencies: is-arrayish: 0.3.2 + simple-update-notifier@2.0.0: + dependencies: + semver: 7.7.1 + simple-wcswidth@1.0.1: {} sirv@2.0.4: @@ -32380,7 +32993,7 @@ snapshots: socks-proxy-agent@8.0.5: dependencies: agent-base: 7.1.3 - debug: 4.4.0 + debug: 4.4.0(supports-color@5.5.0) socks: 2.8.4 transitivePeerDependencies: - supports-color @@ -32447,7 +33060,7 @@ snapshots: spdy-transport@3.0.0: dependencies: - debug: 4.4.0 + debug: 4.4.0(supports-color@5.5.0) detect-node: 2.1.0 hpack.js: 2.1.6 obuf: 1.1.2 @@ -32458,7 +33071,7 @@ snapshots: spdy@4.0.2: dependencies: - debug: 4.4.0 + debug: 4.4.0(supports-color@5.5.0) handle-thing: 2.0.1 http-deceiver: 1.2.7 select-hose: 2.0.0 @@ -32538,7 +33151,7 @@ snapshots: streamroller@3.1.5: dependencies: date-format: 4.0.14 - debug: 4.4.0 + debug: 4.4.0(supports-color@5.5.0) fs-extra: 8.1.0 transitivePeerDependencies: - supports-color @@ -32732,7 +33345,7 @@ snapshots: stylus@0.59.0: dependencies: '@adobe/css-tools': 4.4.2 - debug: 4.4.0 + debug: 4.4.0(supports-color@5.5.0) glob: 7.2.3 sax: 1.2.4 source-map: 0.7.4 @@ -32751,6 +33364,10 @@ snapshots: superstruct@2.0.2: {} + supports-color@5.5.0: + dependencies: + has-flag: 3.0.0 + supports-color@7.2.0: dependencies: has-flag: 4.0.0 @@ -32826,6 +33443,8 @@ snapshots: transitivePeerDependencies: - ts-node + tailwindcss@4.1.6: {} + tapable@2.2.1: {} tar-stream@2.2.0: @@ -32845,6 +33464,15 @@ snapshots: mkdirp: 1.0.4 yallist: 4.0.0 + tar@7.4.3: + dependencies: + '@isaacs/fs-minipass': 4.0.1 + chownr: 3.0.0 + minipass: 7.1.2 + minizlib: 3.0.2 + mkdirp: 3.0.1 + yallist: 5.0.0 + telejson@7.2.0: dependencies: memoizerific: 1.11.3 @@ -32984,6 +33612,8 @@ snapshots: totalist@3.0.1: {} + touch@3.1.1: {} + tough-cookie@2.5.0: dependencies: psl: 1.15.0 @@ -33131,6 +33761,10 @@ snapshots: optionalDependencies: '@swc/core': 1.5.7(@swc/helpers@0.5.13) + tsconfck@3.1.5(typescript@5.5.4): + optionalDependencies: + typescript: 5.5.4 + tsconfig-paths-webpack-plugin@4.0.0: dependencies: chalk: 4.1.2 @@ -33293,8 +33927,12 @@ snapshots: uncrypto@0.1.3: {} + undefsafe@2.0.5: {} + undici-types@5.26.5: {} + undici@6.21.2: {} + unicode-canonical-property-names-ecmascript@2.0.1: {} unicode-match-property-ecmascript@2.0.0: @@ -33676,13 +34314,13 @@ snapshots: - utf-8-validate - zod - vite-node@1.6.0(@types/node@18.16.9)(less@4.1.3)(sass@1.62.1)(stylus@0.59.0)(terser@5.39.0): + vite-node@1.6.0(@types/node@18.16.9)(less@4.1.3)(lightningcss@1.29.2)(sass@1.62.1)(stylus@0.59.0)(terser@5.39.0): dependencies: cac: 6.7.14 - debug: 4.4.0 + debug: 4.4.0(supports-color@5.5.0) pathe: 1.1.2 picocolors: 1.1.1 - vite: 5.4.19(@types/node@18.16.9)(less@4.1.3)(sass@1.62.1)(stylus@0.59.0)(terser@5.39.0) + vite: 5.4.19(@types/node@18.16.9)(less@4.1.3)(lightningcss@1.29.2)(sass@1.62.1)(stylus@0.59.0)(terser@5.39.0) transitivePeerDependencies: - '@types/node' - less @@ -33694,7 +34332,18 @@ snapshots: - supports-color - terser - vite@5.4.19(@types/node@18.16.9)(less@4.1.3)(sass@1.62.1)(stylus@0.59.0)(terser@5.39.0): + vite-tsconfig-paths@5.1.4(typescript@5.5.4)(vite@5.4.19(@types/node@18.16.9)(less@4.1.3)(lightningcss@1.29.2)(sass@1.62.1)(stylus@0.59.0)(terser@5.39.0)): + dependencies: + debug: 4.4.0(supports-color@5.5.0) + globrex: 0.1.2 + tsconfck: 3.1.5(typescript@5.5.4) + optionalDependencies: + vite: 5.4.19(@types/node@18.16.9)(less@4.1.3)(lightningcss@1.29.2)(sass@1.62.1)(stylus@0.59.0)(terser@5.39.0) + transitivePeerDependencies: + - supports-color + - typescript + + vite@5.4.19(@types/node@18.16.9)(less@4.1.3)(lightningcss@1.29.2)(sass@1.62.1)(stylus@0.59.0)(terser@5.39.0): dependencies: esbuild: 0.21.5 postcss: 8.5.3 @@ -33703,11 +34352,12 @@ snapshots: '@types/node': 18.16.9 fsevents: 2.3.3 less: 4.1.3 + lightningcss: 1.29.2 sass: 1.62.1 stylus: 0.59.0 terser: 5.39.0 - vitest@1.6.0(@types/node@18.16.9)(@vitest/ui@1.6.0)(happy-dom@15.11.7)(jsdom@22.1.0(bufferutil@4.0.9)(canvas@2.11.2)(utf-8-validate@5.0.10))(less@4.1.3)(sass@1.62.1)(stylus@0.59.0)(terser@5.39.0): + vitest@1.6.0(@types/node@18.16.9)(@vitest/ui@1.6.0)(happy-dom@15.11.7)(jsdom@22.1.0(bufferutil@4.0.9)(canvas@2.11.2)(utf-8-validate@5.0.10))(less@4.1.3)(lightningcss@1.29.2)(sass@1.62.1)(stylus@0.59.0)(terser@5.39.0): dependencies: '@vitest/expect': 1.6.0 '@vitest/runner': 1.6.0 @@ -33716,7 +34366,7 @@ snapshots: '@vitest/utils': 1.6.0 acorn-walk: 8.3.4 chai: 4.5.0 - debug: 4.4.0 + debug: 4.4.0(supports-color@5.5.0) execa: 8.0.1 local-pkg: 0.5.1 magic-string: 0.30.17 @@ -33726,8 +34376,8 @@ snapshots: strip-literal: 2.1.1 tinybench: 2.9.0 tinypool: 0.8.4 - vite: 5.4.19(@types/node@18.16.9)(less@4.1.3)(sass@1.62.1)(stylus@0.59.0)(terser@5.39.0) - vite-node: 1.6.0(@types/node@18.16.9)(less@4.1.3)(sass@1.62.1)(stylus@0.59.0)(terser@5.39.0) + vite: 5.4.19(@types/node@18.16.9)(less@4.1.3)(lightningcss@1.29.2)(sass@1.62.1)(stylus@0.59.0)(terser@5.39.0) + vite-node: 1.6.0(@types/node@18.16.9)(less@4.1.3)(lightningcss@1.29.2)(sass@1.62.1)(stylus@0.59.0)(terser@5.39.0) why-is-node-running: 2.3.0 optionalDependencies: '@types/node': 18.16.9 @@ -33779,6 +34429,8 @@ snapshots: web-vitals@4.2.4: {} + webextension-polyfill@0.12.0: {} + webidl-conversions@3.0.1: {} webidl-conversions@7.0.0: {} @@ -33926,10 +34578,16 @@ snapshots: dependencies: iconv-lite: 0.6.3 + whatwg-encoding@3.1.1: + dependencies: + iconv-lite: 0.6.3 + whatwg-fetch@3.6.20: {} whatwg-mimetype@3.0.0: {} + whatwg-mimetype@4.0.0: {} + whatwg-url@11.0.0: dependencies: tr46: 3.0.0 @@ -34103,6 +34761,8 @@ snapshots: yallist@4.0.0: {} + yallist@5.0.0: {} + yaml@1.10.2: {} yaml@2.7.1: {} diff --git a/tsconfig.base.json b/tsconfig.base.json index 629a68b3..585db7ce 100644 --- a/tsconfig.base.json +++ b/tsconfig.base.json @@ -32,7 +32,8 @@ "@gitroom/nestjs-libraries/*": ["libraries/nestjs-libraries/src/*"], "@gitroom/react/*": ["libraries/react-shared-libraries/src/*"], "@gitroom/plugins/*": ["libraries/plugins/src/*"], - "@gitroom/workers/*": ["apps/workers/src/*"] + "@gitroom/workers/*": ["apps/workers/src/*"], + "@gitroom/extension/*": ["apps/extension/src/*"] } }, "exclude": ["node_modules", "tmp"]