diff --git a/packages/plugin-docusaurus/.editorconfig b/packages/plugin-docusaurus/.editorconfig deleted file mode 100644 index 257894844..000000000 --- a/packages/plugin-docusaurus/.editorconfig +++ /dev/null @@ -1,6 +0,0 @@ -[*] -end_of_line = lf -insert_final_newline = true -charset = utf-8 -indent_style = space -indent_size = 2 \ No newline at end of file diff --git a/packages/plugin-docusaurus/.eslintrc.cjs b/packages/plugin-docusaurus/.eslintrc.cjs deleted file mode 100644 index bdf7a31ba..000000000 --- a/packages/plugin-docusaurus/.eslintrc.cjs +++ /dev/null @@ -1,45 +0,0 @@ -module.exports = { - env: { - node: true, - browser: true - }, - parserOptions: { - project: 'tsconfig.test.json', - sourceType: 'module' - }, - globals: { - Deno: 'readonly' - }, - root: true, - parser: '@typescript-eslint/parser', - // plugins: ['import'], - extends: [ - 'plugin:import/typescript', - // 'standard-with-typescript', - 'plugin:react/recommended', - 'plugin:react/jsx-runtime', - 'react-app' - ], - rules: { - 'import/extensions': [2, 'always', { ignorePackages: true }], // This is required for proper ESM use - 'no-async-promise-executor': 0, - 'space-before-function-paren': 0, // This is inserted to make this compatible with prettier. - '@typescript-eslint/promise-function-async': 0, - '@typescript-eslint/return-await': 0, - '@typescript-eslint/space-before-function-paren': 0, // This is inserted to make this compatible with prettier. - '@typescript-eslint/strict-boolean-expressions': 0 - }, - overrides: [ - { - files: ['test/**/*.ts'], - rules: { - '@typescript-eslint/no-floating-promises': 0, - '@typescript-eslint/no-non-null-assertion': 0 - } - }, - { - files: ['test/ci/**/*.js'], - parser: 'espree' - } - ] -} diff --git a/packages/plugin-docusaurus/.swcrc b/packages/plugin-docusaurus/.swcrc deleted file mode 100644 index 9beaad1a9..000000000 --- a/packages/plugin-docusaurus/.swcrc +++ /dev/null @@ -1,59 +0,0 @@ -[ - { - "test": ".*\\.ts$", - "jsc": { - "target": "es2022", - "parser": { - "syntax": "typescript", - "tsx": false, - "dynamicImport": true, - "importAssertions": true - }, - "experimental": { - "keepImportAssertions": true - } - }, - "sourceMaps": true - }, - { - "test": ".*\\.tsx$", - "jsc": { - "target": "es2022", - "parser": { - "syntax": "typescript", - "tsx": true, - "dynamicImport": true, - "importAssertions": true - }, - "transform": { - "react": { - "runtime": "automatic" - } - }, - "experimental": { - "keepImportAssertions": true - } - }, - "sourceMaps": true - }, - { - "test": ".*\\.cts$", - "module": { - "type": "commonjs", - "ignoreDynamic": true - }, - "jsc": { - "target": "es2022", - "parser": { - "syntax": "typescript", - "tsx": false, - "dynamicImport": true, - "importAssertions": true - }, - "experimental": { - "keepImportAssertions": true - } - }, - "sourceMaps": true - } -] diff --git a/packages/plugin-docusaurus/package.json b/packages/plugin-docusaurus/package.json index c57a89dfa..fbed96091 100644 --- a/packages/plugin-docusaurus/package.json +++ b/packages/plugin-docusaurus/package.json @@ -5,93 +5,51 @@ "keywords": ["orama", "docusaurus"], "license": "Apache-2.0", "bugs": { - "url": "https://github.com/orama/plugin-docusaurus/issues" + "url": "https://github.com/orama/orama/issues" }, - "homepage": "https://github.com/orama/plugin-docusaurus#readme", + "homepage": "https://docs.oramasearch.com/open-source/plugins/plugin-docusaurus.html", "repository": { "type": "git", - "url": "git+https://github.com/orama/plugin-docusaurus.git" + "url": "git+https://github.com/orama/orama.git" }, - "type": "module", "sideEffects": false, - "exports": { - ".": { - "types": "./dist/server/index.d.ts", - "import": "./dist/server/index.js", - "require": "./dist/server/commonjs.cjs" - }, - "./types": { - "types": "./dist/server/types.d.ts", - "import": "./dist/server/types.js", - "require": "./dist/server/types.cjs" - } - }, - "types": "./dist/server/index.d.ts", - "files": ["dist"], + "main": "dist/index.js", + "types": "dist/index.d.ts", "scripts": { - "dev": "swc --delete-dir-on-start -s -w --extensions .ts,.tsx,.cts -d dist src", - "prebuild": "npm run lint", - "build": "swc --delete-dir-on-start --extensions .ts,.tsx,.cts -d dist src", + "build": "tsc", "postbuild": "sh scripts/postbuild.sh", - "pretest": "node ../../scripts/test-pack.mjs plugin-docusaurus", - "test": "echo \"Docusaurus v2 will become unmaintained soon. Use Docusaurus v3.\" # node --loader=tsx --no-warnings=loader --test ./test/integration.ts | tap-mocha-reporter spec", - "format": "prettier -w src", - "lint": "eslint src --ext .js,.ts,.tsx,.cts", - "changelog": "auto-changelog -p" + "watch": "tsc --watch" }, "dependencies": { - "@algolia/autocomplete-js": "^1.7.2", - "@algolia/autocomplete-theme-classic": "^1.7.3", - "@docusaurus/theme-common": "^2.4.3", - "@docusaurus/plugin-content-docs": "^2.4.3", - "@orama/highlight": "^0.1.2", - "@orama/orama": "workspace:*", - "@orama/plugin-analytics": "workspace:*", - "@orama/plugin-parsedoc": "workspace:*", + "@orama/highlight": "^0.1.5", + "@orama/orama": "^2.1.0", + "@orama/react-components": "^0.0.25", + "@orama/plugin-analytics": "^2.1.0", + "@orama/plugin-parsedoc": "^2.1.0", + "@orama/switch": "^2.1.0", + "@oramacloud/client": "^1.0.14", "github-slugger": "^2.0.0", + "gray-matter": "^4.0.3", + "jsdom": "^23.2.0", + "markdown-it": "^13.0.2", "pako": "^2.1.0", - "vfile-message": "^3.1.3" + "tslib": "^2.6.2", + "vfile-message": "^3.1.4" }, "devDependencies": { - "@commitlint/cli": "^17.4.0", - "@commitlint/config-conventional": "^17.4.0", - "@docusaurus/module-type-aliases": "^2.4.3", - "@docusaurus/types": "^2.4.3", - "@swc/cli": "^0.1.59", - "@swc/core": "^1.3.27", - "@types/node": "^18.11.17", - "@types/pako": "^2.0.0", - "@types/react": "^18.0.26", - "@types/react-dom": "^18.0.9", - "@typescript-eslint/eslint-plugin": "^6.4.1", - "@typescript-eslint/parser": "^6.4.1", - "eslint": "^8.48.0", - "eslint-config-react": "^1.1.7", - "eslint-config-react-app": "^7.0.1", - "eslint-config-standard": "^17.0.0", - "eslint-config-standard-with-typescript": "^39.0.0", - "eslint-plugin-import": "^2.28.1", - "eslint-plugin-n": "^16.0.2", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-react": "^7.33.2", - "husky": "^8.0.3", - "lint-staged": "^13.1.0", - "prettier": "^2.8.1", - "react": "^17.0.2", - "react-dom": "^17.0.2", - "tap-mocha-reporter": "^5.0.3", - "tsx": "^3.12.2", - "typescript": "^5.0.0", - "webpack": "^5.75.0" + "@types/jsdom": "^21.1.6", + "@types/markdown-it": "^13.0.7", + "@types/pako": "^2.0.3" }, "peerDependencies": { - "react": "^17.0.2", - "react-dom": "^17.0.2" + "@docusaurus/plugin-content-docs": "2.x", + "@docusaurus/theme-common": "2.x", + "@docusaurus/types": "2.x", + "@docusaurus/utils": "2.x", + "react": "17.x", + "react-dom": "17.x" }, "publishConfig": { "access": "public" - }, - "lint-staged": { - "*.{ts, tsx}": "eslint ./src --cache --fix" } } diff --git a/packages/plugin-docusaurus/prettier.config.cjs b/packages/plugin-docusaurus/prettier.config.cjs deleted file mode 100644 index 731687114..000000000 --- a/packages/plugin-docusaurus/prettier.config.cjs +++ /dev/null @@ -1,8 +0,0 @@ -module.exports = { - printWidth: 120, - semi: false, - singleQuote: true, - bracketSpacing: true, - trailingComma: 'none', - arrowParens: 'avoid' -} diff --git a/packages/plugin-docusaurus/scripts/postbuild.sh b/packages/plugin-docusaurus/scripts/postbuild.sh index 9eacfd08a..1eb091979 100755 --- a/packages/plugin-docusaurus/scripts/postbuild.sh +++ b/packages/plugin-docusaurus/scripts/postbuild.sh @@ -1,15 +1,4 @@ #!/bin/bash -set -x -e - -# tsc -p . --emitDeclarationOnly -# tsc -p tsconfig.cjs.json --emitDeclarationOnly -# tsc --module CommonJS --outDir dist/server/cjs/ src/server/types.ts - -mv dist/server/commonjs.js dist/server/commonjs.cjs -mv dist/server/commonjs.js.map dist/server/commonjs.cjs.map -mv dist/server/cjs/types.js dist/server/types.cjs && rm -r dist/server/cjs - -cp -a src/translationMessages dist/translationMessages -cp src/client/theme/SearchBar/*.css dist/client/theme/SearchBar -cp src/client/theme/SearchBarFooter/*.css dist/client/theme/SearchBarFooter +mkdir -p dist/theme/SearchBar +cp src/theme/SearchBar/*.css dist/theme/SearchBar \ No newline at end of file diff --git a/packages/plugin-docusaurus/src/client/theme/OramaLogo/index.tsx b/packages/plugin-docusaurus/src/client/theme/OramaLogo/index.tsx deleted file mode 100644 index 7cab02b9a..000000000 --- a/packages/plugin-docusaurus/src/client/theme/OramaLogo/index.tsx +++ /dev/null @@ -1,673 +0,0 @@ -const logoDarkStyle = ` -.st0{fill:#F1F1F1;} -.st1{clip-path:url(#SVGID_00000173879314932002601690000004467558796121400750_);fill:#FB81B8;} -.st2{clip-path:url(#SVGID_00000110465739266569342360000009994806409646629266_);fill-rule:evenodd;clip-rule:evenodd;fill:url(#SVGID_00000109749856959687867430000005922655113651493051_);} -.st3{clip-path:url(#SVGID_00000083772220377844668640000014270627887136862871_);fill:url(#SVGID_00000023970480408666843750000009139365288006549676_);} -.st4{clip-path:url(#SVGID_00000007387021808622077600000008231332769069855412_);fill-rule:evenodd;clip-rule:evenodd;fill:url(#SVGID_00000096037922040833498710000000345973257815506326_);} -.st5{clip-path:url(#SVGID_00000155131937825044918480000012477285865566750606_);fill-rule:evenodd;clip-rule:evenodd;fill:url(#SVGID_00000085956322674693249330000002897762106153069457_);} -.st6{clip-path:url(#SVGID_00000007427917354384892590000008323849365716177816_);fill-rule:evenodd;clip-rule:evenodd;fill:url(#SVGID_00000100354159152759772890000018306988680613241258_);} -.st7{clip-path:url(#SVGID_00000117676152446614577000000003290884631243360662_);fill-rule:evenodd;clip-rule:evenodd;fill:#F97CBF;} -.st8{clip-path:url(#SVGID_00000045603176312755833640000016830543301894725252_);fill-rule:evenodd;clip-rule:evenodd;fill:url(#SVGID_00000055669823316971348430000007456605679816995478_);} -.st9{clip-path:url(#SVGID_00000050637087109987908300000001655297821271179658_);fill-rule:evenodd;clip-rule:evenodd;fill:url(#SVGID_00000121276425135176461840000001411911869491139213_);} -.st10{clip-path:url(#SVGID_00000155862216285633165090000011392877503296698766_);fill-rule:evenodd;clip-rule:evenodd;fill:url(#SVGID_00000028307555131462038650000001206007083441086101_);} -` - -const logoLightStyle = ` -.st0{fill:#3A393D;} -.st1{clip-path:url(#SVGID_00000121237917302734654570000007802433009826490514_);fill:#FB81B8;} -.st2{clip-path:url(#SVGID_00000121237917302734654570000007802433009826490514_);fill-rule:evenodd;clip-rule:evenodd;fill:url(#SVGID_00000067951042823557912200000003375363423373398917_);} -.st3{clip-path:url(#SVGID_00000121237917302734654570000007802433009826490514_);fill:url(#SVGID_00000173158817079393216730000015416942586975534773_);} -.st4{clip-path:url(#SVGID_00000121237917302734654570000007802433009826490514_);fill-rule:evenodd;clip-rule:evenodd;fill:url(#SVGID_00000093858169607081702240000004176952752693074346_);} -.st5{clip-path:url(#SVGID_00000121237917302734654570000007802433009826490514_);fill-rule:evenodd;clip-rule:evenodd;fill:url(#SVGID_00000070090918966372163940000003253904251979675325_);} -.st6{clip-path:url(#SVGID_00000121237917302734654570000007802433009826490514_);fill-rule:evenodd;clip-rule:evenodd;fill:url(#SVGID_00000132776349315605697860000002688660824302203828_);} -.st7{clip-path:url(#SVGID_00000121237917302734654570000007802433009826490514_);fill-rule:evenodd;clip-rule:evenodd;fill:#F97CBF;} -.st8{clip-path:url(#SVGID_00000121237917302734654570000007802433009826490514_);fill-rule:evenodd;clip-rule:evenodd;fill:url(#SVGID_00000016755478859824984880000007136540152028842637_);} -.st9{clip-path:url(#SVGID_00000121237917302734654570000007802433009826490514_);fill-rule:evenodd;clip-rule:evenodd;fill:url(#SVGID_00000016785315492321026870000005125100075421436076_);} -.st10{clip-path:url(#SVGID_00000121237917302734654570000007802433009826490514_);fill-rule:evenodd;clip-rule:evenodd;fill:url(#SVGID_00000164475283253175513550000014604273281455785608_);} -` - -// Keep up to date with: https://docs.oramasearch.com/logo/logo-orama-dark.svg -export function OramaLogoDark(): JSX.Element { - return ( - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ) -} - -// Keep up to date with: https://docs.oramasearch.com/logo/logo-orama-light.svg -export function OramaLogoLight(): JSX.Element { - return ( - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ) -} diff --git a/packages/plugin-docusaurus/src/client/theme/SearchBar/index.tsx b/packages/plugin-docusaurus/src/client/theme/SearchBar/index.tsx deleted file mode 100644 index 4667e9cf2..000000000 --- a/packages/plugin-docusaurus/src/client/theme/SearchBar/index.tsx +++ /dev/null @@ -1,204 +0,0 @@ -import { autocomplete } from '@algolia/autocomplete-js' -import '@algolia/autocomplete-theme-classic/dist/theme.min.css' -// eslint-disable-next-line @typescript-eslint/ban-ts-comment, @typescript-eslint/prefer-ts-expect-error -// @ts-ignore Will fail in CJS compilation -import { GlobalVersion, useActiveVersion, useVersions } from '@docusaurus/plugin-content-docs/client' -import { useColorMode, useDocsPreferredVersion } from '@docusaurus/theme-common' -import useBaseUrl from '@docusaurus/useBaseUrl' -import useDocusaurusContext from '@docusaurus/useDocusaurusContext' -import { usePluginData } from '@docusaurus/useGlobalData' -import useIsBrowser from '@docusaurus/useIsBrowser' -import { AnyDocument, OramaPlugin, create, load, Orama, RawData, search as oramaSearch } from '@orama/orama' -import { pluginAnalytics, PluginAnalyticsParams } from '@orama/plugin-analytics' -import { Highlight } from '@orama/highlight' -import { ungzip } from 'pako' -import { createElement, Fragment, useCallback, useEffect, useMemo, useRef, useState } from 'react' -import { render } from 'react-dom' -// @ts-expect-error Resolve at runtime -import { SearchNoResults } from '@theme/SearchNoResults' -// @ts-expect-error Resolve at runtime -import { SearchResults } from '@theme/SearchResults' -// @ts-expect-error Resolve at runtime -import { SearchResult } from '@theme/SearchResult' -import { Hit, INDEX_FILE, PLUGIN_NAME, PluginData, schema } from '../../../server/types.js' -import { useLocation } from '@docusaurus/router' - -const highlighter = new Highlight({ - CSSClass: 'aa-ItemContentHighlight', - HTMLTag: 'span' -}) - -export default function SearchBar(): JSX.Element { - const isBrowser = useIsBrowser() - const { searchData, analytics, pluginContentDocsIds } = usePluginData(PLUGIN_NAME) as PluginData & { - analytics: PluginAnalyticsParams - } - const { siteConfig } = useDocusaurusContext() - const { pathname } = useLocation() - const pluginId = pluginContentDocsIds.filter((id: string) => pathname.includes(id))[0] || pluginContentDocsIds[0] - const containerRef = useRef(null) - const { colorMode } = useColorMode() - const [database, setDatabase] = useState>() - const searchBaseUrl = useBaseUrl(INDEX_FILE) - const versions = useVersions(pluginId) - const activeVersion = useActiveVersion(pluginId) - const { preferredVersion } = useDocsPreferredVersion(pluginId) - - const version = useMemo(() => { - if (!isBrowser) { - return undefined - } else if (activeVersion) { - return activeVersion - } else if (preferredVersion) { - return preferredVersion - } - - // Fallback - Return the latest version or the first one existing - return versions.find((v: GlobalVersion) => v.isLast) ?? versions[0] - }, [isBrowser, activeVersion, preferredVersion, versions]) - - const onKeyDown = useCallback( - function (setIsOpen: (value: boolean) => void, event: KeyboardEvent) { - const isOpen = containerRef.current?.querySelector('[role="combobox"]')?.getAttribute('aria-expanded') === 'true' - - if ( - (event.key?.toLowerCase() === 'escape' && isOpen) || - (event.key?.toLowerCase() === 'k' && (event.metaKey || event.ctrlKey)) - ) { - event.preventDefault() - setIsOpen(!isOpen) - } - }, - [containerRef] - ) - - useEffect(() => { - if (!containerRef.current || !isBrowser || !database) { - return undefined - } - - const search = autocomplete({ - placeholder: 'Search ...', - container: containerRef.current, - // @ts-expect-error render typing here is for preact, react also works - renderer: { createElement, Fragment, render }, - openOnFocus: true, - detachedMediaQuery: '', // always detached - async getSources({ query: term }): Promise { - return [ - { - sourceId: 'orama', - async getItems() { - if (!term) { - return [] - } - - const results = await oramaSearch(database, { - term, - mode: 'fulltext', - properties: ['sectionTitle', 'sectionContent', 'type'] - }) - - return results.hits.flatMap((hit) => { - return { - ...hit, - document: { - ...hit.document, - sectionContent: highlighter.highlight(hit.document.sectionContent, term).trim(20) - } - } - }) - }, - getItemUrl({ item }: { item: Hit }) { - return item.document.pageRoute - }, - templates: { - item({ item }: { item: Hit }) { - return - } - } - } - ] - }, - render({ sections, render }, root) { - render(, root) - }, - renderNoResults({ render, state }, root) { - render(, root) - } - }) - - const handler = onKeyDown.bind(null, search.setIsOpen) - window.addEventListener('keydown', handler) - - // Move keyboard instructions at the end - Apparently this is only possible manually - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion - const button = containerRef.current.querySelector('.aa-DetachedSearchButton')! - const icons = containerRef.current.querySelectorAll('kbd') - - for (const icon of Array.from(icons)) { - button.appendChild(icon.cloneNode(true)) - } - - return () => { - window.removeEventListener('keydown', handler) - search.destroy() - } - }, [isBrowser, siteConfig, database, colorMode, onKeyDown]) - - useEffect(() => { - async function loadDatabase(version: GlobalVersion): Promise { - let buffer: ArrayBuffer - - if (searchData[version.name]) { - buffer = searchData[version.name].data - } else { - const searchResponse = await fetch(searchBaseUrl.replace('@VERSION@', version.name)) - - if (searchResponse.status === 0) { - throw new Error(`Network error: ${await searchResponse.text()}`) - } else if (searchResponse.status !== 200) { - throw new Error(`HTTP error ${searchResponse.status}: ${await searchResponse.text()}`) - } - - buffer = await searchResponse.arrayBuffer() - } - - const deflated = ungzip(buffer, { to: 'string' }) - const data: RawData = JSON.parse(deflated) - - const pluginAnalyticsConfig = analytics ? pluginAnalytics(analytics) : ({} as OramaPlugin) - - const _db = await create({ - schema, - plugins: [pluginAnalyticsConfig] - }) - - await load(_db, data) - - setDatabase(_db) - } - - if (!isBrowser || !version) { - return - } - - loadDatabase(version).catch((error) => { - console.error('Cannot load search index.', error) - }) - }, [isBrowser, searchData, searchBaseUrl, version]) - - useEffect(() => { - colorMode === 'dark' ? document.body.classList.add(colorMode) : document.body.classList.remove('dark') - }, [colorMode]) - - return ( -
- {/* We need to use a template here since apparently there is no easy way to customize the input box */} - -
- ) -} diff --git a/packages/plugin-docusaurus/src/client/theme/SearchBar/logo-orama-dark.svg b/packages/plugin-docusaurus/src/client/theme/SearchBar/logo-orama-dark.svg deleted file mode 100644 index 164257214..000000000 --- a/packages/plugin-docusaurus/src/client/theme/SearchBar/logo-orama-dark.svg +++ /dev/null @@ -1,223 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/packages/plugin-docusaurus/src/client/theme/SearchBar/logo-orama-light.svg b/packages/plugin-docusaurus/src/client/theme/SearchBar/logo-orama-light.svg deleted file mode 100644 index d1621b7bd..000000000 --- a/packages/plugin-docusaurus/src/client/theme/SearchBar/logo-orama-light.svg +++ /dev/null @@ -1,148 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/packages/plugin-docusaurus/src/client/theme/SearchBar/style.css b/packages/plugin-docusaurus/src/client/theme/SearchBar/style.css deleted file mode 100644 index 64b54d8df..000000000 --- a/packages/plugin-docusaurus/src/client/theme/SearchBar/style.css +++ /dev/null @@ -1,85 +0,0 @@ -:root { - /* TODO relate this to docusarus css vars (which are hex values) */ - --aa-primary-color-rgb: var(--aa-text-color-rgb); - --aa-footer-height: 3.5rem; -} - -.aa-DetachedSearchButton { - /* shadow and gradient are taken from docsearch */ - --key-shadow: inset 0 -2px 0 0 #cdcde6, inset 0 0 1px 1px #fff, 0 1px 2px 1px rgba(30, 35, 90, 0.4); - --key-gradient: linear-gradient(-225deg, #d5dbe4, #f8f8f8); - border-radius: 9999px; - height: 36px; - background: var(--ifm-color-emphasis-200); - border: none; - color: initial; - display: flex; - flex-direction: row; - align-items: center; - gap: 0.5rem; - padding: 0 1.5rem; -} - -.aa-DetachedSearchButton kbd { - align-items: center; - background: var(--key-gradient); - border-radius: 2px; - box-shadow: var(--key-shadow); - display: flex; - height: 18px; - justify-content: center; - padding: 0 0 1px; - border: 0; - width: 20px; -} - -.aa-DetachedSearchButton kbd:last-child { - margin-right: 0.5em; -} - -.aa-DetachedSearchButton .aa-DetachedSearchButtonPlaceholder, -.aa-DetachedSearchButton .aa-DetachedSearchButtonQuery { - flex: 1; - white-space: nowrap; -} - -/* shadow and gradient are taken from docsearch */ -[data-theme='dark'] .aa-DetachedSearchButton { - --key-shadow: inset 0 -2px 0 0 #282d55, inset 0 0 1px 1px #51577d, 0 2px 2px 0 rgba(3, 4, 9, 0.3); - --key-gradient: linear-gradient(-26.5deg, #565872, #31355b); -} - -.navbar .aa-DetachedSearchButton { - width: 200px; - height: 36px; -} - -.aa-DetachedSearchButtonIcon { - color: inherit; - width: unset; -} - -.aa-DetachedContainer .aa-PanelLayout { - bottom: var(--aa-footer-height); -} - -.aa-NoResults { - display: flex; - align-items: center; - justify-content: center; - padding: 2rem; - font-size: 0.9em; - color: var(--ifm-color-emphasis-600); -} - -.aa-ItemLink { - margin-bottom: .6rem; - text-decoration: none !important; - color: rgba(var(--aa-primary-color-rgb), 1) !important; - padding: calc(var(--aa-spacing-half)/1.2); -} - -.aa-ItemContentHighlight { - color: rgba(var(--aa-primary-color-rgb), 1); - font-weight: bold; -} \ No newline at end of file diff --git a/packages/plugin-docusaurus/src/client/theme/SearchBarFooter/index.tsx b/packages/plugin-docusaurus/src/client/theme/SearchBarFooter/index.tsx deleted file mode 100644 index 0e75200ab..000000000 --- a/packages/plugin-docusaurus/src/client/theme/SearchBarFooter/index.tsx +++ /dev/null @@ -1,89 +0,0 @@ -// @ts-expect-error Resolve at runtime -import { OramaLogoDark, OramaLogoLight } from '@theme/OramaLogo' - -import { useColorMode } from '@docusaurus/theme-common' - -export interface SearchBarFooterTranslations { - selectText?: string - selectKeyAriaLabel?: string - navigateText?: string - navigateUpKeyAriaLabel?: string - navigateDownKeyAriaLabel?: string - closeText?: string - closeKeyAriaLabel?: string - searchByText?: string -} - -interface SearchBarFooterProps { - translations?: SearchBarFooterTranslations -} - -interface CommandIconProps { - children: React.ReactNode - ariaLabel: string -} - -function CommandIcon(props: CommandIconProps): JSX.Element { - return ( - - - {props.children} - - - ) -} - -export function SearchBarFooter({ translations = {} }: SearchBarFooterProps): JSX.Element { - const { - selectText = 'to select', - selectKeyAriaLabel = 'Enter key', - navigateText = 'to navigate', - navigateUpKeyAriaLabel = 'Arrow up', - navigateDownKeyAriaLabel = 'Arrow down', - closeText = 'to close', - closeKeyAriaLabel = 'Escape key', - searchByText = 'Powered by' - } = translations - - const { colorMode } = useColorMode() - - return ( - - ) -} diff --git a/packages/plugin-docusaurus/src/client/theme/SearchBarFooter/style.css b/packages/plugin-docusaurus/src/client/theme/SearchBarFooter/style.css deleted file mode 100644 index f0509f62d..000000000 --- a/packages/plugin-docusaurus/src/client/theme/SearchBarFooter/style.css +++ /dev/null @@ -1,76 +0,0 @@ -/* shadow and gradient are taken from docsearch */ -.aa-Footer { - --key-shadow: inset 0 -2px 0 0 #cdcde6, inset 0 0 1px 1px #fff, 0 1px 2px 1px rgba(30, 35, 90, 0.4); - --key-gradient: linear-gradient(-225deg, #d5dbe4, #f8f8f8); - align-items: center; - display: flex; - justify-content: space-between; - border-top: 1px solid rgba(var(--aa-panel-border-color-rgb), var(--aa-panel-border-color-alpha)); - color: var(--ifm-color-emphasis-600); - -webkit-user-select: none; - user-select: none; - padding: 1rem; - width: 100%; - font-size: 0.8rem; - height: var(--aa-footer-height); - position: absolute; - background-color: rgba(var(--aa-background-color-rgb), var(--aa-background-color-alpha)); - bottom: 0; -} - -.aa-Footer:first-child { - border-top: 0; -} - -.aa-DetachedContainer.aa-DetachedContainer--modal .aa-Footer { - position: static; -} - -/* shadow and gradient are taken from docsearch */ -[data-theme='dark'] .aa-Footer { - --key-shadow: inset 0 -2px 0 0 #282d55, inset 0 0 1px 1px #51577d, 0 2px 2px 0 rgba(3, 4, 9, 0.3); - --key-gradient: linear-gradient(-26.5deg, #565872, #31355b); -} - -ul.aa-FooterCommands { - list-style: none; - padding: 0; - margin: 0; - display: flex; - gap: 1rem; -} - -ul.aa-FooterCommands li { - display: inherit; -} - -.aa-FooterCommands kbd { - align-items: center; - background: var(--key-gradient); - border-radius: 2px; - box-shadow: var(--key-shadow); - display: flex; - height: 18px; - justify-content: center; - margin-right: 0.4em; - padding: 0 0 1px; - border: 0; - width: 20px; -} - -a.aa-FooterSearchCredit { - display: flex; - color: inherit; - align-items: center; - gap: 1ch; - --ifm-link-hover-color: inherit; - --ifm-link-hover-decoration: none; -} - -a.aa-FooterSearchCredit span { - white-space: nowrap; -} - -a.aa-FooterSearchCredit svg { - min-width: 7em; -} diff --git a/packages/plugin-docusaurus/src/client/theme/SearchNoResults/index.tsx b/packages/plugin-docusaurus/src/client/theme/SearchNoResults/index.tsx deleted file mode 100644 index 798cebe74..000000000 --- a/packages/plugin-docusaurus/src/client/theme/SearchNoResults/index.tsx +++ /dev/null @@ -1,16 +0,0 @@ -import { ColorModeProvider } from '@docusaurus/theme-common/internal' -// @ts-expect-error Resolve at runtime -import { SearchBarFooter } from '@theme/SearchBarFooter' - -export interface SearchNoResultsProps { - query: string -} - -export function SearchNoResults({ query }: SearchNoResultsProps): JSX.Element { - return ( - - {query ?
No results found.
: ''} - -
- ) -} diff --git a/packages/plugin-docusaurus/src/client/theme/SearchResult/index.tsx b/packages/plugin-docusaurus/src/client/theme/SearchResult/index.tsx deleted file mode 100644 index afd7f974a..000000000 --- a/packages/plugin-docusaurus/src/client/theme/SearchResult/index.tsx +++ /dev/null @@ -1,24 +0,0 @@ -import { Result } from '@orama/orama' -import { SectionSchema } from '../../../server/types.js' - -interface SearchResultProps { - hit: Result -} - -export function SearchResult({ hit }: SearchResultProps): JSX.Element { - return ( - -
-
-
-
{hit.document.sectionTitle as string}
-
-
-
-
-
- ) -} diff --git a/packages/plugin-docusaurus/src/client/theme/SearchResults/index.tsx b/packages/plugin-docusaurus/src/client/theme/SearchResults/index.tsx deleted file mode 100644 index 0436b51a0..000000000 --- a/packages/plugin-docusaurus/src/client/theme/SearchResults/index.tsx +++ /dev/null @@ -1,18 +0,0 @@ -// @ts-expect-error Resolve at runtime -import { SearchBarFooter } from '@theme/SearchBarFooter' - -import type { VNode } from '@algolia/autocomplete-js' -import { ColorModeProvider } from '@docusaurus/theme-common/internal' - -export interface SearchResultsProps { - sections?: VNode[] -} - -export function SearchResults({ sections }: SearchResultsProps): JSX.Element { - return ( - -
{sections}
- -
- ) -} diff --git a/packages/plugin-docusaurus/src/index.ts b/packages/plugin-docusaurus/src/index.ts new file mode 100644 index 000000000..7b7ef3808 --- /dev/null +++ b/packages/plugin-docusaurus/src/index.ts @@ -0,0 +1,341 @@ +import { readFileSync, writeFileSync } from 'node:fs' +import type { Plugin } from '@docusaurus/types' +import { cp } from 'node:fs/promises' +import { gzip } from 'pako' +import { resolve } from 'node:path' +// @ts-ignore +import { create, insertMultiple, save } from '@orama/orama' +import { JSDOM } from 'jsdom' +import MarkdownIt from 'markdown-it' +import matter from 'gray-matter' +import { createSnapshot, deployIndex, DOCS_PRESET_SCHEMA, fetchEndpointConfig } from "./utils" +import { parseMarkdownHeadingId, writeMarkdownHeadingId } from '@docusaurus/utils' + +enum DeployType { + SNAPSHOT_ONLY = 'snapshot-only', + DEFAULT = 'default' +} + +type CloudConfig = { + deploy: DeployType | false + endpoint: string + indexId: string + oramaCloudAPIKey?: string + public_api_key: string +} + +type PluginOptions = { + analytics?: { + enabled: boolean + apiKey: string + indexId: string + } + cloud?: CloudConfig +} + +export default function OramaPluginDocusaurus( + ctx: { + siteDir: any + generatedFilesDir: any + }, + options: PluginOptions +): Plugin { + let versions: any[] = [] + + return { + name: '@orama/plugin-docusaurus', + + getThemePath() { + return '../dist/theme' + }, + + getTypeScriptThemePath() { + return '../src/theme' + }, + + getClientModules() { + return ['../dist/theme/SearchBar/index.css'] + }, + + async contentLoaded({ actions, allContent }) { + const isDevelopment = + process.env.NODE_ENV === 'development' || (options.cloud && !options.cloud?.oramaCloudAPIKey) + const docsInstances: string[] = [] + const oramaCloudAPIKey = options.cloud?.oramaCloudAPIKey + const searchDataConfig = [ + { + docs: allContent['docusaurus-plugin-content-docs'] + }, + { + blogs: allContent['docusaurus-plugin-content-blog'] + }, + { + pages: allContent['docusaurus-plugin-content-pages'] + } + ] + const allOramaDocsPromises: Promise[] = [] + + searchDataConfig.forEach((config) => { + const [key, value] = Object.entries(config)[0] + switch (key) { + case 'docs': + if (!value) break + Object.keys(value).forEach((docsInstance: any) => { + const loadedVersions = value?.[docsInstance]?.loadedVersions + versions = loadedVersions.map((v: any) => v.versionName) + docsInstances.push(docsInstance) + versions.flatMap(async (version) => { + const currentVersion = loadedVersions.find((v: any) => v.versionName === version) + allOramaDocsPromises.push( + ...currentVersion.docs.map((data: any) => + generateDocs({ + siteDir: ctx.siteDir, + version, + category: docsInstance, + data + }) + ) + ) + }) + }) + break + case 'blogs': + if (!value) break + Object.keys(value).forEach(async (instance) => { + const loadedInstance = value[instance] + allOramaDocsPromises.push( + ...loadedInstance.blogPosts.map(({ metadata }: any) => { + return generateDocs({ + siteDir: ctx.siteDir, + version: 'current', + category: 'blogs', + data: metadata + }) + }) + ) + }) + break + case 'pages': + if (!value) break + Object.keys(value).forEach(async (instance) => { + const loadedInstance = value[instance] + allOramaDocsPromises.push( + ...loadedInstance.map((data: any) => + generateDocs({ + siteDir: ctx.siteDir, + version: 'current', + category: 'pages', + data + }) + ) + ) + }) + + break + } + }) + + const oramaDocs = (await Promise.all(allOramaDocsPromises)).flat().reduce((acc, curr) => { + if (!!curr.title && !!curr.content) { + acc.push({ + title: curr.title, + content: curr.content, + section: curr.originalTitle, + version: curr.version, + path: curr.path, + category: curr.category + }) + } + + return acc + }, []) + + if (isDevelopment) { + await deployData({ + oramaDocs, + generatedFilesDir: ctx.generatedFilesDir, + version: 'current' + }) + + actions.setGlobalData({ + searchData: Object.fromEntries([['current', readFileSync(indexPath(ctx.generatedFilesDir, 'current'))]]), + docsInstances, + availableVersions: versions + }) + } else { + const deployConfig = options.cloud && { + indexId: options.cloud.indexId, + oramaCloudAPIKey, + type: options.cloud.deploy + } + + const endpointConfig = await deployData({ + oramaDocs, + generatedFilesDir: ctx.generatedFilesDir, + version: 'current', + deployConfig + }) + + actions.setGlobalData({ + docsInstances, + availableVersions: versions, + analytics: options.analytics, + endpoint: { + url: endpointConfig?.endpoint, + key: endpointConfig?.public_api_key + } + }) + } + }, + + async postBuild({ outDir }) { + !options.cloud && (await cp(indexPath(ctx.generatedFilesDir, 'current'), indexPath(outDir, 'current'))) + } + } +} + +async function generateDocs({ + siteDir, + version, + category, + data +}: { + siteDir: string + version: string + category: string + data: Record +}) { + const { title, permalink, source } = data + const fileContent = readFileSync(source.replace('@site', siteDir), 'utf-8') + const contentWithoutFrontMatter = matter(fileContent).content + const contentWithIds = writeMarkdownHeadingId(contentWithoutFrontMatter) + + return parseHTMLContent({ + originalTitle: title, + version, + category, + html: new MarkdownIt().render(contentWithIds), + path: permalink + }) +} + +function parseHTMLContent({ + html, + path, + originalTitle, + version, + category +}: { + html: any + path: any + originalTitle: any + version: string + category: string +}) { + const dom = new JSDOM(html) + const document = dom.window.document + const sections: { + originalTitle: any + title: string + header: string + content: string + version: string + category: string + path: any + }[] = [] + + const headers = document.querySelectorAll('h1, h2, h3, h4, h5, h6') + if (!headers.length) { + sections.push({ + originalTitle, + title: originalTitle, + header: 'h1', + content: html, + version, + category, + path + }) + } + headers.forEach((header) => { + const headerText = header.textContent?.trim() ?? '' + const headerTag = header.tagName.toLowerCase() + + // Use parseMarkdownHeadingId to extract clean title and section ID + const { text: sectionTitle, id: sectionId } = parseMarkdownHeadingId(headerText) + + let sectionContent = '' + + let sibling = header.nextElementSibling + while (sibling && !['H1', 'H2', 'H3', 'H4', 'H5', 'H6'].includes(sibling.tagName)) { + sectionContent += sibling.textContent?.trim() + '\n' + sibling = sibling.nextElementSibling + } + + sections.push({ + originalTitle, + title: sectionTitle ?? '', + header: headerTag, + content: sectionContent, + version, + category, + path: headerTag === 'h1' ? path : `${removeTrailingSlash(path)}#${sectionId}` + }) + }) + + return sections +} + +function removeTrailingSlash(str: string): string { + return str.endsWith('/') ? str.slice(0, -1) : str +} + +function indexPath(outDir: string, version: string) { + return resolve(outDir, 'orama-search-index-@VERSION@.json.gz'.replace('@VERSION@', version)) +} + +async function deployData({ + oramaDocs, + generatedFilesDir, + version, + deployConfig +}: { + oramaDocs: any[] + generatedFilesDir: string + version: string + deployConfig?: + { + indexId: string + oramaCloudAPIKey: string | undefined + type: DeployType | false + } +}) { + const { ORAMA_CLOUD_BASE_URL } = process.env + const baseUrl = ORAMA_CLOUD_BASE_URL || 'https://cloud.orama.com' + + if (deployConfig?.type) { + if (deployConfig.type === DeployType.DEFAULT || deployConfig.type === DeployType.SNAPSHOT_ONLY) { + const endpointConfig = await fetchEndpointConfig(baseUrl, deployConfig.oramaCloudAPIKey!, deployConfig.indexId!) + + await createSnapshot(baseUrl, deployConfig.oramaCloudAPIKey!, deployConfig.indexId!, oramaDocs) + + if (deployConfig.type === DeployType.DEFAULT) { + await deployIndex(baseUrl, deployConfig.oramaCloudAPIKey!, deployConfig.indexId!) + } + return endpointConfig + } else { + throw new Error('Invalid deploy type') + } + } else { + const db = await create({ + schema: { ...DOCS_PRESET_SCHEMA, version: 'enum' } + }) + + await insertMultiple(db, oramaDocs as any) + + const serializedOrama = JSON.stringify(await save(db)) + const gzipedOrama = gzip(serializedOrama) + writeFileSync(indexPath(generatedFilesDir, version), gzipedOrama) + + return undefined + } +} diff --git a/packages/plugin-docusaurus/src/server/commonjs.cts b/packages/plugin-docusaurus/src/server/commonjs.cts deleted file mode 100644 index 5dc74be24..000000000 --- a/packages/plugin-docusaurus/src/server/commonjs.cts +++ /dev/null @@ -1,22 +0,0 @@ -import type { LoadContext, Plugin } from '@docusaurus/types' -import { PluginOptions } from './types.js' - -export type { PluginData, PluginOptions, RawDataWithPositions, SectionSchema } from './types.js' - -export type DocusaurusOramaPlugin = (docusaurusContext: LoadContext, options: PluginOptions) => Plugin - -let _esmDocusaurusOramaPlugin: DocusaurusOramaPlugin - -// eslint-disable-next-line no-new-func, @typescript-eslint/no-implied-eval -const importDynamic = new Function('modulePath', 'return import(modulePath)') - -export default async function docusaurusOramaPlugin( - ...args: Parameters -): Promise> { - if (!_esmDocusaurusOramaPlugin) { - const imported = await importDynamic('./index.js') - _esmDocusaurusOramaPlugin = imported.default - } - - return _esmDocusaurusOramaPlugin(...args) -} diff --git a/packages/plugin-docusaurus/src/server/index.ts b/packages/plugin-docusaurus/src/server/index.ts deleted file mode 100644 index eee6f34b3..000000000 --- a/packages/plugin-docusaurus/src/server/index.ts +++ /dev/null @@ -1,242 +0,0 @@ -import type { LoadedContent, LoadedVersion } from '@docusaurus/plugin-content-docs' -import type { LoadContext, Plugin } from '@docusaurus/types' -import { create, insertMultiple, save } from '@orama/orama' -import type { DefaultSchemaElement, NodeContent, PopulateFnContext } from '@orama/plugin-parsedoc' -import { defaultHtmlSchema, populate } from '@orama/plugin-parsedoc' -import * as githubSlugger from 'github-slugger' -import { cp, readFile, writeFile } from 'node:fs/promises' -import { resolve } from 'node:path' -import { fileURLToPath } from 'node:url' -import { promisify } from 'node:util' -import { gzip as gzipCB } from 'node:zlib' -import type { Configuration as WebpackConfiguration } from 'webpack' - -import { retrieveTranslationMessages } from './translationMessages.js' -import { INDEX_FILE, PLUGIN_NAME, PluginOptions, SectionSchema, schema } from './types.js' - -export type { PluginData, PluginOptions, SectionSchema } from './types.js' - -const gzip = promisify(gzipCB) - -function indexPath(outDir: string, version: string): string { - return resolve(outDir, INDEX_FILE.replace('@VERSION@', version)) -} - -export function transformFn(node: NodeContent, context: PopulateFnContext): NodeContent { - let raw - - switch (node.tag) { - case 'strong': - case 'a': - case 'time': - case 'code': - case 'span': - case 'small': - case 'b': - case 'p': - case 'ul': - raw = `

