React Native Legal` +
+ ' ' +
+ `License Kit `,
+ text: '',
+ tagline:
+ `` +
+ 'Automagically generate license acknowledgements' +
+ '\n' +
+ 'for your React Native app & any Node.js project' +
+ ` `,
+ actions: [
+ { theme: 'brand', text: 'React Native', link: '/docs/react-native' },
+ { theme: 'brand', text: 'CLI', link: '/docs/standalone-cli' },
+ { theme: 'brand', text: 'API', link: '/docs/programmatic-usage' },
+ { theme: 'alt', text: 'GitHub', link: 'https://github.com/callstackincubator/react-native-legal' },
+ ],
+ },
+ }}
+ routePath={routePath}
+ />
+
+
+
+
+ {
+ window.location.pathname = routePath + (routePath.endsWith('/') ? '' : '/') + 'docs/introduction';
+ }}
+ >
+
+
+
+
+
+
+
+ >
+ );
+}
diff --git a/docs/components/PackagesPresentation.tsx b/docs/components/PackagesPresentation.tsx
new file mode 100644
index 0000000..152adb8
--- /dev/null
+++ b/docs/components/PackagesPresentation.tsx
@@ -0,0 +1,25 @@
+import { LinkCard } from 'rspress/theme';
+
+export function PackagesPresentation() {
+ return (
+
+
+
+
+
+
+
+ );
+}
diff --git a/docs/docs/_meta.json b/docs/docs/_meta.json
index a55ff81..41809dc 100644
--- a/docs/docs/_meta.json
+++ b/docs/docs/_meta.json
@@ -1,7 +1,18 @@
[
{
- "text": "Docs",
- "link": "/docs/introduction.html",
- "activeMatch": "/docs/"
+ "text": "Introduction",
+ "link": "/docs/introduction.html"
+ },
+ {
+ "text": "React Native",
+ "link": "/docs/react-native.html"
+ },
+ {
+ "text": "CLI",
+ "link": "/docs/standalone-cli.html"
+ },
+ {
+ "text": "API",
+ "link": "/docs/programmatic-usage.html"
}
]
diff --git a/docs/docs/docs/_meta.json b/docs/docs/docs/_meta.json
new file mode 100644
index 0000000..a874782
--- /dev/null
+++ b/docs/docs/docs/_meta.json
@@ -0,0 +1,34 @@
+[
+ {
+ "type": "section-header",
+ "label": "Quickstart"
+ },
+ {
+ "type": "custom-link",
+ "link": "/index",
+ "label": "Home"
+ },
+ {
+ "type": "file",
+ "name": "introduction"
+ },
+ {
+ "type": "divider"
+ },
+ {
+ "type": "section-header",
+ "label": "Packages documentation"
+ },
+ {
+ "type": "file",
+ "name": "react-native"
+ },
+ {
+ "type": "file",
+ "name": "standalone-cli"
+ },
+ {
+ "type": "file",
+ "name": "programmatic-usage"
+ }
+]
diff --git a/docs/docs/docs/introduction.mdx b/docs/docs/docs/introduction.mdx
index f3f1ab1..be624fa 100644
--- a/docs/docs/docs/introduction.mdx
+++ b/docs/docs/docs/introduction.mdx
@@ -1,7 +1,17 @@
+---
+sidebar_position: 1
+---
+
+import { PackagesPresentation } from '@components/PackagesPresentation';
+
# Introduction
-React Native Legal helps you acknowledge open-source libraries in your React Native app by automatically generating and displaying license information using native platform tools. This ensures compliance with open-source licenses while maintaining a native user experience.
+
+
+
+
+React Native Legal (`react-native-legal`) helps you acknowledge open-source libraries in your React Native app by automatically generating and displaying license information using native platform tools. This ensures compliance with open-source licenses while maintaining a native user experience.
+
+We expose the core functionality related to Node.JS dependencies as a standalone CLI tool, `license-kit`, which can be used in any Node.js project, not just React Native apps. This allows you to generate license reports for any Node.js application.
-|  |  |  |  |
-| :-: | :-: | :-: | :-: |
-| **Android** | **iOS** | **AndroidTV** | **tvOS** |
\ No newline at end of file
+In case your use case involves programmatic usage of the functionality provided by `license-kit`, you can use the `@callstack/react-native-legal-shared` package. This package exposes the core functionalities of the license management tool, allowing you to integrate it into your Node.js applications.
diff --git a/docs/docs/docs/programmatic-usage.mdx b/docs/docs/docs/programmatic-usage.mdx
new file mode 100644
index 0000000..3d5a993
--- /dev/null
+++ b/docs/docs/docs/programmatic-usage.mdx
@@ -0,0 +1,81 @@
+---
+sidebar_position: 4
+---
+
+import { PackageManagerTabs, Badge } from '@theme';
+
+# Programmatic Usage (API)
+
+In case your use case involves programmatic usage of the functionality provided by `license-kit`, you can use the `@callstack/react-native-legal-shared` package. This package exposes the core functionalities of the license management tool, allowing you to integrate it into your Node.js applications.
+
+## Installation
+
+To get started, install the package using your preferred package manager:
+
+
+
+## Usage
+
+### Basic Usage
+
+```typescript
+import {
+ generateAboutLibrariesNPMOutput,
+ generateLicensePlistNPMOutput,
+ scanDependencies,
+} from '@callstack/react-native-legal-shared';
+import * as md from 'ts-markdown-builder';
+
+// scan dependencies of a package
+const licenses = scanDependencies(packageJsonPath);
+
+// generate AboutLibraries-compatible JSON metadata
+const aboutLibrariesCompatibleReport = generateAboutLibrariesNPMOutput(licenses);
+
+// generate LicensePlist-compatible metadata
+const licensePlistReport = generateLicensePlistNPMOutput(licenses);
+
+// generate a Markdown report
+const markdownString = md
+ .joinBlocks(
+ Object.entries(licenses)
+ .flatMap(([packageName, { version, author, content, description, file, type, url }]) => [
+ md.heading(packageName, { level: 2 }),
+ '\n',
+ `Version: ${version} \n`,
+ url ? `URL: ${url} \n` : '',
+ author ? `Author: ${author} \n\n` : '',
+ content ?? '',
+ '\n',
+ description ? `Description: ${description}\n` : '',
+ file ? `\nFile: ${file}\n` : '',
+ type ? `Type: ${type}` : '',
+ '\n',
+ md.horizontalRule,
+ ])
+ .join('\n'),
+ )
+ .toString();
+```
+
+### API Documentation
+
+The API documentation is published under: https://callstackincubator.github.io/react-native-legal/api/.
+
+## Additional details
+
+### License Types
+
+The tool recognizes various license types:
+
+- **Strong Copyleft**: Licenses that require derivative works to be released under the same license (e.g., GPL-3.0)
+- **Weak Copyleft**: Licenses that require derivative works to be released under the same license, but with some exceptions (e.g., LGPL-3.0)
+- **Permissive**: Licenses that allow for more flexible use (e.g., MIT, Apache-2.0)
+
+### Monorepo Support
+
+`react-native-legal` scans dependencies from workspace packages with the `workspace:*` notation in your `package.json` in addition to the app's direct dependencies.
+
+:::info
+If a monorepo package is private, its name and license won't be included in the license list, but its dependencies will still be scanned and included.
+:::
diff --git a/docs/docs/docs/quick-start.mdx b/docs/docs/docs/react-native.mdx
similarity index 50%
rename from docs/docs/docs/quick-start.mdx
rename to docs/docs/docs/react-native.mdx
index 2ad44cf..4c17d68 100644
--- a/docs/docs/docs/quick-start.mdx
+++ b/docs/docs/docs/react-native.mdx
@@ -1,6 +1,10 @@
+---
+sidebar_position: 2
+---
+
import { PackageManagerTabs, Badge } from '@theme';
-# Quick Start
+# React Native Legal
## Installation
@@ -8,6 +12,10 @@ To get started, install the package using your preferred package manager:
+|  |  |  |  |
+| :-----------------------------------------------------------------------------------------------------------: | :---------------------------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------: |
+| **Android** | **iOS** | **AndroidTV** | **tvOS** |
+
## Setup
The setup process varies depending on whether you are using Expo or a bare React Native project. Follow the steps below based on your project type.
@@ -62,10 +70,7 @@ function launchNotice() {
function MyComponent() {
return (
-
+
);
}
@@ -77,10 +82,13 @@ This will open a native screen listing all detected licenses. The title of the s
On **iOS**, all detected licenses will also appear in the **Settings app** under the app's information section. This is done to comply with **Apple's guidelines**, which require apps to provide open-source license acknowledgments in a visible location.
-## Monorepo Support
+## Node.js / Non-RN Projects Support
+
+If you want to use the license management functionality in a Node.js project or any non-React Native application, you can either:
+
+- use the `license-kit` CLI tool, which is a standalone tool that can be used in any Node.js project to generate license metadata - see [this section](/docs/standalone-cli) for more details
+- programmatically use the `@callstack/react-native-legal-shared` package, which exposes the core functionalities of this tool - see [this section](/docs/programmatic-usage) for more details
-`react-native-legal` scans dependencies from workspace packages with the `workspace:*` notation in your `package.json` in addition to the app's direct dependencies.
+## Additional details
-:::info
-If a monorepo package is private, its name and license won't be included in the license list, but its dependencies will still be scanned and included.
-:::
\ No newline at end of file
+For more notes on the mechanics of the tool, please see [core additional details section](/docs/programmatic-usage#additional-details).
diff --git a/docs/docs/docs/standalone-cli.mdx b/docs/docs/docs/standalone-cli.mdx
new file mode 100644
index 0000000..57b30a9
--- /dev/null
+++ b/docs/docs/docs/standalone-cli.mdx
@@ -0,0 +1,104 @@
+---
+sidebar_position: 3
+---
+
+import { PackageManagerTabs, Badge } from '@theme';
+
+# Standalone CLI (Node.js)
+
+We expose the `license-kit` package as a CLI for managing and analyzing Open Source Software (OSS) licenses in your Node.js projects. This package helps you aggregate license information and ensure compliance with license requirements.
+
+## Installation
+
+To get started, install the package using your preferred package manager:
+
+
+
+## Features
+
+- π Scan and aggregate license information from your project dependencies
+- β οΈ Detect copyleft licenses that might affect your project
+- π Generate license reports in a format of choice (JSON, Markdown, raw text, AboutLibraries-compatible JSON metadata)
+- π Support for both direct and transitive dependencies
+
+## Quick Start
+
+Run the license check in your project root:
+
+```bash
+npx license-kit report
+```
+
+## Usage
+
+### Basic Usage
+
+```bash
+# Generate licenses report with default settings (JSON, stdout)
+npx license-kit report
+
+# Generate licenses report in Markdown format and write to ./public/licenses.md
+npx license-kit report --format markdown --output ./public/licenses.md
+
+# Write a text report to ./public/licenses.txt of a different project
+npx license-kit report --format markdown --output ../../out/licenses.md --root ../../another-project
+
+# Check for copyleft licenses
+npx license-kit copyleft
+
+# Exit on weak copyleft licenses
+npx license-kit copyleft --error-on-weak
+
+# Print help for the report command
+npx license-kit report --help
+
+# Print help for the copyleft command
+npx license-kit copyleft --help
+```
+
+### Command Line Options
+
+#### Command: `copyleft`
+
+Check for copyleft licenses. Exits with error code (β 0) if strong copyleft licenses are found.
+
+| Flag / Option | Description | Default |
+| --------------- | -------------------------------------------------------- | ------------------------- |
+| --root \ | Path to the root of your project | Current working directory |
+| --error-on-weak | Exit with error code if weak copyleft licenses are found | `false` |
+
+#### Command: `report`
+
+Generates a licenses report in the specified format. The output can be written to `stdout` (default) or a file.
+
+| Flag / Option | Description | Default |
+| ----------------- | --------------------------------------------------------------------------------------------------- | ------------------------- |
+| --root \ | Path to the root of your project | Current working directory |
+| --format \ | Output format, one of: `'json'`, `'about-json'` (AboutLibraries-compatible), `'text'`, `'markdown'` | `'json'` |
+| --output \ | Where to write the output - either `'stdout'` or a path to an output file | `'stdout'` |
+
+#### Command: `help`
+
+Displays help, listing the available commands.
+
+#### General options
+
+General options that can be passed to the CLI with after any command.
+
+| Option | Description |
+| ----------- | ------------------------------- |
+| `--version` | Outputs the version of the CLI. |
+| `--help` | Displays help for the command. |
+
+#### No-command options `help`
+
+General options that can be passed to the CLI with after any command.
+
+| Option | Description |
+| ----------- | ------------------------------- |
+| `--version` | Outputs the version of the CLI. |
+| `--help` | Displays help for the command. |
+
+## Additional details
+
+For more notes on the mechanics of the tool, please see [core additional details section](/docs/programmatic-usage#additional-details).
diff --git a/docs/docs/index.md b/docs/docs/index.md
deleted file mode 100644
index 5aef0c2..0000000
--- a/docs/docs/index.md
+++ /dev/null
@@ -1,24 +0,0 @@
----
-pageType: home
-
-hero:
- name: React Native Legal
- tagline: Automagically generate license acknowledgements for your React Native app
- actions:
- - theme: brand
- text: Quick Start
- link: /docs/quick-start
- - theme: alt
- text: GitHub
- link: https://github.com/callstackincubator/react-native-legal
-features:
- - title: Native Integration
- details: Uses native platform tools (LicensePlist for iOS and AboutLibraries for Android) to generate and display licenses.
- icon: π±
- - title: Expo & Bare Workflow Support
- details: Works with both Expo managed workflow via Config Plugin and React Native CLI via custom command.
- icon: π
- - title: Automatic Scanning
- details: Automatically scans your dependencies and generates license information for both iOS and Android platforms.
- icon: π
----
\ No newline at end of file
diff --git a/docs/docs/index.mdx b/docs/docs/index.mdx
new file mode 100644
index 0000000..bf87637
--- /dev/null
+++ b/docs/docs/index.mdx
@@ -0,0 +1,7 @@
+---
+pageType: custom
+---
+
+import { CustomHomePage } from '@components/CustomHomePage';
+
+
diff --git a/docs/package.json b/docs/package.json
index 11744a4..321ce43 100644
--- a/docs/package.json
+++ b/docs/package.json
@@ -11,10 +11,11 @@
},
"dependencies": {
"@callstack/rspress-theme": "^0.0.2",
- "rspress": "^1.40.2"
+ "rspress": "1.44.0"
},
"devDependencies": {
"@biomejs/biome": "^1.9.4",
+ "@rspress/plugin-typedoc": "1.44.0",
"@types/node": "^18.11.17"
}
}
diff --git a/docs/rspress.config.ts b/docs/rspress.config.ts
index 61d057c..25437ee 100644
--- a/docs/rspress.config.ts
+++ b/docs/rspress.config.ts
@@ -1,13 +1,14 @@
import * as path from 'node:path';
import { pluginCallstackTheme } from '@callstack/rspress-theme/plugin';
+import { pluginTypeDoc } from '@rspress/plugin-typedoc';
import { defineConfig } from 'rspress/config';
export default defineConfig({
root: path.join(__dirname, 'docs'),
- title: 'React Native Legal',
- description: 'React Native Legal Documentation',
- logoText: 'React Native Legal',
+ title: 'React Native Legal & License Kit',
+ description: 'React Native Legal & License Kit Documentation',
+ logoText: 'React Native Legal & License Kit',
icon: '/img/notice.png',
logo: '/img/notice.png',
themeConfig: {
@@ -23,5 +24,12 @@ export default defineConfig({
},
},
base: '/react-native-legal/',
- plugins: [pluginCallstackTheme()],
+ plugins: [
+ pluginCallstackTheme(),
+ pluginTypeDoc({
+ entryPoints: [path.join(__dirname, '..', 'packages', 'shared', 'src', 'index.ts')],
+ outDir: 'api',
+ }),
+ ],
+ globalStyles: path.join(__dirname, 'styles/globalStyles.css'),
});
diff --git a/docs/styles/globalStyles.css b/docs/styles/globalStyles.css
new file mode 100644
index 0000000..1d853e7
--- /dev/null
+++ b/docs/styles/globalStyles.css
@@ -0,0 +1,38 @@
+/* == Introduction page styles section start == */
+
+/* Flex container carrying LinkCard in intro page */
+.flex-intro-cards {
+ display: flex;
+ flex-direction: row;
+ justify-content: center;
+ flex-wrap: wrap;
+ gap: 1rem;
+}
+
+/* Single LinkCard in intro page */
+.flex-intro-cards div {
+ display: flex;
+ width: calc(max(30%, 250px));
+ height: auto;
+ aspect-ratio: 1;
+}
+
+/* Hide the right-top corner arrow svg of the LinkCard component */
+.flex-intro-cards div > svg {
+ width: 0px !important;
+ height: 0px !important;
+}
+
+.docs-introduction-cta {
+ width: 100%;
+ text-align: center;
+ margin-top: 40;
+ margin-bottom: 40;
+}
+
+.home-footer-wrapper {
+ position: relative;
+ margin-top: 140;
+}
+
+/* == Introduction page styles section end == */
diff --git a/docs/tsconfig.json b/docs/tsconfig.json
index 936218c..dd0b0eb 100644
--- a/docs/tsconfig.json
+++ b/docs/tsconfig.json
@@ -11,9 +11,13 @@
"resolveJsonModule": true,
"moduleResolution": "bundler",
"useDefineForClassFields": true,
- "allowImportingTsExtensions": true
+ "allowImportingTsExtensions": true,
+ "paths": {
+ "@components/*": ["./components/*"],
+ "@theme": ["../node_modules/rspress/theme"]
+ }
},
- "include": ["docs", "theme", "rspress.config.ts"],
+ "include": ["docs", "theme", "rspress.config.ts", "../packages/shared/src/"],
"mdx": {
"checkMdx": true
}
diff --git a/examples/node-example/babel.config.js b/examples/node-example/babel.config.js
new file mode 100644
index 0000000..e6ffbd4
--- /dev/null
+++ b/examples/node-example/babel.config.js
@@ -0,0 +1,3 @@
+module.exports = {
+ presets: [['@babel/preset-env', { targets: { node: 'current' } }], '@babel/preset-typescript'],
+};
diff --git a/examples/node-example/jest.config.js b/examples/node-example/jest.config.js
new file mode 100644
index 0000000..5179cc8
--- /dev/null
+++ b/examples/node-example/jest.config.js
@@ -0,0 +1,6 @@
+/** @type {import('jest').Config} */
+const config = {
+ testEnvironment: 'node',
+};
+
+module.exports = config;
diff --git a/examples/node-example/package.json b/examples/node-example/package.json
new file mode 100644
index 0000000..d412ea6
--- /dev/null
+++ b/examples/node-example/package.json
@@ -0,0 +1,26 @@
+{
+ "name": "license-kit-node-example",
+ "version": "0.0.1",
+ "private": true,
+ "scripts": {
+ "report": "license-kit report",
+ "copyleft": "license-kit copyleft",
+ "weak-copyleft": "license-kit copyleft --error-on-weak",
+ "test": "jest"
+ },
+ "dependencies": {
+ "dhtmlx-gantt": "9.0.11",
+ "is-even": "^1.0.0",
+ "mariadb": "3.4.2",
+ "zustand": "^5.0.5"
+ },
+ "devDependencies": {
+ "@babel/core": "7.27.4",
+ "@babel/preset-env": "7.27.2",
+ "@babel/preset-typescript": "7.27.1",
+ "@types/jest": "^29.5.5",
+ "babel-jest": "^29.7.0",
+ "jest": "^29.7.0",
+ "license-kit": "workspace:*"
+ }
+}
diff --git a/examples/node-example/test/copyleft.spec.ts b/examples/node-example/test/copyleft.spec.ts
new file mode 100644
index 0000000..8defa3c
--- /dev/null
+++ b/examples/node-example/test/copyleft.spec.ts
@@ -0,0 +1,26 @@
+import child_process from 'node:child_process';
+
+describe('license-kit copyleft', () => {
+ it('should report error for strong copyleft licenses', async () => {
+ const output = await new Promise((resolve) => {
+ child_process.exec('yarn workspace license-kit-node-example copyleft', (_, __, stderr) => {
+ resolve(stderr);
+ });
+ });
+
+ expect(output).toMatch('Copyleft licenses found in the following dependencies:');
+ expect(output).toMatch('dhtmlx-gantt: GPL-2.0');
+ });
+ it('should report error for strong and weak copyleft licenses', async () => {
+ const output = await new Promise((resolve) => {
+ child_process.exec('yarn workspace license-kit-node-example weak-copyleft', (_, __, stderr) => {
+ resolve(stderr);
+ });
+ });
+
+ expect(output).toMatch('Copyleft licenses found in the following dependencies:');
+ expect(output).toMatch('dhtmlx-gantt: GPL-2.0');
+ expect(output).toMatch('Weak copyleft licenses found in the following dependencies:');
+ expect(output).toMatch('mariadb: LGPL-2.1-or-later');
+ });
+});
diff --git a/examples/node-example/test/report.spec.ts b/examples/node-example/test/report.spec.ts
new file mode 100644
index 0000000..45adc86
--- /dev/null
+++ b/examples/node-example/test/report.spec.ts
@@ -0,0 +1,21 @@
+import child_process from 'node:child_process';
+
+describe('license-kit report', () => {
+ it('should report licenses', async () => {
+ const output = await new Promise((resolve) => {
+ child_process.exec('yarn workspace license-kit-node-example report', (_, stdout) => {
+ resolve(stdout);
+ });
+ });
+
+ const json = JSON.parse(output);
+
+ expect(json['dhtmlx-gantt'].type).toMatch('GPL-2.0');
+ expect(json['is-even'].content).toMatch('MIT License');
+ expect(json['is-even'].type).toMatch('MIT');
+ expect(json.mariadb.content).toMatch('GNU LESSER GENERAL PUBLIC LICENSE');
+ expect(json.mariadb.type).toMatch('LGPL-2.1-or-later');
+ expect(json.zustand.content).toMatch('MIT License');
+ expect(json.zustand.type).toMatch('MIT');
+ });
+});
diff --git a/images/banner.jpg b/images/banner.jpg
new file mode 100644
index 0000000..2306e78
Binary files /dev/null and b/images/banner.jpg differ
diff --git a/package.json b/package.json
index 57654f1..fc75b47 100644
--- a/package.json
+++ b/package.json
@@ -8,7 +8,7 @@
]
},
"scripts": {
- "build:library": "yarn workspace react-native-legal build-plugins && yarn workspace react-native-legal build-library",
+ "build:library": "yarn workspace @callstack/react-native-legal-shared build && yarn workspace react-native-legal build-plugins && yarn workspace license-kit build-library && yarn workspace react-native-legal build-library",
"lint:js": "eslint \"**/*.{js,ts,tsx}\"",
"typescript": "yarn build:library && tsc --noEmit -p examples/bare-example/tsconfig.json && tsc --noEmit -p examples/expo-example/tsconfig.json",
"lint:android": "./scripts/lint-android.sh",
diff --git a/packages/license-kit/LICENSE b/packages/license-kit/LICENSE
new file mode 100644
index 0000000..1c06532
--- /dev/null
+++ b/packages/license-kit/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2023 Callstack
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/packages/license-kit/README.md b/packages/license-kit/README.md
new file mode 100644
index 0000000..4c69532
--- /dev/null
+++ b/packages/license-kit/README.md
@@ -0,0 +1,110 @@
+# license-kit
+
+A CLI for managing and analyzing Open Source Software (OSS) licenses in your Node.js projects. This package helps you aggregate license information and ensure compliance with license requirements.
+
+## Features
+
+- π Scan and aggregate license information from your project dependencies
+- β οΈ Detect copyleft licenses that might affect your project
+- π Generate license reports in a format of choice (JSON, Markdown, raw text, AboutLibraries-compatible JSON metadata)
+- π Support for both direct and transitive dependencies
+
+## Installation
+
+```bash
+npm install license-kit
+```
+
+## Quick Start
+
+Run the license check in your project root:
+
+```bash
+npx license-kit
+```
+
+## Usage
+
+### Basic Usage
+
+```bash
+# Generate licenses report with default settings (JSON, stdout)
+npx license-kit report
+
+# Generate licenses report in Markdown format and write to ./public/licenses.md
+npx license-kit report --format markdown --output ./public/licenses.md
+
+# Write a text report to ./public/licenses.txt of a different project
+npx license-kit report --format markdown --output ../../out/licenses.md --root ../../another-project
+
+# Check for copyleft licenses
+npx license-kit copyleft
+
+# Exit on weak copyleft licenses
+npx license-kit copyleft --error-on-weak
+
+# Print help for the report command
+npx license-kit report --help
+
+# Print help for the copyleft command
+npx license-kit copyleft --help
+```
+
+### Command Line Options
+
+#### Command: `copyleft`
+
+Check for copyleft licenses. Exits with error code (β 0) if strong copyleft licenses are found.
+
+| Flag / Option | Description | Default |
+| --------------- | -------------------------------------------------------- | ------------------------- |
+| --root | Path to the root of your project | Current working directory |
+| --error-on-weak | Exit with error code if weak copyleft licenses are found | `false` |
+
+#### Command: `report`
+
+Generates a licenses report in the specified format. The output can be written to `stdout` (default) or a file.
+
+| Flag / Option | Description | Default |
+| --------------- | --------------------------------------------------------------------------------------------------- | ------------------------- |
+| --root | Path to the root of your project | Current working directory |
+| --format | Output format, one of: `'json'`, `'about-json'` (AboutLibraries-compatible), `'text'`, `'markdown'` | `'json'` |
+| --output | Where to write the output - either `'stdout'` or a path to an output file | `'stdout'` |
+
+#### Command: `help`
+
+Displays help, listing the available commands.
+
+#### General options
+
+General options that can be passed to the CLI with after any command.
+
+| Option | Description |
+| ----------- | ------------------------------- |
+| `--version` | Outputs the version of the CLI. |
+| `--help` | Displays help for the command. |
+
+## License Types
+
+The tool recognizes various license types:
+
+- **Strong Copyleft**: Licenses that require derivative works to be released under the same license (e.g., GPL-3.0)
+- **Weak Copyleft**: Licenses that require derivative works to be released under the same license, but with some exceptions (e.g., LGPL-3.0)
+- **Permissive**: Licenses that allow for more flexible use (e.g., MIT, Apache-2.0)
+
+## Contributing
+
+We welcome contributions! Please see our [Contributing Guide](CONTRIBUTING.md) for details on:
+
+- Development workflow
+- Code style
+- Pull request process
+- Testing requirements
+
+To build the project, run `yarn build-library`. This will compile the TypeScript code into JavaScript and prepare the package for distribution.
+
+To run the project in development mode, use `yarn dev`. This will run the TypeScript entrypoint with node directly.
+
+## License
+
+MIT Β© [Callstack](https://callstack.com)
diff --git a/packages/license-kit/package.json b/packages/license-kit/package.json
new file mode 100644
index 0000000..62048ea
--- /dev/null
+++ b/packages/license-kit/package.json
@@ -0,0 +1,65 @@
+{
+ "name": "license-kit",
+ "version": "0.1.2",
+ "description": "Aggregate license notes of OSS libraries used in your Node.js project",
+ "main": "build/index",
+ "module": "build/index",
+ "types": "build/index.d.ts",
+ "bin": "build/index.js",
+ "exports": {
+ ".": {
+ "source": "./src/index.ts",
+ "types": "./build/typescript/index.d.ts",
+ "default": "./build/module/index.js"
+ },
+ "./package.json": "./package.json"
+ },
+ "files": [
+ "src",
+ "build",
+ "!**/__tests__",
+ "!**/__fixtures__",
+ "!**/__mocks__",
+ "!**/.*"
+ ],
+ "scripts": {
+ "test": "jest",
+ "typecheck": "tsc",
+ "lint": "eslint \"**/*.{js,ts,tsx}\"",
+ "clean": "rimraf build",
+ "build-library": "tsc -p tsconfig.json",
+ "dev": "npx tsx src/index.ts"
+ },
+ "keywords": [
+ "nodejs",
+ "oss",
+ "license",
+ "acknowledgements",
+ "license-management"
+ ],
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/callstackincubator/react-native-legal.git",
+ "directory": "packages/license-kit"
+ },
+ "author": "Mateusz MΔdrek (https://github.com/mateusz1913)",
+ "license": "MIT",
+ "bugs": {
+ "url": "https://github.com/callstackincubator/react-native-legal.git/issues"
+ },
+ "homepage": "https://callstackincubator.github.io/react-native-legal/",
+ "publishConfig": {
+ "registry": "https://registry.npmjs.org/"
+ },
+ "devDependencies": {
+ "@types/jest": "^29.5.5",
+ "jest": "^29.7.0",
+ "rimraf": "^6.0.1",
+ "typescript": "^5.8.3"
+ },
+ "dependencies": {
+ "@callstack/react-native-legal-shared": "^0.1.1",
+ "commander": "^14.0.0",
+ "ts-markdown-builder": "^0.4.1"
+ }
+}
diff --git a/packages/license-kit/src/constants.ts b/packages/license-kit/src/constants.ts
new file mode 100644
index 0000000..14d96f3
--- /dev/null
+++ b/packages/license-kit/src/constants.ts
@@ -0,0 +1,49 @@
+/**
+ * https://spdx.org/licenses
+ */
+
+export const STRONG_COPYLEFT_LICENSES = [
+ 'GPL',
+ 'GPL-1.0',
+ 'GPL-1.0+',
+ 'GPL-2.0',
+ 'GPL-2.0+',
+ 'GPL-2.0-only',
+ 'GPL-2.0-or-later',
+ 'GPL-3.0',
+ 'GPL-3.0+',
+ 'GPL-3.0-only',
+ 'GPL-3.0-or-later',
+ 'AGPL-3.0',
+ 'AGPL-3.0-only',
+ 'AGPL-3.0-or-later',
+ 'EUPL-1.0',
+ 'EUPL-1.1',
+ 'EUPL-1.2',
+ 'OSL-1.0',
+ 'OSL-1.1',
+ 'OSL-2.0',
+ 'OSL-2.1',
+ 'OSL-3.0',
+];
+export const WEAK_COPYLEFT_LICENSES = [
+ 'CDDL-1.0',
+ 'CDDL-1.1',
+ 'EPL-1.0',
+ 'EPL-2.0',
+ 'LGPL',
+ 'LGPL-2.0',
+ 'LGPL-2.0+',
+ 'LGPL-2.0-only',
+ 'LGPL-2.0-or-later',
+ 'LGPL-2.1',
+ 'LGPL-2.1+',
+ 'LGPL-2.1-only',
+ 'LGPL-2.1-or-later',
+ 'LGPL-3.0',
+ 'LGPL-3.0+',
+ 'LGPL-3.0-only',
+ 'LGPL-3.0-or-later',
+ 'MPL-1.1',
+ 'MPL-2.0',
+];
diff --git a/packages/license-kit/src/index.ts b/packages/license-kit/src/index.ts
new file mode 100644
index 0000000..eeedbbd
--- /dev/null
+++ b/packages/license-kit/src/index.ts
@@ -0,0 +1,129 @@
+#!/usr/bin/env node
+import fs from 'node:fs';
+import path from 'node:path';
+import process from 'node:process';
+
+import { scanDependencies } from '@callstack/react-native-legal-shared';
+import { Command } from 'commander';
+
+import { version } from '../package.json';
+
+import { STRONG_COPYLEFT_LICENSES, WEAK_COPYLEFT_LICENSES } from './constants';
+import { serializeReport } from './serializeReport';
+import { type Format, validFormats } from './types/Format';
+
+const program = new Command();
+
+program.name('license-kit').description('Scan dependencies and check for copyleft licenses.').version(version);
+
+program
+ .command('copyleft')
+ .description('Check for copyleft licenses. Exits with error if strong copyleft licenses are found.')
+ .option('--error-on-weak', 'Exit with error if weak copyleft licenses are found', false)
+ .option('--root ', 'Path to the root of your project', '.')
+ .action((options) => {
+ const repoRootPath = path.resolve(process.cwd(), options.root);
+ const packageJsonPath = path.join(repoRootPath, 'package.json');
+
+ if (!fs.existsSync(packageJsonPath)) {
+ console.error(`package.json not found at ${packageJsonPath}`);
+ process.exit(1);
+ }
+
+ const licenses = scanDependencies(packageJsonPath);
+
+ const strongCopyleftLicensesFound: string[] = [];
+ const weakCopyleftLicensesFound: string[] = [];
+
+ for (const [key, value] of Object.entries(licenses)) {
+ STRONG_COPYLEFT_LICENSES.find((license) => {
+ if (value.type === license) {
+ strongCopyleftLicensesFound.push(`- ${key}: ${value.type} (${value.file || value.url})`);
+ return true;
+ }
+ });
+
+ WEAK_COPYLEFT_LICENSES.find((license) => {
+ if (value.type === license) {
+ weakCopyleftLicensesFound.push(`- ${key}: ${value.type} (${value.file || value.url})`);
+ return true;
+ }
+ });
+ }
+
+ if (strongCopyleftLicensesFound.length > 0) {
+ console.error('β Copyleft licenses found in the following dependencies:');
+ strongCopyleftLicensesFound.forEach((entry) => {
+ console.error(entry);
+ });
+
+ if (options.errorOnWeak) {
+ console.error('β οΈ Weak copyleft licenses found in the following dependencies:');
+ weakCopyleftLicensesFound.forEach((entry) => {
+ console.error(entry);
+ });
+ }
+
+ process.exit(1);
+ }
+
+ if (weakCopyleftLicensesFound.length > 0) {
+ console.error('β οΈ Weak copyleft licenses found in the following dependencies:');
+ weakCopyleftLicensesFound.forEach((entry) => {
+ console.error(entry);
+ });
+ if (options.errorOnWeak) {
+ process.exit(1);
+ }
+ } else {
+ console.log('β
No copyleft licenses found');
+ }
+ });
+
+program
+ .command('report')
+ .description('Generate a license report for your project.')
+ .option('--root ', 'Path to the root of your project', '.')
+ .option('--format ', "Output format: 'json', 'about-json', 'text', 'markdown'", 'json')
+ .option('--output ', "Where to write the output: 'stdout' or a file path", 'stdout')
+ .action((options) => {
+ const repoRootPath = path.resolve(process.cwd(), options.root);
+ const packageJsonPath = path.join(repoRootPath, 'package.json');
+
+ if (!fs.existsSync(packageJsonPath)) {
+ console.error(`package.json not found at ${packageJsonPath}`);
+ process.exit(1);
+ }
+
+ if (!validFormats.includes(options.format)) {
+ console.error(`Invalid format: ${options.format}. Supported formats: ${validFormats.join(', ')}`);
+ process.exit(1);
+ }
+
+ const licenses = scanDependencies(packageJsonPath);
+ const serializedResult = serializeReport({ licenses, format: options.format as Format });
+
+ if (options.output === 'stdout') {
+ console.log(serializedResult);
+ } else {
+ const outputPath = path.resolve(repoRootPath, options.output);
+
+ fs.mkdirSync(path.dirname(outputPath), { recursive: true });
+ fs.writeFileSync(outputPath, serializedResult);
+
+ console.log(`Output written to ${outputPath}`);
+ }
+ });
+
+program
+ .command('help', { isDefault: false })
+ .description('Show help message')
+ .action(() => {
+ program.outputHelp();
+ });
+
+if (!process.argv.slice(2).length) {
+ program.outputHelp();
+} else {
+ program.parse(process.argv);
+}
diff --git a/packages/license-kit/src/serializeReport.ts b/packages/license-kit/src/serializeReport.ts
new file mode 100644
index 0000000..016c089
--- /dev/null
+++ b/packages/license-kit/src/serializeReport.ts
@@ -0,0 +1,71 @@
+import path from 'node:path';
+
+import { type Types, generateAboutLibrariesNPMOutput } from '@callstack/react-native-legal-shared';
+import * as md from 'ts-markdown-builder';
+
+import type { Format } from './types/Format';
+
+export function serializeReport({
+ licenses,
+ format,
+}: {
+ licenses: Types.AggregatedLicensesObj;
+ format: Format;
+}): string {
+ // convert absolute paths to license files to just filenames (no point in placing those in the file)
+ for (const packageInfo of Object.values(licenses)) {
+ if (packageInfo.file) {
+ packageInfo.file = path.basename(packageInfo.file);
+ }
+ }
+
+ switch (format) {
+ default:
+ case 'json':
+ return JSON.stringify(licenses, null, 2);
+
+ case 'about-json':
+ return JSON.stringify(generateAboutLibrariesNPMOutput(licenses), null, 2);
+
+ case 'text':
+ return Object.entries(licenses)
+ .map(([packageName, { version, author, content, description, file, type, url }]) =>
+ [
+ `${packageName} (${version})`,
+ url ? `URL: ${url}` : '',
+ author ? `Author: ${author}` : '',
+ content ?? '',
+ description ? `Description: ${description}` : '',
+ file ? `File: ${file}` : '',
+ type ? `Type: ${type}` : '',
+ '',
+ '---'.repeat(10),
+ '',
+ ].join('\n'),
+ )
+ .join('\n');
+
+ case 'markdown':
+ return md
+ .joinBlocks(
+ Object.entries(licenses)
+ .flatMap(([packageName, { version, author, content, description, file, type, url }]) => [
+ '\n',
+ md.heading(packageName, { level: 2 }),
+ '\n',
+ `Version: ${version} \n`,
+ url ? `URL: ${url} \n` : '',
+ author ? `Author: ${author} \n\n` : '',
+ content ?? '',
+ '\n',
+ description ? `Description: ${description}\n` : '',
+ file ? `\nFile: ${file}\n` : '',
+ type ? `Type: ${type}` : '',
+ '\n',
+ md.horizontalRule,
+ ])
+ .join('\n'),
+ )
+ .toString();
+ }
+}
diff --git a/packages/license-kit/src/types/Format.ts b/packages/license-kit/src/types/Format.ts
new file mode 100644
index 0000000..831bbb0
--- /dev/null
+++ b/packages/license-kit/src/types/Format.ts
@@ -0,0 +1,2 @@
+export type Format = 'json' | 'about-json' | 'text' | 'markdown';
+export const validFormats: Format[] = ['json', 'about-json', 'text', 'markdown'];
diff --git a/packages/license-kit/src/types/Output.ts b/packages/license-kit/src/types/Output.ts
new file mode 100644
index 0000000..09e8e77
--- /dev/null
+++ b/packages/license-kit/src/types/Output.ts
@@ -0,0 +1 @@
+export type Output = 'stdout' | string;
diff --git a/packages/license-kit/tsconfig.json b/packages/license-kit/tsconfig.json
new file mode 100644
index 0000000..da1b0f4
--- /dev/null
+++ b/packages/license-kit/tsconfig.json
@@ -0,0 +1,18 @@
+{
+ "compilerOptions": {
+ "declaration": true,
+ "lib": ["es2020"],
+ "module": "commonjs",
+ "target": "es2020",
+ "strict": true,
+ "esModuleInterop": true,
+ "skipLibCheck": true,
+ "forceConsistentCasingInFileNames": true,
+ "moduleResolution": "node",
+ "outDir": "build",
+ "rootDir": "src",
+ "resolveJsonModule": true
+ },
+ "include": ["./src"],
+ "exclude": ["**/__mocks__/*", "**/__tests__/*"]
+}
diff --git a/packages/react-native-legal/LICENSE b/packages/react-native-legal/LICENSE
new file mode 100644
index 0000000..1c06532
--- /dev/null
+++ b/packages/react-native-legal/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2023 Callstack
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/packages/react-native-legal/bare-plugin/src/android/androidCommand.ts b/packages/react-native-legal/bare-plugin/src/android/androidCommand.ts
index 21acb32..802284d 100644
--- a/packages/react-native-legal/bare-plugin/src/android/androidCommand.ts
+++ b/packages/react-native-legal/bare-plugin/src/android/androidCommand.ts
@@ -1,6 +1,6 @@
import path from 'path';
-import { generateAboutLibrariesNPMOutput, scanDependencies } from '../../../plugin-utils/build/common';
+import { scanDependencies, writeAboutLibrariesNPMOutput } from '@callstack/react-native-legal-shared';
import { addListActivity } from './addListActivity';
import { applyAndConfigureAboutLibrariesPlugin } from './applyAndConfigureAboutLibrariesPlugin';
@@ -15,7 +15,7 @@ import { declareAboutLibrariesPlugin } from './declareAboutLibrariesPlugin';
export function androidCommand(androidProjectPath: string) {
const licenses = scanDependencies(path.join(path.resolve(androidProjectPath, '..'), 'package.json'));
- generateAboutLibrariesNPMOutput(licenses, androidProjectPath);
+ writeAboutLibrariesNPMOutput(licenses, androidProjectPath);
declareAboutLibrariesPlugin(androidProjectPath);
applyAndConfigureAboutLibrariesPlugin(androidProjectPath);
diff --git a/packages/react-native-legal/bare-plugin/src/ios/iosCommand.ts b/packages/react-native-legal/bare-plugin/src/ios/iosCommand.ts
index 2fca632..9cf88e7 100644
--- a/packages/react-native-legal/bare-plugin/src/ios/iosCommand.ts
+++ b/packages/react-native-legal/bare-plugin/src/ios/iosCommand.ts
@@ -1,6 +1,6 @@
import path from 'path';
-import { generateLicensePlistNPMOutput, scanDependencies } from '../../../plugin-utils/build/common';
+import { scanDependencies, writeLicensePlistNPMOutput } from '@callstack/react-native-legal-shared';
import { addSettingsBundle } from './addSettingsBundle';
import { registerLicensePlistBuildPhase } from './registerLicensePlistBuildPhase';
@@ -14,7 +14,7 @@ import { registerLicensePlistBuildPhase } from './registerLicensePlistBuildPhase
export function iosCommand(iosProjectPath: string) {
const licenses = scanDependencies(path.join(path.resolve(iosProjectPath, '..'), 'package.json'));
- generateLicensePlistNPMOutput(licenses, iosProjectPath);
+ writeLicensePlistNPMOutput(licenses, iosProjectPath);
addSettingsBundle(iosProjectPath);
registerLicensePlistBuildPhase(iosProjectPath);
diff --git a/packages/react-native-legal/bare-plugin/src/ios/utils.ts b/packages/react-native-legal/bare-plugin/src/ios/utils.ts
index 356453d..f8ce28d 100644
--- a/packages/react-native-legal/bare-plugin/src/ios/utils.ts
+++ b/packages/react-native-legal/bare-plugin/src/ios/utils.ts
@@ -1,10 +1,9 @@
import path from 'path';
+import glob from 'glob';
import type { XcodeProject } from 'xcode';
import xcode from 'xcode';
-const glob = require('glob');
-
const ignoredPaths = ['**/@(Carthage|Pods|vendor|node_modules)/**'];
/**
diff --git a/packages/react-native-legal/bare-plugin/tsconfig.json b/packages/react-native-legal/bare-plugin/tsconfig.json
index 8d5bfea..af3a726 100644
--- a/packages/react-native-legal/bare-plugin/tsconfig.json
+++ b/packages/react-native-legal/bare-plugin/tsconfig.json
@@ -17,4 +17,4 @@
},
"include": ["./src"],
"exclude": ["**/__mocks__/*", "**/__tests__/*"]
-}
\ No newline at end of file
+}
diff --git a/packages/react-native-legal/package.json b/packages/react-native-legal/package.json
index a8c8f58..d33e2cd 100644
--- a/packages/react-native-legal/package.json
+++ b/packages/react-native-legal/package.json
@@ -49,6 +49,7 @@
"tsc": "tsc"
},
"devDependencies": {
+ "@types/glob": "^8.1.0",
"@types/xml2js": "^0.4.11",
"expo": "~52.0.36",
"expo-module-scripts": "^4.0.0",
@@ -57,6 +58,7 @@
"react-native-builder-bob": "0.23.1"
},
"dependencies": {
+ "@callstack/react-native-legal-shared": "^0.1.1",
"glob": "^7.1.3",
"xcode": "^3.0.1",
"xml2js": "^0.6.2"
diff --git a/packages/react-native-legal/plugin-utils/src/android.ts b/packages/react-native-legal/plugin-utils/src/android.ts
index ecd5855..6e33dc5 100644
--- a/packages/react-native-legal/plugin-utils/src/android.ts
+++ b/packages/react-native-legal/plugin-utils/src/android.ts
@@ -1,4 +1,4 @@
-import { arrayIncludesObject } from './common';
+import { MiscUtils } from '@callstack/react-native-legal-shared';
/**
* Applies Gradle Plugin Portal & AboutLibraries Gradle plugin repositories (if needed) inside root build.gradle
@@ -62,7 +62,7 @@ export function applyAndConfigureAboutLibrariesPluginUtil(androidAppBuildGradleC
export function addListActivityUtil(activities: T[]): T[] {
const listActivity = prepareListActivity();
- if (!arrayIncludesObject(activities, listActivity)) {
+ if (!MiscUtils.arrayIncludesObject(activities, listActivity)) {
activities?.push(listActivity as T);
console.log('About Libraries activity - ADDED');
} else {
diff --git a/packages/react-native-legal/plugin-utils/tsconfig.json b/packages/react-native-legal/plugin-utils/tsconfig.json
index 8d5bfea..af3a726 100644
--- a/packages/react-native-legal/plugin-utils/tsconfig.json
+++ b/packages/react-native-legal/plugin-utils/tsconfig.json
@@ -17,4 +17,4 @@
},
"include": ["./src"],
"exclude": ["**/__mocks__/*", "**/__tests__/*"]
-}
\ No newline at end of file
+}
diff --git a/packages/react-native-legal/plugin/src/android/withAndroidLegal.ts b/packages/react-native-legal/plugin/src/android/withAndroidLegal.ts
index 1eb114e..1a1609b 100644
--- a/packages/react-native-legal/plugin/src/android/withAndroidLegal.ts
+++ b/packages/react-native-legal/plugin/src/android/withAndroidLegal.ts
@@ -1,9 +1,8 @@
import path from 'path';
+import { scanDependencies, writeAboutLibrariesNPMOutput } from '@callstack/react-native-legal-shared';
import { type ConfigPlugin, withAndroidManifest } from 'expo/config-plugins';
-import { generateAboutLibrariesNPMOutput, scanDependencies } from '../../../plugin-utils/build/common';
-
import { addListActivity } from './addListActivity';
import { applyAndConfigureAboutLibrariesPlugin } from './applyAndConfigureAboutLibrariesPlugin';
import { declareAboutLibrariesPlugin } from './declareAboutLibrariesPlugin';
@@ -18,7 +17,7 @@ export const withAndroidLegal: ConfigPlugin = (config) => {
withAndroidManifest(config, async (exportedConfig) => {
const licenses = scanDependencies(path.join(exportedConfig.modRequest.projectRoot, 'package.json'));
- generateAboutLibrariesNPMOutput(licenses, exportedConfig.modRequest.platformProjectRoot);
+ writeAboutLibrariesNPMOutput(licenses, exportedConfig.modRequest.platformProjectRoot);
return exportedConfig;
});
config = declareAboutLibrariesPlugin(config);
diff --git a/packages/react-native-legal/plugin/src/ios/withIosLegal.ts b/packages/react-native-legal/plugin/src/ios/withIosLegal.ts
index 546a264..ae503fc 100644
--- a/packages/react-native-legal/plugin/src/ios/withIosLegal.ts
+++ b/packages/react-native-legal/plugin/src/ios/withIosLegal.ts
@@ -1,9 +1,8 @@
import path from 'path';
+import { scanDependencies, writeLicensePlistNPMOutput } from '@callstack/react-native-legal-shared';
import { type ConfigPlugin, withXcodeProject } from 'expo/config-plugins';
-import { generateLicensePlistNPMOutput, scanDependencies } from '../../../plugin-utils/build/common';
-
import { addSettingsBundle } from './addSettingsBundle';
import { registerLicensePlistBuildPhase } from './registerLicensePlistBuildPhase';
@@ -17,7 +16,7 @@ export const withIosLegal: ConfigPlugin = (config) => {
withXcodeProject(config, async (exportedConfig) => {
const licenses = scanDependencies(path.join(exportedConfig.modRequest.projectRoot, 'package.json'));
- generateLicensePlistNPMOutput(licenses, exportedConfig.modRequest.platformProjectRoot);
+ writeLicensePlistNPMOutput(licenses, exportedConfig.modRequest.platformProjectRoot);
return exportedConfig;
});
config = addSettingsBundle(config);
diff --git a/packages/react-native-legal/tsconfig.json b/packages/react-native-legal/tsconfig.json
index 4def6ca..c9279ec 100644
--- a/packages/react-native-legal/tsconfig.json
+++ b/packages/react-native-legal/tsconfig.json
@@ -20,10 +20,5 @@
"strict": true,
"target": "esnext"
},
- "exclude": [
- "node_modules",
- "bare-plugin",
- "plugin",
- "plugin-utils"
- ],
+ "exclude": ["node_modules", "bare-plugin", "plugin", "plugin-utils"]
}
diff --git a/packages/shared/LICENSE b/packages/shared/LICENSE
new file mode 100644
index 0000000..1c06532
--- /dev/null
+++ b/packages/shared/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2023 Callstack
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/packages/shared/README.md b/packages/shared/README.md
new file mode 100644
index 0000000..7346d3b
--- /dev/null
+++ b/packages/shared/README.md
@@ -0,0 +1,65 @@
+# @callstack/react-native-legal-shared
+
+## Features
+
+- π Scan and aggregate license information from your project dependencies
+- π Generate license reports in a format of choice (JSON, Markdown, raw text, AboutLibraries-compatible JSON metadata)
+- π Support for both direct and transitive dependencies
+
+## Installation
+
+```bash
+npm install @callstack/react-native-legal-shared
+```
+
+## Programmatic Usage
+
+You can use `@callstack/react-native-legal-shared` programmatically in your Node.js applications. Here's a basic example of how to use it:
+
+```typescript
+import {
+ generateAboutLibrariesNPMOutput,
+ generateLicensePlistNPMOutput,
+ scanDependencies,
+} from '@callstack/react-native-legal-shared';
+import * as md from 'ts-markdown-builder';
+
+// scan dependencies of a package
+const licenses = scanDependencies(packageJsonPath);
+
+// generate AboutLibraries-compatible JSON metadata
+const aboutLibrariesCompatibleReport = generateAboutLibrariesNPMOutput(licenses);
+
+// generate LicensePlist-compatible metadata
+const licensePlistReport = generateLicensePlistNPMOutput(licenses);
+
+// generate a Markdown report
+const markdownString = md
+ .joinBlocks(
+ Object.entries(licenses)
+ .flatMap(([packageName, { version, author, content, description, file, type, url }]) => [
+ md.heading(packageName, { level: 2 }),
+ '\n',
+ `Version: ${version} \n`,
+ url ? `URL: ${url} \n` : '',
+ author ? `Author: ${author} \n\n` : '',
+ content ?? '',
+ '\n',
+ description ? `Description: ${description}\n` : '',
+ file ? `\nFile: ${file}\n` : '',
+ type ? `Type: ${type}` : '',
+ '\n',
+ md.horizontalRule,
+ ])
+ .join('\n'),
+ )
+ .toString();
+```
+
+## API Documentation
+
+The API documentation is published under: https://callstackincubator.github.io/react-native-legal/api/.
+
+## Contributing
+
+This package is consumed by other packages in the monorepo by its build outputs, so everytime it is modified, you need to rebuild the package. This can be done once by running `yarn build`, or by running `yarn dev` to run `tsc` in watch mode. All this is described in the [Contributing Guide](../../CONTRIBUTING.md).
diff --git a/packages/shared/package.json b/packages/shared/package.json
new file mode 100644
index 0000000..2be133e
--- /dev/null
+++ b/packages/shared/package.json
@@ -0,0 +1,63 @@
+{
+ "name": "@callstack/react-native-legal-shared",
+ "version": "0.1.1",
+ "description": "Shared code for all packages",
+ "main": "build/index",
+ "module": "build/index",
+ "types": "build/index.d.ts",
+ "exports": {
+ ".": {
+ "source": "./src/index.ts",
+ "types": "./build/index.d.ts",
+ "default": "./build/index.js"
+ },
+ "./package.json": "./package.json"
+ },
+ "files": [
+ "src",
+ "build",
+ "!**/__tests__",
+ "!**/__fixtures__",
+ "!**/__mocks__",
+ "!**/.*"
+ ],
+ "scripts": {
+ "test": "jest",
+ "typecheck": "tsc",
+ "lint": "eslint \"**/*.{js,ts,tsx}\"",
+ "clean": "rimraf build",
+ "build": "tsc -p tsconfig.json",
+ "dev": "tsc --watch -p tsconfig.json"
+ },
+ "keywords": [
+ "nodejs",
+ "oss",
+ "license",
+ "acknowledgements",
+ "license-management"
+ ],
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/callstackincubator/react-native-legal.git",
+ "directory": "packages/shared"
+ },
+ "author": "Mateusz MΔdrek (https://github.com/mateusz1913)",
+ "license": "MIT",
+ "bugs": {
+ "url": "https://github.com/callstackincubator/react-native-legal.git/issues"
+ },
+ "homepage": "https://callstackincubator.github.io/react-native-legal/",
+ "publishConfig": {
+ "registry": "https://registry.npmjs.org/"
+ },
+ "dependencies": {
+ "glob": "^7.1.3"
+ },
+ "devDependencies": {
+ "@types/glob": "^8.1.0",
+ "@types/jest": "^29.5.5",
+ "jest": "^29.7.0",
+ "rimraf": "^6.0.1",
+ "typescript": "^5.8.3"
+ }
+}
diff --git a/packages/react-native-legal/plugin-utils/src/common.ts b/packages/shared/src/common.ts
similarity index 57%
rename from packages/react-native-legal/plugin-utils/src/common.ts
rename to packages/shared/src/common.ts
index 1e7caa0..8fbb05a 100644
--- a/packages/react-native-legal/plugin-utils/src/common.ts
+++ b/packages/shared/src/common.ts
@@ -1,76 +1,15 @@
-import crypto from 'crypto';
import fs from 'fs';
import path from 'path';
-const glob = require('glob');
-
-type LicenseObj = {
- author?: string;
- content?: string;
- description?: string;
- file?: string;
- type?: string;
- url?: string;
- version: string;
-};
-
-type AboutLibrariesLibraryJsonPayload = {
- artifactVersion: string;
- description: string;
- developers: { name: string; organisationUrl: string }[];
- licenses: string[];
- name: string;
- tag: string;
- uniqueId: string;
-};
-
-type AboutLibrariesLicenseJsonPayload = {
- content: string;
- hash: string;
- name: string;
- url: string;
-};
-
-type LicensePlistPayload = {
- name: string;
- source?: string;
- version: string;
- body?: string;
- file?: string;
-};
-
-function compareObjects(a: unknown, b: unknown): boolean {
- if (a == null || b == null || typeof a !== 'object' || typeof b !== 'object') {
- return a === b;
- }
-
- const entriesA = Object.entries(a);
- const entriesB = Object.entries(b);
-
- return (
- entriesA.length === entriesB.length &&
- entriesA
- .map(([keyA, valueA]) => {
- const entry = entriesB.find(([keyB]) => keyA === keyB);
-
- if (!entry) {
- return valueA === entry;
- }
-
- const [, valueB] = entry;
-
- return compareObjects(valueA, valueB);
- })
- .reduce((acc, curr) => acc && curr, true)
- );
-}
+import glob from 'glob';
-/**
- * Makes a deep-check between array items and provided object, returns true if array has provided object.
- */
-export function arrayIncludesObject(array?: unknown[], object?: unknown) {
- return array?.map((item) => compareObjects(item, object)).reduce((acc, curr) => acc || curr, false);
-}
+import type {
+ AboutLibrariesLibraryJsonPayload,
+ AboutLibrariesLicenseJsonPayload,
+ AggregatedLicensesObj,
+ LicensePlistPayload,
+} from './types';
+import { PackageUtils } from './utils';
/**
* Scans a single package and its dependencies for license information
@@ -79,7 +18,7 @@ function scanPackage(
packageName: string,
version: string,
processedPackages: Set,
- result: Record,
+ result: AggregatedLicensesObj,
) {
const packageKey = `${packageName}@${version}`;
@@ -91,7 +30,7 @@ function scanPackage(
processedPackages.add(packageKey);
try {
- const localPackageJsonPath = getPackageJsonPath(packageName);
+ const localPackageJsonPath = PackageUtils.getPackageJsonPath(packageName);
if (!localPackageJsonPath) {
console.warn(`[react-native-legal] skipping ${packageName} could not find package.json`);
@@ -110,25 +49,27 @@ function scanPackage(
});
result[packageName] = {
- author: parseAuthorField(localPackageJson),
+ author: PackageUtils.parseAuthorField(localPackageJson),
content: licenseFiles?.[0] ? fs.readFileSync(licenseFiles[0], { encoding: 'utf-8' }) : undefined,
file: licenseFiles?.[0] ? licenseFiles[0] : undefined,
description: localPackageJson.description,
- type: parseLicenseField(localPackageJson),
- url: parseRepositoryFieldToUrl(localPackageJson),
+ type: PackageUtils.parseLicenseField(localPackageJson),
+ url: PackageUtils.parseRepositoryFieldToUrl(localPackageJson),
version: localPackageJson.version,
};
}
- const dependencies = localPackageJson.dependencies || {};
+ const dependencies = localPackageJson.dependencies;
const isWorkspacePackage = version.startsWith('workspace:');
if (!isWorkspacePackage) return;
- Object.entries(dependencies).forEach(([depName, depVersion]) => {
- scanPackage(depName, depVersion as string, processedPackages, result);
- });
+ if (dependencies) {
+ Object.entries(dependencies).forEach(([depName, depVersion]) => {
+ scanPackage(depName, depVersion as string, processedPackages, result);
+ });
+ }
} catch (error) {
console.warn(`[react-native-legal] could not process package.json for ${packageName}`);
}
@@ -140,12 +81,14 @@ function scanPackage(
export function scanDependencies(appPackageJsonPath: string) {
const appPackageJson = require(path.resolve(appPackageJsonPath));
const dependencies: Record = appPackageJson.dependencies;
- const result: Record = {};
+ const result: AggregatedLicensesObj = {};
const processedPackages = new Set();
- Object.entries(dependencies).forEach(([packageName, version]) => {
- scanPackage(packageName, version, processedPackages, result);
- });
+ if (dependencies) {
+ Object.entries(dependencies).forEach(([packageName, version]) => {
+ scanPackage(packageName, version, processedPackages, result);
+ });
+ }
return result;
}
@@ -225,22 +168,16 @@ function toYaml(obj: unknown, indent = 0): string {
}
/**
- * Generates LicensePlist-compatible metadata for NPM dependencies
+ * Generates LicensePlist-compatible metadata for NPM dependencies as a YAML string.
*
- * This will take scanned NPM licenses and produce following output inside iOS project's directory:
+ * To write a file directly, use `writeLicensePlistNPMOutput` function.
*
- * | - ios
- * | ---- myawesomeapp
- * | ---- myawesomeapp.xcodeproj
- * | ---- myawesomeapp.xcodeworkspace
- * | ---- license_plist.yml <--- generated LicensePlist config with NPM dependencies
- * | ---- Podfile
- * | ---- Podfile.lock
+ * @see {@link writeLicensePlistNPMOutput}
*/
-export function generateLicensePlistNPMOutput(licenses: Record, iosProjectPath: string) {
+export function generateLicensePlistNPMOutput(licenses: AggregatedLicensesObj, iosProjectPath: string) {
const renames: Record = {};
const licenseEntries = Object.entries(licenses).map(([dependency, licenseObj]) => {
- const normalizedName = normalizePackageName(dependency);
+ const normalizedName = PackageUtils.normalizePackageName(dependency);
if (dependency !== normalizedName) {
renames[normalizedName] = dependency;
@@ -269,51 +206,50 @@ export function generateLicensePlistNPMOutput(licenses: Record, androidProjectPath: string) {
- const aboutLibrariesConfigDirPath = path.join(androidProjectPath, 'config');
- const aboutLibrariesConfigLibrariesDirPath = path.join(aboutLibrariesConfigDirPath, 'libraries');
- const aboutLibrariesConfigLicensesDirPath = path.join(aboutLibrariesConfigDirPath, 'licenses');
-
- if (!fs.existsSync(aboutLibrariesConfigDirPath)) {
- fs.mkdirSync(aboutLibrariesConfigDirPath);
- }
+export function writeLicensePlistNPMOutput(licenses: AggregatedLicensesObj, iosProjectPath: string) {
+ const yamlContent = generateLicensePlistNPMOutput(licenses, iosProjectPath);
- if (!fs.existsSync(aboutLibrariesConfigLibrariesDirPath)) {
- fs.mkdirSync(aboutLibrariesConfigLibrariesDirPath);
- }
-
- if (!fs.existsSync(aboutLibrariesConfigLicensesDirPath)) {
- fs.mkdirSync(aboutLibrariesConfigLicensesDirPath);
- }
+ fs.writeFileSync(path.join(iosProjectPath, 'license_plist.yml'), yamlContent, { encoding: 'utf-8' });
+}
- Object.entries(licenses)
+/**
+ * Generates AboutLibraries-compatible metadata for NPM dependencies
+ *
+ * This will take scanned NPM licenses and produce following output inside android project's directory:
+ */
+export function generateAboutLibrariesNPMOutput(licenses: AggregatedLicensesObj) {
+ return Object.entries(licenses)
.map(([dependency, licenseObj]) => {
return {
artifactVersion: licenseObj.version,
content: licenseObj.content ?? '',
description: licenseObj.description ?? '',
developers: [{ name: licenseObj.author ?? '', organisationUrl: '' }],
- licenses: [prepareAboutLibrariesLicenseField(licenseObj)],
+ licenses: [PackageUtils.prepareAboutLibrariesLicenseField(licenseObj)],
name: dependency,
tag: '',
type: licenseObj.type,
- uniqueId: normalizePackageName(dependency),
+ uniqueId: PackageUtils.normalizePackageName(dependency),
};
})
.map((jsonPayload) => {
@@ -332,107 +268,57 @@ export function generateAboutLibrariesNPMOutput(licenses: Record {
+ const libraryJsonFilePath = path.join(aboutLibrariesConfigLibrariesDirPath, `${normalizedPackageName}.json`);
+ const licenseJsonFilePath = path.join(aboutLibrariesConfigLicensesDirPath, `${licenseJsonPayload.hash}.json`);
- const packageJsonPath = path.join(packageDir, 'package.json');
+ fs.writeFileSync(libraryJsonFilePath, JSON.stringify(libraryJsonPayload));
- return fs.existsSync(packageJsonPath) ? packageJsonPath : null;
- } catch {
- return null;
- }
-}
-
-function findPackageRoot(entryPath: string) {
- let currentDir = path.dirname(entryPath);
- while (currentDir !== path.dirname(currentDir)) {
- if (fs.existsSync(path.join(currentDir, 'package.json'))) return currentDir;
- currentDir = path.dirname(currentDir);
- }
-}
-
-function normalizePackageName(packageName: string): string {
- return packageName.replace('/', '_');
+ if (!fs.existsSync(licenseJsonFilePath)) {
+ fs.writeFileSync(licenseJsonFilePath, JSON.stringify(licenseJsonPayload));
+ }
+ });
}
diff --git a/packages/shared/src/index.ts b/packages/shared/src/index.ts
new file mode 100644
index 0000000..d9b4f58
--- /dev/null
+++ b/packages/shared/src/index.ts
@@ -0,0 +1,3 @@
+export * from './common';
+export * as Types from './types';
+export * from './utils';
diff --git a/packages/shared/src/types/AboutLibrariesLibraryJsonPayload.ts b/packages/shared/src/types/AboutLibrariesLibraryJsonPayload.ts
new file mode 100644
index 0000000..4346245
--- /dev/null
+++ b/packages/shared/src/types/AboutLibrariesLibraryJsonPayload.ts
@@ -0,0 +1,9 @@
+export type AboutLibrariesLibraryJsonPayload = {
+ artifactVersion: string;
+ description: string;
+ developers: { name: string; organisationUrl: string }[];
+ licenses: string[];
+ name: string;
+ tag: string;
+ uniqueId: string;
+};
diff --git a/packages/shared/src/types/AboutLibrariesLicenseJsonPayload.ts b/packages/shared/src/types/AboutLibrariesLicenseJsonPayload.ts
new file mode 100644
index 0000000..ee6e744
--- /dev/null
+++ b/packages/shared/src/types/AboutLibrariesLicenseJsonPayload.ts
@@ -0,0 +1,6 @@
+export type AboutLibrariesLicenseJsonPayload = {
+ content: string;
+ hash: string;
+ name: string;
+ url: string;
+};
diff --git a/packages/shared/src/types/AggregatedLicensesObj.ts b/packages/shared/src/types/AggregatedLicensesObj.ts
new file mode 100644
index 0000000..61c94e4
--- /dev/null
+++ b/packages/shared/src/types/AggregatedLicensesObj.ts
@@ -0,0 +1,3 @@
+import type { LicenseObj } from './LicenseObj';
+
+export type AggregatedLicensesObj = Record;
diff --git a/packages/shared/src/types/LicenseObj.ts b/packages/shared/src/types/LicenseObj.ts
new file mode 100644
index 0000000..666237e
--- /dev/null
+++ b/packages/shared/src/types/LicenseObj.ts
@@ -0,0 +1,9 @@
+export type LicenseObj = {
+ author?: string;
+ content?: string;
+ description?: string;
+ file?: string;
+ type?: string;
+ url?: string;
+ version: string;
+};
diff --git a/packages/shared/src/types/LicensePlistPayload.ts b/packages/shared/src/types/LicensePlistPayload.ts
new file mode 100644
index 0000000..6af28a3
--- /dev/null
+++ b/packages/shared/src/types/LicensePlistPayload.ts
@@ -0,0 +1,7 @@
+export type LicensePlistPayload = {
+ name: string;
+ source?: string;
+ version: string;
+ body?: string;
+ file?: string;
+};
diff --git a/packages/shared/src/types/index.ts b/packages/shared/src/types/index.ts
new file mode 100644
index 0000000..7cd95e2
--- /dev/null
+++ b/packages/shared/src/types/index.ts
@@ -0,0 +1,5 @@
+export * from './LicenseObj';
+export * from './AggregatedLicensesObj';
+export * from './AboutLibrariesLibraryJsonPayload';
+export * from './AboutLibrariesLicenseJsonPayload';
+export * from './LicensePlistPayload';
diff --git a/packages/shared/src/utils/index.ts b/packages/shared/src/utils/index.ts
new file mode 100644
index 0000000..cf3dadd
--- /dev/null
+++ b/packages/shared/src/utils/index.ts
@@ -0,0 +1,3 @@
+export * as PackageUtils from './packageUtils';
+export * as MiscUtils from './miscUtils';
+export * as RepositoryUtils from './repositoryUtils';
diff --git a/packages/shared/src/utils/miscUtils.ts b/packages/shared/src/utils/miscUtils.ts
new file mode 100644
index 0000000..b69fa6f
--- /dev/null
+++ b/packages/shared/src/utils/miscUtils.ts
@@ -0,0 +1,42 @@
+import crypto from 'crypto';
+
+export function sha512(text: string) {
+ return crypto.createHash('sha512').update(text).digest('hex');
+}
+
+export function compareObjects(a: unknown, b: unknown): boolean {
+ if (a == null || b == null || typeof a !== 'object' || typeof b !== 'object') {
+ return a === b;
+ }
+
+ const entriesA = Object.entries(a);
+ const entriesB = Object.entries(b);
+
+ return (
+ entriesA.length === entriesB.length &&
+ entriesA
+ .map(([keyA, valueA]) => {
+ const entry = entriesB.find(([keyB]) => keyA === keyB);
+
+ if (!entry) {
+ return valueA === entry;
+ }
+
+ const [, valueB] = entry;
+
+ return compareObjects(valueA, valueB);
+ })
+ .reduce((acc, curr) => acc && curr, true)
+ );
+}
+
+/**
+ * Makes a deep-check between array items and provided object, returns true if array has provided object.
+ */
+export function arrayIncludesObject(array?: unknown[], object?: unknown) {
+ if (!Array.isArray(array)) {
+ return;
+ }
+
+ return array.map((item) => compareObjects(item, object)).reduce((acc, curr) => acc || curr, false);
+}
diff --git a/packages/shared/src/utils/packageUtils.ts b/packages/shared/src/utils/packageUtils.ts
new file mode 100644
index 0000000..077cd77
--- /dev/null
+++ b/packages/shared/src/utils/packageUtils.ts
@@ -0,0 +1,82 @@
+import fs from 'fs';
+import path from 'path';
+
+import type { LicenseObj } from '../types';
+
+import { sha512 } from './miscUtils';
+import { normalizeRepositoryUrl } from './repositoryUtils';
+
+export function getPackageJsonPath(dependency: string, root = process.cwd()) {
+ try {
+ return require.resolve(`${dependency}/package.json`, { paths: [root] });
+ } catch (error) {
+ const pkgJsonInNodeModules = path.join(root, 'node_modules', dependency, 'package.json');
+
+ return fs.existsSync(pkgJsonInNodeModules) ? pkgJsonInNodeModules : resolvePackageJsonFromEntry(dependency);
+ }
+}
+
+export function resolvePackageJsonFromEntry(dependency: string) {
+ try {
+ const entryPath = require.resolve(dependency);
+ const packageDir = findPackageRoot(entryPath);
+
+ if (!packageDir) return null;
+
+ const packageJsonPath = path.join(packageDir, 'package.json');
+
+ return fs.existsSync(packageJsonPath) ? packageJsonPath : null;
+ } catch {
+ return null;
+ }
+}
+
+export function findPackageRoot(entryPath: string) {
+ let currentDir = path.dirname(entryPath);
+ while (currentDir !== path.dirname(currentDir)) {
+ if (fs.existsSync(path.join(currentDir, 'package.json'))) return currentDir;
+ currentDir = path.dirname(currentDir);
+ }
+}
+
+export function normalizePackageName(packageName: string): string {
+ return packageName.replace('/', '_');
+}
+
+export function prepareAboutLibrariesLicenseField(license: LicenseObj) {
+ if (!license.type) {
+ return '';
+ }
+
+ return `${license.type}_${sha512(license.content ?? license.type)}`;
+}
+
+export function parseAuthorField(json: { author: string | { name: string } }) {
+ if (typeof json.author === 'object' && typeof json.author.name === 'string') {
+ return json.author.name;
+ }
+
+ if (typeof json.author === 'string') {
+ return json.author;
+ }
+}
+
+export function parseLicenseField(json: { license: string | { type: string } }) {
+ if (typeof json.license === 'object' && typeof json.license.type === 'string') {
+ return json.license.type;
+ }
+
+ if (typeof json.license === 'string') {
+ return json.license;
+ }
+}
+
+export function parseRepositoryFieldToUrl(json: { repository: string | { url?: string } }) {
+ if (typeof json.repository === 'object' && typeof json.repository.url === 'string') {
+ return normalizeRepositoryUrl(json.repository.url);
+ }
+
+ if (typeof json.repository === 'string') {
+ return normalizeRepositoryUrl(json.repository);
+ }
+}
diff --git a/packages/shared/src/utils/repositoryUtils.ts b/packages/shared/src/utils/repositoryUtils.ts
new file mode 100644
index 0000000..7845d05
--- /dev/null
+++ b/packages/shared/src/utils/repositoryUtils.ts
@@ -0,0 +1,13 @@
+export function normalizeRepositoryUrl(url: string) {
+ return url
+ .replace('git+ssh://git@', 'git://')
+ .replace('.git', '')
+ .replace('git+https://github.com', 'https://github.com')
+ .replace('.git', '')
+ .replace('git://github.com', 'https://github.com')
+ .replace('.git', '')
+ .replace('git@github.com:', 'https://github.com/')
+ .replace('.git', '')
+ .replace('github:', 'https://github.com/')
+ .replace('.git', '');
+}
diff --git a/packages/shared/tsconfig.json b/packages/shared/tsconfig.json
new file mode 100644
index 0000000..a061c1f
--- /dev/null
+++ b/packages/shared/tsconfig.json
@@ -0,0 +1,19 @@
+{
+ "compilerOptions": {
+ "declaration": true,
+ "lib": ["es2020"],
+ "module": "commonjs",
+ "target": "es2020",
+
+ "strict": true,
+ "esModuleInterop": true,
+ "skipLibCheck": true,
+ "forceConsistentCasingInFileNames": true,
+ "moduleResolution": "node",
+
+ "outDir": "build",
+ "rootDir": "src"
+ },
+ "include": ["./src"],
+ "exclude": ["**/__mocks__/*", "**/__tests__/*"]
+}
diff --git a/yarn.lock b/yarn.lock
index f660493..3f3356b 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -90,6 +90,17 @@ __metadata:
languageName: node
linkType: hard
+"@babel/code-frame@npm:^7.27.1":
+ version: 7.27.1
+ resolution: "@babel/code-frame@npm:7.27.1"
+ dependencies:
+ "@babel/helper-validator-identifier": ^7.27.1
+ js-tokens: ^4.0.0
+ picocolors: ^1.1.1
+ checksum: 5874edc5d37406c4a0bb14cf79c8e51ad412fb0423d176775ac14fc0259831be1bf95bdda9c2aa651126990505e09a9f0ed85deaa99893bc316d2682c5115bdc
+ languageName: node
+ linkType: hard
+
"@babel/compat-data@npm:^7.22.5, @babel/compat-data@npm:^7.22.6":
version: 7.22.6
resolution: "@babel/compat-data@npm:7.22.6"
@@ -111,6 +122,36 @@ __metadata:
languageName: node
linkType: hard
+"@babel/compat-data@npm:^7.27.2":
+ version: 7.27.5
+ resolution: "@babel/compat-data@npm:7.27.5"
+ checksum: 8706be55f1c6e1cf85bfb3f2b3afdabba82142b339a11b62c694d07907b082d5715dfbe77fbbad891979809bdd013a0c9e2e5c3419dc8099b9fb7a45215f0f73
+ languageName: node
+ linkType: hard
+
+"@babel/core@npm:7.27.4":
+ version: 7.27.4
+ resolution: "@babel/core@npm:7.27.4"
+ dependencies:
+ "@ampproject/remapping": ^2.2.0
+ "@babel/code-frame": ^7.27.1
+ "@babel/generator": ^7.27.3
+ "@babel/helper-compilation-targets": ^7.27.2
+ "@babel/helper-module-transforms": ^7.27.3
+ "@babel/helpers": ^7.27.4
+ "@babel/parser": ^7.27.4
+ "@babel/template": ^7.27.2
+ "@babel/traverse": ^7.27.4
+ "@babel/types": ^7.27.3
+ convert-source-map: ^2.0.0
+ debug: ^4.1.0
+ gensync: ^1.0.0-beta.2
+ json5: ^2.2.3
+ semver: ^6.3.1
+ checksum: e7f961274f2cfc14c81e32dc0f10b06123a847e9fe73ec7b4df90411c3ebdad8ffecd7086f06aa46c2b24d8d27f2f8bef4b7c7319228c768256fc0e13819d395
+ languageName: node
+ linkType: hard
+
"@babel/core@npm:^7.11.6, @babel/core@npm:^7.12.3, @babel/core@npm:^7.13.16, @babel/core@npm:^7.20.0":
version: 7.22.8
resolution: "@babel/core@npm:7.22.8"
@@ -231,6 +272,19 @@ __metadata:
languageName: node
linkType: hard
+"@babel/generator@npm:^7.27.3":
+ version: 7.27.5
+ resolution: "@babel/generator@npm:7.27.5"
+ dependencies:
+ "@babel/parser": ^7.27.5
+ "@babel/types": ^7.27.3
+ "@jridgewell/gen-mapping": ^0.3.5
+ "@jridgewell/trace-mapping": ^0.3.25
+ jsesc: ^3.0.2
+ checksum: f6d3bf70f6bfbc5df263a023200728c53161d7f3ee3607bd8b2222c8568b6dd604ee490e305f0492a8225dac059ad75b4cc772b5cfd7d967e70360499d4d3701
+ languageName: node
+ linkType: hard
+
"@babel/helper-annotate-as-pure@npm:^7.22.5":
version: 7.22.5
resolution: "@babel/helper-annotate-as-pure@npm:7.22.5"
@@ -249,6 +303,15 @@ __metadata:
languageName: node
linkType: hard
+"@babel/helper-annotate-as-pure@npm:^7.27.1":
+ version: 7.27.3
+ resolution: "@babel/helper-annotate-as-pure@npm:7.27.3"
+ dependencies:
+ "@babel/types": ^7.27.3
+ checksum: 63863a5c936ef82b546ca289c9d1b18fabfc24da5c4ee382830b124e2e79b68d626207febc8d4bffc720f50b2ee65691d7d12cc0308679dee2cd6bdc926b7190
+ languageName: node
+ linkType: hard
+
"@babel/helper-builder-binary-assignment-operator-visitor@npm:^7.22.5":
version: 7.22.5
resolution: "@babel/helper-builder-binary-assignment-operator-visitor@npm:7.22.5"
@@ -301,6 +364,19 @@ __metadata:
languageName: node
linkType: hard
+"@babel/helper-compilation-targets@npm:^7.27.1, @babel/helper-compilation-targets@npm:^7.27.2":
+ version: 7.27.2
+ resolution: "@babel/helper-compilation-targets@npm:7.27.2"
+ dependencies:
+ "@babel/compat-data": ^7.27.2
+ "@babel/helper-validator-option": ^7.27.1
+ browserslist: ^4.24.0
+ lru-cache: ^5.1.1
+ semver: ^6.3.1
+ checksum: 7b95328237de85d7af1dea010a4daa28e79f961dda48b652860d5893ce9b136fc8b9ea1f126d8e0a24963b09ba5c6631dcb907b4ce109b04452d34a6ae979807
+ languageName: node
+ linkType: hard
+
"@babel/helper-create-class-features-plugin@npm:^7.18.6, @babel/helper-create-class-features-plugin@npm:^7.22.5, @babel/helper-create-class-features-plugin@npm:^7.22.6":
version: 7.22.6
resolution: "@babel/helper-create-class-features-plugin@npm:7.22.6"
@@ -337,6 +413,23 @@ __metadata:
languageName: node
linkType: hard
+"@babel/helper-create-class-features-plugin@npm:^7.27.1":
+ version: 7.27.1
+ resolution: "@babel/helper-create-class-features-plugin@npm:7.27.1"
+ dependencies:
+ "@babel/helper-annotate-as-pure": ^7.27.1
+ "@babel/helper-member-expression-to-functions": ^7.27.1
+ "@babel/helper-optimise-call-expression": ^7.27.1
+ "@babel/helper-replace-supers": ^7.27.1
+ "@babel/helper-skip-transparent-expression-wrappers": ^7.27.1
+ "@babel/traverse": ^7.27.1
+ semver: ^6.3.1
+ peerDependencies:
+ "@babel/core": ^7.0.0
+ checksum: 406954b455e5b20924e7d1b41cf932e6e98e95c3a5224c7a70c3ad96a84e8fbde915ceff7ddbf9c7d121397c4e9274f061241648475122cf6fe54e0a95caae15
+ languageName: node
+ linkType: hard
+
"@babel/helper-create-regexp-features-plugin@npm:^7.18.6, @babel/helper-create-regexp-features-plugin@npm:^7.22.5":
version: 7.22.6
resolution: "@babel/helper-create-regexp-features-plugin@npm:7.22.6"
@@ -363,6 +456,19 @@ __metadata:
languageName: node
linkType: hard
+"@babel/helper-create-regexp-features-plugin@npm:^7.27.1":
+ version: 7.27.1
+ resolution: "@babel/helper-create-regexp-features-plugin@npm:7.27.1"
+ dependencies:
+ "@babel/helper-annotate-as-pure": ^7.27.1
+ regexpu-core: ^6.2.0
+ semver: ^6.3.1
+ peerDependencies:
+ "@babel/core": ^7.0.0
+ checksum: 2ede6bbad0016a9262fd281ce8f1a5d69e6179dcec4ea282830e924c29a29b66b0544ecb92e4ef4acdaf2c4c990931d7dc442dbcd6a8bcec4bad73923ef70934
+ languageName: node
+ linkType: hard
+
"@babel/helper-define-polyfill-provider@npm:^0.4.1":
version: 0.4.1
resolution: "@babel/helper-define-polyfill-provider@npm:0.4.1"
@@ -438,6 +544,16 @@ __metadata:
languageName: node
linkType: hard
+"@babel/helper-member-expression-to-functions@npm:^7.27.1":
+ version: 7.27.1
+ resolution: "@babel/helper-member-expression-to-functions@npm:7.27.1"
+ dependencies:
+ "@babel/traverse": ^7.27.1
+ "@babel/types": ^7.27.1
+ checksum: b13a3d120015a6fd2f6e6c2ff789cd12498745ef028710cba612cfb751b91ace700c3f96c1689228d1dcb41e9d4cf83d6dff8627dcb0c8da12d79440e783c6b8
+ languageName: node
+ linkType: hard
+
"@babel/helper-module-imports@npm:^7.22.5":
version: 7.22.5
resolution: "@babel/helper-module-imports@npm:7.22.5"
@@ -457,6 +573,16 @@ __metadata:
languageName: node
linkType: hard
+"@babel/helper-module-imports@npm:^7.27.1":
+ version: 7.27.1
+ resolution: "@babel/helper-module-imports@npm:7.27.1"
+ dependencies:
+ "@babel/traverse": ^7.27.1
+ "@babel/types": ^7.27.1
+ checksum: 92d01c71c0e4aacdc2babce418a9a1a27a8f7d770a210ffa0f3933f321befab18b655bc1241bebc40767516731de0b85639140c42e45a8210abe1e792f115b28
+ languageName: node
+ linkType: hard
+
"@babel/helper-module-transforms@npm:^7.22.5":
version: 7.22.5
resolution: "@babel/helper-module-transforms@npm:7.22.5"
@@ -501,6 +627,19 @@ __metadata:
languageName: node
linkType: hard
+"@babel/helper-module-transforms@npm:^7.27.1, @babel/helper-module-transforms@npm:^7.27.3":
+ version: 7.27.3
+ resolution: "@babel/helper-module-transforms@npm:7.27.3"
+ dependencies:
+ "@babel/helper-module-imports": ^7.27.1
+ "@babel/helper-validator-identifier": ^7.27.1
+ "@babel/traverse": ^7.27.3
+ peerDependencies:
+ "@babel/core": ^7.0.0
+ checksum: c611d42d3cb7ba23b1a864fcf8d6cde0dc99e876ca1c9a67e4d7919a70706ded4aaa45420de2bf7f7ea171e078e59f0edcfa15a56d74b9485e151b95b93b946e
+ languageName: node
+ linkType: hard
+
"@babel/helper-optimise-call-expression@npm:^7.22.5":
version: 7.22.5
resolution: "@babel/helper-optimise-call-expression@npm:7.22.5"
@@ -519,6 +658,15 @@ __metadata:
languageName: node
linkType: hard
+"@babel/helper-optimise-call-expression@npm:^7.27.1":
+ version: 7.27.1
+ resolution: "@babel/helper-optimise-call-expression@npm:7.27.1"
+ dependencies:
+ "@babel/types": ^7.27.1
+ checksum: 0fb7ee824a384529d6b74f8a58279f9b56bfe3cce332168067dddeab2552d8eeb56dc8eaf86c04a3a09166a316cb92dfc79c4c623cd034ad4c563952c98b464f
+ languageName: node
+ linkType: hard
+
"@babel/helper-plugin-utils@npm:^7.0.0, @babel/helper-plugin-utils@npm:^7.10.4, @babel/helper-plugin-utils@npm:^7.12.13, @babel/helper-plugin-utils@npm:^7.14.5, @babel/helper-plugin-utils@npm:^7.18.6, @babel/helper-plugin-utils@npm:^7.20.2, @babel/helper-plugin-utils@npm:^7.22.5, @babel/helper-plugin-utils@npm:^7.8.0, @babel/helper-plugin-utils@npm:^7.8.3":
version: 7.22.5
resolution: "@babel/helper-plugin-utils@npm:7.22.5"
@@ -533,6 +681,13 @@ __metadata:
languageName: node
linkType: hard
+"@babel/helper-plugin-utils@npm:^7.27.1":
+ version: 7.27.1
+ resolution: "@babel/helper-plugin-utils@npm:7.27.1"
+ checksum: 5d715055301badab62bdb2336075a77f8dc8bd290cad2bc1b37ea3bf1b3efc40594d308082229f239deb4d6b5b80b0a73bce000e595ea74416e0339c11037047
+ languageName: node
+ linkType: hard
+
"@babel/helper-remap-async-to-generator@npm:^7.22.5":
version: 7.22.5
resolution: "@babel/helper-remap-async-to-generator@npm:7.22.5"
@@ -560,6 +715,19 @@ __metadata:
languageName: node
linkType: hard
+"@babel/helper-remap-async-to-generator@npm:^7.27.1":
+ version: 7.27.1
+ resolution: "@babel/helper-remap-async-to-generator@npm:7.27.1"
+ dependencies:
+ "@babel/helper-annotate-as-pure": ^7.27.1
+ "@babel/helper-wrap-function": ^7.27.1
+ "@babel/traverse": ^7.27.1
+ peerDependencies:
+ "@babel/core": ^7.0.0
+ checksum: 0747397ba013f87dbf575454a76c18210d61c7c9af0f697546b4bcac670b54ddc156330234407b397f0c948738c304c228e0223039bc45eab4fbf46966a5e8cc
+ languageName: node
+ linkType: hard
+
"@babel/helper-replace-supers@npm:^7.22.5":
version: 7.22.5
resolution: "@babel/helper-replace-supers@npm:7.22.5"
@@ -587,6 +755,19 @@ __metadata:
languageName: node
linkType: hard
+"@babel/helper-replace-supers@npm:^7.27.1":
+ version: 7.27.1
+ resolution: "@babel/helper-replace-supers@npm:7.27.1"
+ dependencies:
+ "@babel/helper-member-expression-to-functions": ^7.27.1
+ "@babel/helper-optimise-call-expression": ^7.27.1
+ "@babel/traverse": ^7.27.1
+ peerDependencies:
+ "@babel/core": ^7.0.0
+ checksum: 3690266c304f21008690ba68062f889a363583cabc13c3d033b94513953147af3e0a3fdb48fa1bb9fa3734b64e221fc65e5222ab70837f02321b7225f487c6ef
+ languageName: node
+ linkType: hard
+
"@babel/helper-simple-access@npm:^7.22.5":
version: 7.22.5
resolution: "@babel/helper-simple-access@npm:7.22.5"
@@ -615,6 +796,16 @@ __metadata:
languageName: node
linkType: hard
+"@babel/helper-skip-transparent-expression-wrappers@npm:^7.27.1":
+ version: 7.27.1
+ resolution: "@babel/helper-skip-transparent-expression-wrappers@npm:7.27.1"
+ dependencies:
+ "@babel/traverse": ^7.27.1
+ "@babel/types": ^7.27.1
+ checksum: 4f380c5d0e0769fa6942a468b0c2d7c8f0c438f941aaa88f785f8752c103631d0904c7b4e76207a3b0e6588b2dec376595370d92ca8f8f1b422c14a69aa146d4
+ languageName: node
+ linkType: hard
+
"@babel/helper-split-export-declaration@npm:^7.22.5, @babel/helper-split-export-declaration@npm:^7.22.6":
version: 7.22.6
resolution: "@babel/helper-split-export-declaration@npm:7.22.6"
@@ -638,6 +829,13 @@ __metadata:
languageName: node
linkType: hard
+"@babel/helper-string-parser@npm:^7.27.1":
+ version: 7.27.1
+ resolution: "@babel/helper-string-parser@npm:7.27.1"
+ checksum: 0a8464adc4b39b138aedcb443b09f4005d86207d7126e5e079177e05c3116107d856ec08282b365e9a79a9872f40f4092a6127f8d74c8a01c1ef789dacfc25d6
+ languageName: node
+ linkType: hard
+
"@babel/helper-validator-identifier@npm:^7.22.5":
version: 7.22.5
resolution: "@babel/helper-validator-identifier@npm:7.22.5"
@@ -652,6 +850,13 @@ __metadata:
languageName: node
linkType: hard
+"@babel/helper-validator-identifier@npm:^7.27.1":
+ version: 7.27.1
+ resolution: "@babel/helper-validator-identifier@npm:7.27.1"
+ checksum: 3c7e8391e59d6c85baeefe9afb86432f2ab821c6232b00ea9082a51d3e7e95a2f3fb083d74dc1f49ac82cf238e1d2295dafcb001f7b0fab479f3f56af5eaaa47
+ languageName: node
+ linkType: hard
+
"@babel/helper-validator-option@npm:^7.22.5":
version: 7.22.5
resolution: "@babel/helper-validator-option@npm:7.22.5"
@@ -666,6 +871,13 @@ __metadata:
languageName: node
linkType: hard
+"@babel/helper-validator-option@npm:^7.27.1":
+ version: 7.27.1
+ resolution: "@babel/helper-validator-option@npm:7.27.1"
+ checksum: db73e6a308092531c629ee5de7f0d04390835b21a263be2644276cb27da2384b64676cab9f22cd8d8dbd854c92b1d7d56fc8517cf0070c35d1c14a8c828b0903
+ languageName: node
+ linkType: hard
+
"@babel/helper-wrap-function@npm:^7.22.5":
version: 7.22.5
resolution: "@babel/helper-wrap-function@npm:7.22.5"
@@ -689,6 +901,17 @@ __metadata:
languageName: node
linkType: hard
+"@babel/helper-wrap-function@npm:^7.27.1":
+ version: 7.27.1
+ resolution: "@babel/helper-wrap-function@npm:7.27.1"
+ dependencies:
+ "@babel/template": ^7.27.1
+ "@babel/traverse": ^7.27.1
+ "@babel/types": ^7.27.1
+ checksum: b0427765766494cb5455a188d4cdef5e6167f2835a8ed76f3c25fa3bbe2ec2a716588fa326c52fab0d184a9537200d76e48656e516580a914129d74528322821
+ languageName: node
+ linkType: hard
+
"@babel/helpers@npm:^7.22.6":
version: 7.22.6
resolution: "@babel/helpers@npm:7.22.6"
@@ -710,6 +933,16 @@ __metadata:
languageName: node
linkType: hard
+"@babel/helpers@npm:^7.27.4":
+ version: 7.27.6
+ resolution: "@babel/helpers@npm:7.27.6"
+ dependencies:
+ "@babel/template": ^7.27.2
+ "@babel/types": ^7.27.6
+ checksum: 12f96a5800ff677481dbc0a022c617303e945210cac4821ad5377a31201ffd8d9c4d00f039ed1487cf2a3d15868fb2d6cabecdb1aba334bd40a846f1938053a2
+ languageName: node
+ linkType: hard
+
"@babel/highlight@npm:^7.10.4, @babel/highlight@npm:^7.22.5":
version: 7.22.5
resolution: "@babel/highlight@npm:7.22.5"
@@ -741,6 +974,17 @@ __metadata:
languageName: node
linkType: hard
+"@babel/parser@npm:^7.27.2, @babel/parser@npm:^7.27.4, @babel/parser@npm:^7.27.5":
+ version: 7.27.5
+ resolution: "@babel/parser@npm:7.27.5"
+ dependencies:
+ "@babel/types": ^7.27.3
+ bin:
+ parser: ./bin/babel-parser.js
+ checksum: 16f00a12895522c1682f1f047332010e129ba517add3a2db347a658e02f60434fc38f9105a9d6ec3fd6bfb5d1b0b70d88585c1f10e06e2b58fba29004a42d648
+ languageName: node
+ linkType: hard
+
"@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:^7.25.9":
version: 7.25.9
resolution: "@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:7.25.9"
@@ -753,6 +997,18 @@ __metadata:
languageName: node
linkType: hard
+"@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:^7.27.1":
+ version: 7.27.1
+ resolution: "@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:7.27.1"
+ dependencies:
+ "@babel/helper-plugin-utils": ^7.27.1
+ "@babel/traverse": ^7.27.1
+ peerDependencies:
+ "@babel/core": ^7.0.0
+ checksum: 72f24b9487e445fa61cf8be552aad394a648c2bb445c38d39d1df003186d9685b87dd8d388c950f438ea0ca44c82099d9c49252fb681c719cc72edf02bbe0304
+ languageName: node
+ linkType: hard
+
"@babel/plugin-bugfix-safari-class-field-initializer-scope@npm:^7.25.9":
version: 7.25.9
resolution: "@babel/plugin-bugfix-safari-class-field-initializer-scope@npm:7.25.9"
@@ -764,6 +1020,17 @@ __metadata:
languageName: node
linkType: hard
+"@babel/plugin-bugfix-safari-class-field-initializer-scope@npm:^7.27.1":
+ version: 7.27.1
+ resolution: "@babel/plugin-bugfix-safari-class-field-initializer-scope@npm:7.27.1"
+ dependencies:
+ "@babel/helper-plugin-utils": ^7.27.1
+ peerDependencies:
+ "@babel/core": ^7.0.0
+ checksum: eb7f4146dc01f1198ce559a90b077e58b951a07521ec414e3c7d4593bf6c4ab5c2af22242a7e9fec085e20299e0ba6ea97f44a45e84ab148141bf9eb959ad25e
+ languageName: node
+ linkType: hard
+
"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:^7.22.5":
version: 7.22.5
resolution: "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:7.22.5"
@@ -786,6 +1053,17 @@ __metadata:
languageName: node
linkType: hard
+"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:^7.27.1":
+ version: 7.27.1
+ resolution: "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:7.27.1"
+ dependencies:
+ "@babel/helper-plugin-utils": ^7.27.1
+ peerDependencies:
+ "@babel/core": ^7.0.0
+ checksum: 621cfddfcc99a81e74f8b6f9101fd260b27500cb1a568e3ceae9cc8afe9aee45ac3bca3900a2b66c612b1a2366d29ef67d4df5a1c975be727eaad6906f98c2c6
+ languageName: node
+ linkType: hard
+
"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:^7.22.5":
version: 7.22.5
resolution: "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:7.22.5"
@@ -812,6 +1090,19 @@ __metadata:
languageName: node
linkType: hard
+"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:^7.27.1":
+ version: 7.27.1
+ resolution: "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:7.27.1"
+ dependencies:
+ "@babel/helper-plugin-utils": ^7.27.1
+ "@babel/helper-skip-transparent-expression-wrappers": ^7.27.1
+ "@babel/plugin-transform-optional-chaining": ^7.27.1
+ peerDependencies:
+ "@babel/core": ^7.13.0
+ checksum: f07aa80272bd7a46b7ba11a4644da6c9b6a5a64e848dfaffdad6f02663adefd512e1aaebe664c4dd95f7ed4f80c872c7f8db8d8e34b47aae0930b412a28711a0
+ languageName: node
+ linkType: hard
+
"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:^7.25.9":
version: 7.25.9
resolution: "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:7.25.9"
@@ -824,6 +1115,18 @@ __metadata:
languageName: node
linkType: hard
+"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:^7.27.1":
+ version: 7.27.1
+ resolution: "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:7.27.1"
+ dependencies:
+ "@babel/helper-plugin-utils": ^7.27.1
+ "@babel/traverse": ^7.27.1
+ peerDependencies:
+ "@babel/core": ^7.0.0
+ checksum: 4d6792ccade2d6b9d5577b0a879ab22d05ac8a1206b1a636b6ffdb53a0c0bacaf0f7947e46de254f228ffd75456f4b95ccd82fdeaefc0b92d88af3c5991863ad
+ languageName: node
+ linkType: hard
+
"@babel/plugin-proposal-class-properties@npm:^7.13.0, @babel/plugin-proposal-class-properties@npm:^7.17.12":
version: 7.18.6
resolution: "@babel/plugin-proposal-class-properties@npm:7.18.6"
@@ -1040,6 +1343,17 @@ __metadata:
languageName: node
linkType: hard
+"@babel/plugin-syntax-import-assertions@npm:^7.27.1":
+ version: 7.27.1
+ resolution: "@babel/plugin-syntax-import-assertions@npm:7.27.1"
+ dependencies:
+ "@babel/helper-plugin-utils": ^7.27.1
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: fb661d630808d67ecb85eabad25aac4e9696a20464bad4c4a6a0d3d40e4dc22557d47e9be3d591ec06429cf048cfe169b8891c373606344d51c4f3ac0f91d6d0
+ languageName: node
+ linkType: hard
+
"@babel/plugin-syntax-import-attributes@npm:^7.22.5":
version: 7.22.5
resolution: "@babel/plugin-syntax-import-attributes@npm:7.22.5"
@@ -1062,6 +1376,17 @@ __metadata:
languageName: node
linkType: hard
+"@babel/plugin-syntax-import-attributes@npm:^7.27.1":
+ version: 7.27.1
+ resolution: "@babel/plugin-syntax-import-attributes@npm:7.27.1"
+ dependencies:
+ "@babel/helper-plugin-utils": ^7.27.1
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 97973982fff1bbf86b3d1df13380567042887c50e2ae13a400d02a8ff2c9742a60a75e279bfb73019e1cd9710f04be5e6ab81f896e6678dcfcec8b135e8896cf
+ languageName: node
+ linkType: hard
+
"@babel/plugin-syntax-import-meta@npm:^7.10.4, @babel/plugin-syntax-import-meta@npm:^7.8.3":
version: 7.10.4
resolution: "@babel/plugin-syntax-import-meta@npm:7.10.4"
@@ -1106,6 +1431,17 @@ __metadata:
languageName: node
linkType: hard
+"@babel/plugin-syntax-jsx@npm:^7.27.1":
+ version: 7.27.1
+ resolution: "@babel/plugin-syntax-jsx@npm:7.27.1"
+ dependencies:
+ "@babel/helper-plugin-utils": ^7.27.1
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: c6d1324cff286a369aa95d99b8abd21dd07821b5d3affd5fe7d6058c84cff9190743287826463ee57a7beecd10fa1e4bc99061df532ee14e188c1c8937b13e3a
+ languageName: node
+ linkType: hard
+
"@babel/plugin-syntax-logical-assignment-operators@npm:^7.10.4, @babel/plugin-syntax-logical-assignment-operators@npm:^7.8.3":
version: 7.10.4
resolution: "@babel/plugin-syntax-logical-assignment-operators@npm:7.10.4"
@@ -1216,6 +1552,17 @@ __metadata:
languageName: node
linkType: hard
+"@babel/plugin-syntax-typescript@npm:^7.27.1":
+ version: 7.27.1
+ resolution: "@babel/plugin-syntax-typescript@npm:7.27.1"
+ dependencies:
+ "@babel/helper-plugin-utils": ^7.27.1
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 87836f7e32af624c2914c73cd6b9803cf324e07d43f61dbb973c6a86f75df725e12540d91fac7141c14b697aa9268fd064220998daced156e96ac3062d7afb41
+ languageName: node
+ linkType: hard
+
"@babel/plugin-syntax-unicode-sets-regex@npm:^7.18.6":
version: 7.18.6
resolution: "@babel/plugin-syntax-unicode-sets-regex@npm:7.18.6"
@@ -1250,6 +1597,17 @@ __metadata:
languageName: node
linkType: hard
+"@babel/plugin-transform-arrow-functions@npm:^7.27.1":
+ version: 7.27.1
+ resolution: "@babel/plugin-transform-arrow-functions@npm:7.27.1"
+ dependencies:
+ "@babel/helper-plugin-utils": ^7.27.1
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 62c2cc0ae2093336b1aa1376741c5ed245c0987d9e4b4c5313da4a38155509a7098b5acce582b6781cc0699381420010da2e3086353344abe0a6a0ec38961eb7
+ languageName: node
+ linkType: hard
+
"@babel/plugin-transform-async-generator-functions@npm:^7.22.7":
version: 7.22.7
resolution: "@babel/plugin-transform-async-generator-functions@npm:7.22.7"
@@ -1277,6 +1635,19 @@ __metadata:
languageName: node
linkType: hard
+"@babel/plugin-transform-async-generator-functions@npm:^7.27.1":
+ version: 7.27.1
+ resolution: "@babel/plugin-transform-async-generator-functions@npm:7.27.1"
+ dependencies:
+ "@babel/helper-plugin-utils": ^7.27.1
+ "@babel/helper-remap-async-to-generator": ^7.27.1
+ "@babel/traverse": ^7.27.1
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 37e8b76c992066f81cc24af11a25f296add6ae39f51f2c37da565fc004dbf3ef9733b42808acbfb86792d73f73bfbb4396338abbd364b9103146b119508b49c7
+ languageName: node
+ linkType: hard
+
"@babel/plugin-transform-async-to-generator@npm:^7.22.5":
version: 7.22.5
resolution: "@babel/plugin-transform-async-to-generator@npm:7.22.5"
@@ -1303,6 +1674,19 @@ __metadata:
languageName: node
linkType: hard
+"@babel/plugin-transform-async-to-generator@npm:^7.27.1":
+ version: 7.27.1
+ resolution: "@babel/plugin-transform-async-to-generator@npm:7.27.1"
+ dependencies:
+ "@babel/helper-module-imports": ^7.27.1
+ "@babel/helper-plugin-utils": ^7.27.1
+ "@babel/helper-remap-async-to-generator": ^7.27.1
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: d79d7a7ae7d416f6a48200017d027a6ba94c09c7617eea8b4e9c803630f00094c1a4fc32bf20ce3282567824ce3fcbda51653aac4003c71ea4e681b331338979
+ languageName: node
+ linkType: hard
+
"@babel/plugin-transform-block-scoped-functions@npm:^7.22.5":
version: 7.22.5
resolution: "@babel/plugin-transform-block-scoped-functions@npm:7.22.5"
@@ -1325,6 +1709,17 @@ __metadata:
languageName: node
linkType: hard
+"@babel/plugin-transform-block-scoped-functions@npm:^7.27.1":
+ version: 7.27.1
+ resolution: "@babel/plugin-transform-block-scoped-functions@npm:7.27.1"
+ dependencies:
+ "@babel/helper-plugin-utils": ^7.27.1
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 7fb4988ca80cf1fc8345310d5edfe38e86b3a72a302675cdd09404d5064fe1d1fe1283ebe658ad2b71445ecef857bfb29a748064306b5f6c628e0084759c2201
+ languageName: node
+ linkType: hard
+
"@babel/plugin-transform-block-scoping@npm:^7.22.5":
version: 7.22.5
resolution: "@babel/plugin-transform-block-scoping@npm:7.22.5"
@@ -1347,6 +1742,17 @@ __metadata:
languageName: node
linkType: hard
+"@babel/plugin-transform-block-scoping@npm:^7.27.1":
+ version: 7.27.5
+ resolution: "@babel/plugin-transform-block-scoping@npm:7.27.5"
+ dependencies:
+ "@babel/helper-plugin-utils": ^7.27.1
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: bd710674bebe2e90b1daee960523d06c958f060f439ce2eef6b157c780c0654168131d0312a06dd71c5b186ecc2a818334d16f8368bd273ab549d6230f074135
+ languageName: node
+ linkType: hard
+
"@babel/plugin-transform-class-properties@npm:^7.22.5":
version: 7.22.5
resolution: "@babel/plugin-transform-class-properties@npm:7.22.5"
@@ -1371,6 +1777,18 @@ __metadata:
languageName: node
linkType: hard
+"@babel/plugin-transform-class-properties@npm:^7.27.1":
+ version: 7.27.1
+ resolution: "@babel/plugin-transform-class-properties@npm:7.27.1"
+ dependencies:
+ "@babel/helper-create-class-features-plugin": ^7.27.1
+ "@babel/helper-plugin-utils": ^7.27.1
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 475a6e5a9454912fe1bdc171941976ca10ea4e707675d671cdb5ce6b6761d84d1791ac61b6bca81a2e5f6430cb7b9d8e4b2392404110e69c28207a754e196294
+ languageName: node
+ linkType: hard
+
"@babel/plugin-transform-class-static-block@npm:^7.22.5":
version: 7.22.5
resolution: "@babel/plugin-transform-class-static-block@npm:7.22.5"
@@ -1396,6 +1814,18 @@ __metadata:
languageName: node
linkType: hard
+"@babel/plugin-transform-class-static-block@npm:^7.27.1":
+ version: 7.27.1
+ resolution: "@babel/plugin-transform-class-static-block@npm:7.27.1"
+ dependencies:
+ "@babel/helper-create-class-features-plugin": ^7.27.1
+ "@babel/helper-plugin-utils": ^7.27.1
+ peerDependencies:
+ "@babel/core": ^7.12.0
+ checksum: 69688fe1641ae0ea025b916b8c2336e8b5643a5ec292e8f546ecd35d9d9d4bb301d738910822a79d867098cf687d550d92cd906ae4cda03c0f69b1ece2149a58
+ languageName: node
+ linkType: hard
+
"@babel/plugin-transform-classes@npm:^7.22.6":
version: 7.22.6
resolution: "@babel/plugin-transform-classes@npm:7.22.6"
@@ -1431,6 +1861,22 @@ __metadata:
languageName: node
linkType: hard
+"@babel/plugin-transform-classes@npm:^7.27.1":
+ version: 7.27.1
+ resolution: "@babel/plugin-transform-classes@npm:7.27.1"
+ dependencies:
+ "@babel/helper-annotate-as-pure": ^7.27.1
+ "@babel/helper-compilation-targets": ^7.27.1
+ "@babel/helper-plugin-utils": ^7.27.1
+ "@babel/helper-replace-supers": ^7.27.1
+ "@babel/traverse": ^7.27.1
+ globals: ^11.1.0
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: a4275d3a9e2e4144c421baa49958191e4b33957fca6e87686ed8da0eb3240270d4f91a2a4b9491c87feb6c33f459d8aec013cec8d5f5099c794b740703802dc7
+ languageName: node
+ linkType: hard
+
"@babel/plugin-transform-computed-properties@npm:^7.22.5":
version: 7.22.5
resolution: "@babel/plugin-transform-computed-properties@npm:7.22.5"
@@ -1455,6 +1901,18 @@ __metadata:
languageName: node
linkType: hard
+"@babel/plugin-transform-computed-properties@npm:^7.27.1":
+ version: 7.27.1
+ resolution: "@babel/plugin-transform-computed-properties@npm:7.27.1"
+ dependencies:
+ "@babel/helper-plugin-utils": ^7.27.1
+ "@babel/template": ^7.27.1
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 48bd20f7d631b08c51155751bf75b698d4a22cca36f41c22921ab92e53039c9ec5c3544e5282e18692325ef85d2e4a18c27e12c62b5e20c26fb0c92447e35224
+ languageName: node
+ linkType: hard
+
"@babel/plugin-transform-destructuring@npm:^7.22.5":
version: 7.22.5
resolution: "@babel/plugin-transform-destructuring@npm:7.22.5"
@@ -1477,6 +1935,17 @@ __metadata:
languageName: node
linkType: hard
+"@babel/plugin-transform-destructuring@npm:^7.27.1, @babel/plugin-transform-destructuring@npm:^7.27.3":
+ version: 7.27.3
+ resolution: "@babel/plugin-transform-destructuring@npm:7.27.3"
+ dependencies:
+ "@babel/helper-plugin-utils": ^7.27.1
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 1b00a609e6292a1e48104d63dd479a688e773dcf42c715f7b342ba1725ae9335d75c8569aa0518388ed359f98f0b7155fd7bb0453fbc36445e986b17e5ccaa98
+ languageName: node
+ linkType: hard
+
"@babel/plugin-transform-dotall-regex@npm:^7.22.5, @babel/plugin-transform-dotall-regex@npm:^7.4.4":
version: 7.22.5
resolution: "@babel/plugin-transform-dotall-regex@npm:7.22.5"
@@ -1501,6 +1970,18 @@ __metadata:
languageName: node
linkType: hard
+"@babel/plugin-transform-dotall-regex@npm:^7.27.1":
+ version: 7.27.1
+ resolution: "@babel/plugin-transform-dotall-regex@npm:7.27.1"
+ dependencies:
+ "@babel/helper-create-regexp-features-plugin": ^7.27.1
+ "@babel/helper-plugin-utils": ^7.27.1
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 2173e5b13f403538ffc6bd57b190cedf4caf320abc13a99e5b2721864e7148dbd3bd7c82d92377136af80432818f665fdd9a1fd33bc5549a4c91e24e5ce2413c
+ languageName: node
+ linkType: hard
+
"@babel/plugin-transform-duplicate-keys@npm:^7.22.5":
version: 7.22.5
resolution: "@babel/plugin-transform-duplicate-keys@npm:7.22.5"
@@ -1523,6 +2004,17 @@ __metadata:
languageName: node
linkType: hard
+"@babel/plugin-transform-duplicate-keys@npm:^7.27.1":
+ version: 7.27.1
+ resolution: "@babel/plugin-transform-duplicate-keys@npm:7.27.1"
+ dependencies:
+ "@babel/helper-plugin-utils": ^7.27.1
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: ef2112d658338e3ff0827f39a53c0cfa211f1cbbe60363bca833a5269df389598ec965e7283600b46533c39cdca82307d0d69c0f518290ec5b00bb713044715b
+ languageName: node
+ linkType: hard
+
"@babel/plugin-transform-duplicate-named-capturing-groups-regex@npm:^7.25.9":
version: 7.25.9
resolution: "@babel/plugin-transform-duplicate-named-capturing-groups-regex@npm:7.25.9"
@@ -1535,6 +2027,18 @@ __metadata:
languageName: node
linkType: hard
+"@babel/plugin-transform-duplicate-named-capturing-groups-regex@npm:^7.27.1":
+ version: 7.27.1
+ resolution: "@babel/plugin-transform-duplicate-named-capturing-groups-regex@npm:7.27.1"
+ dependencies:
+ "@babel/helper-create-regexp-features-plugin": ^7.27.1
+ "@babel/helper-plugin-utils": ^7.27.1
+ peerDependencies:
+ "@babel/core": ^7.0.0
+ checksum: 2a109613535e6ac79240dced71429e988affd6a5b3d0cd0f563c8d6c208c51ce7bf2c300bc1150502376b26a51f279119b3358f1c0f2d2f8abca3bcd62e1ae46
+ languageName: node
+ linkType: hard
+
"@babel/plugin-transform-dynamic-import@npm:^7.22.5":
version: 7.22.5
resolution: "@babel/plugin-transform-dynamic-import@npm:7.22.5"
@@ -1558,6 +2062,17 @@ __metadata:
languageName: node
linkType: hard
+"@babel/plugin-transform-dynamic-import@npm:^7.27.1":
+ version: 7.27.1
+ resolution: "@babel/plugin-transform-dynamic-import@npm:7.27.1"
+ dependencies:
+ "@babel/helper-plugin-utils": ^7.27.1
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 7a9fbc8d17148b7f11a1d1ca3990d2c2cd44bd08a45dcaf14f20a017721235b9044b20e6168b6940282bb1b48fb78e6afbdfb9dd9d82fde614e15baa7d579932
+ languageName: node
+ linkType: hard
+
"@babel/plugin-transform-exponentiation-operator@npm:^7.22.5":
version: 7.22.5
resolution: "@babel/plugin-transform-exponentiation-operator@npm:7.22.5"
@@ -1581,6 +2096,17 @@ __metadata:
languageName: node
linkType: hard
+"@babel/plugin-transform-exponentiation-operator@npm:^7.27.1":
+ version: 7.27.1
+ resolution: "@babel/plugin-transform-exponentiation-operator@npm:7.27.1"
+ dependencies:
+ "@babel/helper-plugin-utils": ^7.27.1
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 4ff4a0f30babc457a5ae8564deda209599627c2ce647284a0e8e66f65b44f6d968cf77761a4cc31b45b61693f0810479248c79e681681d8ccb39d0c52944c1fd
+ languageName: node
+ linkType: hard
+
"@babel/plugin-transform-export-namespace-from@npm:^7.22.11, @babel/plugin-transform-export-namespace-from@npm:^7.23.4, @babel/plugin-transform-export-namespace-from@npm:^7.25.9":
version: 7.25.9
resolution: "@babel/plugin-transform-export-namespace-from@npm:7.25.9"
@@ -1604,6 +2130,17 @@ __metadata:
languageName: node
linkType: hard
+"@babel/plugin-transform-export-namespace-from@npm:^7.27.1":
+ version: 7.27.1
+ resolution: "@babel/plugin-transform-export-namespace-from@npm:7.27.1"
+ dependencies:
+ "@babel/helper-plugin-utils": ^7.27.1
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 85082923eca317094f08f4953d8ea2a6558b3117826c0b740676983902b7236df1f4213ad844cb38c2dae104753dbe8f1cc51f01567835d476d32f5f544a4385
+ languageName: node
+ linkType: hard
+
"@babel/plugin-transform-flow-strip-types@npm:^7.22.5":
version: 7.22.5
resolution: "@babel/plugin-transform-flow-strip-types@npm:7.22.5"
@@ -1651,6 +2188,18 @@ __metadata:
languageName: node
linkType: hard
+"@babel/plugin-transform-for-of@npm:^7.27.1":
+ version: 7.27.1
+ resolution: "@babel/plugin-transform-for-of@npm:7.27.1"
+ dependencies:
+ "@babel/helper-plugin-utils": ^7.27.1
+ "@babel/helper-skip-transparent-expression-wrappers": ^7.27.1
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: c9224e08de5d80b2c834383d4359aa9e519db434291711434dd996a4f86b7b664ad67b45d65459b7ec11fa582e3e11a3c769b8a8ca71594bdd4e2f0503f84126
+ languageName: node
+ linkType: hard
+
"@babel/plugin-transform-function-name@npm:^7.22.5":
version: 7.22.5
resolution: "@babel/plugin-transform-function-name@npm:7.22.5"
@@ -1677,6 +2226,19 @@ __metadata:
languageName: node
linkType: hard
+"@babel/plugin-transform-function-name@npm:^7.27.1":
+ version: 7.27.1
+ resolution: "@babel/plugin-transform-function-name@npm:7.27.1"
+ dependencies:
+ "@babel/helper-compilation-targets": ^7.27.1
+ "@babel/helper-plugin-utils": ^7.27.1
+ "@babel/traverse": ^7.27.1
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 26a2a183c3c52a96495967420a64afc5a09f743a230272a131668abf23001e393afa6371e6f8e6c60f4182bea210ed31d1caf866452d91009c1daac345a52f23
+ languageName: node
+ linkType: hard
+
"@babel/plugin-transform-json-strings@npm:^7.22.5":
version: 7.22.5
resolution: "@babel/plugin-transform-json-strings@npm:7.22.5"
@@ -1700,6 +2262,17 @@ __metadata:
languageName: node
linkType: hard
+"@babel/plugin-transform-json-strings@npm:^7.27.1":
+ version: 7.27.1
+ resolution: "@babel/plugin-transform-json-strings@npm:7.27.1"
+ dependencies:
+ "@babel/helper-plugin-utils": ^7.27.1
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 2c05a02f63b49f47069271b3405a66c3c8038de5b995b0700b1bd9a5e2bb3e67abd01e4604629302a521f4d8122a4233944aefa16559fd4373d256cc5d3da57f
+ languageName: node
+ linkType: hard
+
"@babel/plugin-transform-literals@npm:^7.22.5":
version: 7.22.5
resolution: "@babel/plugin-transform-literals@npm:7.22.5"
@@ -1722,6 +2295,17 @@ __metadata:
languageName: node
linkType: hard
+"@babel/plugin-transform-literals@npm:^7.27.1":
+ version: 7.27.1
+ resolution: "@babel/plugin-transform-literals@npm:7.27.1"
+ dependencies:
+ "@babel/helper-plugin-utils": ^7.27.1
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 0a76d12ab19f32dd139964aea7da48cecdb7de0b75e207e576f0f700121fe92367d788f328bf4fb44b8261a0f605c97b44e62ae61cddbb67b14e94c88b411f95
+ languageName: node
+ linkType: hard
+
"@babel/plugin-transform-logical-assignment-operators@npm:^7.22.5":
version: 7.22.5
resolution: "@babel/plugin-transform-logical-assignment-operators@npm:7.22.5"
@@ -1745,6 +2329,17 @@ __metadata:
languageName: node
linkType: hard
+"@babel/plugin-transform-logical-assignment-operators@npm:^7.27.1":
+ version: 7.27.1
+ resolution: "@babel/plugin-transform-logical-assignment-operators@npm:7.27.1"
+ dependencies:
+ "@babel/helper-plugin-utils": ^7.27.1
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 2757955d81d65cc4701c17b83720745f6858f7a1d1d58117e379c204f47adbeb066b778596b6168bdbf4a22c229aab595d79a9abc261d0c6bfd62d4419466e73
+ languageName: node
+ linkType: hard
+
"@babel/plugin-transform-member-expression-literals@npm:^7.22.5":
version: 7.22.5
resolution: "@babel/plugin-transform-member-expression-literals@npm:7.22.5"
@@ -1767,6 +2362,17 @@ __metadata:
languageName: node
linkType: hard
+"@babel/plugin-transform-member-expression-literals@npm:^7.27.1":
+ version: 7.27.1
+ resolution: "@babel/plugin-transform-member-expression-literals@npm:7.27.1"
+ dependencies:
+ "@babel/helper-plugin-utils": ^7.27.1
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 804121430a6dcd431e6ffe99c6d1fbbc44b43478113b79c677629e7f877b4f78a06b69c6bfb2747fd84ee91879fe2eb32e4620b53124603086cf5b727593ebe8
+ languageName: node
+ linkType: hard
+
"@babel/plugin-transform-modules-amd@npm:^7.22.5":
version: 7.22.5
resolution: "@babel/plugin-transform-modules-amd@npm:7.22.5"
@@ -1783,11 +2389,23 @@ __metadata:
version: 7.25.9
resolution: "@babel/plugin-transform-modules-amd@npm:7.25.9"
dependencies:
- "@babel/helper-module-transforms": ^7.25.9
- "@babel/helper-plugin-utils": ^7.25.9
+ "@babel/helper-module-transforms": ^7.25.9
+ "@babel/helper-plugin-utils": ^7.25.9
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: baad1f6fd0e0d38e9a9c1086a06abdc014c4c653fd452337cadfe23fb5bd8bf4368d1bc433a5ac8e6421bc0732ebb7c044cf3fb39c1b7ebe967d66e26c4e5cec
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-modules-amd@npm:^7.27.1":
+ version: 7.27.1
+ resolution: "@babel/plugin-transform-modules-amd@npm:7.27.1"
+ dependencies:
+ "@babel/helper-module-transforms": ^7.27.1
+ "@babel/helper-plugin-utils": ^7.27.1
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: baad1f6fd0e0d38e9a9c1086a06abdc014c4c653fd452337cadfe23fb5bd8bf4368d1bc433a5ac8e6421bc0732ebb7c044cf3fb39c1b7ebe967d66e26c4e5cec
+ checksum: 8bb36d448e438d5d30f4faf19120e8c18aa87730269e65d805bf6032824d175ed738057cc392c2c8a650028f1ae0f346cad8d6b723f31a037b586e2092a7be18
languageName: node
linkType: hard
@@ -1816,6 +2434,18 @@ __metadata:
languageName: node
linkType: hard
+"@babel/plugin-transform-modules-commonjs@npm:^7.27.1":
+ version: 7.27.1
+ resolution: "@babel/plugin-transform-modules-commonjs@npm:7.27.1"
+ dependencies:
+ "@babel/helper-module-transforms": ^7.27.1
+ "@babel/helper-plugin-utils": ^7.27.1
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: bc45c1beff9b145c982bd6a614af338893d38bce18a9df7d658c9084e0d8114b286dcd0e015132ae7b15dd966153cb13321e4800df9766d0ddd892d22bf09d2a
+ languageName: node
+ linkType: hard
+
"@babel/plugin-transform-modules-systemjs@npm:^7.22.5":
version: 7.22.5
resolution: "@babel/plugin-transform-modules-systemjs@npm:7.22.5"
@@ -1844,6 +2474,20 @@ __metadata:
languageName: node
linkType: hard
+"@babel/plugin-transform-modules-systemjs@npm:^7.27.1":
+ version: 7.27.1
+ resolution: "@babel/plugin-transform-modules-systemjs@npm:7.27.1"
+ dependencies:
+ "@babel/helper-module-transforms": ^7.27.1
+ "@babel/helper-plugin-utils": ^7.27.1
+ "@babel/helper-validator-identifier": ^7.27.1
+ "@babel/traverse": ^7.27.1
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 7c17a8973676c18525d87f277944616596f1b154cc2b9263bfd78ecdbf5f4288ec46c7f58017321ca3e3d6dfeb96875467b95311a39719b475d42a157525d87f
+ languageName: node
+ linkType: hard
+
"@babel/plugin-transform-modules-umd@npm:^7.22.5":
version: 7.22.5
resolution: "@babel/plugin-transform-modules-umd@npm:7.22.5"
@@ -1868,6 +2512,18 @@ __metadata:
languageName: node
linkType: hard
+"@babel/plugin-transform-modules-umd@npm:^7.27.1":
+ version: 7.27.1
+ resolution: "@babel/plugin-transform-modules-umd@npm:7.27.1"
+ dependencies:
+ "@babel/helper-module-transforms": ^7.27.1
+ "@babel/helper-plugin-utils": ^7.27.1
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: b007dd89231f2eeccf1c71a85629bcb692573303977a4b1c5f19a835ea6b5142c18ef07849bc6d752b874a11bc0ddf3c67468b77c8ee8310290b688a4f01ef31
+ languageName: node
+ linkType: hard
+
"@babel/plugin-transform-named-capturing-groups-regex@npm:^7.22.5":
version: 7.22.5
resolution: "@babel/plugin-transform-named-capturing-groups-regex@npm:7.22.5"
@@ -1892,6 +2548,18 @@ __metadata:
languageName: node
linkType: hard
+"@babel/plugin-transform-named-capturing-groups-regex@npm:^7.27.1":
+ version: 7.27.1
+ resolution: "@babel/plugin-transform-named-capturing-groups-regex@npm:7.27.1"
+ dependencies:
+ "@babel/helper-create-regexp-features-plugin": ^7.27.1
+ "@babel/helper-plugin-utils": ^7.27.1
+ peerDependencies:
+ "@babel/core": ^7.0.0
+ checksum: a711c92d9753df26cefc1792481e5cbff4fe4f32b383d76b25e36fa865d8023b1b9aa6338cf18f5c0e864c71a7fbe8115e840872ccd61a914d9953849c68de7d
+ languageName: node
+ linkType: hard
+
"@babel/plugin-transform-new-target@npm:^7.22.5":
version: 7.22.5
resolution: "@babel/plugin-transform-new-target@npm:7.22.5"
@@ -1914,6 +2582,17 @@ __metadata:
languageName: node
linkType: hard
+"@babel/plugin-transform-new-target@npm:^7.27.1":
+ version: 7.27.1
+ resolution: "@babel/plugin-transform-new-target@npm:7.27.1"
+ dependencies:
+ "@babel/helper-plugin-utils": ^7.27.1
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 32c8078d843bda001244509442d68fd3af088d7348ba883f45c262b2c817a27ffc553b0d78e7f7a763271b2ece7fac56151baad7a91fb21f5bb1d2f38e5acad7
+ languageName: node
+ linkType: hard
+
"@babel/plugin-transform-nullish-coalescing-operator@npm:^7.22.5":
version: 7.22.5
resolution: "@babel/plugin-transform-nullish-coalescing-operator@npm:7.22.5"
@@ -1937,6 +2616,17 @@ __metadata:
languageName: node
linkType: hard
+"@babel/plugin-transform-nullish-coalescing-operator@npm:^7.27.1":
+ version: 7.27.1
+ resolution: "@babel/plugin-transform-nullish-coalescing-operator@npm:7.27.1"
+ dependencies:
+ "@babel/helper-plugin-utils": ^7.27.1
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 1c6b3730748782d2178cc30f5cc37be7d7666148260f3f2dfc43999908bdd319bdfebaaf19cf04ac1f9dee0f7081093d3fa730cda5ae1b34bcd73ce406a78be7
+ languageName: node
+ linkType: hard
+
"@babel/plugin-transform-numeric-separator@npm:^7.22.5":
version: 7.22.5
resolution: "@babel/plugin-transform-numeric-separator@npm:7.22.5"
@@ -1960,6 +2650,17 @@ __metadata:
languageName: node
linkType: hard
+"@babel/plugin-transform-numeric-separator@npm:^7.27.1":
+ version: 7.27.1
+ resolution: "@babel/plugin-transform-numeric-separator@npm:7.27.1"
+ dependencies:
+ "@babel/helper-plugin-utils": ^7.27.1
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 049b958911de86d32408cd78017940a207e49c054ae9534ab53a32a57122cc592c0aae3c166d6f29bd1a7d75cc779d71883582dd76cb28b2fbb493e842d8ffca
+ languageName: node
+ linkType: hard
+
"@babel/plugin-transform-object-rest-spread@npm:^7.12.13, @babel/plugin-transform-object-rest-spread@npm:^7.24.7, @babel/plugin-transform-object-rest-spread@npm:^7.25.9":
version: 7.25.9
resolution: "@babel/plugin-transform-object-rest-spread@npm:7.25.9"
@@ -1988,6 +2689,20 @@ __metadata:
languageName: node
linkType: hard
+"@babel/plugin-transform-object-rest-spread@npm:^7.27.2":
+ version: 7.27.3
+ resolution: "@babel/plugin-transform-object-rest-spread@npm:7.27.3"
+ dependencies:
+ "@babel/helper-compilation-targets": ^7.27.2
+ "@babel/helper-plugin-utils": ^7.27.1
+ "@babel/plugin-transform-destructuring": ^7.27.3
+ "@babel/plugin-transform-parameters": ^7.27.1
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 624db8badc844d3256ce9b5d062f1716f01c15ab3ed023dc971eb8083bba55e83be8dc25971b4570d2cd8979eb2c61a3b08d332bd0ec1816ee8afbf1659472bf
+ languageName: node
+ linkType: hard
+
"@babel/plugin-transform-object-super@npm:^7.22.5":
version: 7.22.5
resolution: "@babel/plugin-transform-object-super@npm:7.22.5"
@@ -2012,6 +2727,18 @@ __metadata:
languageName: node
linkType: hard
+"@babel/plugin-transform-object-super@npm:^7.27.1":
+ version: 7.27.1
+ resolution: "@babel/plugin-transform-object-super@npm:7.27.1"
+ dependencies:
+ "@babel/helper-plugin-utils": ^7.27.1
+ "@babel/helper-replace-supers": ^7.27.1
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 46b819cb9a6cd3cfefe42d07875fee414f18d5e66040366ae856116db560ad4e16f3899a0a7fddd6773e0d1458444f94b208b67c0e3b6977a27ea17a5c13dbf6
+ languageName: node
+ linkType: hard
+
"@babel/plugin-transform-optional-catch-binding@npm:^7.22.5":
version: 7.22.5
resolution: "@babel/plugin-transform-optional-catch-binding@npm:7.22.5"
@@ -2035,6 +2762,17 @@ __metadata:
languageName: node
linkType: hard
+"@babel/plugin-transform-optional-catch-binding@npm:^7.27.1":
+ version: 7.27.1
+ resolution: "@babel/plugin-transform-optional-catch-binding@npm:7.27.1"
+ dependencies:
+ "@babel/helper-plugin-utils": ^7.27.1
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: f4356b04cf21a98480f9788ea50f1f13ee88e89bb6393ba4b84d1f39a4a84c7928c9a4328e8f4c5b6deb218da68a8fd17bf4f46faec7653ddc20ffaaa5ba49f4
+ languageName: node
+ linkType: hard
+
"@babel/plugin-transform-optional-chaining@npm:^7.22.5, @babel/plugin-transform-optional-chaining@npm:^7.22.6":
version: 7.22.6
resolution: "@babel/plugin-transform-optional-chaining@npm:7.22.6"
@@ -2060,6 +2798,18 @@ __metadata:
languageName: node
linkType: hard
+"@babel/plugin-transform-optional-chaining@npm:^7.27.1":
+ version: 7.27.1
+ resolution: "@babel/plugin-transform-optional-chaining@npm:7.27.1"
+ dependencies:
+ "@babel/helper-plugin-utils": ^7.27.1
+ "@babel/helper-skip-transparent-expression-wrappers": ^7.27.1
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: c4428d31f182d724db6f10575669aad3dbccceb0dea26aa9071fa89f11b3456278da3097fcc78937639a13c105a82cd452dc0218ce51abdbcf7626a013b928a5
+ languageName: node
+ linkType: hard
+
"@babel/plugin-transform-parameters@npm:^7.22.15, @babel/plugin-transform-parameters@npm:^7.24.7, @babel/plugin-transform-parameters@npm:^7.25.9":
version: 7.25.9
resolution: "@babel/plugin-transform-parameters@npm:7.25.9"
@@ -2082,6 +2832,17 @@ __metadata:
languageName: node
linkType: hard
+"@babel/plugin-transform-parameters@npm:^7.27.1":
+ version: 7.27.1
+ resolution: "@babel/plugin-transform-parameters@npm:7.27.1"
+ dependencies:
+ "@babel/helper-plugin-utils": ^7.27.1
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 52dd9db2be63ca954dbf86bba3f1dedce5f8bcf0cbc2b9ab26981b6f9c3ad5ea3a1b7ba286d18ae05d7487763f2bd086533826ee82f7b8d76873265569e45125
+ languageName: node
+ linkType: hard
+
"@babel/plugin-transform-private-methods@npm:^7.22.5":
version: 7.22.5
resolution: "@babel/plugin-transform-private-methods@npm:7.22.5"
@@ -2106,6 +2867,18 @@ __metadata:
languageName: node
linkType: hard
+"@babel/plugin-transform-private-methods@npm:^7.27.1":
+ version: 7.27.1
+ resolution: "@babel/plugin-transform-private-methods@npm:7.27.1"
+ dependencies:
+ "@babel/helper-create-class-features-plugin": ^7.27.1
+ "@babel/helper-plugin-utils": ^7.27.1
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: c76f8f6056946466116e67eb9d8014a2d748ade2062636ab82045c1dac9c233aff10e597777bc5af6f26428beb845ceb41b95007abef7d0484da95789da56662
+ languageName: node
+ linkType: hard
+
"@babel/plugin-transform-private-property-in-object@npm:^7.22.5":
version: 7.22.5
resolution: "@babel/plugin-transform-private-property-in-object@npm:7.22.5"
@@ -2133,6 +2906,19 @@ __metadata:
languageName: node
linkType: hard
+"@babel/plugin-transform-private-property-in-object@npm:^7.27.1":
+ version: 7.27.1
+ resolution: "@babel/plugin-transform-private-property-in-object@npm:7.27.1"
+ dependencies:
+ "@babel/helper-annotate-as-pure": ^7.27.1
+ "@babel/helper-create-class-features-plugin": ^7.27.1
+ "@babel/helper-plugin-utils": ^7.27.1
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: af539af1bd423aa46b9da83d649be716494ca80783841f47094b6741fa24e11141446027fd152ddff791dede9d4a76d0d5eb467402a2e584d7f5ea90e2673c7e
+ languageName: node
+ linkType: hard
+
"@babel/plugin-transform-property-literals@npm:^7.22.5":
version: 7.22.5
resolution: "@babel/plugin-transform-property-literals@npm:7.22.5"
@@ -2155,6 +2941,17 @@ __metadata:
languageName: node
linkType: hard
+"@babel/plugin-transform-property-literals@npm:^7.27.1":
+ version: 7.27.1
+ resolution: "@babel/plugin-transform-property-literals@npm:7.27.1"
+ dependencies:
+ "@babel/helper-plugin-utils": ^7.27.1
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 7caec27d5ed8870895c9faf4f71def72745d69da0d8e77903146a4e135fd7bed5778f5f9cebb36c5fba86338e6194dd67a08c033fc84b4299b7eceab6d9630cb
+ languageName: node
+ linkType: hard
+
"@babel/plugin-transform-react-display-name@npm:^7.22.5":
version: 7.22.5
resolution: "@babel/plugin-transform-react-display-name@npm:7.22.5"
@@ -2299,6 +3096,17 @@ __metadata:
languageName: node
linkType: hard
+"@babel/plugin-transform-regenerator@npm:^7.27.1":
+ version: 7.27.5
+ resolution: "@babel/plugin-transform-regenerator@npm:7.27.5"
+ dependencies:
+ "@babel/helper-plugin-utils": ^7.27.1
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: d343dbe491f2b2ef953ce990761006b8f1f9231044b3c244529d34335ba8337829e6d55cae0e4e9ec6d4952bc4875097c8776eee01119cd45529bc49e90c085f
+ languageName: node
+ linkType: hard
+
"@babel/plugin-transform-regexp-modifiers@npm:^7.26.0":
version: 7.26.0
resolution: "@babel/plugin-transform-regexp-modifiers@npm:7.26.0"
@@ -2311,6 +3119,18 @@ __metadata:
languageName: node
linkType: hard
+"@babel/plugin-transform-regexp-modifiers@npm:^7.27.1":
+ version: 7.27.1
+ resolution: "@babel/plugin-transform-regexp-modifiers@npm:7.27.1"
+ dependencies:
+ "@babel/helper-create-regexp-features-plugin": ^7.27.1
+ "@babel/helper-plugin-utils": ^7.27.1
+ peerDependencies:
+ "@babel/core": ^7.0.0
+ checksum: f6cb385fe0e798bff7e9b20cf5912bf40e180895ff3610b1ccdce260f3c20daaebb3a99dc087c8168a99151cd3e16b94f4689fd5a4b01cf1834b45c133e620b2
+ languageName: node
+ linkType: hard
+
"@babel/plugin-transform-reserved-words@npm:^7.22.5":
version: 7.22.5
resolution: "@babel/plugin-transform-reserved-words@npm:7.22.5"
@@ -2333,6 +3153,17 @@ __metadata:
languageName: node
linkType: hard
+"@babel/plugin-transform-reserved-words@npm:^7.27.1":
+ version: 7.27.1
+ resolution: "@babel/plugin-transform-reserved-words@npm:7.27.1"
+ dependencies:
+ "@babel/helper-plugin-utils": ^7.27.1
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: dea0b66742d2863b369c06c053e11e15ba785892ea19cccf7aef3c1bdaa38b6ab082e19984c5ea7810d275d9445c5400fcc385ad71ce707ed9256fadb102af3b
+ languageName: node
+ linkType: hard
+
"@babel/plugin-transform-runtime@npm:^7.24.7":
version: 7.26.9
resolution: "@babel/plugin-transform-runtime@npm:7.26.9"
@@ -2371,6 +3202,17 @@ __metadata:
languageName: node
linkType: hard
+"@babel/plugin-transform-shorthand-properties@npm:^7.27.1":
+ version: 7.27.1
+ resolution: "@babel/plugin-transform-shorthand-properties@npm:7.27.1"
+ dependencies:
+ "@babel/helper-plugin-utils": ^7.27.1
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: fbba6e2aef0b69681acb68202aa249c0598e470cc0853d7ff5bd0171fd6a7ec31d77cfabcce9df6360fc8349eded7e4a65218c32551bd3fc0caaa1ac899ac6d4
+ languageName: node
+ linkType: hard
+
"@babel/plugin-transform-spread@npm:^7.22.5":
version: 7.22.5
resolution: "@babel/plugin-transform-spread@npm:7.22.5"
@@ -2395,6 +3237,18 @@ __metadata:
languageName: node
linkType: hard
+"@babel/plugin-transform-spread@npm:^7.27.1":
+ version: 7.27.1
+ resolution: "@babel/plugin-transform-spread@npm:7.27.1"
+ dependencies:
+ "@babel/helper-plugin-utils": ^7.27.1
+ "@babel/helper-skip-transparent-expression-wrappers": ^7.27.1
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 58b08085ee9c29955ac3b68d61c1a79728d44d19a69cb5eb669794aeaf54c57c6647af7b979c1297e81ede3d08b3ddcb1936ef39a533f28ff3e399a9be54dab1
+ languageName: node
+ linkType: hard
+
"@babel/plugin-transform-sticky-regex@npm:^7.22.5":
version: 7.22.5
resolution: "@babel/plugin-transform-sticky-regex@npm:7.22.5"
@@ -2417,6 +3271,17 @@ __metadata:
languageName: node
linkType: hard
+"@babel/plugin-transform-sticky-regex@npm:^7.27.1":
+ version: 7.27.1
+ resolution: "@babel/plugin-transform-sticky-regex@npm:7.27.1"
+ dependencies:
+ "@babel/helper-plugin-utils": ^7.27.1
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: e1414a502efba92c7974681767e365a8cda6c5e9e5f33472a9eaa0ce2e75cea0a9bef881ff8dda37c7810ad902f98d3c00ead92a3ac3b73a79d011df85b5a189
+ languageName: node
+ linkType: hard
+
"@babel/plugin-transform-template-literals@npm:^7.22.5":
version: 7.22.5
resolution: "@babel/plugin-transform-template-literals@npm:7.22.5"
@@ -2439,6 +3304,17 @@ __metadata:
languageName: node
linkType: hard
+"@babel/plugin-transform-template-literals@npm:^7.27.1":
+ version: 7.27.1
+ resolution: "@babel/plugin-transform-template-literals@npm:7.27.1"
+ dependencies:
+ "@babel/helper-plugin-utils": ^7.27.1
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 93aad782503b691faef7c0893372d5243df3219b07f1f22cfc32c104af6a2e7acd6102c128439eab15336d048f1b214ca134b87b0630d8cd568bf447f78b25ce
+ languageName: node
+ linkType: hard
+
"@babel/plugin-transform-typeof-symbol@npm:^7.22.5":
version: 7.22.5
resolution: "@babel/plugin-transform-typeof-symbol@npm:7.22.5"
@@ -2461,6 +3337,17 @@ __metadata:
languageName: node
linkType: hard
+"@babel/plugin-transform-typeof-symbol@npm:^7.27.1":
+ version: 7.27.1
+ resolution: "@babel/plugin-transform-typeof-symbol@npm:7.27.1"
+ dependencies:
+ "@babel/helper-plugin-utils": ^7.27.1
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: ed8048c8de72c60969a64cf2273cc6d9275d8fa8db9bd25a1268273a00fb9cbd79931140311411bda1443aa56cb3961fb911d1795abacde7f0482f1d8fdf0356
+ languageName: node
+ linkType: hard
+
"@babel/plugin-transform-typescript@npm:^7.22.5":
version: 7.22.5
resolution: "@babel/plugin-transform-typescript@npm:7.22.5"
@@ -2490,6 +3377,21 @@ __metadata:
languageName: node
linkType: hard
+"@babel/plugin-transform-typescript@npm:^7.27.1":
+ version: 7.27.1
+ resolution: "@babel/plugin-transform-typescript@npm:7.27.1"
+ dependencies:
+ "@babel/helper-annotate-as-pure": ^7.27.1
+ "@babel/helper-create-class-features-plugin": ^7.27.1
+ "@babel/helper-plugin-utils": ^7.27.1
+ "@babel/helper-skip-transparent-expression-wrappers": ^7.27.1
+ "@babel/plugin-syntax-typescript": ^7.27.1
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 0037db32fedaacf42b5b3df774263bb7176d455859f77322f57135f7e50e457e5c95151280fc83bb9942fc1839e785489b098d73c9539d0f3c7dc9d42b3a8e86
+ languageName: node
+ linkType: hard
+
"@babel/plugin-transform-unicode-escapes@npm:^7.22.5":
version: 7.22.5
resolution: "@babel/plugin-transform-unicode-escapes@npm:7.22.5"
@@ -2512,6 +3414,17 @@ __metadata:
languageName: node
linkType: hard
+"@babel/plugin-transform-unicode-escapes@npm:^7.27.1":
+ version: 7.27.1
+ resolution: "@babel/plugin-transform-unicode-escapes@npm:7.27.1"
+ dependencies:
+ "@babel/helper-plugin-utils": ^7.27.1
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: d817154bc10758ddd85b716e0bc1af1a1091e088400289ab6b78a1a4d609907ce3d2f1fd51a6fd0e0c8ecbb5f8e3aab4957e0747776d132d2379e85c3ef0520a
+ languageName: node
+ linkType: hard
+
"@babel/plugin-transform-unicode-property-regex@npm:^7.22.5":
version: 7.22.5
resolution: "@babel/plugin-transform-unicode-property-regex@npm:7.22.5"
@@ -2536,6 +3449,18 @@ __metadata:
languageName: node
linkType: hard
+"@babel/plugin-transform-unicode-property-regex@npm:^7.27.1":
+ version: 7.27.1
+ resolution: "@babel/plugin-transform-unicode-property-regex@npm:7.27.1"
+ dependencies:
+ "@babel/helper-create-regexp-features-plugin": ^7.27.1
+ "@babel/helper-plugin-utils": ^7.27.1
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 5d99c89537d1ebaac3f526c04b162cf95a47d363d4829f78c6701a2c06ab78a48da66a94f853f85f44a3d72153410ba923e072bed4b7166fa097f503eb14131d
+ languageName: node
+ linkType: hard
+
"@babel/plugin-transform-unicode-regex@npm:^7.22.5":
version: 7.22.5
resolution: "@babel/plugin-transform-unicode-regex@npm:7.22.5"
@@ -2560,6 +3485,18 @@ __metadata:
languageName: node
linkType: hard
+"@babel/plugin-transform-unicode-regex@npm:^7.27.1":
+ version: 7.27.1
+ resolution: "@babel/plugin-transform-unicode-regex@npm:7.27.1"
+ dependencies:
+ "@babel/helper-create-regexp-features-plugin": ^7.27.1
+ "@babel/helper-plugin-utils": ^7.27.1
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: a34d89a2b75fb78e66d97c3dc90d4877f7e31f43316b52176f95a5dee20e9bb56ecf158eafc42a001676ddf7b393d9e67650bad6b32f5405780f25fb83cd68e3
+ languageName: node
+ linkType: hard
+
"@babel/plugin-transform-unicode-sets-regex@npm:^7.22.5":
version: 7.22.5
resolution: "@babel/plugin-transform-unicode-sets-regex@npm:7.22.5"
@@ -2584,6 +3521,97 @@ __metadata:
languageName: node
linkType: hard
+"@babel/plugin-transform-unicode-sets-regex@npm:^7.27.1":
+ version: 7.27.1
+ resolution: "@babel/plugin-transform-unicode-sets-regex@npm:7.27.1"
+ dependencies:
+ "@babel/helper-create-regexp-features-plugin": ^7.27.1
+ "@babel/helper-plugin-utils": ^7.27.1
+ peerDependencies:
+ "@babel/core": ^7.0.0
+ checksum: 295126074c7388ab05c82ef3ed0907a1ee4666bbdd763477ead9aba6eb2c74bdf65669416861ac93d337a4a27640963bb214acadc2697275ce95aab14868d57f
+ languageName: node
+ linkType: hard
+
+"@babel/preset-env@npm:7.27.2":
+ version: 7.27.2
+ resolution: "@babel/preset-env@npm:7.27.2"
+ dependencies:
+ "@babel/compat-data": ^7.27.2
+ "@babel/helper-compilation-targets": ^7.27.2
+ "@babel/helper-plugin-utils": ^7.27.1
+ "@babel/helper-validator-option": ^7.27.1
+ "@babel/plugin-bugfix-firefox-class-in-computed-class-key": ^7.27.1
+ "@babel/plugin-bugfix-safari-class-field-initializer-scope": ^7.27.1
+ "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": ^7.27.1
+ "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": ^7.27.1
+ "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": ^7.27.1
+ "@babel/plugin-proposal-private-property-in-object": 7.21.0-placeholder-for-preset-env.2
+ "@babel/plugin-syntax-import-assertions": ^7.27.1
+ "@babel/plugin-syntax-import-attributes": ^7.27.1
+ "@babel/plugin-syntax-unicode-sets-regex": ^7.18.6
+ "@babel/plugin-transform-arrow-functions": ^7.27.1
+ "@babel/plugin-transform-async-generator-functions": ^7.27.1
+ "@babel/plugin-transform-async-to-generator": ^7.27.1
+ "@babel/plugin-transform-block-scoped-functions": ^7.27.1
+ "@babel/plugin-transform-block-scoping": ^7.27.1
+ "@babel/plugin-transform-class-properties": ^7.27.1
+ "@babel/plugin-transform-class-static-block": ^7.27.1
+ "@babel/plugin-transform-classes": ^7.27.1
+ "@babel/plugin-transform-computed-properties": ^7.27.1
+ "@babel/plugin-transform-destructuring": ^7.27.1
+ "@babel/plugin-transform-dotall-regex": ^7.27.1
+ "@babel/plugin-transform-duplicate-keys": ^7.27.1
+ "@babel/plugin-transform-duplicate-named-capturing-groups-regex": ^7.27.1
+ "@babel/plugin-transform-dynamic-import": ^7.27.1
+ "@babel/plugin-transform-exponentiation-operator": ^7.27.1
+ "@babel/plugin-transform-export-namespace-from": ^7.27.1
+ "@babel/plugin-transform-for-of": ^7.27.1
+ "@babel/plugin-transform-function-name": ^7.27.1
+ "@babel/plugin-transform-json-strings": ^7.27.1
+ "@babel/plugin-transform-literals": ^7.27.1
+ "@babel/plugin-transform-logical-assignment-operators": ^7.27.1
+ "@babel/plugin-transform-member-expression-literals": ^7.27.1
+ "@babel/plugin-transform-modules-amd": ^7.27.1
+ "@babel/plugin-transform-modules-commonjs": ^7.27.1
+ "@babel/plugin-transform-modules-systemjs": ^7.27.1
+ "@babel/plugin-transform-modules-umd": ^7.27.1
+ "@babel/plugin-transform-named-capturing-groups-regex": ^7.27.1
+ "@babel/plugin-transform-new-target": ^7.27.1
+ "@babel/plugin-transform-nullish-coalescing-operator": ^7.27.1
+ "@babel/plugin-transform-numeric-separator": ^7.27.1
+ "@babel/plugin-transform-object-rest-spread": ^7.27.2
+ "@babel/plugin-transform-object-super": ^7.27.1
+ "@babel/plugin-transform-optional-catch-binding": ^7.27.1
+ "@babel/plugin-transform-optional-chaining": ^7.27.1
+ "@babel/plugin-transform-parameters": ^7.27.1
+ "@babel/plugin-transform-private-methods": ^7.27.1
+ "@babel/plugin-transform-private-property-in-object": ^7.27.1
+ "@babel/plugin-transform-property-literals": ^7.27.1
+ "@babel/plugin-transform-regenerator": ^7.27.1
+ "@babel/plugin-transform-regexp-modifiers": ^7.27.1
+ "@babel/plugin-transform-reserved-words": ^7.27.1
+ "@babel/plugin-transform-shorthand-properties": ^7.27.1
+ "@babel/plugin-transform-spread": ^7.27.1
+ "@babel/plugin-transform-sticky-regex": ^7.27.1
+ "@babel/plugin-transform-template-literals": ^7.27.1
+ "@babel/plugin-transform-typeof-symbol": ^7.27.1
+ "@babel/plugin-transform-unicode-escapes": ^7.27.1
+ "@babel/plugin-transform-unicode-property-regex": ^7.27.1
+ "@babel/plugin-transform-unicode-regex": ^7.27.1
+ "@babel/plugin-transform-unicode-sets-regex": ^7.27.1
+ "@babel/preset-modules": 0.1.6-no-external-plugins
+ babel-plugin-polyfill-corejs2: ^0.4.10
+ babel-plugin-polyfill-corejs3: ^0.11.0
+ babel-plugin-polyfill-regenerator: ^0.6.1
+ core-js-compat: ^3.40.0
+ semver: ^6.3.1
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 318b123c8783ac3833bde5a5ff315970967ccd4c1e5c97e0843c0199fe9eab48a8cb40b367b784ae19a33667bee63eb8533eb924dab05bfc92ff9ef436109001
+ languageName: node
+ linkType: hard
+
"@babel/preset-env@npm:^7.18.2":
version: 7.22.9
resolution: "@babel/preset-env@npm:7.22.9"
@@ -2826,6 +3854,21 @@ __metadata:
languageName: node
linkType: hard
+"@babel/preset-typescript@npm:7.27.1":
+ version: 7.27.1
+ resolution: "@babel/preset-typescript@npm:7.27.1"
+ dependencies:
+ "@babel/helper-plugin-utils": ^7.27.1
+ "@babel/helper-validator-option": ^7.27.1
+ "@babel/plugin-syntax-jsx": ^7.27.1
+ "@babel/plugin-transform-modules-commonjs": ^7.27.1
+ "@babel/plugin-transform-typescript": ^7.27.1
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 38020f1b23e88ec4fbffd5737da455d8939244bddfb48a2516aef93fb5947bd9163fb807ce6eff3e43fa5ffe9113aa131305fef0fb5053998410bbfcfe6ce0ec
+ languageName: node
+ linkType: hard
+
"@babel/preset-typescript@npm:^7.13.0, @babel/preset-typescript@npm:^7.17.12":
version: 7.22.5
resolution: "@babel/preset-typescript@npm:7.22.5"
@@ -2918,6 +3961,17 @@ __metadata:
languageName: node
linkType: hard
+"@babel/template@npm:^7.27.1, @babel/template@npm:^7.27.2":
+ version: 7.27.2
+ resolution: "@babel/template@npm:7.27.2"
+ dependencies:
+ "@babel/code-frame": ^7.27.1
+ "@babel/parser": ^7.27.2
+ "@babel/types": ^7.27.1
+ checksum: ff5628bc066060624afd970616090e5bba91c6240c2e4b458d13267a523572cbfcbf549391eec8217b94b064cf96571c6273f0c04b28a8567b96edc675c28e27
+ languageName: node
+ linkType: hard
+
"@babel/traverse--for-generate-function-map@npm:@babel/traverse@^7.25.3, @babel/traverse@npm:^7.25.3, @babel/traverse@npm:^7.25.9, @babel/traverse@npm:^7.26.5, @babel/traverse@npm:^7.26.8, @babel/traverse@npm:^7.26.9":
version: 7.26.9
resolution: "@babel/traverse@npm:7.26.9"
@@ -2951,6 +4005,21 @@ __metadata:
languageName: node
linkType: hard
+"@babel/traverse@npm:^7.27.1, @babel/traverse@npm:^7.27.3, @babel/traverse@npm:^7.27.4":
+ version: 7.27.4
+ resolution: "@babel/traverse@npm:7.27.4"
+ dependencies:
+ "@babel/code-frame": ^7.27.1
+ "@babel/generator": ^7.27.3
+ "@babel/parser": ^7.27.4
+ "@babel/template": ^7.27.2
+ "@babel/types": ^7.27.3
+ debug: ^4.3.1
+ globals: ^11.1.0
+ checksum: ae0047fe786e200ffb048929347b074988e8b68decdb9fc0e2b36ca3e137d72462f349fa0e6193e44fb3cb99f9c639654515028995b44d7040707cef48ddb5c1
+ languageName: node
+ linkType: hard
+
"@babel/types@npm:^7.0.0, @babel/types@npm:^7.20.0, @babel/types@npm:^7.20.7, @babel/types@npm:^7.22.5, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.4, @babel/types@npm:^7.8.3":
version: 7.22.5
resolution: "@babel/types@npm:7.22.5"
@@ -2972,6 +4041,16 @@ __metadata:
languageName: node
linkType: hard
+"@babel/types@npm:^7.27.1, @babel/types@npm:^7.27.3, @babel/types@npm:^7.27.6":
+ version: 7.27.6
+ resolution: "@babel/types@npm:7.27.6"
+ dependencies:
+ "@babel/helper-string-parser": ^7.27.1
+ "@babel/helper-validator-identifier": ^7.27.1
+ checksum: c3bd0984d892b0edec38fd12cf63f620bb52fba8187ec7cbe2d1aff5bee5e185e0fd86a3fb90b4d8f18b072113d07901476d0e39f58d5c988db14b231a6ea735
+ languageName: node
+ linkType: hard
+
"@bcoe/v8-coverage@npm:^0.2.3":
version: 0.2.3
resolution: "@bcoe/v8-coverage@npm:0.2.3"
@@ -3105,6 +4184,19 @@ __metadata:
languageName: node
linkType: hard
+"@callstack/react-native-legal-shared@^0.1.1, @callstack/react-native-legal-shared@workspace:packages/shared":
+ version: 0.0.0-use.local
+ resolution: "@callstack/react-native-legal-shared@workspace:packages/shared"
+ dependencies:
+ "@types/glob": ^8.1.0
+ "@types/jest": ^29.5.5
+ glob: ^7.1.3
+ jest: ^29.7.0
+ rimraf: ^6.0.1
+ typescript: ^5.8.3
+ languageName: unknown
+ linkType: soft
+
"@callstack/rspress-theme@npm:^0.0.2":
version: 0.0.2
resolution: "@callstack/rspress-theme@npm:0.0.2"
@@ -4080,6 +5172,22 @@ __metadata:
languageName: node
linkType: hard
+"@isaacs/balanced-match@npm:^4.0.1":
+ version: 4.0.1
+ resolution: "@isaacs/balanced-match@npm:4.0.1"
+ checksum: 102fbc6d2c0d5edf8f6dbf2b3feb21695a21bc850f11bc47c4f06aa83bd8884fde3fe9d6d797d619901d96865fdcb4569ac2a54c937992c48885c5e3d9967fe8
+ languageName: node
+ linkType: hard
+
+"@isaacs/brace-expansion@npm:^5.0.0":
+ version: 5.0.0
+ resolution: "@isaacs/brace-expansion@npm:5.0.0"
+ dependencies:
+ "@isaacs/balanced-match": ^4.0.1
+ checksum: d7a3b8b0ddbf0ccd8eeb1300e29dd0a0c02147e823d8138f248375a365682360620895c66d113e05ee02389318c654379b0e538b996345b83c914941786705b1
+ languageName: node
+ linkType: hard
+
"@isaacs/cliui@npm:^8.0.2":
version: 8.0.2
resolution: "@isaacs/cliui@npm:8.0.2"
@@ -4665,7 +5773,7 @@ __metadata:
languageName: node
linkType: hard
-"@mdx-js/loader@npm:2.3.0":
+"@mdx-js/loader@npm:^2.3.0":
version: 2.3.0
resolution: "@mdx-js/loader@npm:2.3.0"
dependencies:
@@ -4677,7 +5785,7 @@ __metadata:
languageName: node
linkType: hard
-"@mdx-js/mdx@npm:2.3.0, @mdx-js/mdx@npm:^2.0.0":
+"@mdx-js/mdx@npm:^2.0.0, @mdx-js/mdx@npm:^2.3.0":
version: 2.3.0
resolution: "@mdx-js/mdx@npm:2.3.0"
dependencies:
@@ -4702,7 +5810,7 @@ __metadata:
languageName: node
linkType: hard
-"@mdx-js/react@npm:2.3.0":
+"@mdx-js/react@npm:2.3.0, @mdx-js/react@npm:^2.3.0":
version: 2.3.0
resolution: "@mdx-js/react@npm:2.3.0"
dependencies:
@@ -4714,49 +5822,58 @@ __metadata:
languageName: node
linkType: hard
-"@module-federation/error-codes@npm:0.8.4":
- version: 0.8.4
- resolution: "@module-federation/error-codes@npm:0.8.4"
- checksum: 4364db190df69a4d4da3b7a16621e4d72d5bb07d33ffb914a0c804e7eed7ec0c578f7ea6b8ba4505bdd3e66ecab4dc36e8bbe4e34e1824a01332b5df8f544947
+"@module-federation/error-codes@npm:0.14.0":
+ version: 0.14.0
+ resolution: "@module-federation/error-codes@npm:0.14.0"
+ checksum: 1b50786b126253989682e688c24571da3be03e27ad032ed3a949ca4332942d2a1bedc2ed123e6f01638446d5c0ad40776e56bb91e0c33db550e398d5691fbb32
languageName: node
linkType: hard
-"@module-federation/runtime-tools@npm:0.8.4":
- version: 0.8.4
- resolution: "@module-federation/runtime-tools@npm:0.8.4"
+"@module-federation/runtime-core@npm:0.14.0":
+ version: 0.14.0
+ resolution: "@module-federation/runtime-core@npm:0.14.0"
dependencies:
- "@module-federation/runtime": 0.8.4
- "@module-federation/webpack-bundler-runtime": 0.8.4
- checksum: 357c109dc42de078d6c3a4e6803d733475cb1e54de53bcfe10c2ef2168596fba10c0d8faa40341303ec838caa11c727531289c38748f6db32a6545cbe7865478
+ "@module-federation/error-codes": 0.14.0
+ "@module-federation/sdk": 0.14.0
+ checksum: 79d226273e289e8b37783af8b7be90fb7bdffc48091094c3826176b8f9f2ecd4788624387957c461f15b7391748b59ecbc0df7c51872b99fd3b65f3c09a9e499
languageName: node
linkType: hard
-"@module-federation/runtime@npm:0.8.4":
- version: 0.8.4
- resolution: "@module-federation/runtime@npm:0.8.4"
+"@module-federation/runtime-tools@npm:0.14.0":
+ version: 0.14.0
+ resolution: "@module-federation/runtime-tools@npm:0.14.0"
dependencies:
- "@module-federation/error-codes": 0.8.4
- "@module-federation/sdk": 0.8.4
- checksum: 17367a93885cbabc376e2203f15c1c222b8e86a1daa58d6c698761f2b6907bd50175e314bbf453a96c90dc96907d388f1d2e917631d792674683f6624c7821dd
+ "@module-federation/runtime": 0.14.0
+ "@module-federation/webpack-bundler-runtime": 0.14.0
+ checksum: e11d6b1d8cec98e457d3cfe591ba81c6d61cf72dbe80f369f586c25fc51f79175a2d6e1e47d30084a48d7fcad98d583d79ff9e88fbe40bd3a3530d39350d7d00
languageName: node
linkType: hard
-"@module-federation/sdk@npm:0.8.4":
- version: 0.8.4
- resolution: "@module-federation/sdk@npm:0.8.4"
+"@module-federation/runtime@npm:0.14.0":
+ version: 0.14.0
+ resolution: "@module-federation/runtime@npm:0.14.0"
dependencies:
- isomorphic-rslog: 0.0.6
- checksum: dec799baea367aa2e9796cd4e5dff2d4d9db5613f8920b78cada80d2ce40cb721803315d347a56797f83155649c475bfdf6b62061d73e85a77473fe3ab3e5920
+ "@module-federation/error-codes": 0.14.0
+ "@module-federation/runtime-core": 0.14.0
+ "@module-federation/sdk": 0.14.0
+ checksum: 73dd2a6295e8c591f1ad9edb2f1cacf9e3dd6c46b6fd55aa04481e1d66c50b5a5d61afec4dc7a28724a8d1dc1039ac5d136cc91637a882d06354857b03440f56
languageName: node
linkType: hard
-"@module-federation/webpack-bundler-runtime@npm:0.8.4":
- version: 0.8.4
- resolution: "@module-federation/webpack-bundler-runtime@npm:0.8.4"
+"@module-federation/sdk@npm:0.14.0":
+ version: 0.14.0
+ resolution: "@module-federation/sdk@npm:0.14.0"
+ checksum: 1cf17a4b5b02b33027c2577d46a83ad1df0f7dd48a27f59012fa58a01c7a544168c68c5b1e9d9bb446a9339a12e49d0f51465757bc6d3e60b1b28b09cfef4e02
+ languageName: node
+ linkType: hard
+
+"@module-federation/webpack-bundler-runtime@npm:0.14.0":
+ version: 0.14.0
+ resolution: "@module-federation/webpack-bundler-runtime@npm:0.14.0"
dependencies:
- "@module-federation/runtime": 0.8.4
- "@module-federation/sdk": 0.8.4
- checksum: 54050899c75f6822fbd063d27ea15db40e88f0eb3bb712623d8c3fa60c3bf355706c29f25a564a87f4cd37df269ff5d86a1e15390baad84151654202027b2e57
+ "@module-federation/runtime": 0.14.0
+ "@module-federation/sdk": 0.14.0
+ checksum: f6e15c0e298696c027957bcd3cf31271880230e3f2eeca5aa6a937a49eec9d124c095e73661e87a6e5b73f09878863a0666e26707b0e973a91bf4e71e4e7bf86
languageName: node
linkType: hard
@@ -5245,135 +6362,136 @@ __metadata:
languageName: node
linkType: hard
-"@rsbuild/core@npm:1.2.3":
- version: 1.2.3
- resolution: "@rsbuild/core@npm:1.2.3"
+"@rsbuild/core@npm:~1.3.18":
+ version: 1.3.22
+ resolution: "@rsbuild/core@npm:1.3.22"
dependencies:
- "@rspack/core": 1.2.2
+ "@rspack/core": 1.3.12
"@rspack/lite-tapable": ~1.0.1
- "@swc/helpers": ^0.5.15
- core-js: ~3.40.0
+ "@swc/helpers": ^0.5.17
+ core-js: ~3.42.0
+ jiti: ^2.4.2
bin:
rsbuild: bin/rsbuild.js
- checksum: 314b9012b9455e0ad13d4043640e852703d36d48dd811ccd6a7ae2a19b1005d66034535402740e1b550ef3da3da3ccfadbcfe9cc1972e926be33de4045a43043
+ checksum: 08d09b30025cb71059b12e19cc18cc17ba73d380f33a2d1a87c7157eb3c583db3e74641ff8a33fa4eb1a2069e34dadca6bf2796278d66d18e71f4b0a8eac57c1
languageName: node
linkType: hard
-"@rsbuild/plugin-less@npm:~1.1.0":
- version: 1.1.1
- resolution: "@rsbuild/plugin-less@npm:1.1.1"
+"@rsbuild/plugin-less@npm:~1.2.4":
+ version: 1.2.4
+ resolution: "@rsbuild/plugin-less@npm:1.2.4"
dependencies:
deepmerge: ^4.3.1
reduce-configs: ^1.1.0
peerDependencies:
"@rsbuild/core": 1.x
- checksum: 0c27af7997120721b239954855c049aec9b998e3ba194b7d0d7a3fb25064994f6f5d730c2f8aa2e311a29eed1458e97234e925ed7728123f0d7118dd49752512
+ checksum: 56da1e9387838f6eb597ddc3d2d5f5a1f65c44e300caf7e2ad574c4d29ca8ea00c49e9a9af26fc043cc53b0147c2ed5d4ce6a26567d47d2c05a34c280e7b2021
languageName: node
linkType: hard
-"@rsbuild/plugin-react@npm:~1.1.0":
- version: 1.1.1
- resolution: "@rsbuild/plugin-react@npm:1.1.1"
+"@rsbuild/plugin-react@npm:~1.3.1":
+ version: 1.3.2
+ resolution: "@rsbuild/plugin-react@npm:1.3.2"
dependencies:
- "@rspack/plugin-react-refresh": ~1.0.1
- react-refresh: ^0.16.0
+ "@rspack/plugin-react-refresh": ~1.4.3
+ react-refresh: ^0.17.0
peerDependencies:
"@rsbuild/core": 1.x
- checksum: 163eb75ea86a548f2a29a25753f58fba4df796816cbeff342e42262fa4ca4145ba92916dc0aa0a7e0a784b56c4df849efdad436fb32d796852dea2b79a4e598c
+ checksum: 4be17688950225c95210a7ad448f1903cac0063167dbc22b79b66fab4ba23cf6323026dd2aeca2fe307a24134bcca0754177fdda13c3b7b9b5653337c9e0cbdd
languageName: node
linkType: hard
-"@rsbuild/plugin-sass@npm:~1.2.0":
- version: 1.2.2
- resolution: "@rsbuild/plugin-sass@npm:1.2.2"
+"@rsbuild/plugin-sass@npm:~1.3.0":
+ version: 1.3.2
+ resolution: "@rsbuild/plugin-sass@npm:1.3.2"
dependencies:
deepmerge: ^4.3.1
loader-utils: ^2.0.4
- postcss: ^8.5.2
+ postcss: ^8.5.4
reduce-configs: ^1.1.0
- sass-embedded: ^1.85.0
+ sass-embedded: 1.89.0
peerDependencies:
"@rsbuild/core": 1.x
- checksum: e9b460290a1e1f0375a37c4778a197a5d58cfd333049a102ec01161d755ca066e1ad8b9e7023b2bbbc6661a65b577878feec43f9eab73c186fc8657c14045c47
+ checksum: a402cd34c277ad16553e0857a678e2a99271cc6dfe56dabdf6257abf0812120cbe5b7ca92d4d73a9fd7b80c3f52846dd65aa9a0fe771088372a4b7ac01ae1d23
languageName: node
linkType: hard
-"@rspack/binding-darwin-arm64@npm:1.2.2":
- version: 1.2.2
- resolution: "@rspack/binding-darwin-arm64@npm:1.2.2"
+"@rspack/binding-darwin-arm64@npm:1.3.12":
+ version: 1.3.12
+ resolution: "@rspack/binding-darwin-arm64@npm:1.3.12"
conditions: os=darwin & cpu=arm64
languageName: node
linkType: hard
-"@rspack/binding-darwin-x64@npm:1.2.2":
- version: 1.2.2
- resolution: "@rspack/binding-darwin-x64@npm:1.2.2"
+"@rspack/binding-darwin-x64@npm:1.3.12":
+ version: 1.3.12
+ resolution: "@rspack/binding-darwin-x64@npm:1.3.12"
conditions: os=darwin & cpu=x64
languageName: node
linkType: hard
-"@rspack/binding-linux-arm64-gnu@npm:1.2.2":
- version: 1.2.2
- resolution: "@rspack/binding-linux-arm64-gnu@npm:1.2.2"
+"@rspack/binding-linux-arm64-gnu@npm:1.3.12":
+ version: 1.3.12
+ resolution: "@rspack/binding-linux-arm64-gnu@npm:1.3.12"
conditions: os=linux & cpu=arm64 & libc=glibc
languageName: node
linkType: hard
-"@rspack/binding-linux-arm64-musl@npm:1.2.2":
- version: 1.2.2
- resolution: "@rspack/binding-linux-arm64-musl@npm:1.2.2"
+"@rspack/binding-linux-arm64-musl@npm:1.3.12":
+ version: 1.3.12
+ resolution: "@rspack/binding-linux-arm64-musl@npm:1.3.12"
conditions: os=linux & cpu=arm64 & libc=musl
languageName: node
linkType: hard
-"@rspack/binding-linux-x64-gnu@npm:1.2.2":
- version: 1.2.2
- resolution: "@rspack/binding-linux-x64-gnu@npm:1.2.2"
+"@rspack/binding-linux-x64-gnu@npm:1.3.12":
+ version: 1.3.12
+ resolution: "@rspack/binding-linux-x64-gnu@npm:1.3.12"
conditions: os=linux & cpu=x64 & libc=glibc
languageName: node
linkType: hard
-"@rspack/binding-linux-x64-musl@npm:1.2.2":
- version: 1.2.2
- resolution: "@rspack/binding-linux-x64-musl@npm:1.2.2"
+"@rspack/binding-linux-x64-musl@npm:1.3.12":
+ version: 1.3.12
+ resolution: "@rspack/binding-linux-x64-musl@npm:1.3.12"
conditions: os=linux & cpu=x64 & libc=musl
languageName: node
linkType: hard
-"@rspack/binding-win32-arm64-msvc@npm:1.2.2":
- version: 1.2.2
- resolution: "@rspack/binding-win32-arm64-msvc@npm:1.2.2"
+"@rspack/binding-win32-arm64-msvc@npm:1.3.12":
+ version: 1.3.12
+ resolution: "@rspack/binding-win32-arm64-msvc@npm:1.3.12"
conditions: os=win32 & cpu=arm64
languageName: node
linkType: hard
-"@rspack/binding-win32-ia32-msvc@npm:1.2.2":
- version: 1.2.2
- resolution: "@rspack/binding-win32-ia32-msvc@npm:1.2.2"
+"@rspack/binding-win32-ia32-msvc@npm:1.3.12":
+ version: 1.3.12
+ resolution: "@rspack/binding-win32-ia32-msvc@npm:1.3.12"
conditions: os=win32 & cpu=ia32
languageName: node
linkType: hard
-"@rspack/binding-win32-x64-msvc@npm:1.2.2":
- version: 1.2.2
- resolution: "@rspack/binding-win32-x64-msvc@npm:1.2.2"
+"@rspack/binding-win32-x64-msvc@npm:1.3.12":
+ version: 1.3.12
+ resolution: "@rspack/binding-win32-x64-msvc@npm:1.3.12"
conditions: os=win32 & cpu=x64
languageName: node
linkType: hard
-"@rspack/binding@npm:1.2.2":
- version: 1.2.2
- resolution: "@rspack/binding@npm:1.2.2"
- dependencies:
- "@rspack/binding-darwin-arm64": 1.2.2
- "@rspack/binding-darwin-x64": 1.2.2
- "@rspack/binding-linux-arm64-gnu": 1.2.2
- "@rspack/binding-linux-arm64-musl": 1.2.2
- "@rspack/binding-linux-x64-gnu": 1.2.2
- "@rspack/binding-linux-x64-musl": 1.2.2
- "@rspack/binding-win32-arm64-msvc": 1.2.2
- "@rspack/binding-win32-ia32-msvc": 1.2.2
- "@rspack/binding-win32-x64-msvc": 1.2.2
+"@rspack/binding@npm:1.3.12":
+ version: 1.3.12
+ resolution: "@rspack/binding@npm:1.3.12"
+ dependencies:
+ "@rspack/binding-darwin-arm64": 1.3.12
+ "@rspack/binding-darwin-x64": 1.3.12
+ "@rspack/binding-linux-arm64-gnu": 1.3.12
+ "@rspack/binding-linux-arm64-musl": 1.3.12
+ "@rspack/binding-linux-x64-gnu": 1.3.12
+ "@rspack/binding-linux-x64-musl": 1.3.12
+ "@rspack/binding-win32-arm64-msvc": 1.3.12
+ "@rspack/binding-win32-ia32-msvc": 1.3.12
+ "@rspack/binding-win32-x64-msvc": 1.3.12
dependenciesMeta:
"@rspack/binding-darwin-arm64":
optional: true
@@ -5393,27 +6511,24 @@ __metadata:
optional: true
"@rspack/binding-win32-x64-msvc":
optional: true
- checksum: ca476e4f85f9de95a5ea01de8d7f7d0e9c79bd2bb4e2cf6251ff745fe519aa10666be9b3a4f37cebbfd70754402e06d7946b50ea28cbf6386f363be1cbc2308f
+ checksum: fa6b121a71a71516daf2cd0765b97ad8cbfe7ed3862d28d8dd983dec5196e3f4083737d019bf1de8927c424c9dd103a0924b3bfabdb3c07cf283be1d98bd1f51
languageName: node
linkType: hard
-"@rspack/core@npm:1.2.2":
- version: 1.2.2
- resolution: "@rspack/core@npm:1.2.2"
+"@rspack/core@npm:1.3.12":
+ version: 1.3.12
+ resolution: "@rspack/core@npm:1.3.12"
dependencies:
- "@module-federation/runtime-tools": 0.8.4
- "@rspack/binding": 1.2.2
+ "@module-federation/runtime-tools": 0.14.0
+ "@rspack/binding": 1.3.12
"@rspack/lite-tapable": 1.0.1
- caniuse-lite: ^1.0.30001616
+ caniuse-lite: ^1.0.30001718
peerDependencies:
- "@rspack/tracing": ^1.x
"@swc/helpers": ">=0.5.1"
peerDependenciesMeta:
- "@rspack/tracing":
- optional: true
"@swc/helpers":
optional: true
- checksum: 8ae563e0c7d50d509d7814240e871bb7f8b1667fbc7cebf1b3727a15553eeec2224445dabaec6a49789bfade919cab1c3626d0ab7fafe832c882572070ad52e6
+ checksum: fa5515382f42afff4a6df72fe98fad042e49e35edb9655c2d97e84a51f0e4bea6b55caa5d80f12ff9848c4706e7392cb54a0118eaff20e2c1093c4ec4207a3a1
languageName: node
linkType: hard
@@ -5424,41 +6539,41 @@ __metadata:
languageName: node
linkType: hard
-"@rspack/plugin-react-refresh@npm:~1.0.1":
- version: 1.0.3
- resolution: "@rspack/plugin-react-refresh@npm:1.0.3"
+"@rspack/plugin-react-refresh@npm:~1.4.3":
+ version: 1.4.3
+ resolution: "@rspack/plugin-react-refresh@npm:1.4.3"
dependencies:
error-stack-parser: ^2.1.4
- html-entities: ^2.5.2
+ html-entities: ^2.6.0
peerDependencies:
react-refresh: ">=0.10.0 <1.0.0"
webpack-hot-middleware: 2.x
peerDependenciesMeta:
webpack-hot-middleware:
optional: true
- checksum: 4104b21f5f1ff322c2f8eb8dc7fa746132780b052d952974239216d03e25cd0b9e41f754780cc40f25bac720628d63ef1b96dce5e1f636d87e78240faa02e524
+ checksum: d8fda18c9a55ab9f32a182fbf8ebabf85c329a3a33be226cb1149b97ecaf45795d30ef67ce190532e2dd966a25efde9a86541eaa724c39611d4ed74320e727cc
languageName: node
linkType: hard
-"@rspress/core@npm:1.43.0":
- version: 1.43.0
- resolution: "@rspress/core@npm:1.43.0"
+"@rspress/core@npm:1.44.0":
+ version: 1.44.0
+ resolution: "@rspress/core@npm:1.44.0"
dependencies:
- "@mdx-js/loader": 2.3.0
- "@mdx-js/mdx": 2.3.0
- "@mdx-js/react": 2.3.0
- "@rsbuild/core": 1.2.3
- "@rsbuild/plugin-less": ~1.1.0
- "@rsbuild/plugin-react": ~1.1.0
- "@rsbuild/plugin-sass": ~1.2.0
+ "@mdx-js/loader": ^2.3.0
+ "@mdx-js/mdx": ^2.3.0
+ "@mdx-js/react": ^2.3.0
+ "@rsbuild/core": ~1.3.18
+ "@rsbuild/plugin-less": ~1.2.4
+ "@rsbuild/plugin-react": ~1.3.1
+ "@rsbuild/plugin-sass": ~1.3.0
"@rspress/mdx-rs": 0.6.6
- "@rspress/plugin-auto-nav-sidebar": 1.43.0
- "@rspress/plugin-container-syntax": 1.43.0
- "@rspress/plugin-last-updated": 1.43.0
- "@rspress/plugin-medium-zoom": 1.43.0
- "@rspress/runtime": 1.43.0
- "@rspress/shared": 1.43.0
- "@rspress/theme-default": 1.43.0
+ "@rspress/plugin-auto-nav-sidebar": 1.44.0
+ "@rspress/plugin-container-syntax": 1.44.0
+ "@rspress/plugin-last-updated": 1.44.0
+ "@rspress/plugin-medium-zoom": 1.44.0
+ "@rspress/runtime": 1.44.0
+ "@rspress/shared": 1.44.0
+ "@rspress/theme-default": 1.44.0
enhanced-resolve: 5.18.0
github-slugger: ^2.0.0
hast-util-from-html: ^2.0.3
@@ -5482,7 +6597,7 @@ __metadata:
unified: ^10.1.2
unist-util-visit: ^4.1.2
unist-util-visit-children: ^2.0.2
- checksum: 3ac29715f2cfca27ef34afb734d0e8004abf5e304fc01eccedd63f30ea52c25ee0eec0be51a8d4eaaf60a47672ded19f48a23a38423227d515d1756b01a2d5c5
+ checksum: e5be13c9cc63862cb0eea137a8dbf97bedc0365b09efc8569b20c6cfcfbaf6f833139680b31ae16646d7037257edc2b1a4cc41516750173d59c01c92c3df2104
languageName: node
linkType: hard
@@ -5575,76 +6690,89 @@ __metadata:
languageName: node
linkType: hard
-"@rspress/plugin-auto-nav-sidebar@npm:1.43.0":
- version: 1.43.0
- resolution: "@rspress/plugin-auto-nav-sidebar@npm:1.43.0"
+"@rspress/plugin-auto-nav-sidebar@npm:1.44.0":
+ version: 1.44.0
+ resolution: "@rspress/plugin-auto-nav-sidebar@npm:1.44.0"
dependencies:
- "@rspress/shared": 1.43.0
- checksum: 46d383fb67fc8fc7343727c7369adeb21b3e0e30fc861c0515596436c6900010bf3d8b159b9fddcd6b6d89aa27ee0e42fd8a252652369fdea83b1c6770b2dc74
+ "@rspress/shared": 1.44.0
+ checksum: 7b28808e2f89381ab145b1293b3caf07ad5030a79c4721451c623532681970da2b36250d703dfab02484fc5357d290c64389cfbd916f7a2539a6f3d6cd57d1e8
languageName: node
linkType: hard
-"@rspress/plugin-container-syntax@npm:1.43.0":
- version: 1.43.0
- resolution: "@rspress/plugin-container-syntax@npm:1.43.0"
+"@rspress/plugin-container-syntax@npm:1.44.0":
+ version: 1.44.0
+ resolution: "@rspress/plugin-container-syntax@npm:1.44.0"
dependencies:
- "@rspress/shared": 1.43.0
- checksum: d63321e6774b15acd3ae6886e6c8be700b4550907a874d8bce26eeaae0bab3baab1656cbc920a47f11d5979e7728147eca72382349510115736daab2d1bdf617
+ "@rspress/shared": 1.44.0
+ checksum: 19abc49e6d063bd6b319902e5daff339a6c922ecad25ffadbe82ac65f8f5c52c0975f6f9f2117b59af2f6e9837028864cfa0a121f251765d3816bd6a53887017
languageName: node
linkType: hard
-"@rspress/plugin-last-updated@npm:1.43.0":
- version: 1.43.0
- resolution: "@rspress/plugin-last-updated@npm:1.43.0"
+"@rspress/plugin-last-updated@npm:1.44.0":
+ version: 1.44.0
+ resolution: "@rspress/plugin-last-updated@npm:1.44.0"
dependencies:
- "@rspress/shared": 1.43.0
- checksum: 8d31ccb084cec2cd4c802d6420a54b489e6a21c1fbf8a4b28491a20f7a7ce777d7411135d2b27e33edd5559ebae0b7d9556a6f51a4f7d36454624b91d9d84ea3
+ "@rspress/shared": 1.44.0
+ checksum: 4ed06b789095b35ddae715df7d3a1639a92ebabf83b836eb32f2630b22525ddc29fbff20a0705e096c79455b82cc9044ee742c5da1f918404e4e12e0d82fb4f0
languageName: node
linkType: hard
-"@rspress/plugin-medium-zoom@npm:1.43.0":
- version: 1.43.0
- resolution: "@rspress/plugin-medium-zoom@npm:1.43.0"
+"@rspress/plugin-medium-zoom@npm:1.44.0":
+ version: 1.44.0
+ resolution: "@rspress/plugin-medium-zoom@npm:1.44.0"
dependencies:
medium-zoom: 1.1.0
peerDependencies:
- "@rspress/runtime": ^1.43.0
- checksum: bddf80428c557f7f6dc4256574807ad58557e5866c3a399afb9198eb4e1322ae74330891c4aca8dd57567f6e96dd25770892315c8569e196d1b185db2bd5a7ca
+ "@rspress/runtime": ^1.44.0
+ checksum: 9fb721017049339dafcbdf0d479b501deabae846d9ee6089f59e56a87a6c191ee4da5fa29bf5b6704ca444243ee1559648bf01955ad06101a6c6548418565c7d
+ languageName: node
+ linkType: hard
+
+"@rspress/plugin-typedoc@npm:1.44.0":
+ version: 1.44.0
+ resolution: "@rspress/plugin-typedoc@npm:1.44.0"
+ dependencies:
+ "@rspress/shared": 1.44.0
+ typedoc: 0.24.8
+ typedoc-plugin-markdown: 3.17.1
+ peerDependencies:
+ rspress: ^1.44.0
+ checksum: 25f3dc9c3d6493389cf7c66d78666c582412c5f9989e2ebdca6c9b4e746823ad71b1dc25b52ad6e80e5e97909a818ae1802ea8de130ddd235ec2b61c7d4568a7
languageName: node
linkType: hard
-"@rspress/runtime@npm:1.43.0":
- version: 1.43.0
- resolution: "@rspress/runtime@npm:1.43.0"
+"@rspress/runtime@npm:1.44.0":
+ version: 1.44.0
+ resolution: "@rspress/runtime@npm:1.44.0"
dependencies:
- "@rspress/shared": 1.43.0
+ "@rspress/shared": 1.44.0
react: ^18.3.1
react-dom: ^18.3.1
react-helmet-async: ^1.3.0
react-router-dom: ^6.29.0
- checksum: 029b6856472f4b9f5bb4f9a00d42c57187320084ff7f7eff200d9bc7800f133073d4ef7e64cb3073c03e1ae8477dc901ed9afd03b87c4705abc16144760247cd
+ checksum: 69b9ff554e88f24b116c92224f701ba8ed121f9cfe59723404e98701220485c1280ef3153b78edba0c005b8c33891717a1030fc7ed83cf9b2b4f8ba3c5dad7ab
languageName: node
linkType: hard
-"@rspress/shared@npm:1.43.0":
- version: 1.43.0
- resolution: "@rspress/shared@npm:1.43.0"
+"@rspress/shared@npm:1.44.0":
+ version: 1.44.0
+ resolution: "@rspress/shared@npm:1.44.0"
dependencies:
- "@rsbuild/core": 1.2.3
+ "@rsbuild/core": ~1.3.18
gray-matter: 4.0.3
lodash-es: ^4.17.21
unified: ^10.1.2
- checksum: 9885cfe0e73a8fcfdc7578939dfce1b264e45a10ba6b829e2a4211f929611996481f9abbb561d82b053d28375da457a3b6d2fcfc4a03b32e63f06213aafc65ce
+ checksum: c0b8f15eacecd79a0cbe9ce30e7087adbf350d0815b23b34112fa72560210d775e7309c73dbe968b92a48c321133cff7afcc33f8007ff5ca00834d0d62c5514c
languageName: node
linkType: hard
-"@rspress/theme-default@npm:1.43.0":
- version: 1.43.0
- resolution: "@rspress/theme-default@npm:1.43.0"
+"@rspress/theme-default@npm:1.44.0":
+ version: 1.44.0
+ resolution: "@rspress/theme-default@npm:1.44.0"
dependencies:
"@mdx-js/react": 2.3.0
- "@rspress/runtime": 1.43.0
- "@rspress/shared": 1.43.0
+ "@rspress/runtime": 1.44.0
+ "@rspress/shared": 1.44.0
body-scroll-lock: 4.0.0-beta.0
copy-to-clipboard: ^3.3.3
flexsearch: 0.7.43
@@ -5656,7 +6784,7 @@ __metadata:
react-dom: ^18.3.1
react-helmet-async: ^1.3.0
react-syntax-highlighter: ^15.6.1
- checksum: 5c017de9e1231bc0eee3bb5d2b072d4025525126f341b76082fe6e4c9b32d4520ec7d0b4305ec1758ee60916d8d22e9c7d302a39f23c7c0d5ed83f2306613e9b
+ checksum: 591cc5ab819a48e326b4f5f83a5d1b613df1f4496551623cb782f2ba506a3b6273e7883b2a7d409c83c9cdde2d73cc40935ca006ff3ef86c024d32942d72fd1e
languageName: node
linkType: hard
@@ -5735,12 +6863,12 @@ __metadata:
languageName: node
linkType: hard
-"@swc/helpers@npm:^0.5.15":
- version: 0.5.15
- resolution: "@swc/helpers@npm:0.5.15"
+"@swc/helpers@npm:^0.5.17":
+ version: 0.5.17
+ resolution: "@swc/helpers@npm:0.5.17"
dependencies:
tslib: ^2.8.0
- checksum: 1a9e0dbb792b2d1e0c914d69c201dbc96af3a0e6e6e8cf5a7f7d6a5d7b0e8b762915cd4447acb6b040e2ecc1ed49822875a7239f99a2d63c96c3c3407fb6fccf
+ checksum: 085e13b536323945dfc3a270debf270bda6dfc80a1c68fd2ed08f7cbdfcbdaeead402650b5b10722e54e4a24193afc8a3c6f63d3d6d719974e7470557fb415bd
languageName: node
linkType: hard
@@ -5880,6 +7008,23 @@ __metadata:
languageName: node
linkType: hard
+"@types/geojson@npm:^7946.0.14":
+ version: 7946.0.16
+ resolution: "@types/geojson@npm:7946.0.16"
+ checksum: d66e5e023f43b3e7121448117af1930af7d06410a32a585a8bc9c6bb5d97e0d656cd93d99e31fa432976c32e98d4b780f82bf1fd1acd20ccf952eb6b8e39edf2
+ languageName: node
+ linkType: hard
+
+"@types/glob@npm:^8.1.0":
+ version: 8.1.0
+ resolution: "@types/glob@npm:8.1.0"
+ dependencies:
+ "@types/minimatch": ^5.1.2
+ "@types/node": "*"
+ checksum: 9101f3a9061e40137190f70626aa0e202369b5ec4012c3fabe6f5d229cce04772db9a94fa5a0eb39655e2e4ad105c38afbb4af56a56c0996a8c7d4fc72350e3d
+ languageName: node
+ linkType: hard
+
"@types/graceful-fs@npm:^4.1.3":
version: 4.1.6
resolution: "@types/graceful-fs@npm:4.1.6"
@@ -5942,6 +7087,16 @@ __metadata:
languageName: node
linkType: hard
+"@types/jest@npm:^29.5.5":
+ version: 29.5.14
+ resolution: "@types/jest@npm:29.5.14"
+ dependencies:
+ expect: ^29.0.0
+ pretty-format: ^29.0.0
+ checksum: 18dba4623f26661641d757c63da2db45e9524c9be96a29ef713c703a9a53792df9ecee9f7365a0858ddbd6440d98fe6b65ca67895ca5884b73cbc7ffc11f3838
+ languageName: node
+ linkType: hard
+
"@types/jsdom@npm:^20.0.0":
version: 20.0.1
resolution: "@types/jsdom@npm:20.0.1"
@@ -5983,6 +7138,13 @@ __metadata:
languageName: node
linkType: hard
+"@types/minimatch@npm:^5.1.2":
+ version: 5.1.2
+ resolution: "@types/minimatch@npm:5.1.2"
+ checksum: 0391a282860c7cb6fe262c12b99564732401bdaa5e395bee9ca323c312c1a0f45efbf34dce974682036e857db59a5c9b1da522f3d6055aeead7097264c8705a8
+ languageName: node
+ linkType: hard
+
"@types/minimist@npm:^1.2.0":
version: 1.2.2
resolution: "@types/minimist@npm:1.2.2"
@@ -6029,6 +7191,15 @@ __metadata:
languageName: node
linkType: hard
+"@types/node@npm:^22.5.4":
+ version: 22.15.32
+ resolution: "@types/node@npm:22.15.32"
+ dependencies:
+ undici-types: ~6.21.0
+ checksum: 0e26f227a91e0b50dc79d5b7ad2705060598da4a418ea1c612609e6a72fcdbcbcc5b285214619973dc509aeec9cdff5ca016e642efd09d572b877151e591c01a
+ languageName: node
+ linkType: hard
+
"@types/normalize-package-data@npm:^2.4.0":
version: 2.4.1
resolution: "@types/normalize-package-data@npm:2.4.1"
@@ -6673,6 +7844,13 @@ __metadata:
languageName: node
linkType: hard
+"ansi-sequence-parser@npm:^1.1.0":
+ version: 1.1.3
+ resolution: "ansi-sequence-parser@npm:1.1.3"
+ checksum: 98e516176fa9177d501a49a12b96dd26359eaa1c6cee9d6261ebd36540cd4d33a9acd5a8cf43ed3e4508f1cf8b28fcc17643abd49bdf017471e840d98d1c036d
+ languageName: node
+ linkType: hard
+
"ansi-styles@npm:^3.2.0, ansi-styles@npm:^3.2.1":
version: 3.2.1
resolution: "ansi-styles@npm:3.2.1"
@@ -7801,13 +8979,6 @@ __metadata:
languageName: node
linkType: hard
-"caniuse-lite@npm:^1.0.30001616":
- version: 1.0.30001702
- resolution: "caniuse-lite@npm:1.0.30001702"
- checksum: ba8e88f0ef09a16f36de805c9491c3047986ab6bb1e0dc66f03067dce5e197be1c98cfaed21867bad851985f775b8d4fa50e7e37537c116a5fe1ae623dfd400c
- languageName: node
- linkType: hard
-
"caniuse-lite@npm:^1.0.30001688":
version: 1.0.30001701
resolution: "caniuse-lite@npm:1.0.30001701"
@@ -7815,6 +8986,13 @@ __metadata:
languageName: node
linkType: hard
+"caniuse-lite@npm:^1.0.30001718":
+ version: 1.0.30001723
+ resolution: "caniuse-lite@npm:1.0.30001723"
+ checksum: 0acd7f33f15cfc6cf81a5155bb288afb34ce63cddd90bbf1740243b3c6c1de813ad10b393650f1c15e47f13ff4da61a8d14b02fac8e47e7367aede3ef162a1c6
+ languageName: node
+ linkType: hard
+
"ccount@npm:^2.0.0":
version: 2.0.1
resolution: "ccount@npm:2.0.1"
@@ -8197,6 +9375,13 @@ __metadata:
languageName: node
linkType: hard
+"commander@npm:^14.0.0":
+ version: 14.0.0
+ resolution: "commander@npm:14.0.0"
+ checksum: 6e9bdaf2e8e4f512855ffc10579eeae2e84c4a7697a91b1a5f62aab3c9849182207855268dd7c3952ae7a2334312a7138f58e929e4b428aef5bf8af862685c9b
+ languageName: node
+ linkType: hard
+
"commander@npm:^2.20.0":
version: 2.20.3
resolution: "commander@npm:2.20.3"
@@ -8396,10 +9581,10 @@ __metadata:
languageName: node
linkType: hard
-"core-js@npm:~3.40.0":
- version: 3.40.0
- resolution: "core-js@npm:3.40.0"
- checksum: fc962b93470fd4a129555c765b630c1741fc38706bca68779879f0feaef3b6eec11a33904e3111b2b0e8ba206e8cfbc2a70193271227cfa2f2d13a986f78e557
+"core-js@npm:~3.42.0":
+ version: 3.42.0
+ resolution: "core-js@npm:3.42.0"
+ checksum: 270b5532511e2e6cc8e6b10c1434306208dca377aba3850875941316ce605b008ddbdeca0b6dd6eb2a4b188899dab259c0aecd7dc265bc5e7df19563e4e284b7
languageName: node
linkType: hard
@@ -8526,7 +9711,7 @@ __metadata:
languageName: node
linkType: hard
-"cross-spawn@npm:^7.0.5":
+"cross-spawn@npm:^7.0.5, cross-spawn@npm:^7.0.6":
version: 7.0.6
resolution: "cross-spawn@npm:7.0.6"
dependencies:
@@ -8889,6 +10074,13 @@ __metadata:
languageName: node
linkType: hard
+"denque@npm:^2.1.0":
+ version: 2.1.0
+ resolution: "denque@npm:2.1.0"
+ checksum: 1d4ae1d05e59ac3a3481e7b478293f4b4c813819342273f3d5b826c7ffa9753c520919ba264f377e09108d24ec6cf0ec0ac729a5686cbb8f32d797126c5dae74
+ languageName: node
+ linkType: hard
+
"depd@npm:2.0.0, depd@npm:^2.0.0":
version: 2.0.0
resolution: "depd@npm:2.0.0"
@@ -8942,6 +10134,13 @@ __metadata:
languageName: node
linkType: hard
+"dhtmlx-gantt@npm:9.0.11":
+ version: 9.0.11
+ resolution: "dhtmlx-gantt@npm:9.0.11"
+ checksum: 98533d41098fea61fd86e2d1686f832c632a97c5a066fae8b14fec4ef06e1d9f00b7566590e91bac90dfe65a58c2cb47e1d91e8bf13a7deb44f77e5d42661d09
+ languageName: node
+ linkType: hard
+
"diff-sequences@npm:^29.4.3":
version: 29.4.3
resolution: "diff-sequences@npm:29.4.3"
@@ -8985,8 +10184,9 @@ __metadata:
dependencies:
"@biomejs/biome": ^1.9.4
"@callstack/rspress-theme": ^0.0.2
+ "@rspress/plugin-typedoc": 1.44.0
"@types/node": ^18.11.17
- rspress: ^1.40.2
+ rspress: 1.44.0
languageName: unknown
linkType: soft
@@ -10952,6 +12152,16 @@ __metadata:
languageName: node
linkType: hard
+"foreground-child@npm:^3.3.1":
+ version: 3.3.1
+ resolution: "foreground-child@npm:3.3.1"
+ dependencies:
+ cross-spawn: ^7.0.6
+ signal-exit: ^4.0.1
+ checksum: b2c1a6fc0bf0233d645d9fefdfa999abf37db1b33e5dab172b3cbfb0662b88bfbd2c9e7ab853533d199050ec6b65c03fcf078fc212d26e4990220e98c6930eef
+ languageName: node
+ linkType: hard
+
"form-data@npm:^3.0.1":
version: 3.0.1
resolution: "form-data@npm:3.0.1"
@@ -11404,6 +12614,22 @@ __metadata:
languageName: node
linkType: hard
+"glob@npm:^11.0.0":
+ version: 11.0.3
+ resolution: "glob@npm:11.0.3"
+ dependencies:
+ foreground-child: ^3.3.1
+ jackspeak: ^4.1.1
+ minimatch: ^10.0.3
+ minipass: ^7.1.2
+ package-json-from-dist: ^1.0.0
+ path-scurry: ^2.0.0
+ bin:
+ glob: dist/esm/bin.mjs
+ checksum: 65ddc1e3c969e87999880580048763cc8b5bdd375930dd43b8100a5ba481d2e2563e4553de42875790800c602522a98aa8d3ed1c5bd4d27621609e6471eb371d
+ languageName: node
+ linkType: hard
+
"glob@npm:^6.0.1":
version: 6.0.4
resolution: "glob@npm:6.0.4"
@@ -11544,6 +12770,24 @@ __metadata:
languageName: node
linkType: hard
+"handlebars@npm:^4.7.7":
+ version: 4.7.8
+ resolution: "handlebars@npm:4.7.8"
+ dependencies:
+ minimist: ^1.2.5
+ neo-async: ^2.6.2
+ source-map: ^0.6.1
+ uglify-js: ^3.1.4
+ wordwrap: ^1.0.0
+ dependenciesMeta:
+ uglify-js:
+ optional: true
+ bin:
+ handlebars: bin/handlebars
+ checksum: 00e68bb5c183fd7b8b63322e6234b5ac8fbb960d712cb3f25587d559c2951d9642df83c04a1172c918c41bcfc81bfbd7a7718bbce93b893e0135fc99edea93ff
+ languageName: node
+ linkType: hard
+
"hard-rejection@npm:^2.1.0":
version: 2.1.0
resolution: "hard-rejection@npm:2.1.0"
@@ -11872,13 +13116,20 @@ __metadata:
languageName: node
linkType: hard
-"html-entities@npm:^2.1.0, html-entities@npm:^2.5.2":
+"html-entities@npm:^2.1.0":
version: 2.5.2
resolution: "html-entities@npm:2.5.2"
checksum: b23f4a07d33d49ade1994069af4e13d31650e3fb62621e92ae10ecdf01d1a98065c78fd20fdc92b4c7881612210b37c275f2c9fba9777650ab0d6f2ceb3b99b6
languageName: node
linkType: hard
+"html-entities@npm:^2.6.0":
+ version: 2.6.0
+ resolution: "html-entities@npm:2.6.0"
+ checksum: 720643f7954019c80911430a7df2728524c07080edfe812610bfc5d8191cd772b470bee0ee151bf7426679314ae53cf28a1c845d702123714e625a8565b26567
+ languageName: node
+ linkType: hard
+
"html-escaper@npm:^2.0.0":
version: 2.0.2
resolution: "html-escaper@npm:2.0.2"
@@ -12022,7 +13273,7 @@ __metadata:
languageName: node
linkType: hard
-"iconv-lite@npm:0.6.3, iconv-lite@npm:^0.6.2":
+"iconv-lite@npm:0.6.3, iconv-lite@npm:^0.6.2, iconv-lite@npm:^0.6.3":
version: 0.6.3
resolution: "iconv-lite@npm:0.6.3"
dependencies:
@@ -12364,6 +13615,13 @@ __metadata:
languageName: node
linkType: hard
+"is-buffer@npm:^1.1.5, is-buffer@npm:~1.1.6":
+ version: 1.1.6
+ resolution: "is-buffer@npm:1.1.6"
+ checksum: 4a186d995d8bbf9153b4bd9ff9fd04ae75068fe695d29025d25e592d9488911eeece84eefbd8fa41b8ddcc0711058a71d4c466dcf6f1f6e1d83830052d8ca707
+ languageName: node
+ linkType: hard
+
"is-buffer@npm:^2.0.0":
version: 2.0.5
resolution: "is-buffer@npm:2.0.5"
@@ -12371,13 +13629,6 @@ __metadata:
languageName: node
linkType: hard
-"is-buffer@npm:~1.1.6":
- version: 1.1.6
- resolution: "is-buffer@npm:1.1.6"
- checksum: 4a186d995d8bbf9153b4bd9ff9fd04ae75068fe695d29025d25e592d9488911eeece84eefbd8fa41b8ddcc0711058a71d4c466dcf6f1f6e1d83830052d8ca707
- languageName: node
- linkType: hard
-
"is-callable@npm:^1.1.3, is-callable@npm:^1.1.4, is-callable@npm:^1.2.7":
version: 1.2.7
resolution: "is-callable@npm:1.2.7"
@@ -12481,6 +13732,15 @@ __metadata:
languageName: node
linkType: hard
+"is-even@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "is-even@npm:1.0.0"
+ dependencies:
+ is-odd: ^0.1.2
+ checksum: 0267545d7cb6724aee249e88942cf22f6263aa006cd9bf83c2ddbb2a1d47280e8c4d72b2d50e38bd3575df717c993904b44153cc1772a55dabca250ca40cc4f7
+ languageName: node
+ linkType: hard
+
"is-extendable@npm:^0.1.0":
version: 0.1.1
resolution: "is-extendable@npm:0.1.1"
@@ -12635,6 +13895,15 @@ __metadata:
languageName: node
linkType: hard
+"is-number@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "is-number@npm:3.0.0"
+ dependencies:
+ kind-of: ^3.0.2
+ checksum: 0c62bf8e9d72c4dd203a74d8cfc751c746e75513380fef420cda8237e619a988ee43e678ddb23c87ac24d91ac0fe9f22e4ffb1301a50310c697e9d73ca3994e9
+ languageName: node
+ linkType: hard
+
"is-number@npm:^7.0.0":
version: 7.0.0
resolution: "is-number@npm:7.0.0"
@@ -12649,6 +13918,15 @@ __metadata:
languageName: node
linkType: hard
+"is-odd@npm:^0.1.2":
+ version: 0.1.2
+ resolution: "is-odd@npm:0.1.2"
+ dependencies:
+ is-number: ^3.0.0
+ checksum: 146069d7622c991c75c17ca63bccf5470cd730c24082874e53e797a10ff38a896197d6ce34ad137a2f422dcc614b10ff24d31fe93dcdb29f0cb758f2d924f477
+ languageName: node
+ linkType: hard
+
"is-path-cwd@npm:^2.2.0":
version: 2.2.0
resolution: "is-path-cwd@npm:2.2.0"
@@ -12962,13 +14240,6 @@ __metadata:
languageName: node
linkType: hard
-"isomorphic-rslog@npm:0.0.6":
- version: 0.0.6
- resolution: "isomorphic-rslog@npm:0.0.6"
- checksum: 20ee7ebedecf32a5504b733dd7065780e98434aa64c5ba5d330ae1b5769bb26601f9cb4b70b195e17eaf62c40264396b5431ef371cd32eb2c0c83a5474d59eea
- languageName: node
- linkType: hard
-
"istanbul-lib-coverage@npm:^3.0.0, istanbul-lib-coverage@npm:^3.2.0":
version: 3.2.0
resolution: "istanbul-lib-coverage@npm:3.2.0"
@@ -13074,6 +14345,15 @@ __metadata:
languageName: node
linkType: hard
+"jackspeak@npm:^4.1.1":
+ version: 4.1.1
+ resolution: "jackspeak@npm:4.1.1"
+ dependencies:
+ "@isaacs/cliui": ^8.0.2
+ checksum: daca714c5adebfb80932c0b0334025307b68602765098d73d52ec546bc4defdb083292893384261c052742255d0a77d8fcf96f4c669bcb4a99b498b94a74955e
+ languageName: node
+ linkType: hard
+
"jest-changed-files@npm:^29.7.0":
version: 29.7.0
resolution: "jest-changed-files@npm:29.7.0"
@@ -13713,7 +14993,7 @@ __metadata:
languageName: node
linkType: hard
-"jest@npm:^29.6.3":
+"jest@npm:^29.6.3, jest@npm:^29.7.0":
version: 29.7.0
resolution: "jest@npm:29.7.0"
dependencies:
@@ -13739,6 +15019,15 @@ __metadata:
languageName: node
linkType: hard
+"jiti@npm:^2.4.2":
+ version: 2.4.2
+ resolution: "jiti@npm:2.4.2"
+ bin:
+ jiti: lib/jiti-cli.mjs
+ checksum: c6c30c7b6b293e9f26addfb332b63d964a9f143cdd2cf5e946dbe5143db89f7c1b50ad9223b77fb1f6ddb0b9c5ecef995fea024ecf7d2861d285d779cde66e1e
+ languageName: node
+ linkType: hard
+
"joi@npm:^17.2.1":
version: 17.13.3
resolution: "joi@npm:17.13.3"
@@ -13964,6 +15253,13 @@ __metadata:
languageName: node
linkType: hard
+"jsonc-parser@npm:^3.2.0":
+ version: 3.3.1
+ resolution: "jsonc-parser@npm:3.3.1"
+ checksum: 81ef19d98d9c6bd6e4a37a95e2753c51c21705cbeffd895e177f4b542cca9cda5fda12fb942a71a2e824a9132cf119dc2e642e9286386055e1365b5478f49a47
+ languageName: node
+ linkType: hard
+
"jsonfile@npm:^4.0.0":
version: 4.0.0
resolution: "jsonfile@npm:4.0.0"
@@ -14020,6 +15316,15 @@ __metadata:
languageName: node
linkType: hard
+"kind-of@npm:^3.0.2":
+ version: 3.2.2
+ resolution: "kind-of@npm:3.2.2"
+ dependencies:
+ is-buffer: ^1.1.5
+ checksum: e898df8ca2f31038f27d24f0b8080da7be274f986bc6ed176f37c77c454d76627619e1681f6f9d2e8d2fd7557a18ecc419a6bb54e422abcbb8da8f1a75e4b386
+ languageName: node
+ linkType: hard
+
"kind-of@npm:^6.0.0, kind-of@npm:^6.0.2, kind-of@npm:^6.0.3":
version: 6.0.3
resolution: "kind-of@npm:6.0.3"
@@ -14065,6 +15370,40 @@ __metadata:
languageName: node
linkType: hard
+"license-kit-node-example@workspace:examples/node-example":
+ version: 0.0.0-use.local
+ resolution: "license-kit-node-example@workspace:examples/node-example"
+ dependencies:
+ "@babel/core": 7.27.4
+ "@babel/preset-env": 7.27.2
+ "@babel/preset-typescript": 7.27.1
+ "@types/jest": ^29.5.5
+ babel-jest: ^29.7.0
+ dhtmlx-gantt: 9.0.11
+ is-even: ^1.0.0
+ jest: ^29.7.0
+ license-kit: "workspace:*"
+ mariadb: 3.4.2
+ zustand: ^5.0.5
+ languageName: unknown
+ linkType: soft
+
+"license-kit@workspace:*, license-kit@workspace:packages/license-kit":
+ version: 0.0.0-use.local
+ resolution: "license-kit@workspace:packages/license-kit"
+ dependencies:
+ "@callstack/react-native-legal-shared": ^0.1.1
+ "@types/jest": ^29.5.5
+ commander: ^14.0.0
+ jest: ^29.7.0
+ rimraf: ^6.0.1
+ ts-markdown-builder: ^0.4.1
+ typescript: ^5.8.3
+ bin:
+ license-kit: build/index.js
+ languageName: unknown
+ linkType: soft
+
"lighthouse-logger@npm:^1.0.0":
version: 1.4.2
resolution: "lighthouse-logger@npm:1.4.2"
@@ -14396,13 +15735,20 @@ __metadata:
languageName: node
linkType: hard
-"lru-cache@npm:^10.0.1, lru-cache@npm:^10.2.0":
+"lru-cache@npm:^10.0.1, lru-cache@npm:^10.2.0, lru-cache@npm:^10.3.0":
version: 10.4.3
resolution: "lru-cache@npm:10.4.3"
checksum: 6476138d2125387a6d20f100608c2583d415a4f64a0fecf30c9e2dda976614f09cad4baa0842447bd37dd459a7bd27f57d9d8f8ce558805abd487c583f3d774a
languageName: node
linkType: hard
+"lru-cache@npm:^11.0.0":
+ version: 11.1.0
+ resolution: "lru-cache@npm:11.1.0"
+ checksum: 6274e90b5fdff87570fe26fe971467a5ae1f25f132bebe187e71c5627c7cd2abb94b47addd0ecdad034107667726ebde1abcef083d80f2126e83476b2c4e7c82
+ languageName: node
+ linkType: hard
+
"lru-cache@npm:^5.1.1":
version: 5.1.1
resolution: "lru-cache@npm:5.1.1"
@@ -14435,6 +15781,13 @@ __metadata:
languageName: node
linkType: hard
+"lunr@npm:^2.3.9":
+ version: 2.3.9
+ resolution: "lunr@npm:2.3.9"
+ checksum: 176719e24fcce7d3cf1baccce9dd5633cd8bdc1f41ebe6a180112e5ee99d80373fe2454f5d4624d437e5a8319698ca6837b9950566e15d2cae5f2a543a3db4b8
+ languageName: node
+ linkType: hard
+
"make-dir@npm:^2.0.0, make-dir@npm:^2.1.0":
version: 2.1.0
resolution: "make-dir@npm:2.1.0"
@@ -14507,6 +15860,19 @@ __metadata:
languageName: node
linkType: hard
+"mariadb@npm:3.4.2":
+ version: 3.4.2
+ resolution: "mariadb@npm:3.4.2"
+ dependencies:
+ "@types/geojson": ^7946.0.14
+ "@types/node": ^22.5.4
+ denque: ^2.1.0
+ iconv-lite: ^0.6.3
+ lru-cache: ^10.3.0
+ checksum: af1adc93d16b37fb35b99c3e9a5bb910c3068a2033475964e1c8ad971bac9c3bef8b41979cd687a10da3d34b7408123638265f99b59491026c912d30dee0a8c3
+ languageName: node
+ linkType: hard
+
"markdown-extensions@npm:^1.0.0":
version: 1.1.1
resolution: "markdown-extensions@npm:1.1.1"
@@ -14521,6 +15887,15 @@ __metadata:
languageName: node
linkType: hard
+"marked@npm:^4.3.0":
+ version: 4.3.0
+ resolution: "marked@npm:4.3.0"
+ bin:
+ marked: bin/marked.js
+ checksum: 0db6817893952c3ec710eb9ceafb8468bf5ae38cb0f92b7b083baa13d70b19774674be04db5b817681fa7c5c6a088f61300815e4dd75a59696f4716ad69f6260
+ languageName: node
+ linkType: hard
+
"marky@npm:^1.2.2":
version: 1.2.5
resolution: "marky@npm:1.2.5"
@@ -15591,6 +16966,15 @@ __metadata:
languageName: node
linkType: hard
+"minimatch@npm:^10.0.3":
+ version: 10.0.3
+ resolution: "minimatch@npm:10.0.3"
+ dependencies:
+ "@isaacs/brace-expansion": ^5.0.0
+ checksum: 20bfb708095a321cb43c20b78254e484cb7d23aad992e15ca3234a3331a70fa9cd7a50bc1a7c7b2b9c9890c37ff0685f8380028fcc28ea5e6de75b1d4f9374aa
+ languageName: node
+ linkType: hard
+
"minimatch@npm:^5.0.1":
version: 5.1.6
resolution: "minimatch@npm:5.1.6"
@@ -15600,21 +16984,21 @@ __metadata:
languageName: node
linkType: hard
-"minimatch@npm:^9.0.1":
- version: 9.0.3
- resolution: "minimatch@npm:9.0.3"
+"minimatch@npm:^9.0.0, minimatch@npm:^9.0.4":
+ version: 9.0.5
+ resolution: "minimatch@npm:9.0.5"
dependencies:
brace-expansion: ^2.0.1
- checksum: 253487976bf485b612f16bf57463520a14f512662e592e95c571afdab1442a6a6864b6c88f248ce6fc4ff0b6de04ac7aa6c8bb51e868e99d1d65eb0658a708b5
+ checksum: 2c035575eda1e50623c731ec6c14f65a85296268f749b9337005210bb2b34e2705f8ef1a358b188f69892286ab99dc42c8fb98a57bde55c8d81b3023c19cea28
languageName: node
linkType: hard
-"minimatch@npm:^9.0.4":
- version: 9.0.5
- resolution: "minimatch@npm:9.0.5"
+"minimatch@npm:^9.0.1":
+ version: 9.0.3
+ resolution: "minimatch@npm:9.0.3"
dependencies:
brace-expansion: ^2.0.1
- checksum: 2c035575eda1e50623c731ec6c14f65a85296268f749b9337005210bb2b34e2705f8ef1a358b188f69892286ab99dc42c8fb98a57bde55c8d81b3023c19cea28
+ checksum: 253487976bf485b612f16bf57463520a14f512662e592e95c571afdab1442a6a6864b6c88f248ce6fc4ff0b6de04ac7aa6c8bb51e868e99d1d65eb0658a708b5
languageName: node
linkType: hard
@@ -15629,7 +17013,7 @@ __metadata:
languageName: node
linkType: hard
-"minimist@npm:^1.2.0, minimist@npm:^1.2.6":
+"minimist@npm:^1.2.0, minimist@npm:^1.2.5, minimist@npm:^1.2.6":
version: 1.2.8
resolution: "minimist@npm:1.2.8"
checksum: 75a6d645fb122dad29c06a7597bddea977258957ed88d7a6df59b5cd3fe4a527e253e9bbf2e783e4b73657f9098b96a5fe96ab8a113655d4109108577ecf85b0
@@ -15806,7 +17190,16 @@ __metadata:
languageName: node
linkType: hard
-"nanoid@npm:^3.3.7, nanoid@npm:^3.3.8":
+"nanoid@npm:^3.3.11":
+ version: 3.3.11
+ resolution: "nanoid@npm:3.3.11"
+ bin:
+ nanoid: bin/nanoid.cjs
+ checksum: 3be20d8866a57a6b6d218e82549711c8352ed969f9ab3c45379da28f405363ad4c9aeb0b39e9abc101a529ca65a72ff9502b00bf74a912c4b64a9d62dfd26c29
+ languageName: node
+ linkType: hard
+
+"nanoid@npm:^3.3.7":
version: 3.3.8
resolution: "nanoid@npm:3.3.8"
bin:
@@ -15852,7 +17245,7 @@ __metadata:
languageName: node
linkType: hard
-"neo-async@npm:^2.5.0, neo-async@npm:^2.6.1":
+"neo-async@npm:^2.5.0, neo-async@npm:^2.6.1, neo-async@npm:^2.6.2":
version: 2.6.2
resolution: "neo-async@npm:2.6.2"
checksum: deac9f8d00eda7b2e5cd1b2549e26e10a0faa70adaa6fdadca701cc55f49ee9018e427f424bac0c790b7c7e2d3068db97f3093f1093975f2acb8f8818b936ed9
@@ -16705,6 +18098,16 @@ __metadata:
languageName: node
linkType: hard
+"path-scurry@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "path-scurry@npm:2.0.0"
+ dependencies:
+ lru-cache: ^11.0.0
+ minipass: ^7.1.2
+ checksum: 9953ce3857f7e0796b187a7066eede63864b7e1dfc14bf0484249801a5ab9afb90d9a58fc533ebb1b552d23767df8aa6a2c6c62caf3f8a65f6ce336a97bbb484
+ languageName: node
+ linkType: hard
+
"path-type@npm:^4.0.0":
version: 4.0.0
resolution: "path-type@npm:4.0.0"
@@ -16822,14 +18225,14 @@ __metadata:
languageName: node
linkType: hard
-"postcss@npm:^8.5.2":
- version: 8.5.3
- resolution: "postcss@npm:8.5.3"
+"postcss@npm:^8.5.4":
+ version: 8.5.6
+ resolution: "postcss@npm:8.5.6"
dependencies:
- nanoid: ^3.3.8
+ nanoid: ^3.3.11
picocolors: ^1.1.1
source-map-js: ^1.2.1
- checksum: da574620eb84ff60e65e1d8fc6bd5ad87a19101a23d0aba113c653434161543918229a0f673d89efb3b6d4906287eb04b957310dbcf4cbebacad9d1312711461
+ checksum: 20f3b5d673ffeec2b28d65436756d31ee33f65b0a8bedb3d32f556fbd5973be38c3a7fb5b959a5236c60a5db7b91b0a6b14ffaac0d717dce1b903b964ee1c1bb
languageName: node
linkType: hard
@@ -17268,6 +18671,8 @@ __metadata:
version: 0.0.0-use.local
resolution: "react-native-legal@workspace:packages/react-native-legal"
dependencies:
+ "@callstack/react-native-legal-shared": ^0.1.1
+ "@types/glob": ^8.1.0
"@types/xml2js": ^0.4.11
expo: ~52.0.36
expo-module-scripts: ^4.0.0
@@ -17347,10 +18752,10 @@ __metadata:
languageName: node
linkType: hard
-"react-refresh@npm:^0.16.0":
- version: 0.16.0
- resolution: "react-refresh@npm:0.16.0"
- checksum: becff1ced3c9eb3631e06e038d7238c1badb329c1232a34694cc9983b1d176b6ffb74560d2dc4cc5e3353aa0041503ae2e71d5043ac82a2bcfb1fdf529dbe8b0
+"react-refresh@npm:^0.17.0":
+ version: 0.17.0
+ resolution: "react-refresh@npm:0.17.0"
+ checksum: e9d23a70543edde879263976d7909cd30c6f698fa372a1240142cf7c8bf99e0396378b9c07c2d39c3a10261d7ba07dc49f990cd8f1ac7b88952e99040a0be5e9
languageName: node
linkType: hard
@@ -18098,6 +19503,18 @@ __metadata:
languageName: node
linkType: hard
+"rimraf@npm:^6.0.1":
+ version: 6.0.1
+ resolution: "rimraf@npm:6.0.1"
+ dependencies:
+ glob: ^11.0.0
+ package-json-from-dist: ^1.0.0
+ bin:
+ rimraf: dist/esm/bin.mjs
+ checksum: 8ba5b84131c1344e9417cb7e8c05d8368bb73cbe5dd4c1d5eb49fc0b558209781658d18c450460e30607d0b7865bb067482839a2f343b186b07ae87715837e66
+ languageName: node
+ linkType: hard
+
"rimraf@npm:~2.4.0":
version: 2.4.5
resolution: "rimraf@npm:2.4.5"
@@ -18147,19 +19564,19 @@ __metadata:
languageName: node
linkType: hard
-"rspress@npm:^1.40.2":
- version: 1.43.0
- resolution: "rspress@npm:1.43.0"
+"rspress@npm:1.44.0":
+ version: 1.44.0
+ resolution: "rspress@npm:1.44.0"
dependencies:
- "@rsbuild/core": 1.2.3
- "@rspress/core": 1.43.0
- "@rspress/shared": 1.43.0
+ "@rsbuild/core": ~1.3.18
+ "@rspress/core": 1.44.0
+ "@rspress/shared": 1.44.0
cac: ^6.7.14
chokidar: ^3.6.0
picocolors: ^1.1.1
bin:
rspress: bin/rspress.js
- checksum: 660aad4d5431dda4b45fb5374773aa956efbfe2dc6337abf9cd436a97e232a395d107c53a3ca19a35c0e52eb703957b3370e1996c9e81c94b4421fedd29dc0d0
+ checksum: ed69b41118bf44471830d3371fca235f2e698fd2c17af7c0f2f44c7bf941ee3908b0256b9a6f1e7b76381a804e231fa59ea6e24ce6c7aaba923208eb02ddfad7
languageName: node
linkType: hard
@@ -18289,175 +19706,175 @@ __metadata:
languageName: node
linkType: hard
-"sass-embedded-android-arm64@npm:1.85.1":
- version: 1.85.1
- resolution: "sass-embedded-android-arm64@npm:1.85.1"
+"sass-embedded-android-arm64@npm:1.89.0":
+ version: 1.89.0
+ resolution: "sass-embedded-android-arm64@npm:1.89.0"
conditions: os=android & cpu=arm64
languageName: node
linkType: hard
-"sass-embedded-android-arm@npm:1.85.1":
- version: 1.85.1
- resolution: "sass-embedded-android-arm@npm:1.85.1"
+"sass-embedded-android-arm@npm:1.89.0":
+ version: 1.89.0
+ resolution: "sass-embedded-android-arm@npm:1.89.0"
conditions: os=android & cpu=arm
languageName: node
linkType: hard
-"sass-embedded-android-ia32@npm:1.85.1":
- version: 1.85.1
- resolution: "sass-embedded-android-ia32@npm:1.85.1"
+"sass-embedded-android-ia32@npm:1.89.0":
+ version: 1.89.0
+ resolution: "sass-embedded-android-ia32@npm:1.89.0"
conditions: os=android & cpu=ia32
languageName: node
linkType: hard
-"sass-embedded-android-riscv64@npm:1.85.1":
- version: 1.85.1
- resolution: "sass-embedded-android-riscv64@npm:1.85.1"
+"sass-embedded-android-riscv64@npm:1.89.0":
+ version: 1.89.0
+ resolution: "sass-embedded-android-riscv64@npm:1.89.0"
conditions: os=android & cpu=riscv64
languageName: node
linkType: hard
-"sass-embedded-android-x64@npm:1.85.1":
- version: 1.85.1
- resolution: "sass-embedded-android-x64@npm:1.85.1"
+"sass-embedded-android-x64@npm:1.89.0":
+ version: 1.89.0
+ resolution: "sass-embedded-android-x64@npm:1.89.0"
conditions: os=android & cpu=x64
languageName: node
linkType: hard
-"sass-embedded-darwin-arm64@npm:1.85.1":
- version: 1.85.1
- resolution: "sass-embedded-darwin-arm64@npm:1.85.1"
+"sass-embedded-darwin-arm64@npm:1.89.0":
+ version: 1.89.0
+ resolution: "sass-embedded-darwin-arm64@npm:1.89.0"
conditions: os=darwin & cpu=arm64
languageName: node
linkType: hard
-"sass-embedded-darwin-x64@npm:1.85.1":
- version: 1.85.1
- resolution: "sass-embedded-darwin-x64@npm:1.85.1"
+"sass-embedded-darwin-x64@npm:1.89.0":
+ version: 1.89.0
+ resolution: "sass-embedded-darwin-x64@npm:1.89.0"
conditions: os=darwin & cpu=x64
languageName: node
linkType: hard
-"sass-embedded-linux-arm64@npm:1.85.1":
- version: 1.85.1
- resolution: "sass-embedded-linux-arm64@npm:1.85.1"
+"sass-embedded-linux-arm64@npm:1.89.0":
+ version: 1.89.0
+ resolution: "sass-embedded-linux-arm64@npm:1.89.0"
conditions: os=linux & cpu=arm64
languageName: node
linkType: hard
-"sass-embedded-linux-arm@npm:1.85.1":
- version: 1.85.1
- resolution: "sass-embedded-linux-arm@npm:1.85.1"
+"sass-embedded-linux-arm@npm:1.89.0":
+ version: 1.89.0
+ resolution: "sass-embedded-linux-arm@npm:1.89.0"
conditions: os=linux & cpu=arm
languageName: node
linkType: hard
-"sass-embedded-linux-ia32@npm:1.85.1":
- version: 1.85.1
- resolution: "sass-embedded-linux-ia32@npm:1.85.1"
+"sass-embedded-linux-ia32@npm:1.89.0":
+ version: 1.89.0
+ resolution: "sass-embedded-linux-ia32@npm:1.89.0"
conditions: os=linux & cpu=ia32
languageName: node
linkType: hard
-"sass-embedded-linux-musl-arm64@npm:1.85.1":
- version: 1.85.1
- resolution: "sass-embedded-linux-musl-arm64@npm:1.85.1"
+"sass-embedded-linux-musl-arm64@npm:1.89.0":
+ version: 1.89.0
+ resolution: "sass-embedded-linux-musl-arm64@npm:1.89.0"
conditions: os=linux & cpu=arm64
languageName: node
linkType: hard
-"sass-embedded-linux-musl-arm@npm:1.85.1":
- version: 1.85.1
- resolution: "sass-embedded-linux-musl-arm@npm:1.85.1"
+"sass-embedded-linux-musl-arm@npm:1.89.0":
+ version: 1.89.0
+ resolution: "sass-embedded-linux-musl-arm@npm:1.89.0"
conditions: os=linux & cpu=arm
languageName: node
linkType: hard
-"sass-embedded-linux-musl-ia32@npm:1.85.1":
- version: 1.85.1
- resolution: "sass-embedded-linux-musl-ia32@npm:1.85.1"
+"sass-embedded-linux-musl-ia32@npm:1.89.0":
+ version: 1.89.0
+ resolution: "sass-embedded-linux-musl-ia32@npm:1.89.0"
conditions: os=linux & cpu=ia32
languageName: node
linkType: hard
-"sass-embedded-linux-musl-riscv64@npm:1.85.1":
- version: 1.85.1
- resolution: "sass-embedded-linux-musl-riscv64@npm:1.85.1"
+"sass-embedded-linux-musl-riscv64@npm:1.89.0":
+ version: 1.89.0
+ resolution: "sass-embedded-linux-musl-riscv64@npm:1.89.0"
conditions: os=linux & cpu=riscv64
languageName: node
linkType: hard
-"sass-embedded-linux-musl-x64@npm:1.85.1":
- version: 1.85.1
- resolution: "sass-embedded-linux-musl-x64@npm:1.85.1"
+"sass-embedded-linux-musl-x64@npm:1.89.0":
+ version: 1.89.0
+ resolution: "sass-embedded-linux-musl-x64@npm:1.89.0"
conditions: os=linux & cpu=x64
languageName: node
linkType: hard
-"sass-embedded-linux-riscv64@npm:1.85.1":
- version: 1.85.1
- resolution: "sass-embedded-linux-riscv64@npm:1.85.1"
+"sass-embedded-linux-riscv64@npm:1.89.0":
+ version: 1.89.0
+ resolution: "sass-embedded-linux-riscv64@npm:1.89.0"
conditions: os=linux & cpu=riscv64
languageName: node
linkType: hard
-"sass-embedded-linux-x64@npm:1.85.1":
- version: 1.85.1
- resolution: "sass-embedded-linux-x64@npm:1.85.1"
+"sass-embedded-linux-x64@npm:1.89.0":
+ version: 1.89.0
+ resolution: "sass-embedded-linux-x64@npm:1.89.0"
conditions: os=linux & cpu=x64
languageName: node
linkType: hard
-"sass-embedded-win32-arm64@npm:1.85.1":
- version: 1.85.1
- resolution: "sass-embedded-win32-arm64@npm:1.85.1"
+"sass-embedded-win32-arm64@npm:1.89.0":
+ version: 1.89.0
+ resolution: "sass-embedded-win32-arm64@npm:1.89.0"
conditions: os=win32 & cpu=arm64
languageName: node
linkType: hard
-"sass-embedded-win32-ia32@npm:1.85.1":
- version: 1.85.1
- resolution: "sass-embedded-win32-ia32@npm:1.85.1"
+"sass-embedded-win32-ia32@npm:1.89.0":
+ version: 1.89.0
+ resolution: "sass-embedded-win32-ia32@npm:1.89.0"
conditions: os=win32 & cpu=ia32
languageName: node
linkType: hard
-"sass-embedded-win32-x64@npm:1.85.1":
- version: 1.85.1
- resolution: "sass-embedded-win32-x64@npm:1.85.1"
+"sass-embedded-win32-x64@npm:1.89.0":
+ version: 1.89.0
+ resolution: "sass-embedded-win32-x64@npm:1.89.0"
conditions: os=win32 & cpu=x64
languageName: node
linkType: hard
-"sass-embedded@npm:^1.85.0":
- version: 1.85.1
- resolution: "sass-embedded@npm:1.85.1"
+"sass-embedded@npm:1.89.0":
+ version: 1.89.0
+ resolution: "sass-embedded@npm:1.89.0"
dependencies:
"@bufbuild/protobuf": ^2.0.0
buffer-builder: ^0.2.0
colorjs.io: ^0.5.0
immutable: ^5.0.2
rxjs: ^7.4.0
- sass-embedded-android-arm: 1.85.1
- sass-embedded-android-arm64: 1.85.1
- sass-embedded-android-ia32: 1.85.1
- sass-embedded-android-riscv64: 1.85.1
- sass-embedded-android-x64: 1.85.1
- sass-embedded-darwin-arm64: 1.85.1
- sass-embedded-darwin-x64: 1.85.1
- sass-embedded-linux-arm: 1.85.1
- sass-embedded-linux-arm64: 1.85.1
- sass-embedded-linux-ia32: 1.85.1
- sass-embedded-linux-musl-arm: 1.85.1
- sass-embedded-linux-musl-arm64: 1.85.1
- sass-embedded-linux-musl-ia32: 1.85.1
- sass-embedded-linux-musl-riscv64: 1.85.1
- sass-embedded-linux-musl-x64: 1.85.1
- sass-embedded-linux-riscv64: 1.85.1
- sass-embedded-linux-x64: 1.85.1
- sass-embedded-win32-arm64: 1.85.1
- sass-embedded-win32-ia32: 1.85.1
- sass-embedded-win32-x64: 1.85.1
+ sass-embedded-android-arm: 1.89.0
+ sass-embedded-android-arm64: 1.89.0
+ sass-embedded-android-ia32: 1.89.0
+ sass-embedded-android-riscv64: 1.89.0
+ sass-embedded-android-x64: 1.89.0
+ sass-embedded-darwin-arm64: 1.89.0
+ sass-embedded-darwin-x64: 1.89.0
+ sass-embedded-linux-arm: 1.89.0
+ sass-embedded-linux-arm64: 1.89.0
+ sass-embedded-linux-ia32: 1.89.0
+ sass-embedded-linux-musl-arm: 1.89.0
+ sass-embedded-linux-musl-arm64: 1.89.0
+ sass-embedded-linux-musl-ia32: 1.89.0
+ sass-embedded-linux-musl-riscv64: 1.89.0
+ sass-embedded-linux-musl-x64: 1.89.0
+ sass-embedded-linux-riscv64: 1.89.0
+ sass-embedded-linux-x64: 1.89.0
+ sass-embedded-win32-arm64: 1.89.0
+ sass-embedded-win32-ia32: 1.89.0
+ sass-embedded-win32-x64: 1.89.0
supports-color: ^8.1.1
sync-child-process: ^1.0.2
varint: ^6.0.0
@@ -18504,7 +19921,7 @@ __metadata:
optional: true
bin:
sass: dist/bin/sass.js
- checksum: dc53f7877a7c9ba58b381fcb83fe11670543271efbc767e9d2296b8aef23bb67c00190b3dd5de7c155bea97728a0f0b79d6f15a99bd530a075370067ad6330f4
+ checksum: 23d4de702dd7979788d83db25da8929316ee8a2775f45dbdb54d4b44c437edc8b04d60e971d29ccdd8a19c8fc4eba0bf05660e5c23e1b052170fbd3f7a781235
languageName: node
linkType: hard
@@ -18831,6 +20248,18 @@ __metadata:
languageName: node
linkType: hard
+"shiki@npm:^0.14.1":
+ version: 0.14.7
+ resolution: "shiki@npm:0.14.7"
+ dependencies:
+ ansi-sequence-parser: ^1.1.0
+ jsonc-parser: ^3.2.0
+ vscode-oniguruma: ^1.7.0
+ vscode-textmate: ^8.0.0
+ checksum: 2aec3b3519df977c4391df9e1825cb496e9a4d7e11395f05a0da77e4fa2f7c3d9d6e6ee94029ac699533017f2b25637ee68f6d39f05f311535c2704d0329b520
+ languageName: node
+ linkType: hard
+
"side-channel-list@npm:^1.0.0":
version: 1.0.0
resolution: "side-channel-list@npm:1.0.0"
@@ -20012,6 +21441,13 @@ __metadata:
languageName: node
linkType: hard
+"ts-markdown-builder@npm:^0.4.1":
+ version: 0.4.1
+ resolution: "ts-markdown-builder@npm:0.4.1"
+ checksum: fcb16b44bce6fb66271640fb9d9569f95243cda791925d18b74e6c75bdeb8b70b7006073af8abd5d9b7220b44bc9153d4e4204bd24eeebe4b635f67ec965f2e9
+ languageName: node
+ linkType: hard
+
"ts-node@npm:^10.8.1":
version: 10.9.1
resolution: "ts-node@npm:10.9.1"
@@ -20285,6 +21721,33 @@ __metadata:
languageName: node
linkType: hard
+"typedoc-plugin-markdown@npm:3.17.1":
+ version: 3.17.1
+ resolution: "typedoc-plugin-markdown@npm:3.17.1"
+ dependencies:
+ handlebars: ^4.7.7
+ peerDependencies:
+ typedoc: ">=0.24.0"
+ checksum: f12494bfc98ef532be63fb5e7630ff0aa2de17bb22b1d0b6260c416fe8b62cb537ddd3576cadc90c57c4aae2371722994ed873dc3220b23660e149a3eb676c04
+ languageName: node
+ linkType: hard
+
+"typedoc@npm:0.24.8":
+ version: 0.24.8
+ resolution: "typedoc@npm:0.24.8"
+ dependencies:
+ lunr: ^2.3.9
+ marked: ^4.3.0
+ minimatch: ^9.0.0
+ shiki: ^0.14.1
+ peerDependencies:
+ typescript: 4.6.x || 4.7.x || 4.8.x || 4.9.x || 5.0.x || 5.1.x
+ bin:
+ typedoc: bin/typedoc
+ checksum: a46a14497f789fb3594e6c3af2e45276934ac46df40b7ed15a504ee51dc7a8013a2ffb3a54fd73abca6a2b71f97d3ec9ad356fa9aa81d29743e4645a965a2ae0
+ languageName: node
+ linkType: hard
+
"typescript@npm:^4.6.4 || ^5.0.0, typescript@npm:^5.1.3":
version: 5.1.6
resolution: "typescript@npm:5.1.6"
@@ -20295,6 +21758,16 @@ __metadata:
languageName: node
linkType: hard
+"typescript@npm:^5.8.3":
+ version: 5.8.3
+ resolution: "typescript@npm:5.8.3"
+ bin:
+ tsc: bin/tsc
+ tsserver: bin/tsserver
+ checksum: cb1d081c889a288b962d3c8ae18d337ad6ee88a8e81ae0103fa1fecbe923737f3ba1dbdb3e6d8b776c72bc73bfa6d8d850c0306eed1a51377d2fccdfd75d92c4
+ languageName: node
+ linkType: hard
+
"typescript@patch:typescript@^4.6.4 || ^5.0.0#~builtin, typescript@patch:typescript@^5.1.3#~builtin":
version: 5.1.6
resolution: "typescript@patch:typescript@npm%3A5.1.6#~builtin::version=5.1.6&hash=5da071"
@@ -20305,6 +21778,16 @@ __metadata:
languageName: node
linkType: hard
+"typescript@patch:typescript@^5.8.3#~builtin":
+ version: 5.8.3
+ resolution: "typescript@patch:typescript@npm%3A5.8.3#~builtin::version=5.8.3&hash=14eedb"
+ bin:
+ tsc: bin/tsc
+ tsserver: bin/tsserver
+ checksum: 1b503525a88ff0ff5952e95870971c4fb2118c17364d60302c21935dedcd6c37e6a0a692f350892bafcef6f4a16d09073fe461158547978d2f16fbe4cb18581c
+ languageName: node
+ linkType: hard
+
"ua-parser-js@npm:^1.0.35":
version: 1.0.35
resolution: "ua-parser-js@npm:1.0.35"
@@ -20312,6 +21795,15 @@ __metadata:
languageName: node
linkType: hard
+"uglify-js@npm:^3.1.4":
+ version: 3.19.3
+ resolution: "uglify-js@npm:3.19.3"
+ bin:
+ uglifyjs: bin/uglifyjs
+ checksum: 7ed6272fba562eb6a3149cfd13cda662f115847865c03099e3995a0e7a910eba37b82d4fccf9e88271bb2bcbe505bb374967450f433c17fa27aa36d94a8d0553
+ languageName: node
+ linkType: hard
+
"unbox-primitive@npm:^1.0.2":
version: 1.0.2
resolution: "unbox-primitive@npm:1.0.2"
@@ -20350,6 +21842,13 @@ __metadata:
languageName: node
linkType: hard
+"undici-types@npm:~6.21.0":
+ version: 6.21.0
+ resolution: "undici-types@npm:6.21.0"
+ checksum: 46331c7d6016bf85b3e8f20c159d62f5ae471aba1eb3dc52fff35a0259d58dcc7d592d4cc4f00c5f9243fa738a11cfa48bd20203040d4a9e6bc25e807fab7ab3
+ languageName: node
+ linkType: hard
+
"undici@npm:^6.18.2":
version: 6.21.1
resolution: "undici@npm:6.21.1"
@@ -20795,6 +22294,20 @@ __metadata:
languageName: node
linkType: hard
+"vscode-oniguruma@npm:^1.7.0":
+ version: 1.7.0
+ resolution: "vscode-oniguruma@npm:1.7.0"
+ checksum: 53519d91d90593e6fb080260892e87d447e9b200c4964d766772b5053f5699066539d92100f77f1302c91e8fc5d9c772fbe40fe4c90f3d411a96d5a9b1e63f42
+ languageName: node
+ linkType: hard
+
+"vscode-textmate@npm:^8.0.0":
+ version: 8.0.0
+ resolution: "vscode-textmate@npm:8.0.0"
+ checksum: 127780dfea89559d70b8326df6ec344cfd701312dd7f3f591a718693812b7852c30b6715e3cfc8b3200a4e2515b4c96f0843c0eacc0a3020969b5de262c2a4bb
+ languageName: node
+ linkType: hard
+
"w3c-xmlserializer@npm:^4.0.0":
version: 4.0.0
resolution: "w3c-xmlserializer@npm:4.0.0"
@@ -21069,6 +22582,13 @@ __metadata:
languageName: node
linkType: hard
+"wordwrap@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "wordwrap@npm:1.0.0"
+ checksum: 2a44b2788165d0a3de71fd517d4880a8e20ea3a82c080ce46e294f0b68b69a2e49cff5f99c600e275c698a90d12c5ea32aff06c311f0db2eb3f1201f3e7b2a04
+ languageName: node
+ linkType: hard
+
"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0, wrap-ansi@npm:^7.0.0":
version: 7.0.0
resolution: "wrap-ansi@npm:7.0.0"
@@ -21372,6 +22892,27 @@ __metadata:
languageName: node
linkType: hard
+"zustand@npm:^5.0.5":
+ version: 5.0.5
+ resolution: "zustand@npm:5.0.5"
+ peerDependencies:
+ "@types/react": ">=18.0.0"
+ immer: ">=9.0.6"
+ react: ">=18.0.0"
+ use-sync-external-store: ">=1.2.0"
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
+ immer:
+ optional: true
+ react:
+ optional: true
+ use-sync-external-store:
+ optional: true
+ checksum: 9f4fa5d7152c6b5a9cbcccb08ae34500c7495f8707549e7a8de3cea2844a75a81b4acc69a85601dbe539ee91f69c2d25d4e5286eb973bc76292a2012256061cb
+ languageName: node
+ linkType: hard
+
"zwitch@npm:^2.0.0":
version: 2.0.4
resolution: "zwitch@npm:2.0.4"