${node.content}

` - break - case 'h1': - case 'h2': - case 'h3': - case 'h4': - case 'h5': - case 'h6': - context.lastLink = node.properties?.id ?? githubSlugger.slug(node.content) - break - } - - const transformed = { - ...node, - additionalProperties: { - hash: context.lastLink - } - } - - if (raw) { - transformed.raw = raw - } - - return transformed -} - -export function defaultToSectionSchema( - node: DefaultSchemaElement, - pageRoute: string, - sectionTitle: string, - version: string -): SectionSchema { - const { content, type, properties } = node - - if (!sectionTitle) { - sectionTitle = (pageRoute.split('/').pop() ?? '') - .replace(/(-)+/g, ' ') - .split(' ') - .map((word) => word && `${word[0].toUpperCase()}${word.substring(1)}`) - .join(' ') - } - - return { - pageRoute, - hash: (properties?.hash as string) ?? '', - sectionTitle: pageRoute ? sectionTitle : 'Home', - sectionContent: content, - type, - version - } -} - -function isIndexable(doc: SectionSchema): boolean { - return ( - !!doc.sectionContent && !!doc.sectionTitle && doc.type !== 'script' && !doc.pageRoute.startsWith('/blogs/tags/') - ) -} - -async function generateDocument( - siteDir: string, - { title, version, permalink, source }: Record -): Promise { - // Parse the document - const data = await readFile(source.replace('@site', siteDir)) - const fileType = source.split('.').at(-1) - const db = await create({ schema: defaultHtmlSchema }) - await populate(db, data, fileType as 'html' | 'md', { transformFn }) - - // Convert all the documents to a - const sections = Object.values(db.data.docs.docs) - .map((node) => { - return defaultToSectionSchema(node, permalink.slice(1), title, version) - }) - .filter(isIndexable) - - for (const section of sections) { - if (!section.pageRoute.startsWith('/')) { - section.pageRoute = '/' + section.pageRoute - } - - if (section.hash) { - section.pageRoute += `#${section.hash}` - } - } - - return sections -} - -async function buildDevSearchData( - siteDir: string, - outDir: string, - allContent: any, - version: string, - pluginContentDocsIds: string[] -): Promise { - const blogs: any[] = [] - const pages: any[] = [] - const docs: any[] = [] - pluginContentDocsIds.forEach((key) => { - const loadedVersion = allContent['docusaurus-plugin-content-docs']?.[key]?.loadedVersions?.find( - (v: LoadedVersion) => v.versionName === version - ) - blogs.push( - ...(allContent['docusaurus-plugin-content-blog']?.[key]?.blogPosts?.map(({ metadata }: any) => metadata) ?? []) - ) - pages.push(...(allContent['docusaurus-plugin-content-pages']?.[key] ?? [])) - docs.push(...(loadedVersion?.docs ?? [])) - }) - - const generator = generateDocument.bind(null, siteDir) - - // Gather all pages we want to index - const documents = [ - ...(await Promise.all(docs.map(generator))), - ...(await Promise.all(blogs.map(generator))), - ...(await Promise.all(pages.map(generator))) - ].flat() - - // Create the Orama database and then serialize it - const _db = await create({ - schema - }) - - await insertMultiple(_db, documents) - - const serialized = await save(_db) - - await writeFile(indexPath(outDir, version), await gzip(JSON.stringify(serialized))) -} - -function getThemePath(): string { - return fileURLToPath(new URL('../client/theme', import.meta.url)) -} - -function docusaurusOramaPlugin(context: LoadContext, options: PluginOptions): Plugin { - let versions: string[] = [] - - return { - name: PLUGIN_NAME, - getThemePath, - getPathsToWatch() { - return [getThemePath()] - }, - getDefaultCodeTranslationMessages: async () => { - return retrieveTranslationMessages(context) - }, - getClientModules() { - return [resolve(getThemePath(), 'SearchBar/style.css'), resolve(getThemePath(), 'SearchBarFooter/style.css')] - }, - // @ts-ignore - configureWebpack(): WebpackConfiguration { - return { - resolve: { - alias: { - 'react/jsx-dev-runtime': 'react/jsx-dev-runtime.js', - 'react/jsx-runtime': 'react/jsx-runtime.js' - } - } - } - }, - async contentLoaded({ actions, allContent }) { - const isDevelopment = process.env.NODE_ENV === 'development' - const pluginContentDocsIds = Object.keys(allContent['docusaurus-plugin-content-docs'] ?? {}) - const loadedVersions = (allContent['docusaurus-plugin-content-docs']?.[pluginContentDocsIds[0]] as LoadedContent) - ?.loadedVersions - versions = loadedVersions.map((v) => v.versionName) - - // Build all versions - await Promise.all( - versions.map((version) => - buildDevSearchData(context.siteDir, context.generatedFilesDir, allContent, version, pluginContentDocsIds) - ) - ) - - for (const name of versions) { - await buildDevSearchData(context.siteDir, context.generatedFilesDir, allContent, name, pluginContentDocsIds) - } - - if (isDevelopment) { - actions.setGlobalData({ - pluginContentDocsIds, - analytics: options.analytics, - searchData: Object.fromEntries( - await Promise.all( - versions.map(async (version) => { - return [version, await readFile(indexPath(context.generatedFilesDir, version))] - }) - ) - ) - }) - } else { - actions.setGlobalData({ pluginContentDocsIds, searchData: {} }) - } - }, - async postBuild({ outDir }: { outDir: string }) { - await Promise.all( - versions.map(async (version) => { - return cp(indexPath(context.generatedFilesDir, version), indexPath(outDir, version)) - }) - ) - } - } -} - -export default docusaurusOramaPlugin diff --git a/packages/plugin-docusaurus/src/server/translationMessages.ts b/packages/plugin-docusaurus/src/server/translationMessages.ts deleted file mode 100644 index 777cd94f7..000000000 --- a/packages/plugin-docusaurus/src/server/translationMessages.ts +++ /dev/null @@ -1,33 +0,0 @@ -import type { LoadContext } from '@docusaurus/types' -import fs from 'fs' -import path from 'path' -import { fileURLToPath } from 'url' - -function codeTranslationLocalesToTry(locale: string): string[] { - const intlLocale = new Intl.Locale(locale) - const maximizedLocale = intlLocale.maximize() - return [ - locale, - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion - `${maximizedLocale.language}-${maximizedLocale.region!}`, - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion - `${maximizedLocale.language}-${maximizedLocale.script!}`, - maximizedLocale.language - ] -} - -async function retrieveObjectContent(filePath: string): Promise { - const fileContent = await fs.promises.readFile(filePath, 'utf8') - return JSON.parse(fileContent) -} - -export async function retrieveTranslationMessages(docusaurusContext: LoadContext): Promise> { - const translationsDir = fileURLToPath(new URL('../translationMessages', import.meta.url)) - const localesToTry = codeTranslationLocalesToTry(docusaurusContext.i18n.currentLocale) - - const existingLocalePath = localesToTry - .map((locale) => path.join(translationsDir, `${locale}.json`)) - .find(fs.existsSync) - - return existingLocalePath ? retrieveObjectContent(existingLocalePath) : Promise.resolve({}) -} diff --git a/packages/plugin-docusaurus/src/server/types.ts b/packages/plugin-docusaurus/src/server/types.ts deleted file mode 100644 index 7ce69bfff..000000000 --- a/packages/plugin-docusaurus/src/server/types.ts +++ /dev/null @@ -1,47 +0,0 @@ -import { Result } from '@orama/orama' -import type { Position } from '@orama/highlight' - -import type { AnyDocument, AnySchema, RawData } from '@orama/orama' - -interface DocsVersion { - name: string - path: string -} - -export interface SectionSchema extends AnyDocument { - type: string - sectionContent: string - pageRoute: string - sectionTitle: string - version: string - hash: string -} - -export type RawDataWithPositions = RawData & { positions: Record>> } - -export interface PluginOptions { - analytics?: { - enabled: boolean - apiKey: string - indexId: string - } -} - -export interface PluginData { - searchData: Record - versions: DocsVersion[] - pluginContentDocsIds: string[] -} - -export type Hit = Result & { position: Position } - -export const PLUGIN_NAME = '@orama/plugin-docusaurus' -export const INDEX_FILE = 'orama-search-index-@VERSION@.json.gz' - -export const schema = { - pageRoute: 'string', - sectionTitle: 'string', - sectionContent: 'string', - type: 'string', - version: 'string' -} satisfies AnySchema diff --git a/packages/plugin-docusaurus/src/theme/SearchBar/index.css b/packages/plugin-docusaurus/src/theme/SearchBar/index.css new file mode 100644 index 000000000..ca88dc1d5 --- /dev/null +++ b/packages/plugin-docusaurus/src/theme/SearchBar/index.css @@ -0,0 +1,11 @@ +.DocSearch-Button { + -webkit-user-select: none; + user-select: none +} + +.DocSearch-Button kbd { + border: 0; + box-shadow: none; + font-size: .8rem !important; + padding: 0 !important; +} \ No newline at end of file diff --git a/packages/plugin-docusaurus/src/theme/SearchBar/index.tsx b/packages/plugin-docusaurus/src/theme/SearchBar/index.tsx new file mode 100644 index 000000000..70b34ca24 --- /dev/null +++ b/packages/plugin-docusaurus/src/theme/SearchBar/index.tsx @@ -0,0 +1,76 @@ +// @ts-nocheck +import React from 'react' +import { useLocation } from '@docusaurus/router' +import { useActiveVersion, useVersions } from '@docusaurus/plugin-content-docs/client' +import { useDocsPreferredVersion } from '@docusaurus/theme-common' +import { usePluginData } from '@docusaurus/useGlobalData' +import { OramaSearchBox, OramaSearchButton } from '@orama/react-components' +import { useOrama } from './useOrama' + +interface PluginData { + searchData: { + current: { data: ArrayBuffer } | null + } + endpoint: { url: string; key: string } | null + analytics: { apiKey: string; indexId: string; enabled: boolean } | null + docsInstances: string[] +} + +export function OramaSearchNoDocs() { + const { searchBoxConfig, colorMode, clientMode } = useOrama() + + return ( +
+ + {searchBoxConfig && ( + + )} +
+ ) +} + +export function OramaSearchWithDocs({ pluginId }: { pluginId: string }) { + const versions = useVersions(pluginId) + const activeVersion = useActiveVersion(pluginId) + const { preferredVersion } = useDocsPreferredVersion(pluginId) + const currentVersion = activeVersion || preferredVersion || versions[0] + const { searchBoxConfig, colorMode, clientMode } = useOrama() + + const searchParams = { + ...(currentVersion && { + where: { + version: { eq: currentVersion.name } + } + }) + } + + return ( +
+ + {searchBoxConfig && ( + + )} +
+ ) +} + +export default function OramaSearchWrapper() { + const { pathname } = useLocation() + const { docsInstances }: PluginData = usePluginData('@orama/plugin-docusaurus') as PluginData + const pluginId = docsInstances.filter((id: string) => pathname.includes(id))[0] || docsInstances[0] + + if (!pluginId) { + return + } + + return +} diff --git a/packages/plugin-docusaurus/src/theme/SearchBar/useOrama.ts b/packages/plugin-docusaurus/src/theme/SearchBar/useOrama.ts new file mode 100644 index 000000000..d2522be7c --- /dev/null +++ b/packages/plugin-docusaurus/src/theme/SearchBar/useOrama.ts @@ -0,0 +1,86 @@ +//@ts-nocheck +import { useEffect, useState } from 'react' +import { Switch } from '@orama/switch' +import useBaseUrl from '@docusaurus/useBaseUrl' +import useIsBrowser from '@docusaurus/useIsBrowser' +import { useColorMode } from '@docusaurus/theme-common' +import { usePluginData } from '@docusaurus/useGlobalData' +import { ungzip } from 'pako' +import { OramaClient } from '@oramacloud/client' +import { create, insertMultiple } from '@orama/orama' +import { pluginAnalytics } from '@orama/plugin-analytics' +import {DOCS_PRESET_SCHEMA} from '../../utils' + +export const useOrama = () => { + const [searchBoxConfig, setSearchBoxConfig] = useState(null) + const { colorMode } = useColorMode() + const { searchData, endpoint, analytics }: PluginData = usePluginData('@orama/plugin-docusaurus') as PluginData + + const baseURL = useBaseUrl('orama-search-index-current.json.gz') + const isBrowser = useIsBrowser() + + useEffect(() => { + async function loadOrama() { + let oramaInstance = null + + if (endpoint?.url) { + oramaInstance = new OramaClient({ + endpoint: endpoint.url, + api_key: endpoint.key + }) + } else { + let buffer + + if (searchData?.current) { + buffer = searchData.current.data + } else { + const searchResponse = await fetch(baseURL) + + if (searchResponse.status === 0) { + throw new Error(`Network error: ${await searchResponse.text()}`) + } else if (searchResponse.status !== 200) { + throw new Error(`HTTP error ${searchResponse.status}: ${await searchResponse.text()}`) + } + + buffer = await searchResponse.arrayBuffer() + } + + const deflated = ungzip(buffer, { to: 'string' }) + const parsedDeflated = JSON.parse(deflated) + + const db = await create({ + schema: { ...DOCS_PRESET_SCHEMA, version: 'enum' }, + plugins: [ + ...(analytics + ? [ + pluginAnalytics({ + apiKey: analytics.apiKey, + indexId: analytics.indexId, + enabled: analytics.enabled + }) + ] + : []) + ] + }) + + await insertMultiple(db, Object.values(parsedDeflated.docs.docs)) + + oramaInstance = new Switch(db) + } + + setSearchBoxConfig({ + clientInstance: oramaInstance + }) + } + + if (!isBrowser) { + return + } + + loadOrama().catch((error) => { + console.error('Cannot load search index.', error) + }) + }, [isBrowser]) + + return { searchBoxConfig, colorMode, clientMode: endpoint?.url ? 'cloud' : 'oss' } +} diff --git a/packages/plugin-docusaurus/src/translationMessages/cs.json b/packages/plugin-docusaurus/src/translationMessages/cs.json deleted file mode 100644 index ddac9e9f3..000000000 --- a/packages/plugin-docusaurus/src/translationMessages/cs.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "plugin-docusaurus.searchBar.placeholder": "Vyhledat...", - "plugin-docusaurus.searchBar.noResults": "Nenalezeny žádné výsledky.", - "plugin-docusaurus.searchBar.clearButtonTitle": "Vymazat", - "plugin-docusaurus.searchBar.detachedCancelButtonText": "Zrušit", - "plugin-docusaurus.searchBar.submitButtonTitle": "Potvrdit" -} diff --git a/packages/plugin-docusaurus/src/translationMessages/de.json b/packages/plugin-docusaurus/src/translationMessages/de.json deleted file mode 100644 index 615b826ed..000000000 --- a/packages/plugin-docusaurus/src/translationMessages/de.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "plugin-docusaurus.searchBar.placeholder": "Suchen...", - "plugin-docusaurus.searchBar.noResults": "Keine Suchergebnissse gefunden.", - "plugin-docusaurus.searchBar.clearButtonTitle": "Leeren", - "plugin-docusaurus.searchBar.detachedCancelButtonText": "Abbrechen", - "plugin-docusaurus.searchBar.submitButtonTitle": "Suchen" -} diff --git a/packages/plugin-docusaurus/src/translationMessages/en.json b/packages/plugin-docusaurus/src/translationMessages/en.json deleted file mode 100644 index c0b3b5f3a..000000000 --- a/packages/plugin-docusaurus/src/translationMessages/en.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "plugin-docusaurus.searchBar.placeholder": "Search...", - "plugin-docusaurus.searchBar.noResults": "No results found.", - "plugin-docusaurus.searchBar.clearButtonTitle": "Clear", - "plugin-docusaurus.searchBar.detachedCancelButtonText": "Cancel", - "plugin-docusaurus.searchBar.submitButtonTitle": "Submit" -} diff --git a/packages/plugin-docusaurus/src/translationMessages/es.json b/packages/plugin-docusaurus/src/translationMessages/es.json deleted file mode 100644 index 82d0e5896..000000000 --- a/packages/plugin-docusaurus/src/translationMessages/es.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "plugin-docusaurus.searchBar.placeholder": "Buscar...", - "plugin-docusaurus.searchBar.noResults": "No se han encontrado resultados.", - "plugin-docusaurus.searchBar.clearButtonTitle": "Borrar", - "plugin-docusaurus.searchBar.detachedCancelButtonText": "Cancelar", - "plugin-docusaurus.searchBar.submitButtonTitle": "Enviar" -} diff --git a/packages/plugin-docusaurus/src/translationMessages/fr.json b/packages/plugin-docusaurus/src/translationMessages/fr.json deleted file mode 100644 index 0a73247ef..000000000 --- a/packages/plugin-docusaurus/src/translationMessages/fr.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "plugin-docusaurus.searchBar.placeholder": "Rechercher...", - "plugin-docusaurus.searchBar.noResults": "Pas de résultat.", - "plugin-docusaurus.searchBar.clearButtonTitle": "Effacer", - "plugin-docusaurus.searchBar.detachedCancelButtonText": "Annuler", - "plugin-docusaurus.searchBar.submitButtonTitle": "Chercher" -} diff --git a/packages/plugin-docusaurus/src/translationMessages/id.json b/packages/plugin-docusaurus/src/translationMessages/id.json deleted file mode 100644 index 1d69e951a..000000000 --- a/packages/plugin-docusaurus/src/translationMessages/id.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "plugin-docusaurus.searchBar.placeholder": "Cari...", - "plugin-docusaurus.searchBar.noResults": "Hasil tidak ditemukan.", - "plugin-docusaurus.searchBar.clearButtonTitle": "Hapus", - "plugin-docusaurus.searchBar.detachedCancelButtonText": "Batal", - "plugin-docusaurus.searchBar.submitButtonTitle": "Kirim" -} diff --git a/packages/plugin-docusaurus/src/translationMessages/it.json b/packages/plugin-docusaurus/src/translationMessages/it.json deleted file mode 100644 index 7e713e6ed..000000000 --- a/packages/plugin-docusaurus/src/translationMessages/it.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "plugin-docusaurus.searchBar.placeholder": "Cerca...", - "plugin-docusaurus.searchBar.noResults": "Nessun risultato trovato.", - "plugin-docusaurus.searchBar.clearButtonTitle": "Cancella", - "plugin-docusaurus.searchBar.detachedCancelButtonText": "Cancella", - "plugin-docusaurus.searchBar.submitButtonTitle": "Cerca" -} diff --git a/packages/plugin-docusaurus/src/translationMessages/ja.json b/packages/plugin-docusaurus/src/translationMessages/ja.json deleted file mode 100644 index 772853129..000000000 --- a/packages/plugin-docusaurus/src/translationMessages/ja.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "plugin-docusaurus.searchBar.placeholder": "検索...", - "plugin-docusaurus.searchBar.noResults": "該当する結果はありません。", - "plugin-docusaurus.searchBar.clearButtonTitle": "Clear", - "plugin-docusaurus.searchBar.detachedCancelButtonText": "Cancel", - "plugin-docusaurus.searchBar.submitButtonTitle": "Submit" -} diff --git a/packages/plugin-docusaurus/src/translationMessages/pl.json b/packages/plugin-docusaurus/src/translationMessages/pl.json deleted file mode 100644 index d2face5f5..000000000 --- a/packages/plugin-docusaurus/src/translationMessages/pl.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "plugin-docusaurus.searchBar.placeholder": "Szukaj...", - "plugin-docusaurus.searchBar.noResults": "Nie znaleziono wyników.", - "plugin-docusaurus.searchBar.clearButtonTitle": "Wyczyść", - "plugin-docusaurus.searchBar.detachedCancelButtonText": "Anuluj", - "plugin-docusaurus.searchBar.submitButtonTitle": "Zatwierdź" -} diff --git a/packages/plugin-docusaurus/src/translationMessages/pt-BR.json b/packages/plugin-docusaurus/src/translationMessages/pt-BR.json deleted file mode 100644 index 65adbf1ff..000000000 --- a/packages/plugin-docusaurus/src/translationMessages/pt-BR.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "plugin-docusaurus.searchBar.placeholder": "Buscar...", - "plugin-docusaurus.searchBar.noResults": "Nenhum resultado encontrado.", - "plugin-docusaurus.searchBar.clearButtonTitle": "Remover", - "plugin-docusaurus.searchBar.detachedCancelButtonText": "Cancelar", - "plugin-docusaurus.searchBar.submitButtonTitle": "Buscar" -} diff --git a/packages/plugin-docusaurus/src/translationMessages/pt.json b/packages/plugin-docusaurus/src/translationMessages/pt.json deleted file mode 100644 index f360901d2..000000000 --- a/packages/plugin-docusaurus/src/translationMessages/pt.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "plugin-docusaurus.searchBar.placeholder": "Pesquisar...", - "plugin-docusaurus.searchBar.noResults": "Nenhum resultado encontrado.", - "plugin-docusaurus.searchBar.clearButtonTitle": "Limpar", - "plugin-docusaurus.searchBar.detachedCancelButtonText": "Cancelar", - "plugin-docusaurus.searchBar.submitButtonTitle": "Enviar" -} diff --git a/packages/plugin-docusaurus/src/translationMessages/sk.json b/packages/plugin-docusaurus/src/translationMessages/sk.json deleted file mode 100644 index 49d37ad55..000000000 --- a/packages/plugin-docusaurus/src/translationMessages/sk.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "plugin-docusaurus.searchBar.placeholder": "Vyhľadať...", - "plugin-docusaurus.searchBar.noResults": "Nenašli sa žiadne výsledky.", - "plugin-docusaurus.searchBar.clearButtonTitle": "Vymazať", - "plugin-docusaurus.searchBar.detachedCancelButtonText": "Zrušiť", - "plugin-docusaurus.searchBar.submitButtonTitle": "Potvrdiť" -} diff --git a/packages/plugin-docusaurus/src/translationMessages/sv.json b/packages/plugin-docusaurus/src/translationMessages/sv.json deleted file mode 100644 index d30e340a3..000000000 --- a/packages/plugin-docusaurus/src/translationMessages/sv.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "plugin-docusaurus.searchBar.placeholder": "Sök...", - "plugin-docusaurus.searchBar.noResults": "Hittade inga resultat.", - "plugin-docusaurus.searchBar.clearButtonTitle": "Ta bort", - "plugin-docusaurus.searchBar.detachedCancelButtonText": "Avbryt", - "plugin-docusaurus.searchBar.submitButtonTitle": "Skicka" -} diff --git a/packages/plugin-docusaurus/src/translationMessages/zh.json b/packages/plugin-docusaurus/src/translationMessages/zh.json deleted file mode 100644 index 329c94005..000000000 --- a/packages/plugin-docusaurus/src/translationMessages/zh.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "plugin-docusaurus.searchBar.placeholder": "搜索...", - "plugin-docusaurus.searchBar.noResults": "无搜索结果", - "plugin-docusaurus.searchBar.clearButtonTitle": "清除", - "plugin-docusaurus.searchBar.detachedCancelButtonText": "取消", - "plugin-docusaurus.searchBar.submitButtonTitle": "搜索" -} diff --git a/packages/plugin-docusaurus/src/utils.ts b/packages/plugin-docusaurus/src/utils.ts new file mode 100644 index 000000000..f398582e9 --- /dev/null +++ b/packages/plugin-docusaurus/src/utils.ts @@ -0,0 +1,93 @@ +export const restFetcher = async (url: string, options?: any): Promise => { + const response = await fetch(url, options) + + if (response.status === 0) { + throw new Error(`Request failed (network error): ${await response.text()}`) + } else if (response.status >= 400) { + const error = new Error(`Request failed (HTTP error ${response.status})}`) + ;(error as any).response = response + + throw error + } + + return await response.json() +} + +export const postFetcher = async (url: string, body: any, headers?: any): Promise => { + return await restFetcher(url, { + method: 'POST', + headers: { + ...headers, + 'Content-Type': 'application/json' + }, + body: JSON.stringify(body) + }) +} + +export async function loggedOperation(preMessage: string, fn: () => Promise, postMessage: string) { + if (preMessage != null) { + console.debug(preMessage) + } + + try { + const response = await fn() + + if (postMessage != null) { + console.debug(postMessage) + } + + return response + } catch (error: any) { + throw new Error(`Error: ${error.message}`) + } +} + +export async function fetchEndpointConfig(baseUrl: string, APIKey: string, indexId: string) { + const result = await loggedOperation( + 'Start: Fetch index endpoint config', + async () => + await restFetcher(`${baseUrl}/api/v1/indexes/get-index?id=${indexId}`, { + headers: { + Authorization: `Bearer ${APIKey}` + } + }), + 'End: Fetch index endpoint config (success)' + ) + + return { endpoint: result?.api_endpoint, public_api_key: result?.api_key } +} + +export async function createSnapshot(baseUrl: string, APIKey: string, indexId: string, documents: any[]) { + await loggedOperation( + 'Start: Create snapshot', + async () => + await postFetcher(`${baseUrl}/api/v1/webhooks/${indexId}/snapshot`, documents, { + Authorization: `Bearer ${APIKey}` + }), + 'End: Create snapshot (success)' + ) +} + +export async function deployIndex(baseUrl: string, APIKey: string, indexId: string) { + await loggedOperation( + 'Start: Deploy index', + async () => + await postFetcher( + `${baseUrl}/api/v1/webhooks/${indexId}/deploy`, + {}, + { + Authorization: `Bearer ${APIKey}` + } + ), + 'End: Deploy index (success)' + ) +} + +export const DOCS_PRESET_SCHEMA = { + title: 'string', + content: 'string', + path: 'string', + section: 'string', + category: 'enum', + version: 'enum' +} diff --git a/packages/plugin-docusaurus/test/integration.ts b/packages/plugin-docusaurus/test/integration.ts deleted file mode 100644 index 344155636..000000000 --- a/packages/plugin-docusaurus/test/integration.ts +++ /dev/null @@ -1,135 +0,0 @@ -import { create, load, search } from '@orama/orama' -import assert from 'node:assert' -import { exec, ExecException } from 'node:child_process' -import { existsSync } from 'node:fs' -import { cp, readFile, rm, writeFile } from 'node:fs/promises' -import { tmpdir } from 'node:os' -import { dirname, resolve } from 'node:path' -import { chdir } from 'node:process' -import { test } from 'node:test' -import { fileURLToPath } from 'node:url' -import { gunzipSync } from 'node:zlib' -import { INDEX_FILE, schema } from '../src/server/types.js' - -interface Execution { - code: number - stdout: string - stderr: string - error?: Error -} - -const sandboxSource = fileURLToPath(new URL('./sandbox', import.meta.url)) -const sandbox = process.env.KEEP_SANDBOX_DOCUSAURUS - ? '/tmp/orama-docusaurus-sandbox' - : resolve(tmpdir(), `orama-plugin-docusaurus-${Date.now()}`) - -async function cleanup(): Promise { - await rm(sandbox, { force: true, recursive: true }) -} - -async function execute(command: string, cwd?: string): Promise { - const { HOME, PATH } = process.env - const env = cwd ? { HOME, PATH } : process.env - - return new Promise((resolve: (execution: Execution) => void, reject: (error: Error) => void) => { - exec(command, { cwd, env }, (error: ExecException | null, stdout: string, stderr: string) => { - if (error) { - if (process.env.NODE_DEBUG?.includes('test')) { - console.error('COMMAND ERRORED', error) - } - - reject(error) - return - } - - if (process.env.NODE_DEBUG?.includes('test')) { - console.error(`--- STDOUT [${command}] ---\n${stdout.trim()}\n\n`) - console.error(`--- STDERR [${command}] ---\n${stderr.trim()}\n\n`) - } - resolve({ code: 0, stdout, stderr }) - }) - }) -} - -await cleanup() - -await test('plugin is able to generate orama DB at build time', async () => { - // Obtain general information - const pluginInfo: Record = JSON.parse( - await readFile(fileURLToPath(new URL('../package.json', import.meta.url)), 'utf-8') - ) - const rootDir = dirname(fileURLToPath(new URL(`../..`, import.meta.url))) - const version = pluginInfo.version - - // Prepare the sandbox - const packageJsonPath = resolve(sandbox, 'package.json') - await cp(sandboxSource, sandbox, { recursive: true }) - chdir(sandbox) - console.log(`Sandbox created in ${sandbox}`) - - // Update dependencies location - const packageJson = await readFile(packageJsonPath, 'utf-8') - await writeFile(packageJsonPath, packageJson.replace(/@ROOT@/g, rootDir).replace(/@VERSION@/g, version), 'utf-8') - - // Install dependencies - const installResult = await execute('pnpm install', sandbox) - assert.equal(installResult.code, 0) - - // docusaurus build is successful - const buildResult = await execute('./node_modules/.bin/docusaurus build', sandbox) - assert.equal(buildResult.code, 0) - - // The orama DBs have been generated - assert.ok(existsSync(resolve(sandbox, `build/${INDEX_FILE.replace('@VERSION@', 'current')}`))) -}) - -await test('generated DBs have indexed pages content', async () => { - // Loading "animals DB" - const rawCompressedData = await readFile(resolve(sandbox, `build/${INDEX_FILE.replace('@VERSION@', 'current')}`)) - const rawData = gunzipSync(rawCompressedData).toString('utf-8') - const data = JSON.parse(rawData) - - const database = await create({ schema }) - await load(database, data) - - // Search results seem reasonable - const indexSearchResult = await search(database, { - term: 'index', - properties: ['sectionTitle', 'sectionContent', 'type'] - }) - assert.ok(indexSearchResult.count === 1) - assert.ok(indexSearchResult.hits[0].document.pageRoute === '/#main') - - const catSearchResult = await search(database, { - term: 'cat', - properties: ['sectionTitle', 'sectionContent', 'type'] - }) - assert.ok(catSearchResult.count === 1) - assert.ok(catSearchResult.hits[0].document.pageRoute === '/animals_cat') - - const dogSearchResult = await search(database, { - term: 'dog', - properties: ['sectionTitle', 'sectionContent', 'type'] - }) - assert.ok(dogSearchResult.count === 2) - assert.ok(dogSearchResult.hits[0].document.pageRoute === '/animals_dog#dog') - - const domesticSearchResult = await search(database, { - term: 'domestic', - properties: ['sectionTitle', 'sectionContent', 'type'] - }) - assert.ok(domesticSearchResult.count === 2) - assert.ok(domesticSearchResult.hits[0].document.pageRoute === '/animals_cat') - assert.ok(domesticSearchResult.hits[1].document.pageRoute === '/animals_dog#dog') - - // We do not have content about turtles - const turtleSearchResult = await search(database, { - term: 'turtle', - properties: ['sectionTitle', 'sectionContent', 'type'] - }) - assert.ok(turtleSearchResult.count === 0) -}) - -if (!process.env.KEEP_SANDBOX_DOCUSAURUS) { - await cleanup() -} diff --git a/packages/plugin-docusaurus/test/sandbox/babel.config.js b/packages/plugin-docusaurus/test/sandbox/babel.config.js deleted file mode 100644 index 8e406f46e..000000000 --- a/packages/plugin-docusaurus/test/sandbox/babel.config.js +++ /dev/null @@ -1,3 +0,0 @@ -module.exports = { - presets: [require.resolve('@docusaurus/core/lib/babel/preset'), ['@babel/preset-react', { runtime: 'classic' }]] -} diff --git a/packages/plugin-docusaurus/test/sandbox/docs/animals_cat.md b/packages/plugin-docusaurus/test/sandbox/docs/animals_cat.md deleted file mode 100644 index fa8353b19..000000000 --- a/packages/plugin-docusaurus/test/sandbox/docs/animals_cat.md +++ /dev/null @@ -1,6 +0,0 @@ -# Cat - -The cat (Felis catus) is a domestic species of small carnivorous mammal. It is the only domesticated species in -the family Felidae and is often referred to as the domestic cat to distinguish it from the wild members of the -family. A cat can either be a house cat, a farm cat, or a feral cat; the latter ranges freely and avoids human -contact. Domestic cats are valued by humans for companionship and their ability to kill rodents. diff --git a/packages/plugin-docusaurus/test/sandbox/docs/animals_dog.md b/packages/plugin-docusaurus/test/sandbox/docs/animals_dog.md deleted file mode 100644 index 3a23ec293..000000000 --- a/packages/plugin-docusaurus/test/sandbox/docs/animals_dog.md +++ /dev/null @@ -1,7 +0,0 @@ -# Dog - -The dog or domestic dog (Canis familiaris or Canis lupus familiaris) is a domesticated descendant of the wolf. The -dog is derived from an ancient, extinct wolf, and the modern wolf is the dog's nearest living relative. The dog -was the first species to be domesticated, by hunter-gatherers over 15,000 years ago, before the development of -agriculture. Due to their long association with humans, dogs have expanded to a large number of domestic -individuals and gained the ability to thrive on a starch-rich diet that would be inadequate for other canids. diff --git a/packages/plugin-docusaurus/test/sandbox/docs/animals_duck.md b/packages/plugin-docusaurus/test/sandbox/docs/animals_duck.md deleted file mode 100644 index 425ba9030..000000000 --- a/packages/plugin-docusaurus/test/sandbox/docs/animals_duck.md +++ /dev/null @@ -1,7 +0,0 @@ -# Duck - -Duck is the common name for numerous species of waterfowl in the family Anatidae. Ducks are generally smaller and -shorter-necked than swans and geese, which are members of the same family. Divided among several subfamilies, they -are a form taxon; they do not represent a monophyletic group (the group of all descendants of a single common -ancestral species), since swans and geese are not considered ducks. Ducks are mostly aquatic birds, and may be -found in both fresh water and sea water. diff --git a/packages/plugin-docusaurus/test/sandbox/docs/games_doom.md b/packages/plugin-docusaurus/test/sandbox/docs/games_doom.md deleted file mode 100644 index 1d99eac07..000000000 --- a/packages/plugin-docusaurus/test/sandbox/docs/games_doom.md +++ /dev/null @@ -1,9 +0,0 @@ -# Doom - -Doom is a 1993 first-person shooter (FPS) game developed by id Software for MS-DOS. Players assume the role of a -space marine, popularly known as Doomguy, fighting their way through hordes of invading demons from hell. Id began -developing Doom after the release of their previous FPS, Wolfenstein 3D (1992). It emerged from a 3D game engine -developed by John Carmack, who wanted to create a science fiction game inspired by Dungeons & Dragons and the -films Evil Dead II and Aliens. The first episode, comprising nine levels, was distributed freely as shareware; the -full game, with two further episodes, was sold via mail order. An updated version with an additional episode and -more difficult levels, The Ultimate Doom, was released in 1995 and sold at retail. diff --git a/packages/plugin-docusaurus/test/sandbox/docs/games_ffvii.md b/packages/plugin-docusaurus/test/sandbox/docs/games_ffvii.md deleted file mode 100644 index c74f7cd40..000000000 --- a/packages/plugin-docusaurus/test/sandbox/docs/games_ffvii.md +++ /dev/null @@ -1,10 +0,0 @@ -# Final Fantasy VII - -Final Fantasy VII is a 1997 role-playing video game developed by Square for the PlayStation console. It is the -seventh main installment in the Final Fantasy series. Published in Japan by Square, it was released in other -regions by Sony Computer Entertainment and is the first in the main series with a PAL release. The game's story -follows Cloud Strife, a mercenary who joins an eco-terrorist organization to stop a world-controlling -megacorporation from using the planet's life essence as an energy source. Events send Cloud and his allies in -pursuit of Sephiroth, a former member of the corporation who seeks to destroy the planet. During the journey, -Cloud builds close friendships with his party members, including Aerith Gainsborough, who holds the secret to -saving their world. diff --git a/packages/plugin-docusaurus/test/sandbox/docs/index.md b/packages/plugin-docusaurus/test/sandbox/docs/index.md deleted file mode 100644 index fafad7414..000000000 --- a/packages/plugin-docusaurus/test/sandbox/docs/index.md +++ /dev/null @@ -1,3 +0,0 @@ -# Main - -This is the index diff --git a/packages/plugin-docusaurus/test/sandbox/docusaurus.config.js b/packages/plugin-docusaurus/test/sandbox/docusaurus.config.js deleted file mode 100644 index 5626ac1f3..000000000 --- a/packages/plugin-docusaurus/test/sandbox/docusaurus.config.js +++ /dev/null @@ -1,29 +0,0 @@ -module.exports = { - title: 'Test site', - tagline: 'Test site', - favicon: 'img/favicon.ico', - url: 'http://localhost:3000/', - baseUrl: '/', - organizationName: 'oramasearch', - projectName: 'plugin-docusaurus', - onBrokenLinks: 'throw', - onBrokenMarkdownLinks: 'warn', - i18n: { - defaultLocale: 'en', - locales: ['en'] - }, - presets: [ - [ - 'classic', - { - docs: { - sidebarPath: require.resolve('./sidebars.js'), - routeBasePath: '/' - }, - blog: false, - theme: {} - } - ] - ], - plugins: ['@orama/plugin-docusaurus'] -} diff --git a/packages/plugin-docusaurus/test/sandbox/package.json b/packages/plugin-docusaurus/test/sandbox/package.json deleted file mode 100644 index e14ad110a..000000000 --- a/packages/plugin-docusaurus/test/sandbox/package.json +++ /dev/null @@ -1,61 +0,0 @@ -{ - "name": "@orama/plugin-docusaurus-sandbox", - "version": "@VERSION@", - "private": true, - "scripts": { - "build": "exit 0", - "test": "exit 0" - }, - "dependencies": { - "@docusaurus/core": "^2.4.3", - "@docusaurus/preset-classic": "^2.4.3", - "@docusaurus/theme-common": "^2.4.3", - "@docusaurus/types": "^2.4.1", - "@mdx-js/react": "^1.6.22", - "@orama/plugin-docusaurus": "^@VERSION@", - "react": "^17.0.2", - "react-dom": "^17.0.2" - }, - "pnpm": { - "overrides": { - "@orama/orama": "@ROOT@/packages/plugin-docusaurus/tmp/orama-orama-@VERSION@.tgz", - "@orama/plugin-docusaurus": "@ROOT@/packages/plugin-docusaurus/tmp/orama-plugin-docusaurus-@VERSION@.tgz", - "@orama/plugin-match-highlight": "@ROOT@/packages/plugin-docusaurus/tmp/orama-plugin-match-highlight-@VERSION@.tgz", - "@orama/plugin-parsedoc": "@ROOT@/packages/plugin-docusaurus/tmp/orama-plugin-parsedoc-@VERSION@.tgz" - }, - "packageExtensions": { - "@docusaurus/theme-live-codeblock": { - "peerDependencies": { - "@docusaurus/theme-common": "*" - }, - "dependencies": { - "@docusaurus/theme-common": "*" - } - }, - "@docusaurus/preset-classic": { - "peerDependencies": { - "@docusaurus/theme-common": "*" - }, - "dependencies": { - "@docusaurus/theme-common": "*" - } - }, - "@docusaurus/theme-classic": { - "peerDependencies": { - "@docusaurus/theme-common": "*" - }, - "dependencies": { - "@docusaurus/theme-common": "*" - } - }, - "@docusaurus/theme-search-algolia": { - "peerDependencies": { - "@docusaurus/theme-common": "*" - }, - "dependencies": { - "@docusaurus/theme-common": "*" - } - } - } - } -} diff --git a/packages/plugin-docusaurus/test/sandbox/sidebars.js b/packages/plugin-docusaurus/test/sandbox/sidebars.js deleted file mode 100644 index 33ebc1a7b..000000000 --- a/packages/plugin-docusaurus/test/sandbox/sidebars.js +++ /dev/null @@ -1,3 +0,0 @@ -module.exports = { - main: [{ type: 'autogenerated', dirName: '.' }] -} diff --git a/packages/plugin-docusaurus/tsconfig.cjs.json b/packages/plugin-docusaurus/tsconfig.cjs.json deleted file mode 100644 index 1f50af3a9..000000000 --- a/packages/plugin-docusaurus/tsconfig.cjs.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "extends": "./tsconfig.json", - "compilerOptions": { - "module": "CommonJS", - "moduleResolution": "node" - }, - "include": ["src/**/*.cts"] -} diff --git a/packages/plugin-docusaurus/tsconfig.json b/packages/plugin-docusaurus/tsconfig.json index 302231b9e..8dbed2c19 100644 --- a/packages/plugin-docusaurus/tsconfig.json +++ b/packages/plugin-docusaurus/tsconfig.json @@ -1,19 +1,37 @@ { "compilerOptions": { - "allowJs": true, - "target": "ESNext", - "module": "NodeNext", - "outDir": "dist", + "target": "ES2019", + "module": "commonjs", "lib": ["ESNext", "DOM"], - "jsx": "react-jsx", - "esModuleInterop": true, "declaration": true, - "forceConsistentCasingInFileNames": true, - "strict": true, + // "allowJs": true, // causing strange issue "skipLibCheck": true, + "jsx": "react", + + /* Strict Type-Checking Options */ + "strict": true, + "strictNullChecks": true, + "strictFunctionTypes": true, + "strictBindCallApply": true, + "strictPropertyInitialization": true, + "noImplicitThis": true, + "alwaysStrict": true, + + /* Additional Checks */ + "noImplicitReturns": true, + "noFallthroughCasesInSwitch": true, + "forceConsistentCasingInFileNames": true, + + /* Module Resolution Options */ + "moduleResolution": "node", + "allowSyntheticDefaultImports": true, + "esModuleInterop": true, + + /* Advanced Options */ "resolveJsonModule": true, - "sourceMap": true, - "moduleResolution": "nodenext" + "isolatedModules": true, + + "outDir": "dist" }, - "include": ["src/**/*.ts", "src/**/*.tsx"] + "include": ["src"] } diff --git a/packages/plugin-docusaurus/tsconfig.test.json b/packages/plugin-docusaurus/tsconfig.test.json deleted file mode 100644 index 6097ba878..000000000 --- a/packages/plugin-docusaurus/tsconfig.test.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "extends": "./tsconfig.json", - "include": ["src/**/*.ts", "src/**/*.tsx", "src/**/*.cts", "test/**/*.ts"] -} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2e37fe91a..3646009e9 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -358,130 +358,76 @@ importers: packages/plugin-docusaurus: dependencies: - '@algolia/autocomplete-js': - specifier: ^1.7.2 - version: 1.17.4(@algolia/client-search@4.24.0)(algoliasearch@4.24.0)(search-insights@2.17.2) - '@algolia/autocomplete-theme-classic': - specifier: ^1.7.3 - version: 1.17.4 '@docusaurus/plugin-content-docs': - specifier: ^2.4.3 + specifier: 2.x version: 2.4.3(@swc/core@1.7.28(@swc/helpers@0.5.5))(eslint@8.57.1)(react-dom@17.0.2(react@17.0.2))(react@17.0.2)(typescript@5.6.2) '@docusaurus/theme-common': - specifier: ^2.4.3 + specifier: 2.x version: 2.4.3(@docusaurus/types@2.4.3(@swc/core@1.7.28(@swc/helpers@0.5.5))(react-dom@17.0.2(react@17.0.2))(react@17.0.2))(@swc/core@1.7.28(@swc/helpers@0.5.5))(eslint@8.57.1)(react-dom@17.0.2(react@17.0.2))(react@17.0.2)(typescript@5.6.2) + '@docusaurus/types': + specifier: 2.x + version: 2.4.3(@swc/core@1.7.28(@swc/helpers@0.5.5))(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@docusaurus/utils': + specifier: 2.x + version: 2.4.3(@docusaurus/types@2.4.3(@swc/core@1.7.28(@swc/helpers@0.5.5))(react-dom@17.0.2(react@17.0.2))(react@17.0.2))(@swc/core@1.7.28(@swc/helpers@0.5.5)) '@orama/highlight': - specifier: ^0.1.2 + specifier: ^0.1.5 version: 0.1.6 '@orama/orama': - specifier: workspace:* - version: link:../orama + specifier: ^2.1.0 + version: 2.1.1 '@orama/plugin-analytics': - specifier: workspace:* - version: link:../plugin-analytics + specifier: ^2.1.0 + version: 2.1.1 '@orama/plugin-parsedoc': - specifier: workspace:* - version: link:../plugin-parsedoc + specifier: ^2.1.0 + version: 2.1.0 + '@orama/react-components': + specifier: ^0.0.25 + version: 0.0.25(encoding@0.1.13)(react-dom@17.0.2(react@17.0.2))(react@17.0.2)(typescript@5.6.2)(zod@3.23.8) + '@orama/switch': + specifier: ^2.1.0 + version: 2.1.1(@orama/orama@2.1.1)(@oramacloud/client@1.3.16(encoding@0.1.13)(typescript@5.6.2)(zod@3.23.8)) + '@oramacloud/client': + specifier: ^1.0.14 + version: 1.3.16(encoding@0.1.13)(typescript@5.6.2)(zod@3.23.8) github-slugger: specifier: ^2.0.0 version: 2.0.0 + gray-matter: + specifier: ^4.0.3 + version: 4.0.3 + jsdom: + specifier: ^23.2.0 + version: 23.2.0 + markdown-it: + specifier: ^13.0.2 + version: 13.0.2 pako: specifier: ^2.1.0 version: 2.1.0 + react: + specifier: 17.x + version: 17.0.2 + react-dom: + specifier: 17.x + version: 17.0.2(react@17.0.2) + tslib: + specifier: ^2.6.2 + version: 2.7.0 vfile-message: - specifier: ^3.1.3 + specifier: ^3.1.4 version: 3.1.4 devDependencies: - '@commitlint/cli': - specifier: ^17.4.0 - version: 17.8.1(@swc/core@1.7.28(@swc/helpers@0.5.5)) - '@commitlint/config-conventional': - specifier: ^17.4.0 - version: 17.8.1 - '@docusaurus/module-type-aliases': - specifier: ^2.4.3 - version: 2.4.3(@swc/core@1.7.28(@swc/helpers@0.5.5))(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@docusaurus/types': - specifier: ^2.4.3 - version: 2.4.3(@swc/core@1.7.28(@swc/helpers@0.5.5))(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@swc/cli': - specifier: ^0.1.59 - version: 0.1.65(@swc/core@1.7.28(@swc/helpers@0.5.5))(chokidar@3.6.0) - '@swc/core': - specifier: ^1.3.27 - version: 1.7.28(@swc/helpers@0.5.5) - '@types/node': - specifier: ^18.11.17 - version: 18.19.53 + '@types/jsdom': + specifier: ^21.1.6 + version: 21.1.7 + '@types/markdown-it': + specifier: ^13.0.7 + version: 13.0.9 '@types/pako': - specifier: ^2.0.0 + specifier: ^2.0.3 version: 2.0.3 - '@types/react': - specifier: ^18.0.26 - version: 18.3.9 - '@types/react-dom': - specifier: ^18.0.9 - version: 18.3.0 - '@typescript-eslint/eslint-plugin': - specifier: ^6.4.1 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1)(typescript@5.6.2) - '@typescript-eslint/parser': - specifier: ^6.4.1 - version: 6.21.0(eslint@8.57.1)(typescript@5.6.2) - eslint: - specifier: ^8.48.0 - version: 8.57.1 - eslint-config-react: - specifier: ^1.1.7 - version: 1.1.7 - eslint-config-react-app: - specifier: ^7.0.1 - version: 7.0.1(@babel/plugin-syntax-flow@7.24.7(@babel/core@7.12.9))(@babel/plugin-transform-react-jsx@7.25.2(@babel/core@7.12.9))(eslint@8.57.1)(typescript@5.6.2) - eslint-config-standard: - specifier: ^17.0.0 - version: 17.1.0(eslint-plugin-import@2.30.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1))(eslint-plugin-n@16.6.2(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1) - eslint-config-standard-with-typescript: - specifier: ^39.0.0 - version: 39.1.1(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1)(typescript@5.6.2))(eslint-plugin-import@2.30.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1))(eslint-plugin-n@16.6.2(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.6.2) - eslint-plugin-import: - specifier: ^2.28.1 - version: 2.30.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1) - eslint-plugin-n: - specifier: ^16.0.2 - version: 16.6.2(eslint@8.57.1) - eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.6.0(eslint@8.57.1) - eslint-plugin-react: - specifier: ^7.33.2 - version: 7.36.1(eslint@8.57.1) - husky: - specifier: ^8.0.3 - version: 8.0.3 - lint-staged: - specifier: ^13.1.0 - version: 13.3.0 - prettier: - specifier: ^2.8.1 - version: 2.8.8 - react: - specifier: ^17.0.2 - version: 17.0.2 - react-dom: - specifier: ^17.0.2 - version: 17.0.2(react@17.0.2) - tap-mocha-reporter: - specifier: ^5.0.3 - version: 5.0.4 - tsx: - specifier: ^3.12.2 - version: 3.14.0 - typescript: - specifier: ^5.0.0 - version: 5.6.2 - webpack: - specifier: ^5.75.0 - version: 5.95.0(@swc/core@1.7.28(@swc/helpers@0.5.5)) packages/plugin-docusaurus-v3: dependencies: @@ -910,55 +856,26 @@ packages: resolution: {integrity: sha512-3yWxPTq3UQ/FY9p1ErPxIyfT64elWaMvM9lIHnaqpyft63tkxodF5aUElYHrdisWve5cETkh1+KBw1yJuW0aRw==} engines: {node: '>=14.13.1'} - '@algolia/autocomplete-core@1.17.4': - resolution: {integrity: sha512-H1CAzj43RDeC4Vq9FW2JLtRDNxhjRG/aPX69nbNrKbYzX9P0YohxrEj3kJ9G+e20y0L0pYboAOeU6wgbKJ6gOA==} - '@algolia/autocomplete-core@1.9.3': resolution: {integrity: sha512-009HdfugtGCdC4JdXUbVJClA0q0zh24yyePn+KUGk3rP7j8FEe/m5Yo/z65gn6nP/cM39PxpzqKrL7A6fP6PPw==} - '@algolia/autocomplete-js@1.17.4': - resolution: {integrity: sha512-ANhINMwusKmsW/xHhgiKvUSLis/Lll9OilueBR9h/lxBlgEJ/hHIOTnZupzksyna1OtGZaW5keAu04E19+CW1w==} - peerDependencies: - '@algolia/client-search': '>= 4.5.1 < 6' - algoliasearch: '>= 4.9.1 < 6' - - '@algolia/autocomplete-plugin-algolia-insights@1.17.4': - resolution: {integrity: sha512-fPABTwZtfD83qAzwnMYjJQ6ohCK7XE2l2++H+dOtV76cCIsAYYAC1bO5DnCbIi6Ma+OkNOgB1jCPI5EYOEsSpg==} - peerDependencies: - search-insights: '>= 1 < 3' - '@algolia/autocomplete-plugin-algolia-insights@1.9.3': resolution: {integrity: sha512-a/yTUkcO/Vyy+JffmAnTWbr4/90cLzw+CC3bRbhnULr/EM0fGNvM13oQQ14f2moLMcVDyAx/leczLlAOovhSZg==} peerDependencies: search-insights: '>= 1 < 3' - '@algolia/autocomplete-preset-algolia@1.17.4': - resolution: {integrity: sha512-ijYn6hAGr3luVBVYDubaX600KXolVJH6yZlpeWZ9CNCEewgKIQ9ok3eNGha9EEJ0s9REYbp1TmDQ3T1I1aqcBA==} - peerDependencies: - '@algolia/client-search': '>= 4.9.1 < 6' - algoliasearch: '>= 4.9.1 < 6' - '@algolia/autocomplete-preset-algolia@1.9.3': resolution: {integrity: sha512-d4qlt6YmrLMYy95n5TB52wtNDr6EgAIPH81dvvvW8UmuWRgxEtY0NJiPwl/h95JtG2vmRM804M0DSwMCNZlzRA==} peerDependencies: '@algolia/client-search': '>= 4.9.1 < 6' algoliasearch: '>= 4.9.1 < 6' - '@algolia/autocomplete-shared@1.17.4': - resolution: {integrity: sha512-AM7KntpKinDZGVYfZ4j8zt5ymgYBRXOZg0CFEeHLmViqu5BvQzzoc1aoNHQx6lBjViGckBYP9szA+t2QzRXy3A==} - peerDependencies: - '@algolia/client-search': '>= 4.9.1 < 6' - algoliasearch: '>= 4.9.1 < 6' - '@algolia/autocomplete-shared@1.9.3': resolution: {integrity: sha512-Wnm9E4Ye6Rl6sTTqjoymD+l8DjSTHsHboVRYrKgEt8Q7UHm9nYbqhN/i0fhUYA3OAEH7WA8x3jfpnmJm3rKvaQ==} peerDependencies: '@algolia/client-search': '>= 4.9.1 < 6' algoliasearch: '>= 4.9.1 < 6' - '@algolia/autocomplete-theme-classic@1.17.4': - resolution: {integrity: sha512-HK72OAhj0R5yYwjEO97gae+WbI7zsGeItl0Awo4H7b9VsYW5RyS4Z9EpO+WiWbYITu1EVz3mu2A6Vh/gNEszOg==} - '@algolia/cache-browser-local-storage@4.24.0': resolution: {integrity: sha512-t63W9BnoXVrGy9iYHBgObNXqYXM3tYXCjDSHeNwnsc324r4o5UiVKUiAB4THQ5z9U5hTj6qUvwg/Ez43ZD85ww==} @@ -1162,13 +1079,6 @@ packages: resolution: {integrity: sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA==} engines: {node: '>=6.9.0'} - '@babel/eslint-parser@7.25.1': - resolution: {integrity: sha512-Y956ghgTT4j7rKesabkh5WeqgSFZVFwaPR0IWFm7KFHFmmJ4afbG49SmfW4S+GyRPx0Dy5jxEWA5t0rpxfElWg==} - engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0} - peerDependencies: - '@babel/core': ^7.11.0 - eslint: ^7.5.0 || ^8.0.0 || ^9.0.0 - '@babel/generator@7.25.6': resolution: {integrity: sha512-VPC82gr1seXOpkjAAKoLhP50vx4vGNlF4msF64dSFq1P8RfB+QAuJWGHPXXPc8QyfVWwwB/TNNU4+ayZmHNbZw==} engines: {node: '>=6.9.0'} @@ -1306,66 +1216,18 @@ packages: peerDependencies: '@babel/core': ^7.0.0 - '@babel/plugin-proposal-class-properties@7.18.6': - resolution: {integrity: sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==} - engines: {node: '>=6.9.0'} - deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead. - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-proposal-decorators@7.24.7': - resolution: {integrity: sha512-RL9GR0pUG5Kc8BUWLNDm2T5OpYwSX15r98I0IkgmRQTXuELq/OynH8xtMTMvTJFjXbMWFVTKtYkTaYQsuAwQlQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-proposal-nullish-coalescing-operator@7.18.6': - resolution: {integrity: sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==} - engines: {node: '>=6.9.0'} - deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-nullish-coalescing-operator instead. - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-proposal-numeric-separator@7.18.6': - resolution: {integrity: sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==} - engines: {node: '>=6.9.0'} - deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-numeric-separator instead. - peerDependencies: - '@babel/core': ^7.0.0-0 - '@babel/plugin-proposal-object-rest-spread@7.12.1': resolution: {integrity: sha512-s6SowJIjzlhx8o7lsFx5zmY4At6CTtDvgNQDdPzkBQucle58A6b/TTeEBYtyDgmcXjUTM+vE8YOGHZzzbc/ioA==} deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-object-rest-spread instead. peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-proposal-optional-chaining@7.21.0': - resolution: {integrity: sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==} - engines: {node: '>=6.9.0'} - deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-chaining instead. - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-proposal-private-methods@7.18.6': - resolution: {integrity: sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==} - engines: {node: '>=6.9.0'} - deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-methods instead. - peerDependencies: - '@babel/core': ^7.0.0-0 - '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2': resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-proposal-private-property-in-object@7.21.11': - resolution: {integrity: sha512-0QZ8qP/3RLDVBwBFoWAwCtgcDZJVwA5LUJRZU8x2YFfKNuFq161wK3cuGrALu5yiPu+vzwTAg/sMWVNeWeNyaw==} - engines: {node: '>=6.9.0'} - deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-property-in-object instead. - peerDependencies: - '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-async-generators@7.8.4': resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} peerDependencies: @@ -1382,12 +1244,6 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-decorators@7.24.7': - resolution: {integrity: sha512-Ui4uLJJrRV1lb38zg1yYTmRKmiZLiftDEvZN2iq3kd9kUFU+PttmzTbAFC2ucRk/XJmtek6G23gPsuZbhrT8fQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-dynamic-import@7.8.3': resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} peerDependencies: @@ -1398,12 +1254,6 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-flow@7.24.7': - resolution: {integrity: sha512-9G8GYT/dxn/D1IIKOUBmGX0mnmj46mGH9NnZyJLwtCpgh5f7D2VbuKodb+2s9m1Yavh1s7ASQN8lf0eqrb1LTw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-import-assertions@7.25.6': resolution: {integrity: sha512-aABl0jHw9bZ2karQ/uUD6XP4u0SG22SJrOHFoL6XB1R7dTovOP4TzTlsxOYC5yQ1pdscVK2JTUnF6QL3ARoAiQ==} engines: {node: '>=6.9.0'} @@ -1587,12 +1437,6 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-flow-strip-types@7.25.2': - resolution: {integrity: sha512-InBZ0O8tew5V0K6cHcQ+wgxlrjOw1W4wDXLkOTjLRD8GYhTSkxTVBtdy3MMtvYBrbAWa1Qm3hNoTc1620Yj+Mg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-for-of@7.24.7': resolution: {integrity: sha512-wo9ogrDG1ITTTBsy46oGiN1dS9A7MROBTcYsfS8DtsImMkHk9JXJ3EWQM6X2SUw4x80uGPlwj0o00Uoc6nEE3g==} engines: {node: '>=6.9.0'} @@ -2016,91 +1860,22 @@ packages: resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} engines: {node: '>=0.1.90'} - '@commitlint/cli@17.8.1': - resolution: {integrity: sha512-ay+WbzQesE0Rv4EQKfNbSMiJJ12KdKTDzIt0tcK4k11FdsWmtwP0Kp1NWMOUswfIWo6Eb7p7Ln721Nx9FLNBjg==} - engines: {node: '>=v14'} - hasBin: true - - '@commitlint/config-conventional@17.8.1': - resolution: {integrity: sha512-NxCOHx1kgneig3VLauWJcDWS40DVjg7nKOpBEEK9E5fjJpQqLCilcnKkIIjdBH98kEO1q3NpE5NSrZ2kl/QGJg==} - engines: {node: '>=v14'} - - '@commitlint/config-validator@17.8.1': - resolution: {integrity: sha512-UUgUC+sNiiMwkyiuIFR7JG2cfd9t/7MV8VB4TZ+q02ZFkHoduUS4tJGsCBWvBOGD9Btev6IecPMvlWUfJorkEA==} - engines: {node: '>=v14'} - '@commitlint/config-validator@19.5.0': resolution: {integrity: sha512-CHtj92H5rdhKt17RmgALhfQt95VayrUo2tSqY9g2w+laAXyk7K/Ef6uPm9tn5qSIwSmrLjKaXK9eiNuxmQrDBw==} engines: {node: '>=v18'} - '@commitlint/ensure@17.8.1': - resolution: {integrity: sha512-xjafwKxid8s1K23NFpL8JNo6JnY/ysetKo8kegVM7c8vs+kWLP8VrQq+NbhgVlmCojhEDbzQKp4eRXSjVOGsow==} - engines: {node: '>=v14'} - - '@commitlint/execute-rule@17.8.1': - resolution: {integrity: sha512-JHVupQeSdNI6xzA9SqMF+p/JjrHTcrJdI02PwesQIDCIGUrv04hicJgCcws5nzaoZbROapPs0s6zeVHoxpMwFQ==} - engines: {node: '>=v14'} - '@commitlint/execute-rule@19.5.0': resolution: {integrity: sha512-aqyGgytXhl2ejlk+/rfgtwpPexYyri4t8/n4ku6rRJoRhGZpLFMqrZ+YaubeGysCP6oz4mMA34YSTaSOKEeNrg==} engines: {node: '>=v18'} - '@commitlint/format@17.8.1': - resolution: {integrity: sha512-f3oMTyZ84M9ht7fb93wbCKmWxO5/kKSbwuYvS867duVomoOsgrgljkGGIztmT/srZnaiGbaK8+Wf8Ik2tSr5eg==} - engines: {node: '>=v14'} - - '@commitlint/is-ignored@17.8.1': - resolution: {integrity: sha512-UshMi4Ltb4ZlNn4F7WtSEugFDZmctzFpmbqvpyxD3la510J+PLcnyhf9chs7EryaRFJMdAKwsEKfNK0jL/QM4g==} - engines: {node: '>=v14'} - - '@commitlint/lint@17.8.1': - resolution: {integrity: sha512-aQUlwIR1/VMv2D4GXSk7PfL5hIaFSfy6hSHV94O8Y27T5q+DlDEgd/cZ4KmVI+MWKzFfCTiTuWqjfRSfdRllCA==} - engines: {node: '>=v14'} - - '@commitlint/load@17.8.1': - resolution: {integrity: sha512-iF4CL7KDFstP1kpVUkT8K2Wl17h2yx9VaR1ztTc8vzByWWcbO/WaKwxsnCOqow9tVAlzPfo1ywk9m2oJ9ucMqA==} - engines: {node: '>=v14'} - '@commitlint/load@19.5.0': resolution: {integrity: sha512-INOUhkL/qaKqwcTUvCE8iIUf5XHsEPCLY9looJ/ipzi7jtGhgmtH7OOFiNvwYgH7mA8osUWOUDV8t4E2HAi4xA==} engines: {node: '>=v18'} - '@commitlint/message@17.8.1': - resolution: {integrity: sha512-6bYL1GUQsD6bLhTH3QQty8pVFoETfFQlMn2Nzmz3AOLqRVfNNtXBaSY0dhZ0dM6A2MEq4+2d7L/2LP8TjqGRkA==} - engines: {node: '>=v14'} - - '@commitlint/parse@17.8.1': - resolution: {integrity: sha512-/wLUickTo0rNpQgWwLPavTm7WbwkZoBy3X8PpkUmlSmQJyWQTj0m6bDjiykMaDt41qcUbfeFfaCvXfiR4EGnfw==} - engines: {node: '>=v14'} - - '@commitlint/read@17.8.1': - resolution: {integrity: sha512-Fd55Oaz9irzBESPCdMd8vWWgxsW3OWR99wOntBDHgf9h7Y6OOHjWEdS9Xzen1GFndqgyoaFplQS5y7KZe0kO2w==} - engines: {node: '>=v14'} - - '@commitlint/resolve-extends@17.8.1': - resolution: {integrity: sha512-W/ryRoQ0TSVXqJrx5SGkaYuAaE/BUontL1j1HsKckvM6e5ZaG0M9126zcwL6peKSuIetJi7E87PRQF8O86EW0Q==} - engines: {node: '>=v14'} - '@commitlint/resolve-extends@19.5.0': resolution: {integrity: sha512-CU/GscZhCUsJwcKTJS9Ndh3AKGZTNFIOoQB2n8CmFnizE0VnEuJoum+COW+C1lNABEeqk6ssfc1Kkalm4bDklA==} engines: {node: '>=v18'} - '@commitlint/rules@17.8.1': - resolution: {integrity: sha512-2b7OdVbN7MTAt9U0vKOYKCDsOvESVXxQmrvuVUZ0rGFMCrCPJWWP1GJ7f0lAypbDAhaGb8zqtdOr47192LBrIA==} - engines: {node: '>=v14'} - - '@commitlint/to-lines@17.8.1': - resolution: {integrity: sha512-LE0jb8CuR/mj6xJyrIk8VLz03OEzXFgLdivBytoooKO5xLt5yalc8Ma5guTWobw998sbR3ogDd+2jed03CFmJA==} - engines: {node: '>=v14'} - - '@commitlint/top-level@17.8.1': - resolution: {integrity: sha512-l6+Z6rrNf5p333SHfEte6r+WkOxGlWK4bLuZKbtf/2TXRN+qhrvn1XE63VhD8Oe9oIHQ7F7W1nG2k/TJFhx2yA==} - engines: {node: '>=v14'} - - '@commitlint/types@17.8.1': - resolution: {integrity: sha512-PXDQXkAmiMEG162Bqdh9ChML/GJZo6vU+7F03ALKDK8zYc6SuAr47LjG7hGYRqUOz+WK0dU7bQ0xzuqFMdxzeQ==} - engines: {node: '>=v14'} - '@commitlint/types@19.5.0': resolution: {integrity: sha512-DSHae2obMSMkAtTBSOulg5X7/z+rGLxcXQIkg3OmWvY6wifojge5uVMydfhUvs7yQj+V7jNmRZ2Xzl8GJyqRgg==} engines: {node: '>=v18'} @@ -3579,9 +3354,6 @@ packages: cpu: [x64] os: [win32] - '@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1': - resolution: {integrity: sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==} - '@noble/hashes@1.5.0': resolution: {integrity: sha512-1j6kQFb7QRru7eKN3ZDvRcP13rugwdxZqCjbiAVZfIJwgj2A65UmT4TgARXGlXgnRkORLTDTrO19ZErt7+QXgA==} engines: {node: ^14.21.3 || >=16} @@ -3650,6 +3422,10 @@ packages: '@orama/highlight@0.1.6': resolution: {integrity: sha512-6Va8paStIoVy5algYDQu1hU0NUCkcrBx7FSt+0Lllp4d2VA1aVi6ACQ7xoINYls8sDZqg6vXf2lj4YDlVamBtw==} + '@orama/orama@2.1.0': + resolution: {integrity: sha512-6Z6acBHmXGhp2Dom0ZvGJsJ1tkCwvs+uqNZUnhBbUTDvX4U1EMSGiTZt3fJFXy1enLKse6lOpG+E76/MnQIdBw==} + engines: {node: '>= 16.0.0'} + '@orama/orama@2.1.1': resolution: {integrity: sha512-euTV/2kya290SNkl5m8e/H1na8iDygk74nNtl4E0YZNyYIrEMwE1JwamoroMKGZw2Uz+in/8gH3m1+2YfP0j1w==} engines: {node: '>= 16.0.0'} @@ -3657,6 +3433,9 @@ packages: '@orama/plugin-analytics@2.1.1': resolution: {integrity: sha512-t7wS4crQCbfnDuHsvNyA3z4Q44DUca7hgZV8KVpRpz2jgKK4qlPEQig+NOL3rp2lHAAjFwxXegCIaeoW9dChQA==} + '@orama/plugin-parsedoc@2.1.0': + resolution: {integrity: sha512-xY8k95mJ+ACvUe09PLsu9s3wJ9ZOKEMfR7jufIyeBO0TUHVR0xlIFQeRMHG0ZH95xy7zy+MfPwNtdHVtIZpxYA==} + '@orama/plugin-secure-proxy@2.1.1': resolution: {integrity: sha512-gXXHGpa2cLtwK9ijVI7V//Qj++g1ky1vUfKYkzmMwgn8BxaNMteA3LMpJHY5qfaXGJQ1ojLDCbM7dhbZ30abRw==} @@ -3690,6 +3469,12 @@ packages: react-dom: ^18.3.1 react-markdown: ^9.0.1 + '@orama/switch@2.1.1': + resolution: {integrity: sha512-3kp1xGD0bvgqODHWrC74x9Bo052n39fZpFFCsATvt/lzEE30yaGXXuDBf+Z1xTEOaGoX0jkfISEi6hfUTID/UA==} + peerDependencies: + '@orama/orama': 2.1.1 + '@oramacloud/client': 1.3.15 + '@orama/wc-components@0.0.25': resolution: {integrity: sha512-3EJIuE47k86hNbPXExd3bNzeMwdkdDA3AfwNTPSRVq3zdGlcKoUR/kmLvsGtHIt73oIPO+Lcyl9n0PK8F12nbg==} @@ -3885,9 +3670,6 @@ packages: '@rtsao/scc@1.1.0': resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==} - '@rushstack/eslint-patch@1.10.4': - resolution: {integrity: sha512-WJgX9nzTqknM393q1QJDJmoW28kUfEnybeTfVNcNAPnIx210RXm2DiXiHzfNPJNIUUb1tJnz/l4QGtJ30PgWmA==} - '@selderee/plugin-htmlparser2@0.11.0': resolution: {integrity: sha512-P33hHGdldxGabLFjPPpaTxVolMrzrcegejx+0GxjrIb9Zv48D8yAIA/QTDR2dFl7Uz7urX8aX6+5bCZslr+gWQ==} @@ -4580,9 +4362,6 @@ packages: '@types/node@20.16.9': resolution: {integrity: sha512-rkvIVJxsOfBejxK7I0FO5sa2WxFmJCzoDwcd88+fq/CUfynNywTo/1/T6hyFz22CyztsnLS9nVlHOnTI36RH5w==} - '@types/node@20.5.1': - resolution: {integrity: sha512-4tT2UrL5LBqDwoed9wZ6N3umC4Yhz3W3FloMmiiG4JwmUJWpie0c7lcnUNd4gtMKuDEO4wRVS8B6Xa0uMRsMKg==} - '@types/node@22.7.2': resolution: {integrity: sha512-866lXSrpGpgyHBZUa2m9YNWqHDjjM0aBTJlNtYaGEw4rqY/dcD7deRVTbBBAJelfA7oaGDbNftXF/TL/A6RgoA==} @@ -4713,12 +4492,6 @@ packages: typescript: optional: true - '@typescript-eslint/experimental-utils@5.62.0': - resolution: {integrity: sha512-RTXpeB3eMkpoclG3ZHft6vG/Z30azNHuqY6wKPBHlVMZFuEvrtlEDe8gMqDb+SO+9hjC/pLekeSCryf9vMZlCw==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - '@typescript-eslint/parser@5.62.0': resolution: {integrity: sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -4991,10 +4764,6 @@ packages: '@xtuc/long@4.2.2': resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==} - JSONStream@1.3.5: - resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==} - hasBin: true - abbrev@2.0.0: resolution: {integrity: sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -5143,9 +4912,6 @@ packages: argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} - aria-query@5.1.3: - resolution: {integrity: sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==} - aria-query@5.3.2: resolution: {integrity: sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==} engines: {node: '>= 0.4'} @@ -5157,9 +4923,6 @@ packages: array-flatten@1.1.1: resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} - array-ify@1.0.0: - resolution: {integrity: sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==} - array-includes@3.1.8: resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==} engines: {node: '>= 0.4'} @@ -5206,9 +4969,6 @@ packages: asap@2.0.6: resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==} - ast-types-flow@0.0.8: - resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==} - astral-regex@2.0.0: resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} engines: {node: '>=8'} @@ -5274,10 +5034,6 @@ packages: resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} engines: {node: '>= 0.4'} - axe-core@4.10.0: - resolution: {integrity: sha512-Mr2ZakwQ7XUAjp7pAwQWRhhK8mQQ6JAaNWSjmjxil0R8BPioMtQsTLOolGYkji1rcL++3dCqZA3zWqpT+9Ew6g==} - engines: {node: '>=4'} - axios@0.25.0: resolution: {integrity: sha512-cD8FOb0tRH3uuEe6+evtAbgJtfxr7ly3fQjYcMcuPlgkwVS9xboaVIpcDV+cYQe+yGykgwZCs1pzjntcGa6l5g==} @@ -5310,10 +5066,6 @@ packages: babel-plugin-extract-import-names@1.6.22: resolution: {integrity: sha512-yJ9BsJaISua7d8zNT7oRG1ZLBJCIdZ4PZqmH8qa9N5AK01ifk3fnkc98AXhtzE7UkfCsEumvoQWgoYLhOnJ7jQ==} - babel-plugin-macros@3.1.0: - resolution: {integrity: sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==} - engines: {node: '>=10', npm: '>=6'} - babel-plugin-polyfill-corejs2@0.4.11: resolution: {integrity: sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q==} peerDependencies: @@ -5329,12 +5081,6 @@ packages: peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - babel-plugin-transform-react-remove-prop-types@0.4.24: - resolution: {integrity: sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA==} - - babel-preset-react-app@10.0.1: - resolution: {integrity: sha512-b0D9IZ1WhhCWkrTXyFuIIgqGzSkRIH5D5AmB0bXbzYAB1OBAwHcUeyWW2LorutLWF5btNo/N7r/cIdmvvKJlYg==} - bail@1.0.5: resolution: {integrity: sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==} @@ -5825,9 +5571,6 @@ packages: commondir@1.0.1: resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} - compare-func@2.0.0: - resolution: {integrity: sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==} - compressible@2.0.18: resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==} engines: {node: '>= 0.6'} @@ -5850,9 +5593,6 @@ packages: resolution: {integrity: sha512-cD31W1v3GqUlQvbBCGcXmd2Nj9SvLDOP1oQ0YFuLETufzSPaKp11rYBsSOm7rCsW3OnIRAFM3OxRhceaXNYHkA==} engines: {node: '>=12'} - confusing-browser-globals@1.0.11: - resolution: {integrity: sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==} - connect-history-api-fallback@2.0.0: resolution: {integrity: sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==} engines: {node: '>=0.8'} @@ -5875,22 +5615,9 @@ packages: resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} engines: {node: '>= 0.6'} - conventional-changelog-angular@6.0.0: - resolution: {integrity: sha512-6qLgrBF4gueoC7AFVHu51nHL9pF9FRjXrH+ceVf7WmAfH3gs+gEYOkvxhjMPjZu57I4AGUGoNTY8V7Hrgf1uqg==} - engines: {node: '>=14'} - - conventional-changelog-conventionalcommits@6.1.0: - resolution: {integrity: sha512-3cS3GEtR78zTfMzk0AizXKKIdN4OvSh7ibNz6/DPbhWWQu7LqE/8+/GqSodV+sywUR2gpJAdP/1JFf4XtN7Zpw==} - engines: {node: '>=14'} - conventional-commit-types@3.0.0: resolution: {integrity: sha512-SmmCYnOniSsAa9GqWOeLqc179lfr5TRu5b4QFDkbsrJ5TZjPJx85wtOr3zn+1dbeNiXDKGPbZ72IKbPhLXh/Lg==} - conventional-commits-parser@4.0.0: - resolution: {integrity: sha512-WRv5j1FsVM5FISJkoYMR6tPk07fkKT0UodruX4je86V4owk451yjXAKzKAPOs9l7y59E2viHUS9eQ+dfUA9NSg==} - engines: {node: '>=14'} - hasBin: true - convert-source-map@1.9.0: resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} @@ -5934,15 +5661,6 @@ packages: core-util-is@1.0.3: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} - cosmiconfig-typescript-loader@4.4.0: - resolution: {integrity: sha512-BabizFdC3wBHhbI4kJh0VkQP9GkBfoHPydD0COMce1nJ1kJAB3F2TmJ/I7diULBKtmEWSwEbuN/KDtgnmUUVmw==} - engines: {node: '>=v14.21.3'} - peerDependencies: - '@types/node': '*' - cosmiconfig: '>=7' - ts-node: '>=10' - typescript: '>=4' - cosmiconfig-typescript-loader@5.0.0: resolution: {integrity: sha512-+8cK7jRAReYkMwMiG+bxhcNKiHJDM6bR9FD/nGBXOWdMLuYawjF5cGrtLilJ+LGd3ZjCXnJjR5DkfWPoIVlqJA==} engines: {node: '>=v16'} @@ -6182,13 +5900,6 @@ packages: resolution: {integrity: sha512-U466fIzU5U22eES5lTNiNbZ+d8dfcHcssH4o7QsdWaCcRs/feIPCxKYSWkYBNs5mny7MvEfwpTLWjvbm94hecw==} engines: {node: '>= 10'} - damerau-levenshtein@1.0.8: - resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} - - dargs@7.0.0: - resolution: {integrity: sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==} - engines: {node: '>=8'} - data-urls@5.0.0: resolution: {integrity: sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==} engines: {node: '>=18'} @@ -6650,19 +6361,6 @@ packages: peerDependencies: eslint: '>=6.0.0' - eslint-config-react-app@7.0.1: - resolution: {integrity: sha512-K6rNzvkIeHaTd8m/QEh1Zko0KI7BACWkkneSs6s9cKZC/J27X3eZR6Upt1jkmZ/4FK+XUOPPxMEN7+lbUXfSlA==} - engines: {node: '>=14.0.0'} - peerDependencies: - eslint: ^8.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - eslint-config-react@1.1.7: - resolution: {integrity: sha512-P4Z6u68wf0BvIvZNu+U8uQsk3DcZ1CcCI1XpUkJlG6vOa+iVcSQLgE01f2DB2kXlKRcT8/3dsH+wveLgvEgbkQ==} - eslint-config-standard-jsx@11.0.0: resolution: {integrity: sha512-+1EV/R0JxEK1L0NGolAr8Iktm3Rgotx3BKwgaX+eAuSX8D952LULKtjgZD3F+e6SvibONnhLwoTi9DPxN5LvvQ==} peerDependencies: @@ -6680,17 +6378,6 @@ packages: eslint-plugin-promise: ^6.0.0 typescript: '*' - eslint-config-standard-with-typescript@39.1.1: - resolution: {integrity: sha512-t6B5Ep8E4I18uuoYeYxINyqcXb2UbC0SOOTxRtBSt2JUs+EzeXbfe2oaiPs71AIdnoWhXDO2fYOHz8df3kV84A==} - deprecated: Please use eslint-config-love, instead. - peerDependencies: - '@typescript-eslint/eslint-plugin': ^6.4.0 - eslint: ^8.0.1 - eslint-plugin-import: ^2.25.2 - eslint-plugin-n: '^15.0.0 || ^16.0.0 ' - eslint-plugin-promise: ^6.0.0 - typescript: '*' - eslint-config-standard@17.0.0: resolution: {integrity: sha512-/2ks1GKyqSOkH7JFvXJicu0iMpoojkwB+f5Du/1SC0PtBL+s8v30k9njRZ21pm2drKYm2342jFnGWzttxPmZVg==} peerDependencies: @@ -6699,15 +6386,6 @@ packages: eslint-plugin-n: ^15.0.0 eslint-plugin-promise: ^6.0.0 - eslint-config-standard@17.1.0: - resolution: {integrity: sha512-IwHwmaBNtDK4zDHQukFDW5u/aTb8+meQWZvNFWkiGmbWjD6bqyuSSBxxXKkCftCUzc1zwCH2m/baCNDLGmuO5Q==} - engines: {node: '>=12.0.0'} - peerDependencies: - eslint: ^8.0.1 - eslint-plugin-import: ^2.25.2 - eslint-plugin-n: '^15.0.0 || ^16.0.0 ' - eslint-plugin-promise: ^6.0.0 - eslint-formatter-pretty@4.1.0: resolution: {integrity: sha512-IsUTtGxF1hrH6lMWiSl1WbGaiP01eT6kzywdY1U+zLc0MP+nwEnUiS9UI8IaOTUhTeQJLlCEWIbXINBH4YJbBQ==} engines: {node: '>=10'} @@ -6748,14 +6426,6 @@ packages: peerDependencies: eslint: '>=4.19.1' - eslint-plugin-flowtype@8.0.3: - resolution: {integrity: sha512-dX8l6qUL6O+fYPtpNRideCFSpmWOUVx5QcaGLVqe/vlDiBSe4vYljDWDETwnyFzpl7By/WVIu6rcrniCgH9BqQ==} - engines: {node: '>=12.0.0'} - peerDependencies: - '@babel/plugin-syntax-flow': ^7.14.5 - '@babel/plugin-transform-react-jsx': ^7.14.9 - eslint: ^8.1.0 - eslint-plugin-import@2.30.0: resolution: {integrity: sha512-/mHNE9jINJfiD2EKkg1BKyPyUk4zdnT54YgbOgfjSakWT5oyX/qQLVNTkehyfpcMxZXMy1zyonZ2v7hZTX43Yw==} engines: {node: '>=4'} @@ -6766,25 +6436,6 @@ packages: '@typescript-eslint/parser': optional: true - eslint-plugin-jest@25.7.0: - resolution: {integrity: sha512-PWLUEXeeF7C9QGKqvdSbzLOiLTx+bno7/HC9eefePfEb257QFHg7ye3dh80AZVkaa/RQsBB1Q/ORQvg2X7F0NQ==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - peerDependencies: - '@typescript-eslint/eslint-plugin': ^4.0.0 || ^5.0.0 - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - jest: '*' - peerDependenciesMeta: - '@typescript-eslint/eslint-plugin': - optional: true - jest: - optional: true - - eslint-plugin-jsx-a11y@6.10.0: - resolution: {integrity: sha512-ySOHvXX8eSN6zz8Bywacm7CvGNhUtdjvqfQDVe6020TUK34Cywkw7m0KsCCk1Qtm9G1FayfTN1/7mMYnYO2Bhg==} - engines: {node: '>=4.0'} - peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9 - eslint-plugin-n@15.7.0: resolution: {integrity: sha512-jDex9s7D/Qial8AGVIHq4W7NswpUD5DPDL2RH8Lzd9EloWUuvUkHfv4FRLMipH5q2UtyurorBkPeNi1wVWNh3Q==} engines: {node: '>=12.22.0'} @@ -6803,24 +6454,12 @@ packages: peerDependencies: eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 - eslint-plugin-react-hooks@4.6.2: - resolution: {integrity: sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==} - engines: {node: '>=10'} - peerDependencies: - eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 - eslint-plugin-react@7.36.1: resolution: {integrity: sha512-/qwbqNXZoq+VP30s1d4Nc1C5GTxjJQjk4Jzs4Wq2qzxFM7dSmuG2UkIjg2USMLh3A/aVcUNrK7v0J5U1XEGGwA==} engines: {node: '>=4'} peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 - eslint-plugin-testing-library@5.11.1: - resolution: {integrity: sha512-5eX9e1Kc2PqVRed3taaLnAAqPZGEX75C+M/rXzUAI3wIg/ZxzUm1OVAwfe/O+vE+6YXOLetSe9g5GKD2ecXipw==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0, npm: '>=6'} - peerDependencies: - eslint: ^7.5.0 || ^8.0.0 - eslint-rule-docs@1.1.235: resolution: {integrity: sha512-+TQ+x4JdTnDoFEXXb3fDvfGOwnyNV7duH8fXWTPD1ieaBmB8omj7Gw/pMBBu4uI2uJCCU8APDaQJzWuXnTsH4A==} @@ -7315,11 +6954,6 @@ packages: get-tsconfig@4.8.1: resolution: {integrity: sha512-k9PN+cFBmaLWtVz29SkUoqU5O0slLuHJXt/2P+tMVFT+phsSGXGkp9t3rQIqdz0e+06EHNGs3oM6ZX1s2zHxRg==} - git-raw-commits@2.0.11: - resolution: {integrity: sha512-VnctFhw+xfj8Va1xtfEqCUD2XDrbAPSJx+hSrE5K7fGdjZruW7XV+QOrN7LF/RJyvspRiD2I0asWsxFp0ya26A==} - engines: {node: '>=10'} - hasBin: true - github-slugger@1.5.0: resolution: {integrity: sha512-wIh+gKBI9Nshz2o46B0B3f5k/W+WI9ZAv6y5Dn5WJ5SK1t0TnDimB4WE5rmTD05ZAIn8HALCZVmCsvj0w0v0lw==} @@ -7358,10 +6992,6 @@ packages: resolution: {integrity: sha512-wHTUcDUoZ1H5/0iVqEudYW4/kAlN5cZ3j/bXn0Dpbizl9iaUVeWSHqiOjsgk6OW2bkLclbBjzewBz6weQ1zA2Q==} engines: {node: '>=18'} - global-dirs@0.1.1: - resolution: {integrity: sha512-NknMLn7F2J7aflwFOlGdNIuCDpN3VGoSoB+aap3KABFWbHVn1TCgFC+np23J8W2BiZbjfEw3BFBycSMv1AFblg==} - engines: {node: '>=4'} - global-dirs@3.0.1: resolution: {integrity: sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==} engines: {node: '>=10'} @@ -7672,9 +7302,6 @@ packages: hpack.js@2.1.6: resolution: {integrity: sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==} - htm@3.1.1: - resolution: {integrity: sha512-983Vyg8NwUE7JkZ6NmOqpCZ+sh1bKv2iYTlUkzlWmA5JD2acKoxd4KVxbMmxX/85mtfdnDmTFoNKcg5DGAvxNQ==} - html-encoding-sniffer@4.0.0: resolution: {integrity: sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==} engines: {node: '>=18'} @@ -8225,10 +7852,6 @@ packages: resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} engines: {node: '>= 0.4'} - is-text-path@1.0.1: - resolution: {integrity: sha512-xFuJpne9oFz5qDaodwmmG08e3CawH/2ZV8Qqza1Ko7Sk8POWbkRdwIoAWVhqvq0XeUzANEhKo2n0IXUGBm7A/w==} - engines: {node: '>=0.10.0'} - is-typed-array@1.1.13: resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==} engines: {node: '>= 0.4'} @@ -8473,13 +8096,6 @@ packages: resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} engines: {node: '>=6'} - language-subtag-registry@0.3.23: - resolution: {integrity: sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==} - - language-tags@1.0.9: - resolution: {integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==} - engines: {node: '>=0.10'} - latest-version@5.1.0: resolution: {integrity: sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==} engines: {node: '>=8'} @@ -8592,9 +8208,6 @@ packages: resolution: {integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - lodash.camelcase@4.3.0: - resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} - lodash.curry@4.1.1: resolution: {integrity: sha512-/u14pXGviLaweY5JI0IUzgzF2J6Ne8INyzAZjImcryjgkZ+ebruBxy2/JaOOkTqScddcYtakjhSaeemV8lR0tA==} @@ -8607,15 +8220,9 @@ packages: lodash.get@4.4.2: resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==} - lodash.isfunction@3.0.9: - resolution: {integrity: sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw==} - lodash.isplainobject@4.0.6: resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} - lodash.kebabcase@4.1.1: - resolution: {integrity: sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==} - lodash.map@4.6.0: resolution: {integrity: sha512-worNHGKLDetmcEYDvh2stPCrrQRkP20E4l0iIS7F8EvzMqBBi7ltvFN5m1HvTf1P7Jk1txKhvFcmYsCr8O2F1Q==} @@ -8631,21 +8238,12 @@ packages: lodash.omit@4.5.0: resolution: {integrity: sha512-XeqSp49hNGmlkj2EJlfrQFIzQ6lXdNro9sddtQzcJY8QaoC2GO0DT7xaIokHeyM+mIT0mPMlPvkYzg2xCuHdZg==} - lodash.snakecase@4.1.1: - resolution: {integrity: sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==} - lodash.sortby@4.7.0: resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} - lodash.startcase@4.4.0: - resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==} - lodash.uniq@4.5.0: resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==} - lodash.upperfirst@4.3.1: - resolution: {integrity: sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg==} - lodash@4.17.21: resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} @@ -8905,10 +8503,6 @@ packages: resolution: {integrity: sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==} engines: {node: '>= 4.0.0'} - meow@8.1.2: - resolution: {integrity: sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==} - engines: {node: '>=10'} - meow@9.0.0: resolution: {integrity: sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==} engines: {node: '>=10'} @@ -11028,10 +10622,6 @@ packages: resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} engines: {node: '>=8'} - resolve-global@1.0.0: - resolution: {integrity: sha512-zFa12V4OLtT5XUX/Q4VLvTfBf+Ok0SPc1FNGM/z9ctUdiU618qwKpWnd0CHs3+RqROfyEg/DhuHbMWYqcgljEw==} - engines: {node: '>=8'} - resolve-import@1.4.6: resolution: {integrity: sha512-CIw9e64QcKcCFUj9+KxUCJPy8hYofv6eVfo3U9wdhCm2E4IjvFnZ6G4/yIC4yP3f11+h6uU5b3LdS7O64LgqrA==} engines: {node: 16 >=16.17.0 || 18 >= 18.6.0 || >=20} @@ -11255,11 +10845,6 @@ packages: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true - semver@7.5.4: - resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} - engines: {node: '>=10'} - hasBin: true - semver@7.6.3: resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} engines: {node: '>=10'} @@ -11505,9 +11090,6 @@ packages: resolution: {integrity: sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==} engines: {node: '>=6.0.0'} - split2@3.2.2: - resolution: {integrity: sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==} - sprintf-js@1.0.3: resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} @@ -11587,9 +11169,6 @@ packages: resolution: {integrity: sha512-1U361pxZHEQ+FeSjzqRpV+cu2vTzYeWeafXFLykiFlv4Vc0n3njgU8HrMbyik5uwm77naWMuVG8fhEF+Ovb1Kg==} engines: {node: '>=16'} - string-natural-compare@3.0.1: - resolution: {integrity: sha512-n3sPwynL1nwKi3WJ6AIsClwBMa0zTi54fn2oLU6ndfTSIO05xaznjSf15PcBZU6FNWbmN5Q6cxT4V5hGvB4taw==} - string-width@4.2.3: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} engines: {node: '>=8'} @@ -11602,9 +11181,6 @@ packages: resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==} engines: {node: '>=18'} - string.prototype.includes@2.0.0: - resolution: {integrity: sha512-E34CkBgyeqNDcrbU76cDjL5JLcVrtSdYq0MEh/B10r17pRP4ciHLwTgnuLV8Ay6cgEMLkcBkFCKyFZ43YldYzg==} - string.prototype.matchall@4.0.11: resolution: {integrity: sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==} engines: {node: '>= 0.4'} @@ -11865,10 +11441,6 @@ packages: resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} engines: {node: '>=8'} - text-extensions@1.9.0: - resolution: {integrity: sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==} - engines: {node: '>=0.10'} - text-table@0.2.0: resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} @@ -11879,9 +11451,6 @@ packages: thenify@3.3.1: resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} - through2@4.0.2: - resolution: {integrity: sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==} - through@2.3.8: resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} @@ -13118,15 +12687,6 @@ snapshots: ansi-styles: 6.2.1 is-fullwidth-code-point: 4.0.0 - '@algolia/autocomplete-core@1.17.4(@algolia/client-search@4.24.0)(algoliasearch@4.24.0)(search-insights@2.17.2)': - dependencies: - '@algolia/autocomplete-plugin-algolia-insights': 1.17.4(@algolia/client-search@4.24.0)(algoliasearch@4.24.0)(search-insights@2.17.2) - '@algolia/autocomplete-shared': 1.17.4(@algolia/client-search@4.24.0)(algoliasearch@4.24.0) - transitivePeerDependencies: - - '@algolia/client-search' - - algoliasearch - - search-insights - '@algolia/autocomplete-core@1.9.3(@algolia/client-search@4.24.0)(algoliasearch@4.24.0)(search-insights@2.17.2)': dependencies: '@algolia/autocomplete-plugin-algolia-insights': 1.9.3(@algolia/client-search@4.24.0)(algoliasearch@4.24.0)(search-insights@2.17.2) @@ -13136,26 +12696,6 @@ snapshots: - algoliasearch - search-insights - '@algolia/autocomplete-js@1.17.4(@algolia/client-search@4.24.0)(algoliasearch@4.24.0)(search-insights@2.17.2)': - dependencies: - '@algolia/autocomplete-core': 1.17.4(@algolia/client-search@4.24.0)(algoliasearch@4.24.0)(search-insights@2.17.2) - '@algolia/autocomplete-preset-algolia': 1.17.4(@algolia/client-search@4.24.0)(algoliasearch@4.24.0) - '@algolia/autocomplete-shared': 1.17.4(@algolia/client-search@4.24.0)(algoliasearch@4.24.0) - '@algolia/client-search': 4.24.0 - algoliasearch: 4.24.0 - htm: 3.1.1 - preact: 10.24.1 - transitivePeerDependencies: - - search-insights - - '@algolia/autocomplete-plugin-algolia-insights@1.17.4(@algolia/client-search@4.24.0)(algoliasearch@4.24.0)(search-insights@2.17.2)': - dependencies: - '@algolia/autocomplete-shared': 1.17.4(@algolia/client-search@4.24.0)(algoliasearch@4.24.0) - search-insights: 2.17.2 - transitivePeerDependencies: - - '@algolia/client-search' - - algoliasearch - '@algolia/autocomplete-plugin-algolia-insights@1.9.3(@algolia/client-search@4.24.0)(algoliasearch@4.24.0)(search-insights@2.17.2)': dependencies: '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.24.0)(algoliasearch@4.24.0) @@ -13164,30 +12704,17 @@ snapshots: - '@algolia/client-search' - algoliasearch - '@algolia/autocomplete-preset-algolia@1.17.4(@algolia/client-search@4.24.0)(algoliasearch@4.24.0)': - dependencies: - '@algolia/autocomplete-shared': 1.17.4(@algolia/client-search@4.24.0)(algoliasearch@4.24.0) - '@algolia/client-search': 4.24.0 - algoliasearch: 4.24.0 - '@algolia/autocomplete-preset-algolia@1.9.3(@algolia/client-search@4.24.0)(algoliasearch@4.24.0)': dependencies: '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.24.0)(algoliasearch@4.24.0) '@algolia/client-search': 4.24.0 algoliasearch: 4.24.0 - '@algolia/autocomplete-shared@1.17.4(@algolia/client-search@4.24.0)(algoliasearch@4.24.0)': - dependencies: - '@algolia/client-search': 4.24.0 - algoliasearch: 4.24.0 - '@algolia/autocomplete-shared@1.9.3(@algolia/client-search@4.24.0)(algoliasearch@4.24.0)': dependencies: '@algolia/client-search': 4.24.0 algoliasearch: 4.24.0 - '@algolia/autocomplete-theme-classic@1.17.4': {} - '@algolia/cache-browser-local-storage@4.24.0': dependencies: '@algolia/cache-common': 4.24.0 @@ -13584,14 +13111,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/eslint-parser@7.25.1(@babel/core@7.25.2)(eslint@8.57.1)': - dependencies: - '@babel/core': 7.25.2 - '@nicolo-ribaudo/eslint-scope-5-internals': 5.1.1-v1 - eslint: 8.57.1 - eslint-visitor-keys: 2.1.0 - semver: 6.3.1 - '@babel/generator@7.25.6': dependencies: '@babel/types': 7.25.6 @@ -13788,73 +13307,17 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/plugin-proposal-class-properties@7.18.6(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-create-class-features-plugin': 7.25.4(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.8 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-proposal-decorators@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-create-class-features-plugin': 7.25.4(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-decorators': 7.24.7(@babel/core@7.25.2) - transitivePeerDependencies: - - supports-color - - '@babel/plugin-proposal-nullish-coalescing-operator@7.18.6(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.25.2) - - '@babel/plugin-proposal-numeric-separator@7.18.6(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.25.2) - '@babel/plugin-proposal-object-rest-spread@7.12.1(@babel/core@7.12.9)': dependencies: '@babel/core': 7.12.9 - '@babel/helper-plugin-utils': 7.10.4 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.12.9) '@babel/plugin-transform-parameters': 7.24.7(@babel/core@7.12.9) - '@babel/plugin-proposal-optional-chaining@7.21.0(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.25.2) - transitivePeerDependencies: - - supports-color - - '@babel/plugin-proposal-private-methods@7.18.6(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-create-class-features-plugin': 7.25.4(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.8 - transitivePeerDependencies: - - supports-color - '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/plugin-proposal-private-property-in-object@7.21.11(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-annotate-as-pure': 7.24.7 - '@babel/helper-create-class-features-plugin': 7.25.4(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.25.2) - transitivePeerDependencies: - - supports-color - '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 @@ -13870,11 +13333,6 @@ snapshots: '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-decorators@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 @@ -13885,16 +13343,6 @@ snapshots: '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-flow@7.24.7(@babel/core@7.12.9)': - dependencies: - '@babel/core': 7.12.9 - '@babel/helper-plugin-utils': 7.24.8 - - '@babel/plugin-syntax-flow@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-import-assertions@7.25.6(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 @@ -13920,11 +13368,6 @@ snapshots: '@babel/core': 7.12.9 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-jsx@7.24.7(@babel/core@7.12.9)': - dependencies: - '@babel/core': 7.12.9 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-jsx@7.24.7(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 @@ -14097,12 +13540,6 @@ snapshots: '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.25.2) - '@babel/plugin-transform-flow-strip-types@7.25.2(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-flow': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-for-of@7.24.7(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 @@ -14291,17 +13728,6 @@ snapshots: '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-react-jsx@7.25.2(@babel/core@7.12.9)': - dependencies: - '@babel/core': 7.12.9 - '@babel/helper-annotate-as-pure': 7.24.7 - '@babel/helper-module-imports': 7.24.7 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.12.9) - '@babel/types': 7.25.6 - transitivePeerDependencies: - - supports-color - '@babel/plugin-transform-react-jsx@7.25.2(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 @@ -14648,88 +14074,15 @@ snapshots: '@colors/colors@1.5.0': optional: true - '@commitlint/cli@17.8.1(@swc/core@1.7.28(@swc/helpers@0.5.5))': - dependencies: - '@commitlint/format': 17.8.1 - '@commitlint/lint': 17.8.1 - '@commitlint/load': 17.8.1(@swc/core@1.7.28(@swc/helpers@0.5.5)) - '@commitlint/read': 17.8.1 - '@commitlint/types': 17.8.1 - execa: 5.1.1 - lodash.isfunction: 3.0.9 - resolve-from: 5.0.0 - resolve-global: 1.0.0 - yargs: 17.7.2 - transitivePeerDependencies: - - '@swc/core' - - '@swc/wasm' - - '@commitlint/config-conventional@17.8.1': - dependencies: - conventional-changelog-conventionalcommits: 6.1.0 - - '@commitlint/config-validator@17.8.1': - dependencies: - '@commitlint/types': 17.8.1 - ajv: 8.17.1 - - '@commitlint/config-validator@19.5.0': - dependencies: - '@commitlint/types': 19.5.0 - ajv: 8.17.1 - optional: true - - '@commitlint/ensure@17.8.1': - dependencies: - '@commitlint/types': 17.8.1 - lodash.camelcase: 4.3.0 - lodash.kebabcase: 4.1.1 - lodash.snakecase: 4.1.1 - lodash.startcase: 4.4.0 - lodash.upperfirst: 4.3.1 - - '@commitlint/execute-rule@17.8.1': {} - - '@commitlint/execute-rule@19.5.0': - optional: true - - '@commitlint/format@17.8.1': - dependencies: - '@commitlint/types': 17.8.1 - chalk: 4.1.2 - - '@commitlint/is-ignored@17.8.1': - dependencies: - '@commitlint/types': 17.8.1 - semver: 7.5.4 - - '@commitlint/lint@17.8.1': - dependencies: - '@commitlint/is-ignored': 17.8.1 - '@commitlint/parse': 17.8.1 - '@commitlint/rules': 17.8.1 - '@commitlint/types': 17.8.1 - - '@commitlint/load@17.8.1(@swc/core@1.7.28(@swc/helpers@0.5.5))': - dependencies: - '@commitlint/config-validator': 17.8.1 - '@commitlint/execute-rule': 17.8.1 - '@commitlint/resolve-extends': 17.8.1 - '@commitlint/types': 17.8.1 - '@types/node': 20.5.1 - chalk: 4.1.2 - cosmiconfig: 8.3.6(typescript@5.6.2) - cosmiconfig-typescript-loader: 4.4.0(@types/node@20.5.1)(cosmiconfig@8.3.6(typescript@5.6.2))(ts-node@10.9.2(@swc/core@1.7.28(@swc/helpers@0.5.5))(@types/node@20.5.1)(typescript@5.6.2))(typescript@5.6.2) - lodash.isplainobject: 4.0.6 - lodash.merge: 4.6.2 - lodash.uniq: 4.5.0 - resolve-from: 5.0.0 - ts-node: 10.9.2(@swc/core@1.7.28(@swc/helpers@0.5.5))(@types/node@20.5.1)(typescript@5.6.2) - typescript: 5.6.2 - transitivePeerDependencies: - - '@swc/core' - - '@swc/wasm' - + '@commitlint/config-validator@19.5.0': + dependencies: + '@commitlint/types': 19.5.0 + ajv: 8.17.1 + optional: true + + '@commitlint/execute-rule@19.5.0': + optional: true + '@commitlint/load@19.5.0(@types/node@20.16.9)(typescript@5.6.2)': dependencies: '@commitlint/config-validator': 19.5.0 @@ -14747,31 +14100,6 @@ snapshots: - typescript optional: true - '@commitlint/message@17.8.1': {} - - '@commitlint/parse@17.8.1': - dependencies: - '@commitlint/types': 17.8.1 - conventional-changelog-angular: 6.0.0 - conventional-commits-parser: 4.0.0 - - '@commitlint/read@17.8.1': - dependencies: - '@commitlint/top-level': 17.8.1 - '@commitlint/types': 17.8.1 - fs-extra: 11.2.0 - git-raw-commits: 2.0.11 - minimist: 1.2.8 - - '@commitlint/resolve-extends@17.8.1': - dependencies: - '@commitlint/config-validator': 17.8.1 - '@commitlint/types': 17.8.1 - import-fresh: 3.3.0 - lodash.mergewith: 4.6.2 - resolve-from: 5.0.0 - resolve-global: 1.0.0 - '@commitlint/resolve-extends@19.5.0': dependencies: '@commitlint/config-validator': 19.5.0 @@ -14782,24 +14110,6 @@ snapshots: resolve-from: 5.0.0 optional: true - '@commitlint/rules@17.8.1': - dependencies: - '@commitlint/ensure': 17.8.1 - '@commitlint/message': 17.8.1 - '@commitlint/to-lines': 17.8.1 - '@commitlint/types': 17.8.1 - execa: 5.1.1 - - '@commitlint/to-lines@17.8.1': {} - - '@commitlint/top-level@17.8.1': - dependencies: - find-up: 5.0.0 - - '@commitlint/types@17.8.1': - dependencies: - chalk: 4.1.2 - '@commitlint/types@19.5.0': dependencies: '@types/conventional-commits-parser': 5.0.0 @@ -17308,10 +16618,6 @@ snapshots: '@next/swc-win32-x64-msvc@14.2.13': optional: true - '@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1': - dependencies: - eslint-scope: 5.1.1 - '@noble/hashes@1.5.0': {} '@nodelib/fs.scandir@2.1.5': @@ -17408,12 +16714,32 @@ snapshots: dependencies: '@orama/orama': 2.1.1 + '@orama/orama@2.1.0': {} + '@orama/orama@2.1.1': {} '@orama/plugin-analytics@2.1.1': dependencies: '@orama/orama': 2.1.1 + '@orama/plugin-parsedoc@2.1.0': + dependencies: + '@orama/orama': 2.1.0 + glob: 8.1.0 + hast-util-from-html: 1.0.2 + hast-util-from-string: 2.0.0 + hast-util-to-html: 8.0.4 + hast-util-to-string: 2.0.0 + rehype: 12.0.1 + rehype-document: 6.1.0 + rehype-parse: 8.0.5 + rehype-preset-minify: 6.0.0 + remark-parse: 10.0.2 + remark-rehype: 10.1.0 + unified: 10.1.2 + transitivePeerDependencies: + - supports-color + '@orama/plugin-secure-proxy@2.1.1(encoding@0.1.13)(typescript@5.6.2)(zod@3.23.8)': dependencies: '@oramacloud/client': 1.3.16(encoding@0.1.13)(typescript@5.6.2)(zod@3.23.8) @@ -17422,6 +16748,16 @@ snapshots: - typescript - zod + '@orama/react-components@0.0.25(encoding@0.1.13)(react-dom@17.0.2(react@17.0.2))(react@17.0.2)(typescript@5.6.2)(zod@3.23.8)': + dependencies: + '@orama/wc-components': 0.0.25(encoding@0.1.13)(typescript@5.6.2)(zod@3.23.8) + react: 17.0.2 + react-dom: 17.0.2(react@17.0.2) + transitivePeerDependencies: + - encoding + - typescript + - zod + '@orama/react-components@0.0.25(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.2)(zod@3.23.8)': dependencies: '@orama/wc-components': 0.0.25(encoding@0.1.13)(typescript@5.6.2)(zod@3.23.8) @@ -17474,6 +16810,11 @@ snapshots: - typescript - zod + '@orama/switch@2.1.1(@orama/orama@2.1.1)(@oramacloud/client@1.3.16(encoding@0.1.13)(typescript@5.6.2)(zod@3.23.8))': + dependencies: + '@orama/orama': 2.1.1 + '@oramacloud/client': 1.3.16(encoding@0.1.13)(typescript@5.6.2)(zod@3.23.8) + '@orama/wc-components@0.0.25(encoding@0.1.13)(typescript@5.6.2)(zod@3.23.8)': dependencies: '@orama/orama': 2.1.1 @@ -17653,8 +16994,6 @@ snapshots: '@rtsao/scc@1.1.0': {} - '@rushstack/eslint-patch@1.10.4': {} - '@selderee/plugin-htmlparser2@0.11.0': dependencies: domhandler: 5.0.3 @@ -18517,15 +17856,19 @@ snapshots: '@trysound/sax@0.2.0': {} - '@tsconfig/node10@1.0.11': {} + '@tsconfig/node10@1.0.11': + optional: true - '@tsconfig/node12@1.0.11': {} + '@tsconfig/node12@1.0.11': + optional: true - '@tsconfig/node14@1.0.3': {} + '@tsconfig/node14@1.0.3': + optional: true '@tsconfig/node14@14.1.2': {} - '@tsconfig/node16@1.0.4': {} + '@tsconfig/node16@1.0.4': + optional: true '@tsconfig/node16@16.1.3': {} @@ -18752,8 +18095,6 @@ snapshots: dependencies: undici-types: 6.19.8 - '@types/node@20.5.1': {} - '@types/node@22.7.2': dependencies: undici-types: 6.19.8 @@ -18904,14 +18245,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/experimental-utils@5.62.0(eslint@8.57.1)(typescript@5.6.2)': - dependencies: - '@typescript-eslint/utils': 5.62.0(eslint@8.57.1)(typescript@5.6.2) - eslint: 8.57.1 - transitivePeerDependencies: - - supports-color - - typescript - '@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.6.2)': dependencies: '@typescript-eslint/scope-manager': 5.62.0 @@ -19286,11 +18619,6 @@ snapshots: '@xtuc/long@4.2.2': {} - JSONStream@1.3.5: - dependencies: - jsonparse: 1.3.1 - through: 2.3.8 - abbrev@2.0.0: {} abort-controller@3.0.0: @@ -19436,10 +18764,6 @@ snapshots: argparse@2.0.1: {} - aria-query@5.1.3: - dependencies: - deep-equal: 2.2.3 - aria-query@5.3.2: {} array-buffer-byte-length@1.0.1: @@ -19449,8 +18773,6 @@ snapshots: array-flatten@1.1.1: {} - array-ify@1.0.0: {} - array-includes@3.1.8: dependencies: call-bind: 1.0.7 @@ -19527,8 +18849,6 @@ snapshots: asap@2.0.6: {} - ast-types-flow@0.0.8: {} - astral-regex@2.0.0: {} astring@1.9.0: {} @@ -19732,8 +19052,6 @@ snapshots: dependencies: possible-typed-array-names: 1.0.0 - axe-core@4.10.0: {} - axios@0.25.0: dependencies: follow-redirects: 1.15.9 @@ -19772,12 +19090,6 @@ snapshots: dependencies: '@babel/helper-plugin-utils': 7.10.4 - babel-plugin-macros@3.1.0: - dependencies: - '@babel/runtime': 7.25.6 - cosmiconfig: 7.1.0 - resolve: 1.22.8 - babel-plugin-polyfill-corejs2@0.4.11(@babel/core@7.25.2): dependencies: '@babel/compat-data': 7.25.4 @@ -19802,30 +19114,6 @@ snapshots: transitivePeerDependencies: - supports-color - babel-plugin-transform-react-remove-prop-types@0.4.24: {} - - babel-preset-react-app@10.0.1: - dependencies: - '@babel/core': 7.25.2 - '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.25.2) - '@babel/plugin-proposal-decorators': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6(@babel/core@7.25.2) - '@babel/plugin-proposal-numeric-separator': 7.18.6(@babel/core@7.25.2) - '@babel/plugin-proposal-optional-chaining': 7.21.0(@babel/core@7.25.2) - '@babel/plugin-proposal-private-methods': 7.18.6(@babel/core@7.25.2) - '@babel/plugin-proposal-private-property-in-object': 7.21.11(@babel/core@7.25.2) - '@babel/plugin-transform-flow-strip-types': 7.25.2(@babel/core@7.25.2) - '@babel/plugin-transform-react-display-name': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-runtime': 7.25.4(@babel/core@7.25.2) - '@babel/preset-env': 7.25.4(@babel/core@7.25.2) - '@babel/preset-react': 7.24.7(@babel/core@7.25.2) - '@babel/preset-typescript': 7.24.7(@babel/core@7.25.2) - '@babel/runtime': 7.25.6 - babel-plugin-macros: 3.1.0 - babel-plugin-transform-react-remove-prop-types: 0.4.24 - transitivePeerDependencies: - - supports-color - bail@1.0.5: {} bail@2.0.2: {} @@ -20413,11 +19701,6 @@ snapshots: commondir@1.0.1: {} - compare-func@2.0.0: - dependencies: - array-ify: 1.0.0 - dot-prop: 5.3.0 - compressible@2.0.18: dependencies: mime-db: 1.53.0 @@ -20458,8 +19741,6 @@ snapshots: write-file-atomic: 3.0.3 xdg-basedir: 5.1.0 - confusing-browser-globals@1.0.11: {} - connect-history-api-fallback@2.0.0: {} consola@2.15.3: {} @@ -20478,23 +19759,8 @@ snapshots: content-type@1.0.5: {} - conventional-changelog-angular@6.0.0: - dependencies: - compare-func: 2.0.0 - - conventional-changelog-conventionalcommits@6.1.0: - dependencies: - compare-func: 2.0.0 - conventional-commit-types@3.0.0: {} - conventional-commits-parser@4.0.0: - dependencies: - JSONStream: 1.3.5 - is-text-path: 1.0.1 - meow: 8.1.2 - split2: 3.2.2 - convert-source-map@1.9.0: {} convert-source-map@2.0.0: {} @@ -20529,13 +19795,6 @@ snapshots: core-util-is@1.0.3: {} - cosmiconfig-typescript-loader@4.4.0(@types/node@20.5.1)(cosmiconfig@8.3.6(typescript@5.6.2))(ts-node@10.9.2(@swc/core@1.7.28(@swc/helpers@0.5.5))(@types/node@20.5.1)(typescript@5.6.2))(typescript@5.6.2): - dependencies: - '@types/node': 20.5.1 - cosmiconfig: 8.3.6(typescript@5.6.2) - ts-node: 10.9.2(@swc/core@1.7.28(@swc/helpers@0.5.5))(@types/node@20.5.1)(typescript@5.6.2) - typescript: 5.6.2 - cosmiconfig-typescript-loader@5.0.0(@types/node@20.16.9)(cosmiconfig@9.0.0(typescript@5.6.2))(typescript@5.6.2): dependencies: '@types/node': 20.16.9 @@ -20579,7 +19838,8 @@ snapshots: typescript: 5.6.2 optional: true - create-require@1.1.1: {} + create-require@1.1.1: + optional: true cross-fetch@3.1.8(encoding@0.1.13): dependencies: @@ -20836,10 +20096,6 @@ snapshots: - '@types/node' - typescript - damerau-levenshtein@1.0.8: {} - - dargs@7.0.0: {} - data-urls@5.0.0: dependencies: whatwg-mimetype: 4.0.0 @@ -21431,35 +20687,6 @@ snapshots: eslint: 8.57.1 semver: 7.6.3 - eslint-config-react-app@7.0.1(@babel/plugin-syntax-flow@7.24.7(@babel/core@7.12.9))(@babel/plugin-transform-react-jsx@7.25.2(@babel/core@7.12.9))(eslint@8.57.1)(typescript@5.6.2): - dependencies: - '@babel/core': 7.25.2 - '@babel/eslint-parser': 7.25.1(@babel/core@7.25.2)(eslint@8.57.1) - '@rushstack/eslint-patch': 1.10.4 - '@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1)(typescript@5.6.2) - '@typescript-eslint/parser': 5.62.0(eslint@8.57.1)(typescript@5.6.2) - babel-preset-react-app: 10.0.1 - confusing-browser-globals: 1.0.11 - eslint: 8.57.1 - eslint-plugin-flowtype: 8.0.3(@babel/plugin-syntax-flow@7.24.7(@babel/core@7.12.9))(@babel/plugin-transform-react-jsx@7.25.2(@babel/core@7.12.9))(eslint@8.57.1) - eslint-plugin-import: 2.30.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1) - eslint-plugin-jest: 25.7.0(@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1)(typescript@5.6.2) - eslint-plugin-jsx-a11y: 6.10.0(eslint@8.57.1) - eslint-plugin-react: 7.36.1(eslint@8.57.1) - eslint-plugin-react-hooks: 4.6.2(eslint@8.57.1) - eslint-plugin-testing-library: 5.11.1(eslint@8.57.1)(typescript@5.6.2) - optionalDependencies: - typescript: 5.6.2 - transitivePeerDependencies: - - '@babel/plugin-syntax-flow' - - '@babel/plugin-transform-react-jsx' - - eslint-import-resolver-typescript - - eslint-import-resolver-webpack - - jest - - supports-color - - eslint-config-react@1.1.7: {} - eslint-config-standard-jsx@11.0.0(eslint-plugin-react@7.36.1(eslint@8.57.1))(eslint@8.57.1): dependencies: eslint: 8.57.1 @@ -21478,19 +20705,6 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-config-standard-with-typescript@39.1.1(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1)(typescript@5.6.2))(eslint-plugin-import@2.30.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1))(eslint-plugin-n@16.6.2(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.6.2): - dependencies: - '@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1)(typescript@5.6.2) - '@typescript-eslint/parser': 6.21.0(eslint@8.57.1)(typescript@5.6.2) - eslint: 8.57.1 - eslint-config-standard: 17.1.0(eslint-plugin-import@2.30.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1))(eslint-plugin-n@16.6.2(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1) - eslint-plugin-import: 2.30.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1) - eslint-plugin-n: 16.6.2(eslint@8.57.1) - eslint-plugin-promise: 6.6.0(eslint@8.57.1) - typescript: 5.6.2 - transitivePeerDependencies: - - supports-color - eslint-config-standard@17.0.0(eslint-plugin-import@2.30.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1): dependencies: eslint: 8.57.1 @@ -21498,13 +20712,6 @@ snapshots: eslint-plugin-n: 15.7.0(eslint@8.57.1) eslint-plugin-promise: 6.6.0(eslint@8.57.1) - eslint-config-standard@17.1.0(eslint-plugin-import@2.30.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1))(eslint-plugin-n@16.6.2(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1): - dependencies: - eslint: 8.57.1 - eslint-plugin-import: 2.30.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1) - eslint-plugin-n: 16.6.2(eslint@8.57.1) - eslint-plugin-promise: 6.6.0(eslint@8.57.1) - eslint-formatter-pretty@4.1.0: dependencies: '@types/eslint': 7.29.0 @@ -21557,14 +20764,6 @@ snapshots: eslint-utils: 2.1.0 regexpp: 3.2.0 - eslint-plugin-flowtype@8.0.3(@babel/plugin-syntax-flow@7.24.7(@babel/core@7.12.9))(@babel/plugin-transform-react-jsx@7.25.2(@babel/core@7.12.9))(eslint@8.57.1): - dependencies: - '@babel/plugin-syntax-flow': 7.24.7(@babel/core@7.12.9) - '@babel/plugin-transform-react-jsx': 7.25.2(@babel/core@7.12.9) - eslint: 8.57.1 - lodash: 4.17.21 - string-natural-compare: 3.0.1 - eslint-plugin-import@2.30.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1): dependencies: '@rtsao/scc': 1.1.0 @@ -21621,36 +20820,6 @@ snapshots: - eslint-import-resolver-webpack - supports-color - eslint-plugin-jest@25.7.0(@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1)(typescript@5.6.2): - dependencies: - '@typescript-eslint/experimental-utils': 5.62.0(eslint@8.57.1)(typescript@5.6.2) - eslint: 8.57.1 - optionalDependencies: - '@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1)(typescript@5.6.2) - transitivePeerDependencies: - - supports-color - - typescript - - eslint-plugin-jsx-a11y@6.10.0(eslint@8.57.1): - dependencies: - aria-query: 5.1.3 - array-includes: 3.1.8 - array.prototype.flatmap: 1.3.2 - ast-types-flow: 0.0.8 - axe-core: 4.10.0 - axobject-query: 4.1.0 - damerau-levenshtein: 1.0.8 - emoji-regex: 9.2.2 - es-iterator-helpers: 1.0.19 - eslint: 8.57.1 - hasown: 2.0.2 - jsx-ast-utils: 3.3.5 - language-tags: 1.0.9 - minimatch: 3.1.2 - object.fromentries: 2.0.8 - safe-regex-test: 1.0.3 - string.prototype.includes: 2.0.0 - eslint-plugin-n@15.7.0(eslint@8.57.1): dependencies: builtins: 5.1.0 @@ -21682,10 +20851,6 @@ snapshots: dependencies: eslint: 8.57.1 - eslint-plugin-react-hooks@4.6.2(eslint@8.57.1): - dependencies: - eslint: 8.57.1 - eslint-plugin-react@7.36.1(eslint@8.57.1): dependencies: array-includes: 3.1.8 @@ -21708,14 +20873,6 @@ snapshots: string.prototype.matchall: 4.0.11 string.prototype.repeat: 1.0.0 - eslint-plugin-testing-library@5.11.1(eslint@8.57.1)(typescript@5.6.2): - dependencies: - '@typescript-eslint/utils': 5.62.0(eslint@8.57.1)(typescript@5.6.2) - eslint: 8.57.1 - transitivePeerDependencies: - - supports-color - - typescript - eslint-rule-docs@1.1.235: {} eslint-scope@5.1.1: @@ -22319,14 +21476,6 @@ snapshots: dependencies: resolve-pkg-maps: 1.0.0 - git-raw-commits@2.0.11: - dependencies: - dargs: 7.0.0 - lodash: 4.17.21 - meow: 8.1.2 - split2: 3.2.2 - through2: 4.0.2 - github-slugger@1.5.0: {} github-slugger@2.0.0: {} @@ -22379,10 +21528,6 @@ snapshots: ini: 4.1.1 optional: true - global-dirs@0.1.1: - dependencies: - ini: 1.3.8 - global-dirs@3.0.1: dependencies: ini: 2.0.0 @@ -22978,8 +22123,6 @@ snapshots: readable-stream: 2.3.8 wbuf: 1.7.3 - htm@3.1.1: {} - html-encoding-sniffer@4.0.0: dependencies: whatwg-encoding: 3.1.1 @@ -23493,10 +22636,6 @@ snapshots: dependencies: has-symbols: 1.0.3 - is-text-path@1.0.1: - dependencies: - text-extensions: 1.9.0 - is-typed-array@1.1.13: dependencies: which-typed-array: 1.1.15 @@ -23740,12 +22879,6 @@ snapshots: kleur@4.1.5: {} - language-subtag-registry@0.3.23: {} - - language-tags@1.0.9: - dependencies: - language-subtag-registry: 0.3.23 - latest-version@5.1.0: dependencies: package-json: 6.5.0 @@ -23879,8 +23012,6 @@ snapshots: dependencies: p-locate: 6.0.0 - lodash.camelcase@4.3.0: {} - lodash.curry@4.1.1: {} lodash.debounce@4.0.8: {} @@ -23889,11 +23020,8 @@ snapshots: lodash.get@4.4.2: {} - lodash.isfunction@3.0.9: {} - - lodash.isplainobject@4.0.6: {} - - lodash.kebabcase@4.1.1: {} + lodash.isplainobject@4.0.6: + optional: true lodash.map@4.6.0: {} @@ -23901,20 +23029,15 @@ snapshots: lodash.merge@4.6.2: {} - lodash.mergewith@4.6.2: {} + lodash.mergewith@4.6.2: + optional: true lodash.omit@4.5.0: {} - lodash.snakecase@4.1.1: {} - lodash.sortby@4.7.0: {} - lodash.startcase@4.4.0: {} - lodash.uniq@4.5.0: {} - lodash.upperfirst@4.3.1: {} - lodash@4.17.21: {} log-symbols@4.1.0: @@ -24390,20 +23513,6 @@ snapshots: dependencies: fs-monkey: 1.0.6 - meow@8.1.2: - dependencies: - '@types/minimist': 1.2.5 - camelcase-keys: 6.2.2 - decamelize-keys: 1.1.1 - hard-rejection: 2.1.0 - minimist-options: 4.1.0 - normalize-package-data: 3.0.3 - read-pkg-up: 7.0.1 - redent: 3.0.0 - trim-newlines: 3.0.1 - type-fest: 0.18.1 - yargs-parser: 20.2.9 - meow@9.0.0: dependencies: '@types/minimist': 1.2.5 @@ -27218,10 +26327,6 @@ snapshots: resolve-from@5.0.0: {} - resolve-global@1.0.0: - dependencies: - global-dirs: 0.1.1 - resolve-import@1.4.6: dependencies: glob: 10.4.5 @@ -27499,10 +26604,6 @@ snapshots: semver@6.3.1: {} - semver@7.5.4: - dependencies: - lru-cache: 6.0.0 - semver@7.6.3: {} send@0.19.0: @@ -27845,10 +26946,6 @@ snapshots: transitivePeerDependencies: - supports-color - split2@3.2.2: - dependencies: - readable-stream: 3.6.2 - sprintf-js@1.0.3: {} sprintf-js@1.1.3: {} @@ -27912,8 +27009,6 @@ snapshots: dependencies: strip-ansi: 7.1.0 - string-natural-compare@3.0.1: {} - string-width@4.2.3: dependencies: emoji-regex: 8.0.0 @@ -27932,11 +27027,6 @@ snapshots: get-east-asian-width: 1.2.0 strip-ansi: 7.1.0 - string.prototype.includes@2.0.0: - dependencies: - define-properties: 1.2.1 - es-abstract: 1.23.3 - string.prototype.matchall@4.0.11: dependencies: call-bind: 1.0.7 @@ -28346,8 +27436,6 @@ snapshots: glob: 7.2.3 minimatch: 3.1.2 - text-extensions@1.9.0: {} - text-table@0.2.0: {} thenify-all@1.6.0: @@ -28358,10 +27446,6 @@ snapshots: dependencies: any-promise: 1.3.0 - through2@4.0.2: - dependencies: - readable-stream: 3.6.2 - through@2.3.8: {} thunky@1.1.0: {} @@ -28457,26 +27541,6 @@ snapshots: '@swc/core': 1.7.28(@swc/helpers@0.5.5) optional: true - ts-node@10.9.2(@swc/core@1.7.28(@swc/helpers@0.5.5))(@types/node@20.5.1)(typescript@5.6.2): - dependencies: - '@cspotcode/source-map-support': 0.8.1 - '@tsconfig/node10': 1.0.11 - '@tsconfig/node12': 1.0.11 - '@tsconfig/node14': 1.0.3 - '@tsconfig/node16': 1.0.4 - '@types/node': 20.5.1 - acorn: 8.12.1 - acorn-walk: 8.3.4 - arg: 4.1.3 - create-require: 1.1.1 - diff: 4.0.2 - make-error: 1.3.6 - typescript: 5.6.2 - v8-compile-cache-lib: 3.0.1 - yn: 3.1.1 - optionalDependencies: - '@swc/core': 1.7.28(@swc/helpers@0.5.5) - ts-node@10.9.2(@swc/core@1.7.28(@swc/helpers@0.5.5))(@types/node@22.7.2)(typescript@5.6.2): dependencies: '@cspotcode/source-map-support': 0.8.1 @@ -29757,7 +28821,8 @@ snapshots: y18n: 5.0.8 yargs-parser: 21.1.1 - yn@3.1.1: {} + yn@3.1.1: + optional: true yocto-queue@0.1.0: {}