diff --git a/.github/workflows/pre-release.yml b/.github/workflows/pre-release.yml index 860dab66..8c75ab64 100644 --- a/.github/workflows/pre-release.yml +++ b/.github/workflows/pre-release.yml @@ -10,7 +10,7 @@ on: jobs: build: - runs-on: macOS-12 + runs-on: macOS-13 permissions: contents: write diff --git a/.github/workflows/release-changelog.yml b/.github/workflows/release-changelog.yml index 2eb9643b..ed7a20c1 100644 --- a/.github/workflows/release-changelog.yml +++ b/.github/workflows/release-changelog.yml @@ -7,7 +7,7 @@ on: jobs: update-changelog-after-publish-a-release: name: GitHub Actions Test - runs-on: macOS-12 + runs-on: macOS-13 strategy: matrix: diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 026a88dc..470e3a66 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -7,7 +7,7 @@ on: jobs: build: - runs-on: macOS-12 + runs-on: macOS-13 permissions: contents: write pull-requests: write diff --git a/.github/workflows/sync-main-to-develop.yml b/.github/workflows/sync-main-to-develop.yml index 94584cf4..b55a92f5 100644 --- a/.github/workflows/sync-main-to-develop.yml +++ b/.github/workflows/sync-main-to-develop.yml @@ -11,7 +11,7 @@ jobs: if_merged: if: github.event.pull_request.merged == true - runs-on: macOS-12 + runs-on: macOS-13 permissions: contents: write diff --git a/.github/workflows/unit-test.yml b/.github/workflows/unit-test.yml index fb6b1cb9..560cc091 100644 --- a/.github/workflows/unit-test.yml +++ b/.github/workflows/unit-test.yml @@ -11,7 +11,7 @@ on: jobs: build: - runs-on: macOS-12 + runs-on: macOS-13 strategy: matrix: diff --git a/.gitignore b/.gitignore index 279a800e..a620bb42 100644 --- a/.gitignore +++ b/.gitignore @@ -4,6 +4,9 @@ npm-debug.log* yarn-debug.log* yarn-error.log* +# vscode +.vscode + # Runtime data *.pid *.seed @@ -107,3 +110,7 @@ packages/calculator/tsconfig.esm.tsbuildinfo packages/chart-advisor/tsconfig.esm.tsbuildinfo packages/chart-advisor/tsconfig.cjs.tsbuildinfo packages/vmind/__tests__/browser/src/pages/mockData.ts +packages/vmind/__tests__/experiment/src/results + +# open api demo test +packages/node-api \ No newline at end of file diff --git a/.prettierrc.js b/.prettierrc.js index c673a638..839bf9aa 100644 --- a/.prettierrc.js +++ b/.prettierrc.js @@ -11,5 +11,6 @@ module.exports = { "arrowParens": "avoid", "proseWrap": "preserve", "htmlWhitespaceSensitivity": "css", - "endOfLine": "lf" + "endOfLine": "lf", + "printWidth": 120 }; diff --git a/README-ja.md b/README-ja.md index dc075247..b5d4909d 100644 --- a/README-ja.md +++ b/README-ja.md @@ -1,19 +1,14 @@ -
- - VisActor Logo - - - VisActor Logo - -
+# @visactor/vmind
-

VMind

+ +[English](README.md) | [简体中文](readme-zh.md) | 日本語 +
-自動だけでなく、素晴らしい。インテリジェントなビジュアライゼーションのためのオープンソースソリューション。 +自動化だけでなく、素晴らしい。オープンソースのインテリジェントな可視化ソリューション。

紹介 • @@ -33,68 +28,57 @@

-
- -英語 | [簡体字中国語](readme-zh.md) - -
- ## 紹介 -`@visactor/vmind`は、[VisActor](https://www.visactor.io/)が提供するLLMに基づいたインテリジェントなチャートコンポーネントであり、対話式のチャート生成および編集機能を含んでいます。自然言語のインタラクションインターフェースを提供し、たった一文で`@visactor/VMind`を使ってチャートナラティブ作品を簡単に作成し、継続的な対話を通じて編集することができ、データビジュアライゼーション作品を作成する効率を大幅に向上させます。 +`@visactor/vmind` は [VisActor](https://www.visactor.io/) によって提供される、LLM に基づくインテリジェントなチャートコンポーネントで、対話型のチャート生成と編集機能を含んでいます。自然言語インターフェースを提供し、1文で `@visactor/vmind` を使用してチャートナラティブ作品を簡単に作成し、連続した対話を通じて編集することで、データ可視化作品の作成効率を大幅に向上させます。 -`@visactor/vmind`の主な特徴は以下の通りです: +`@visactor/vmind` の主な特徴は以下の通りです: -- **使いやすさ**:表示したいデータと表示したい情報を説明する一文を提供するだけで、`@visactor/vmind`が自動的にチャートを生成します。既存のチャートに基づいて、チャートに加えたい変更を一文で説明すると、`@visactor/VMind`が望む効果を実現するのに役立ちます。 -- **強力な拡張性**:`@visactor/VMind`のコンポーネントは簡単に拡張およびカスタマイズでき、必要に応じて新しい機能や特徴を追加できます。デフォルトではOpenAI GPTモデルを使用しており、任意のLLMサービスに簡単に置き換えることができます。 -- **簡単なナラティブ**:`@visactor/vchart`の強力なチャートナラティブ能力に基づいて、`@visactor/VMind`はさまざまなタイプのチャートの生成をサポートしており、折れ線グラフ、棒グラフ、円グラフなどを含み、動的な棒グラフなどの動的なチャートも生成できます。これにより、データを簡単にナラティブ化できます。さらに多くのチャートタイプが追加されています。また、対話式の編集機能を使用して、チャートスタイルやアニメーション効果を簡単に変更できるため、ナラティブを簡単に作成できます。 -- **ワンクリックでエクスポート**:`@visactor/VMind`にはチャートエクスポートモジュールが付属しており、作成したチャートナラティブをビデオやGIFとしてエクスポートして表示できます。 +- **使いやすい**:表示したいデータと表示したい情報を説明する1文を提供するだけで、`@visactor/vmind` が自動的にチャートを生成します。既存のチャートに基づいて、チャートに加えたい変更を1文で説明すると、`@visactor/vmind` が望む効果を実現します。 +- **強力な拡張性**:`@visactor/vmind` のコンポーネントは簡単に拡張およびカスタマイズでき、必要に応じて新しい機能や特徴を追加できます。デフォルトでは OpenAI GPT モデルを使用し、任意の LLM サービスに簡単に置き換えることができます。 +- **簡単なナラティブ**:`@visactor/vchart` の強力なチャートナラティブ能力に基づき、`@visactor/vmind` は折れ線グラフ、棒グラフ、円グラフなど、さまざまなタイプのチャートの生成をサポートし、動的な棒グラフやその他の動的なチャートも生成できます。これにより、データを簡単にナレーションできます。さらに、対話型の編集機能を使用して、チャートのスタイルやアニメーション効果を簡単に変更し、ナラティブを作成できます。 +- **ワンクリックエクスポート**:`@visactor/vmind` にはチャートエクスポートモジュールが付属しており、作成したチャートナラティブをビデオや GIF としてエクスポートして表示できます。 ## 開発ガイド ### ドキュメントページ -VMindリポジトリに入り、以下を実行します: +VMind リポジトリに入り、以下を実行します: ```bash -# 依存関係のインストール +# 依存関係をインストール $ rush update -# デモページの開始 +# デモページを開始 $ rush docs ``` -### 開発ページの開始 +### 開発ページを開始 -VMindリポジトリに入り、以下を実行します: +VMind リポジトリに入り、以下を実行します: ```bash -# 依存関係のインストール +# 依存関係をインストール $ rush update -# VMind開発ページの開始 +# VMind 開発ページを開始 $ rush vmind ``` -これで、vmind開発ページを開始できます。 -正常に使用するには、LLMサービスのURLとAPIキーを設定する必要があります。packages/vmind/\_\_tests\_\_/browser/src/pages/DataInput.tsxでLLMを呼び出す際のヘッダーを変更できます。 -packages/vmindフォルダに新しい.env.localファイルを作成し、その中に以下を書き込むことができます: +これで vmind 開発ページを開始できます。 +正常に使用するには、LLM サービスの URL と API キーを設定する必要があります。packages/vmind/\_\_tests\_\_/browser/src/pages/DataInput.tsx で LLM を呼び出すときのヘッダーを変更できます。 +packages/vmind フォルダーに新しい .env.local ファイルを作成し、次の内容を書き込みます: ```bash -VITE_SKYLARK_URL="Your service url of skylark model" VITE_GPT_URL="Your service url of gpt model" -VITE_SKYLARK_KEY="Your api-key of skylark model" VITE_GPT_KEY="Your api-key of gpt model" +VITE_DEEPSEEK_URL="https://api.deepseek.com/chat/completions" +VITE_DEEPSEEK_KEY="Your api-key of deepseek model" +VITE_CUSTOM_URL="Your service url of custom model" +VITE_CUSTOM_KEY="Your api-key of custom model" +VITE_CUSTOM_MODEL="Your Custom Model Name" VITE_PROXY_CONFIG="Your Vite proxy config for forwarding requests. Must be in JSON string format and is optional. Example: {"proxy": {"/v1": {"target": "https://api.openai.com/","changeOrigin": true},"/openapi": {"target": "https://api.openai.com/","changeOrigin": true}}}" ``` -これらの設定は、開発環境を開始する際に自動的に読み込まれます。 - -### プロジェクト構造 - -- \_\_tests\_\_: 開発用のプレイグラウンド -- src/common: 共通のデータ処理、チャート推奨方法、チャート生成パイプライン -- src/gpt: gptに関連するインテリジェントチャート生成コード -- src/skylark: skylarkに関連するインテリジェントチャート生成コード -- src/chart-to-video: ビデオ、GIFのエクスポートに関連するコード +開発環境を開始するときにこれらの設定が自動的に読み込まれます。 ## 使用方法 @@ -130,39 +114,56 @@ yarn add @visactor/vmind import VMind from '@visactor/vmind'; ``` -VMindは現在、OpenAI GPT-3.5、GPT-4モデルおよびskylark-proシリーズモデルをサポートしています。ユーザーは、VMindオブジェクトを初期化する際に呼び出すモデルタイプを指定し、LLMサービスのURLを渡すことができます。次に、モデルタイプとモデルurlを渡してVMindインスタンスを初期化します: +VMind は現在、GPT、deepseek、doubao などの API キーを持つ任意のモデルをサポートしています。VMind オブジェクトを初期化するときに呼び出すモデルタイプを指定し、LLM サービスの URL を渡すことができます。次に、VMind インスタンスを初期化し、モデルタイプとモデル URL を渡します: ```typescript import { Model } from '@visactor/vmind'; const vmind = new VMind({ - url: LLM_SERVICE_URL, //LLMサービスのURL - model: Model.SKYLARK, //現在、gpt-3.5、gpt-4、skylark proモデルをサポートしています。後続のチャート生成で指定されたモデルが呼び出されます + url: LLM_SERVICE_URL, // LLM サービスの URL + model: Model.GPT4o, // 使用するモデル headers: { 'api-key': LLM_API_KEY - } //headersはLLMリクエストのリクエストヘッダーとして直接使用されます。モデルのapiキーをヘッダーに入れることができます + } // ヘッダーは LLM リクエストのリクエストヘッダーとして直接使用されます。モデルの API キーをヘッダーに入れることができます }); ``` -サポートされているモデルのリストはこちらです: +サポートされているモデルのリストは次のとおりです: ```typescript -//VMindがサポートするモデル -//より多くのモデルが開発中です +// VMind がサポートするモデル export enum Model { GPT3_5 = 'gpt-3.5-turbo', + GPT3_5_1106 = 'gpt-3.5-turbo-1106', GPT4 = 'gpt-4', - SKYLARK = 'skylark-pro', - SKYLARK2 = 'skylark2-pro-4k' + GPT_4_0613 = 'gpt-4-0613', + GPT_4o = 'gpt-4o-2024-08-06', + DOUBAO_LITE = 'doubao-lite-32K', + DOUBAO_PRO = 'doubao-pro-128k', + CHART_ADVISOR = 'chart-advisor', + DEEPSEEK_V3 = 'deepseek-chat', + DEEPSEEK_R1 = 'deepseek-reasoner' } ``` +また、他のモデルを使用することもできます: +```typescript +import { Model } from '@visactor/vmind'; + +const vmind = new VMind({ + url: LLM_SERVICE_URL, + model: LLM_MODEL_NAME, // 選択したモデル + headers: { + 'api-key': LLM_API_KEY + } +}); +``` -VMindはCSV形式とJSON形式のデータセットをサポートしています。 +VMind は CSV および JSON 形式のデータセットをサポートしています。 -後続のプロセスでCSVデータを使用するには、データ処理メソッドを呼び出してフィールド情報を抽出し、構造化されたデータセットに変換する必要があります。VMindは、フィールド情報を取得するためのルールベースのメソッド`parseCSVData`を提供しています: +CSV データを後続のプロセスで使用するには、データ処理メソッドを呼び出してフィールド情報を抽出し、構造化されたデータセットに変換する必要があります。VMind はルールベースのメソッド `parseCSVData` を提供してフィールド情報を取得します: ```typescript -// CSV文字列を渡して、fieldInfoとJSON構造のデータセットを取得します +// CSV 文字列を渡して、フィールド情報と JSON 構造のデータセットを取得 const { fieldInfo, dataset } = vmind.parseCSVData(csv); ``` @@ -238,28 +239,7 @@ const userPrompt = const { spec, time } = await vmind.generateChart(userPrompt, fieldInfo, dataset); ``` -#### 大模型リクエスト方法のカスタマイズ - -VMindオブジェクトを初期化する際にパラメータを渡します: - -```typescript -import VMind from '@visactor/vmind'; -const vmind = new VMind(openAIKey:string, params:{ -url?: string;//大模型サービスのURL -/** gptリクエストヘッダー、優先度が高い */ -headers?: Record ;//リクエストヘッダー -method?: string;//リクエストメソッド POST GET -model?: string;//モデル名 -max_tokens?: number; -temperature?: number;//0に設定することを推奨 -}) -``` - -urlで大模型サービスのurlを指定します(デフォルトはhttps://api.openai.com/v1/chat/completions) -後続の呼び出しで、VMindはparamsのパラメータを使用して大模型サービスのurlにリクエストします。 - #### データ集約 -📢 注意:データ集約機能はGPTシリーズモデルのみをサポートしています。より多くのモデルが近日中に提供される予定です。 グラフライブラリを使用して棒グラフ、折れ線グラフなどを描画する際、データが集約されていない場合、視覚化効果に影響を与えます。同時に、フィールドのフィルタリングやソートが行われていないため、一部の視覚化意図を満たすことができません。例えば:最もコストがかかるトップ10の部門を表示してください、北のさまざまな製品の販売を表示してくださいなど。 @@ -281,7 +261,13 @@ const userInput = 'show me the changes in sales rankings of various car brand'; const { spec, time } = await vmind.generateChart(userInput, fieldInfo, dataset, false); //第4パラメータとしてfalseを渡すことで、チャートを生成する前にデータ集約を無効にします。 ``` -#### 対話式編集 +#### データインサイト +[チュートリアル](https://visactor.io/vmind/guide/Basic_Tutorial/Chart_Insight) + +#### データ抽出:テキストからチャートへ +[チュートリアル](https://visactor.io/vmind/guide/Basic_Tutorial/Data_Extraction) + +#### 対話型編集 開発中、乞うご期待 diff --git a/README.md b/README.md index 161bbe1d..a3c69056 100644 --- a/README.md +++ b/README.md @@ -82,23 +82,18 @@ You need to set your LLM service URL and API key to use it normally. You can mod You can create a new .env.local file in the packages/vmind folder and write in it: ```bash -VITE_SKYLARK_URL="Your service url of skylark model" VITE_GPT_URL="Your service url of gpt model" -VITE_SKYLARK_KEY="Your api-key of skylark model" VITE_GPT_KEY="Your api-key of gpt model" +VITE_DEEPSEEK_URL="https://api.deepseek.com/chat/completions" +VITE_DEEPSEEK_KEY="Your api-key of deepseek model" +VITE_CUSTOM_URL="Your service url of custom model" +VITE_CUSTOM_KEY="Your api-key of custom model" +VITE_CUSTOM_MODEL="Your Custom Model Name" VITE_PROXY_CONFIG="Your Vite proxy config for forwarding requests. Must be in JSON string format and is optional. Example: {"proxy": {"/v1": {"target": "https://api.openai.com/","changeOrigin": true},"/openapi": {"target": "https://api.openai.com/","changeOrigin": true}}}" ``` These configurations will be automatically loaded when starting the development environment. -### Project Structure - -- \_\_tests\_\_: Playground for development -- src/common: Common data processing, chart recommendation methods, chart generation pipelines -- src/gpt: Code related to gpt intelligent chart generation -- src/skylark: Code related to skylark intelligent chart generation -- src/chart-to-video: Code related to exporting videos, GIFs - ## Instructions for use ### 📦 Installation @@ -133,14 +128,14 @@ Next, import VMind at the top of the JavaScript file import VMind from '@visactor/vmind'; ``` -VMind currently supports OpenAI GPT-3.5, GPT-4 models and skylark-pro series models. Users can specify the model type to be called when initializing the VMind object, and pass in the URL of the LLM service. Next, we initialize a VMind instance and pass in the model type and model url: +VMind currently supports GPT, deepseek, doubao and any other models with API Keys. Users can specify the model type to be called when initializing the VMind object, and pass in the URL of the LLM service. Next, we initialize a VMind instance and pass in the model type and model url: ```typescript import { Model } from '@visactor/vmind'; const vmind = new VMind({ - url: LLM_SERVICE_URL, //URL of the LLM service - model: Model.SKYLARK, //Currently supports gpt-3.5, gpt-4, skylark pro models. The specified model will be called in subsequent chart generation + url: LLM_SERVICE_URL, // URL of the LLM service + model: Model.GPT4o, // Model to use headers: { 'api-key': LLM_API_KEY } //headers will be used directly as the request header in the LLM request. You can put the model api key in the header @@ -151,14 +146,31 @@ Here is a list of supported models: ```typescript //models that VMind support -//more models are under development export enum Model { GPT3_5 = 'gpt-3.5-turbo', + GPT3_5_1106 = 'gpt-3.5-turbo-1106', GPT4 = 'gpt-4', - SKYLARK = 'skylark-pro', - SKYLARK2 = 'skylark2-pro-4k' + GPT_4_0613 = 'gpt-4-0613', + GPT_4o = 'gpt-4o-2024-08-06', + DOUBAO_LITE = 'doubao-lite-32K', + DOUBAO_PRO = 'doubao-pro-128k', + CHART_ADVISOR = 'chart-advisor', + DEEPSEEK_V3 = 'deepseek-chat', + DEEPSEEK_R1 = 'deepseek-reasoner' } ``` +And also you can use other model you like: +```typescript +import { Model } from '@visactor/vmind'; + +const vmind = new VMind({ + url: LLM_SERVICE_URL, + model: LLM_MODEL_NAME, // Model You Choose + headers: { + 'api-key': LLM_API_KEY + } +}); +``` VMind supports datasets in both CSV and JSON formats. @@ -241,31 +253,7 @@ const userPrompt = const { spec, time } = await vmind.generateChart(userPrompt, fieldInfo, dataset); ``` -#### Customizing LLM Request Method - -Pass parameters when initializing the VMind object: - -```typescript -import VMind from '@visactor/vmind'; -const vmind = new VMind(openAIKey:string, params:{ -url?: string;//URL of the LLM service -/** gpt request header, which has higher priority */ -headers?: Record ;//request headers -method?: string;//request method POST GET -model?: string;//model name -max_tokens?: number; -temperature?: number;//recommended to set to 0 -}) -``` - -Specify your LLM service url in url (default is https://api.openai.com/v1/chat/completions) -In subsequent calls, VMind will use the parameters in params to request the LLM service url. - - - #### Data Aggregation -📢 Note: The data aggregation function only supports GPT series models, more models will come soon. - When using the chart library to draw bar charts, line charts, etc., if the data is not aggregated, it will affect the visualization effect. At the same time, because no filtering and sorting of fields has been done, some visualization intentions cannot be met, for example: show me the top 10 departments with the most cost, show me the sales of various products in the north, etc. VMind supports intelligent data aggregation since version 1.2.2. This function uses the data input by the user as a data table, uses a LLM to generate SQL queries according to the user's command, queries data from the data table, and uses GROUP BY and SQL aggregation methods to group, aggregate, sort, and filter data. Supported SQL statements include: SELECT, GROUP BY, WHERE, HAVING, ORDER BY, LIMIT. Supported aggregation methods are: MAX(), MIN(), SUM(), COUNT(), AVG(). Complex SQL operations such as subqueries, JOIN, and conditional statements are not supported. @@ -276,7 +264,6 @@ Use the `dataQuery` function of the VMind object to aggregate data. This method - fieldInfo: Dataset field information. The same as generateChart, it can be obtained by parseCSVData, or built by the user. - dataset: Dataset. The same as generateChart, it can be obtained by parseCSVData, or built by the user. - ```typescript const { fieldInfo, dataset } = await vmind?.dataQuery(userInput, fieldInfo, dataset); ``` @@ -289,6 +276,11 @@ const userInput = 'show me the changes in sales rankings of various car brand'; const { spec, time } = await vmind.generateChart(userInput, fieldInfo, dataset, false); //pass false as the forth parameter to disable data aggregation before generating a chart. ``` +#### Data Insight +[Tutorial](https://visactor.io/vmind/guide/Basic_Tutorial/Chart_Insight) + +#### Data Extraction: Text to Chart +[Tutorial](https://visactor.io/vmind/guide/Basic_Tutorial/Data_Extraction) #### Dialog-based editing diff --git a/common/config/rush/pnpm-lock.yaml b/common/config/rush/pnpm-lock.yaml index a42eac31..a534b8ec 100644 --- a/common/config/rush/pnpm-lock.yaml +++ b/common/config/rush/pnpm-lock.yaml @@ -31,10 +31,10 @@ importers: vite: 3.2.6 yargs: ^17.1.1 dependencies: - '@arco-design/web-react': 2.46.1_xf5tafcwmz3mrkdht7bbxbjgqa + '@arco-design/web-react': 2.46.1_ck2ap7ofk76kidkkm4uczg65xi '@visactor/vutils': 0.17.5 - axios: 1.7.0 - highlight.js: 11.9.0 + axios: 1.7.9 + highlight.js: 11.11.1 lodash: 4.17.21 markdown-it: 13.0.2 react: 18.3.1 @@ -42,9 +42,9 @@ importers: react-router-dom: 6.9.0_nnrd3gsncyragczmpvfhocinkq devDependencies: '@types/highlightjs': 9.12.6 - '@types/markdown-it': 13.0.8 - '@types/react': 18.3.2 - '@types/react-dom': 18.3.0 + '@types/markdown-it': 13.0.9 + '@types/react': 18.3.18 + '@types/react-dom': 18.3.5_@types+react@18.3.18 '@vitejs/plugin-react': 3.1.0_vite@3.2.6 chalk: 3.0.0 chokidar: 3.6.0 @@ -83,14 +83,14 @@ importers: '@internal/eslint-config': link:../../share/eslint-config '@internal/ts-config': link:../../share/ts-config '@types/jest': 26.0.24 - '@types/node': 20.12.12 + '@types/node': 22.13.4 '@typescript-eslint/eslint-plugin': 5.30.0_dwvk2jxdxtyxgoclhbqbxvd22a '@typescript-eslint/parser': 5.30.0_typescript@4.9.5 jest: 26.6.3_ts-node@10.9.0 npm-run-all: 4.1.5 rimraf: 3.0.2 ts-jest: 26.5.6_xuote2qreek47x2di7kesslrai - ts-node: 10.9.0_tei2piaewgwz3rqboli3bdgchy + ts-node: 10.9.0_gneqayswslsivwydh4xidq7ly4 typescript: 4.9.5 ../../packages/chart-advisor: @@ -118,7 +118,7 @@ importers: '@internal/ts-config': link:../../share/ts-config '@rushstack/eslint-patch': 1.1.4 '@types/jest': 26.0.24 - '@types/node': 20.12.12 + '@types/node': 22.13.4 '@typescript-eslint/eslint-plugin': 5.30.0_dwvk2jxdxtyxgoclhbqbxvd22a '@typescript-eslint/parser': 5.30.0_typescript@4.9.5 jest: 26.6.3 @@ -148,9 +148,9 @@ importers: '@types/react-dom': ^18.0.0 '@typescript-eslint/eslint-plugin': 5.30.0 '@typescript-eslint/parser': 5.30.0 - '@visactor/calculator': workspace:1.2.13 - '@visactor/chart-advisor': workspace:1.2.13 - '@visactor/vchart': ^1.10.4 + '@visactor/calculator': workspace:2.0.1 + '@visactor/chart-advisor': workspace:2.0.1 + '@visactor/vchart': ^1.12.4 '@visactor/vchart-theme': ^1.11.2 '@visactor/vdataset': ~0.17.4 '@visactor/vrender-core': ^0.17.23 @@ -161,6 +161,7 @@ importers: axios: ^1.4.0 bayesian-changepoint: ~1.0.1 canvas: ^2.11.2 + chroma-js: ^3.1.1 dayjs: ~1.11.10 density-clustering: ~1.3.0 dotenv: ~16.3.1 @@ -171,15 +172,18 @@ importers: eslint-plugin-prettier: ^4.2.1 eslint-plugin-react: 7.30.1 euclidean-distance: ~1.0.0 + express: ~4.21.1 jest: ^26.0.0 jest-electron: ^0.1.12 js-yaml: ~4.1.0 json5: ~2.2.3 + jsonrepair: ~3.8.1 jstat: ~1.9.6 less: 4.1.3 react: ^18.0.0 react-dom: ^18.0.0 react-router-dom: 6.9.0 + string-similarity-js: ~2.1.4 typescript: 4.9.5 vite: 3.2.6 vite-plugin-css: ~1.0.4 @@ -188,48 +192,52 @@ importers: '@stdlib/stats-base-dists-t-quantile': 0.2.1 '@visactor/calculator': link:../calculator '@visactor/chart-advisor': link:../chart-advisor - '@visactor/vchart-theme': 1.11.5_@visactor+vchart@1.10.4 + '@visactor/vchart-theme': 1.12.2_@visactor+vchart@1.13.5 '@visactor/vdataset': 0.17.5 '@visactor/vutils': 0.17.5 alasql: 4.3.3 array-normalize: 2.0.0 - axios: 1.7.0 + axios: 1.7.9 bayesian-changepoint: 1.0.1 - dayjs: 1.11.11 + chroma-js: 3.1.2 + dayjs: 1.11.13 density-clustering: 1.3.0 euclidean-distance: 1.0.0 js-yaml: 4.1.0 json5: 2.2.3 + jsonrepair: 3.8.1 jstat: 1.9.6 + string-similarity-js: 2.1.4 devDependencies: - '@arco-design/web-react': 2.46.1_xf5tafcwmz3mrkdht7bbxbjgqa + '@arco-design/web-react': 2.46.1_ck2ap7ofk76kidkkm4uczg65xi '@ffmpeg/ffmpeg': 0.11.6 '@internal/bundler': link:../../tools/bundler '@internal/eslint-config': link:../../share/eslint-config '@internal/ts-config': link:../../share/ts-config - '@rollup/plugin-dynamic-import-vars': 2.1.2 + '@rollup/plugin-dynamic-import-vars': 2.1.5 '@rushstack/eslint-patch': 1.1.4 '@types/array-normalize': 2.0.5 '@types/density-clustering': 1.3.3 '@types/euclidean-distance': 1.0.3 '@types/jest': 26.0.24 '@types/js-yaml': 4.0.9 - '@types/node': 20.12.12 - '@types/react': 18.3.2 - '@types/react-dom': 18.3.0 + '@types/node': 22.13.4 + '@types/react': 18.3.18 + '@types/react-dom': 18.3.5_@types+react@18.3.18 '@typescript-eslint/eslint-plugin': 5.30.0_cow5zg7tx6c3eisi5a4ud5kwia '@typescript-eslint/parser': 5.30.0_vwud3sodsb5zxmzckoj7rdwdbq - '@visactor/vchart': 1.10.4 + '@visactor/vchart': 1.13.5 '@visactor/vrender-core': 0.17.29 '@vitejs/plugin-react': 3.1.0_vite@3.2.6 canvas: 2.11.2 dotenv: 16.3.2 eslint: 8.18.0 eslint-config-prettier: 8.5.0_eslint@8.18.0 - eslint-plugin-import: 2.29.1_eslint@8.18.0 - eslint-plugin-jsx-a11y: 6.8.0_eslint@8.18.0 + eslint-plugin-import: 2.31.0_eslint@8.18.0 + eslint-plugin-jsx-a11y: 6.10.2_eslint@8.18.0 eslint-plugin-prettier: 4.2.1_ohknqdiadpdc4n44qqsbqlxxwa eslint-plugin-react: 7.30.1_eslint@8.18.0 + express: 4.21.2 jest: 26.6.3_canvas@2.11.2 jest-electron: 0.1.12_jest@26.6.3 less: 4.1.3 @@ -237,7 +245,7 @@ importers: react-dom: 18.3.1_react@18.3.1 react-router-dom: 6.9.0_nnrd3gsncyragczmpvfhocinkq typescript: 4.9.5 - vite: 3.2.6_3nkz6rpljilosylc4qp7fvkgxu + vite: 3.2.6_2v5bjsaaesy2knzxgxpk67cwwq vite-plugin-css: 1.0.4 vite-plugin-libcss: 1.1.1_vite@3.2.6 @@ -400,7 +408,7 @@ importers: '@types/merge2': 1.4.0 '@types/minimist': 1.2.2 '@types/ms': 0.7.31 - '@types/node': 20.12.12 + '@types/node': 22.13.4 '@types/semver': 7.3.12 '@types/terser': 3.12.0 '@types/through2': 2.0.38 @@ -408,7 +416,7 @@ importers: '@types/vinyl': 2.0.7 '@types/yargs-parser': 21.0.0 eslint: 8.18.0 - ts-node: 10.9.0_tei2piaewgwz3rqboli3bdgchy + ts-node: 10.9.0_gneqayswslsivwydh4xidq7ly4 typescript: 4.9.5 vitest: 0.30.1_less@4.1.3+terser@5.17.1 @@ -432,20 +440,20 @@ importers: yargs: ^17.1.1 dependencies: '@types/json-schema': 7.0.15 - '@types/node': 20.12.12 + '@types/node': 22.13.4 glob: 7.2.3 path-equal: 1.2.5 - safe-stable-stringify: 2.4.3 - ts-node: 10.9.0_tei2piaewgwz3rqboli3bdgchy + safe-stable-stringify: 2.5.0 + ts-node: 10.9.0_gneqayswslsivwydh4xidq7ly4 typescript: 4.9.5 yargs: 17.7.2 devDependencies: - '@types/chai': 4.3.16 + '@types/chai': 4.3.20 '@types/glob': 7.2.0 '@types/mocha': 9.1.1 - ajv: 8.13.0 - ajv-formats: 2.1.1_ajv@8.13.0 - chai: 4.4.1 + ajv: 8.17.1 + ajv-formats: 2.1.1_ajv@8.17.1 + chai: 4.5.0 mocha: 9.2.2 source-map-support: 0.5.21 @@ -455,7 +463,7 @@ packages: resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} dependencies: - '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/gen-mapping': 0.3.8 '@jridgewell/trace-mapping': 0.3.25 /@arco-design/color/0.4.0: @@ -463,23 +471,23 @@ packages: dependencies: color: 3.2.1 - /@arco-design/web-react/2.46.1_xf5tafcwmz3mrkdht7bbxbjgqa: + /@arco-design/web-react/2.46.1_ck2ap7ofk76kidkkm4uczg65xi: resolution: {integrity: sha512-XjG44rODJklDu++OApvxjt/TbRrgkNqVq6grt/H+9skysm46jFn2SwhuSljBHmjo11LtIeB1m/OMPMaFtafeYg==} peerDependencies: react: '>=16' react-dom: '>=16' dependencies: '@arco-design/color': 0.4.0 - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.26.9 b-tween: 0.3.3 b-validate: 1.5.3 compute-scroll-into-view: 1.0.20 - dayjs: 1.11.11 + dayjs: 1.11.13 lodash: 4.17.21 number-precision: 1.6.0 react: 18.3.1 react-dom: 18.3.1_react@18.3.1 - react-focus-lock: 2.12.1_2eeaxkqdcvbrwk75oeh4jz4him + react-focus-lock: 2.13.6_x25zuu6u7xhdvbznsywf7wxevq react-transition-group: 4.4.5_nnrd3gsncyragczmpvfhocinkq resize-observer-polyfill: 1.5.1 scroll-into-view-if-needed: 2.2.20 @@ -487,15 +495,16 @@ packages: transitivePeerDependencies: - '@types/react' - /@babel/code-frame/7.24.2: - resolution: {integrity: sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==} + /@babel/code-frame/7.26.2: + resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==} engines: {node: '>=6.9.0'} dependencies: - '@babel/highlight': 7.24.5 - picocolors: 1.0.1 + '@babel/helper-validator-identifier': 7.25.9 + js-tokens: 4.0.0 + picocolors: 1.1.1 - /@babel/compat-data/7.24.4: - resolution: {integrity: sha512-vg8Gih2MLK+kOkHJp4gBEIkyaIi00jgWot2D9QOmmfLC8jINSOzmCLta6Bvz/JSBCqnegV0L80jhxkol5GWNfQ==} + /@babel/compat-data/7.26.8: + resolution: {integrity: sha512-oH5UPLMWR3L2wEFLnFJ1TZXqHufiTKAiLfqw5zkhS4dKXLJ10yVztfil/twG8EDTA4F/tvVNw9nOl4ZMslB8rQ==} engines: {node: '>=6.9.0'} /@babel/core/7.20.12: @@ -503,15 +512,15 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@ampproject/remapping': 2.3.0 - '@babel/code-frame': 7.24.2 + '@babel/code-frame': 7.26.2 '@babel/generator': 7.21.1 - '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-module-transforms': 7.24.5_@babel+core@7.20.12 - '@babel/helpers': 7.24.5 - '@babel/parser': 7.24.5 - '@babel/template': 7.24.0 - '@babel/traverse': 7.24.5 - '@babel/types': 7.24.5 + '@babel/helper-compilation-targets': 7.26.5 + '@babel/helper-module-transforms': 7.26.0_@babel+core@7.20.12 + '@babel/helpers': 7.26.9 + '@babel/parser': 7.26.9 + '@babel/template': 7.26.9 + '@babel/traverse': 7.26.9 + '@babel/types': 7.26.9 convert-source-map: 1.9.0 debug: 4.3.4 gensync: 1.0.0-beta.2 @@ -524,71 +533,65 @@ packages: resolution: {integrity: sha512-1lT45bAYlQhFn/BHivJs43AiW2rg3/UbLyShGfF3C0KmHvO5fSghWd5kBJy30kpRRucGzXStvnnCFniCR2kXAA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.24.5 - '@jridgewell/gen-mapping': 0.3.5 + '@babel/types': 7.26.9 + '@jridgewell/gen-mapping': 0.3.8 '@jridgewell/trace-mapping': 0.3.25 jsesc: 2.5.2 - /@babel/generator/7.24.5: - resolution: {integrity: sha512-x32i4hEXvr+iI0NEoEfDKzlemF8AmtOP8CcrRaEcpzysWuoEb1KknpcvMsHKPONoKZiDuItklgWhB18xEhr9PA==} + /@babel/generator/7.26.9: + resolution: {integrity: sha512-kEWdzjOAUMW4hAyrzJ0ZaTOu9OmpyDIQicIh0zg0EEcEkYXZb2TjtBhnHi2ViX7PKwZqF4xwqfAm299/QMP3lg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.24.5 - '@jridgewell/gen-mapping': 0.3.5 + '@babel/parser': 7.26.9 + '@babel/types': 7.26.9 + '@jridgewell/gen-mapping': 0.3.8 '@jridgewell/trace-mapping': 0.3.25 - jsesc: 2.5.2 + jsesc: 3.1.0 - /@babel/helper-annotate-as-pure/7.22.5: - resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==} + /@babel/helper-annotate-as-pure/7.25.9: + resolution: {integrity: sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.24.5 + '@babel/types': 7.26.9 dev: false - /@babel/helper-builder-binary-assignment-operator-visitor/7.22.15: - resolution: {integrity: sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==} + /@babel/helper-compilation-targets/7.26.5: + resolution: {integrity: sha512-IXuyn5EkouFJscIDuFF5EsiSolseme1s0CZB+QxVugqJLYmKdxI1VfIBOst0SUu4rnk2Z7kqTwmoO1lp3HIfnA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.24.5 - dev: false - - /@babel/helper-compilation-targets/7.23.6: - resolution: {integrity: sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/compat-data': 7.24.4 - '@babel/helper-validator-option': 7.23.5 - browserslist: 4.23.0 + '@babel/compat-data': 7.26.8 + '@babel/helper-validator-option': 7.25.9 + browserslist: 4.24.4 lru-cache: 5.1.1 semver: 6.3.1 - /@babel/helper-create-class-features-plugin/7.24.5_@babel+core@7.20.12: - resolution: {integrity: sha512-uRc4Cv8UQWnE4NXlYTIIdM7wfFkOqlFztcC/gVXDKohKoVB3OyonfelUBaJzSwpBntZ2KYGF/9S7asCHsXwW6g==} + /@babel/helper-create-class-features-plugin/7.26.9_@babel+core@7.20.12: + resolution: {integrity: sha512-ubbUqCofvxPRurw5L8WTsCLSkQiVpov4Qx0WMA+jUN+nXBK8ADPlJO1grkFw5CWKC5+sZSOfuGMdX1aI1iT9Sg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: '@babel/core': 7.20.12 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-function-name': 7.23.0 - '@babel/helper-member-expression-to-functions': 7.24.5 - '@babel/helper-optimise-call-expression': 7.22.5 - '@babel/helper-replace-supers': 7.24.1_@babel+core@7.20.12 - '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/helper-split-export-declaration': 7.24.5 + '@babel/helper-annotate-as-pure': 7.25.9 + '@babel/helper-member-expression-to-functions': 7.25.9 + '@babel/helper-optimise-call-expression': 7.25.9 + '@babel/helper-replace-supers': 7.26.5_@babel+core@7.20.12 + '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 + '@babel/traverse': 7.26.9 semver: 6.3.1 + transitivePeerDependencies: + - supports-color dev: false - /@babel/helper-create-regexp-features-plugin/7.22.15_@babel+core@7.20.12: - resolution: {integrity: sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==} + /@babel/helper-create-regexp-features-plugin/7.26.3_@babel+core@7.20.12: + resolution: {integrity: sha512-G7ZRb40uUgdKOQqPLjfD12ZmGA54PzqDFUv2BKImnC9QIfGhIHKvVML0oN8IUiDq4iRqpq74ABpvOaerfWdong==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: '@babel/core': 7.20.12 - '@babel/helper-annotate-as-pure': 7.22.5 - regexpu-core: 5.3.2 + '@babel/helper-annotate-as-pure': 7.25.9 + regexpu-core: 6.2.0 semver: 6.3.1 dev: false @@ -598,178 +601,163 @@ packages: '@babel/core': ^7.4.0-0 dependencies: '@babel/core': 7.20.12 - '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-compilation-targets': 7.26.5 + '@babel/helper-plugin-utils': 7.26.5 debug: 4.3.4 lodash.debounce: 4.0.8 - resolve: 1.22.8 + resolve: 1.22.10 semver: 6.3.1 transitivePeerDependencies: - supports-color dev: false - /@babel/helper-environment-visitor/7.22.20: - resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==} - engines: {node: '>=6.9.0'} - - /@babel/helper-function-name/7.23.0: - resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/template': 7.24.0 - '@babel/types': 7.24.5 - - /@babel/helper-hoist-variables/7.22.5: - resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} + /@babel/helper-environment-visitor/7.24.7: + resolution: {integrity: sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.24.5 + '@babel/types': 7.26.9 + dev: false - /@babel/helper-member-expression-to-functions/7.24.5: - resolution: {integrity: sha512-4owRteeihKWKamtqg4JmWSsEZU445xpFRXPEwp44HbgbxdWlUV1b4Agg4lkA806Lil5XM/e+FJyS0vj5T6vmcA==} + /@babel/helper-member-expression-to-functions/7.25.9: + resolution: {integrity: sha512-wbfdZ9w5vk0C0oyHqAJbc62+vet5prjj01jjJ8sKn3j9h3MQQlflEdXYvuqRWjHnM12coDEqiC1IRCi0U/EKwQ==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.24.5 + '@babel/traverse': 7.26.9 + '@babel/types': 7.26.9 + transitivePeerDependencies: + - supports-color dev: false - /@babel/helper-module-imports/7.24.3: - resolution: {integrity: sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==} + /@babel/helper-module-imports/7.25.9: + resolution: {integrity: sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.24.5 + '@babel/traverse': 7.26.9 + '@babel/types': 7.26.9 + transitivePeerDependencies: + - supports-color - /@babel/helper-module-transforms/7.24.5_@babel+core@7.20.12: - resolution: {integrity: sha512-9GxeY8c2d2mdQUP1Dye0ks3VDyIMS98kt/llQ2nUId8IsWqTF0l1LkSX0/uP7l7MCDrzXS009Hyhe2gzTiGW8A==} + /@babel/helper-module-transforms/7.26.0_@babel+core@7.20.12: + resolution: {integrity: sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: '@babel/core': 7.20.12 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-module-imports': 7.24.3 - '@babel/helper-simple-access': 7.24.5 - '@babel/helper-split-export-declaration': 7.24.5 - '@babel/helper-validator-identifier': 7.24.5 - - /@babel/helper-optimise-call-expression/7.22.5: - resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==} + '@babel/helper-module-imports': 7.25.9 + '@babel/helper-validator-identifier': 7.25.9 + '@babel/traverse': 7.26.9 + transitivePeerDependencies: + - supports-color + + /@babel/helper-optimise-call-expression/7.25.9: + resolution: {integrity: sha512-FIpuNaz5ow8VyrYcnXQTDRGvV6tTjkNtCK/RYNDXGSLlUD6cBuQTSw43CShGxjvfBTfcUA/r6UhUCbtYqkhcuQ==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.24.5 + '@babel/types': 7.26.9 dev: false - /@babel/helper-plugin-utils/7.24.5: - resolution: {integrity: sha512-xjNLDopRzW2o6ba0gKbkZq5YWEBaK3PCyTOY1K2P/O07LGMhMqlMXPxwN4S5/RhWuCobT8z0jrlKGlYmeR1OhQ==} + /@babel/helper-plugin-utils/7.26.5: + resolution: {integrity: sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==} engines: {node: '>=6.9.0'} - /@babel/helper-remap-async-to-generator/7.22.20_@babel+core@7.20.12: - resolution: {integrity: sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==} + /@babel/helper-remap-async-to-generator/7.25.9_@babel+core@7.20.12: + resolution: {integrity: sha512-IZtukuUeBbhgOcaW2s06OXTzVNJR0ybm4W5xC1opWFFJMZbwRj5LCk+ByYH7WdZPZTt8KnFwA8pvjN2yqcPlgw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: '@babel/core': 7.20.12 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-wrap-function': 7.24.5 + '@babel/helper-annotate-as-pure': 7.25.9 + '@babel/helper-wrap-function': 7.25.9 + '@babel/traverse': 7.26.9 + transitivePeerDependencies: + - supports-color dev: false - /@babel/helper-replace-supers/7.24.1_@babel+core@7.20.12: - resolution: {integrity: sha512-QCR1UqC9BzG5vZl8BMicmZ28RuUBnHhAMddD8yHFHDRH9lLTZ9uUPehX8ctVPT8l0TKblJidqcgUUKGVrePleQ==} + /@babel/helper-replace-supers/7.26.5_@babel+core@7.20.12: + resolution: {integrity: sha512-bJ6iIVdYX1YooY2X7w1q6VITt+LnUILtNk7zT78ykuwStx8BauCzxvFqFaHjOpW1bVnSUM1PN1f0p5P21wHxvg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: '@babel/core': 7.20.12 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-member-expression-to-functions': 7.24.5 - '@babel/helper-optimise-call-expression': 7.22.5 + '@babel/helper-member-expression-to-functions': 7.25.9 + '@babel/helper-optimise-call-expression': 7.25.9 + '@babel/traverse': 7.26.9 + transitivePeerDependencies: + - supports-color dev: false - /@babel/helper-simple-access/7.24.5: - resolution: {integrity: sha512-uH3Hmf5q5n7n8mz7arjUlDOCbttY/DW4DYhE6FUsjKJ/oYC1kQQUvwEQWxRwUpX9qQKRXeqLwWxrqilMrf32sQ==} + /@babel/helper-skip-transparent-expression-wrappers/7.25.9: + resolution: {integrity: sha512-K4Du3BFa3gvyhzgPcntrkDgZzQaq6uozzcpGbOO1OEJaI+EJdqWIMTLgFgQf6lrfiDFo5FU+BxKepI9RmZqahA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.24.5 - - /@babel/helper-skip-transparent-expression-wrappers/7.22.5: - resolution: {integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.24.5 + '@babel/traverse': 7.26.9 + '@babel/types': 7.26.9 + transitivePeerDependencies: + - supports-color dev: false - /@babel/helper-split-export-declaration/7.24.5: - resolution: {integrity: sha512-5CHncttXohrHk8GWOFCcCl4oRD9fKosWlIRgWm4ql9VYioKm52Mk2xsmoohvm7f3JoiLSM5ZgJuRaf5QZZYd3Q==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.24.5 - - /@babel/helper-string-parser/7.24.1: - resolution: {integrity: sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==} - engines: {node: '>=6.9.0'} - - /@babel/helper-validator-identifier/7.24.5: - resolution: {integrity: sha512-3q93SSKX2TWCG30M2G2kwaKeTYgEUp5Snjuj8qm729SObL6nbtUldAi37qbxkD5gg3xnBio+f9nqpSepGZMvxA==} + /@babel/helper-string-parser/7.25.9: + resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==} engines: {node: '>=6.9.0'} - /@babel/helper-validator-option/7.23.5: - resolution: {integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==} + /@babel/helper-validator-identifier/7.25.9: + resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==} engines: {node: '>=6.9.0'} - /@babel/helper-wrap-function/7.24.5: - resolution: {integrity: sha512-/xxzuNvgRl4/HLNKvnFwdhdgN3cpLxgLROeLDl83Yx0AJ1SGvq1ak0OszTOjDfiB8Vx03eJbeDWh9r+jCCWttw==} + /@babel/helper-validator-option/7.25.9: + resolution: {integrity: sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-function-name': 7.23.0 - '@babel/template': 7.24.0 - '@babel/types': 7.24.5 - dev: false - /@babel/helpers/7.24.5: - resolution: {integrity: sha512-CiQmBMMpMQHwM5m01YnrM6imUG1ebgYJ+fAIW4FZe6m4qHTPaRHti+R8cggAwkdz4oXhtO4/K9JWlh+8hIfR2Q==} + /@babel/helper-wrap-function/7.25.9: + resolution: {integrity: sha512-ETzz9UTjQSTmw39GboatdymDq4XIQbR8ySgVrylRhPOFpsd+JrKHIuF0de7GCWmem+T4uC5z7EZguod7Wj4A4g==} engines: {node: '>=6.9.0'} dependencies: - '@babel/template': 7.24.0 - '@babel/traverse': 7.24.5 - '@babel/types': 7.24.5 + '@babel/template': 7.26.9 + '@babel/traverse': 7.26.9 + '@babel/types': 7.26.9 transitivePeerDependencies: - supports-color + dev: false - /@babel/highlight/7.24.5: - resolution: {integrity: sha512-8lLmua6AVh/8SLJRRVD6V8p73Hir9w5mJrhE+IPpILG31KKlI9iz5zmBYKcWPS59qSfgP9RaSBQSHHE81WKuEw==} + /@babel/helpers/7.26.9: + resolution: {integrity: sha512-Mz/4+y8udxBKdmzt/UjPACs4G3j5SshJJEFFKxlCGPydG4JAHXxjWjAwjd09tf6oINvl1VfMJo+nB7H2YKQ0dA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/helper-validator-identifier': 7.24.5 - chalk: 2.4.2 - js-tokens: 4.0.0 - picocolors: 1.0.1 + '@babel/template': 7.26.9 + '@babel/types': 7.26.9 - /@babel/parser/7.24.5: - resolution: {integrity: sha512-EOv5IK8arwh3LI47dz1b0tKUb/1uhHAnHJOrjgtQMIpu1uXd9mlFrJg9IUgGUgZ41Ch0K8REPTYpO7B76b4vJg==} + /@babel/parser/7.26.9: + resolution: {integrity: sha512-81NWa1njQblgZbQHxWHpxxCzNsa3ZwvFqpUg7P+NNUU6f3UU2jBEg4OlF/J6rl8+PQGh1q6/zWScd001YwcA5A==} engines: {node: '>=6.0.0'} hasBin: true + dependencies: + '@babel/types': 7.26.9 - /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/7.24.1_@babel+core@7.20.12: - resolution: {integrity: sha512-y4HqEnkelJIOQGd+3g1bTeKsA5c6qM7eOn7VggGVbBc0y8MLSKHacwcIE2PplNlQSj0PqS9rrXL/nkPVK+kUNg==} + /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/7.25.9_@babel+core@7.20.12: + resolution: {integrity: sha512-2qUwwfAFpJLZqxd02YW9btUCZHl+RFvdDkNfZwaIJrvB8Tesjsk8pEQkTvGwZXLqXUx/2oyY3ySRhm6HOXuCug==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-plugin-utils': 7.26.5 dev: false - /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/7.24.1_@babel+core@7.20.12: - resolution: {integrity: sha512-Hj791Ii4ci8HqnaKHAlLNs+zaLXb0EzSDhiAWp5VNlyvCNymYfacs64pxTxbH1znW/NcArSmwpmG9IKE/TUVVQ==} + /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/7.25.9_@babel+core@7.20.12: + resolution: {integrity: sha512-6xWgLZTJXwilVjlnV7ospI3xi+sl8lN8rXXbBD6vYn3UYDlGsag8wrZkKcSI8G6KgqKP7vNFaDgeDnfAABq61g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.13.0 dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.24.5 - '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-transform-optional-chaining': 7.24.5_@babel+core@7.20.12 + '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 + '@babel/plugin-transform-optional-chaining': 7.25.9_@babel+core@7.20.12 + transitivePeerDependencies: + - supports-color dev: false /@babel/plugin-proposal-async-generator-functions/7.20.7_@babel+core@7.20.12: @@ -780,10 +768,12 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.12 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-plugin-utils': 7.24.5 - '@babel/helper-remap-async-to-generator': 7.22.20_@babel+core@7.20.12 + '@babel/helper-environment-visitor': 7.24.7 + '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-remap-async-to-generator': 7.25.9_@babel+core@7.20.12 '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.20.12 + transitivePeerDependencies: + - supports-color dev: false /@babel/plugin-proposal-class-properties/7.18.6_@babel+core@7.20.12: @@ -794,8 +784,10 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.12 - '@babel/helper-create-class-features-plugin': 7.24.5_@babel+core@7.20.12 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-create-class-features-plugin': 7.26.9_@babel+core@7.20.12 + '@babel/helper-plugin-utils': 7.26.5 + transitivePeerDependencies: + - supports-color dev: false /@babel/plugin-proposal-class-static-block/7.21.0_@babel+core@7.20.12: @@ -806,9 +798,11 @@ packages: '@babel/core': ^7.12.0 dependencies: '@babel/core': 7.20.12 - '@babel/helper-create-class-features-plugin': 7.24.5_@babel+core@7.20.12 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-create-class-features-plugin': 7.26.9_@babel+core@7.20.12 + '@babel/helper-plugin-utils': 7.26.5 '@babel/plugin-syntax-class-static-block': 7.14.5_@babel+core@7.20.12 + transitivePeerDependencies: + - supports-color dev: false /@babel/plugin-proposal-dynamic-import/7.18.6_@babel+core@7.20.12: @@ -819,7 +813,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-plugin-utils': 7.26.5 '@babel/plugin-syntax-dynamic-import': 7.8.3_@babel+core@7.20.12 dev: false @@ -830,8 +824,8 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.24.5 - '@babel/plugin-syntax-export-default-from': 7.24.1_@babel+core@7.20.12 + '@babel/helper-plugin-utils': 7.26.5 + '@babel/plugin-syntax-export-default-from': 7.25.9_@babel+core@7.20.12 dev: false /@babel/plugin-proposal-export-namespace-from/7.18.9_@babel+core@7.20.12: @@ -842,7 +836,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-plugin-utils': 7.26.5 '@babel/plugin-syntax-export-namespace-from': 7.8.3_@babel+core@7.20.12 dev: false @@ -854,7 +848,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-plugin-utils': 7.26.5 '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.20.12 dev: false @@ -866,7 +860,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-plugin-utils': 7.26.5 '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.20.12 dev: false @@ -878,7 +872,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-plugin-utils': 7.26.5 '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.20.12 dev: false @@ -890,7 +884,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-plugin-utils': 7.26.5 '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.20.12 dev: false @@ -901,12 +895,12 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/compat-data': 7.24.4 + '@babel/compat-data': 7.26.8 '@babel/core': 7.20.12 - '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-compilation-targets': 7.26.5 + '@babel/helper-plugin-utils': 7.26.5 '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.20.12 - '@babel/plugin-transform-parameters': 7.24.5_@babel+core@7.20.12 + '@babel/plugin-transform-parameters': 7.25.9_@babel+core@7.20.12 dev: false /@babel/plugin-proposal-optional-catch-binding/7.18.6_@babel+core@7.20.12: @@ -917,7 +911,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-plugin-utils': 7.26.5 '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.20.12 dev: false @@ -929,9 +923,11 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.24.5 - '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.20.12 + transitivePeerDependencies: + - supports-color dev: false /@babel/plugin-proposal-private-methods/7.18.6_@babel+core@7.20.12: @@ -942,8 +938,10 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.12 - '@babel/helper-create-class-features-plugin': 7.24.5_@babel+core@7.20.12 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-create-class-features-plugin': 7.26.9_@babel+core@7.20.12 + '@babel/helper-plugin-utils': 7.26.5 + transitivePeerDependencies: + - supports-color dev: false /@babel/plugin-proposal-private-property-in-object/7.21.11_@babel+core@7.20.12: @@ -954,10 +952,12 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.12 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-create-class-features-plugin': 7.24.5_@babel+core@7.20.12 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-annotate-as-pure': 7.25.9 + '@babel/helper-create-class-features-plugin': 7.26.9_@babel+core@7.20.12 + '@babel/helper-plugin-utils': 7.26.5 '@babel/plugin-syntax-private-property-in-object': 7.14.5_@babel+core@7.20.12 + transitivePeerDependencies: + - supports-color dev: false /@babel/plugin-proposal-unicode-property-regex/7.18.6_@babel+core@7.20.12: @@ -968,8 +968,8 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.12 - '@babel/helper-create-regexp-features-plugin': 7.22.15_@babel+core@7.20.12 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-create-regexp-features-plugin': 7.26.3_@babel+core@7.20.12 + '@babel/helper-plugin-utils': 7.26.5 dev: false /@babel/plugin-syntax-async-generators/7.8.4_@babel+core@7.20.12: @@ -978,7 +978,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-plugin-utils': 7.26.5 /@babel/plugin-syntax-bigint/7.8.3_@babel+core@7.20.12: resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==} @@ -986,7 +986,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-plugin-utils': 7.26.5 dev: true /@babel/plugin-syntax-class-properties/7.12.13_@babel+core@7.20.12: @@ -995,7 +995,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-plugin-utils': 7.26.5 /@babel/plugin-syntax-class-static-block/7.14.5_@babel+core@7.20.12: resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} @@ -1004,8 +1004,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.24.5 - dev: false + '@babel/helper-plugin-utils': 7.26.5 /@babel/plugin-syntax-dynamic-import/7.8.3_@babel+core@7.20.12: resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} @@ -1013,17 +1012,17 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-plugin-utils': 7.26.5 dev: false - /@babel/plugin-syntax-export-default-from/7.24.1_@babel+core@7.20.12: - resolution: {integrity: sha512-cNXSxv9eTkGUtd0PsNMK8Yx5xeScxfpWOUAxE+ZPAXXEcAMOC3fk7LRdXq5fvpra2pLx2p1YtkAhpUbB2SwaRA==} + /@babel/plugin-syntax-export-default-from/7.25.9_@babel+core@7.20.12: + resolution: {integrity: sha512-9MhJ/SMTsVqsd69GyQg89lYR4o9T+oDGv5F6IsigxxqFVOyR/IflDLYP8WDI1l8fkhNGGktqkvL5qwNCtGEpgQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-plugin-utils': 7.26.5 dev: false /@babel/plugin-syntax-export-namespace-from/7.8.3_@babel+core@7.20.12: @@ -1032,26 +1031,36 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-plugin-utils': 7.26.5 dev: false - /@babel/plugin-syntax-import-assertions/7.24.1_@babel+core@7.20.12: - resolution: {integrity: sha512-IuwnI5XnuF189t91XbxmXeCDz3qs6iDRO7GJ++wcfgeXNs/8FmIlKcpDSXNVyuLQxlwvskmI3Ct73wUODkJBlQ==} + /@babel/plugin-syntax-import-assertions/7.26.0_@babel+core@7.20.12: + resolution: {integrity: sha512-QCWT5Hh830hK5EQa7XzuqIkQU9tT/whqbDz7kuaZMHFl1inRRg7JnuAEOQ0Ur0QUl0NufCk1msK2BeY79Aj/eg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-plugin-utils': 7.26.5 dev: false + /@babel/plugin-syntax-import-attributes/7.26.0_@babel+core@7.20.12: + resolution: {integrity: sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.12 + '@babel/helper-plugin-utils': 7.26.5 + dev: true + /@babel/plugin-syntax-import-meta/7.10.4_@babel+core@7.20.12: resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-plugin-utils': 7.26.5 dev: true /@babel/plugin-syntax-json-strings/7.8.3_@babel+core@7.20.12: @@ -1060,16 +1069,16 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-plugin-utils': 7.26.5 - /@babel/plugin-syntax-jsx/7.24.1_@babel+core@7.20.12: - resolution: {integrity: sha512-2eCtxZXf+kbkMIsXS4poTvT4Yu5rXiRa+9xGVT56raghjmBTKMpFNc9R4IDiB4emao9eO22Ox7CxuJG7BgExqA==} + /@babel/plugin-syntax-jsx/7.25.9_@babel+core@7.20.12: + resolution: {integrity: sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-plugin-utils': 7.26.5 dev: false /@babel/plugin-syntax-logical-assignment-operators/7.10.4_@babel+core@7.20.12: @@ -1078,7 +1087,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-plugin-utils': 7.26.5 /@babel/plugin-syntax-nullish-coalescing-operator/7.8.3_@babel+core@7.20.12: resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} @@ -1086,7 +1095,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-plugin-utils': 7.26.5 /@babel/plugin-syntax-numeric-separator/7.10.4_@babel+core@7.20.12: resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} @@ -1094,7 +1103,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-plugin-utils': 7.26.5 /@babel/plugin-syntax-object-rest-spread/7.8.3_@babel+core@7.20.12: resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} @@ -1102,7 +1111,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-plugin-utils': 7.26.5 /@babel/plugin-syntax-optional-catch-binding/7.8.3_@babel+core@7.20.12: resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} @@ -1110,7 +1119,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-plugin-utils': 7.26.5 /@babel/plugin-syntax-optional-chaining/7.8.3_@babel+core@7.20.12: resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} @@ -1118,7 +1127,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-plugin-utils': 7.26.5 /@babel/plugin-syntax-private-property-in-object/7.14.5_@babel+core@7.20.12: resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} @@ -1127,8 +1136,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.24.5 - dev: false + '@babel/helper-plugin-utils': 7.26.5 /@babel/plugin-syntax-top-level-await/7.14.5_@babel+core@7.20.12: resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} @@ -1137,453 +1145,477 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-plugin-utils': 7.26.5 - /@babel/plugin-syntax-typescript/7.24.1_@babel+core@7.20.12: - resolution: {integrity: sha512-Yhnmvy5HZEnHUty6i++gcfH1/l68AHnItFHnaCv6hn9dNh0hQvvQJsxpi4BMBFN5DLeHBuucT/0DgzXif/OyRw==} + /@babel/plugin-syntax-typescript/7.25.9_@babel+core@7.20.12: + resolution: {integrity: sha512-hjMgRy5hb8uJJjUcdWunWVcoi9bGpJp8p5Ol1229PoN6aytsLwNMgmdftO23wnCLMfVmTwZDWMPNq/D1SY60JQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-plugin-utils': 7.26.5 dev: false - /@babel/plugin-transform-arrow-functions/7.24.1_@babel+core@7.20.12: - resolution: {integrity: sha512-ngT/3NkRhsaep9ck9uj2Xhv9+xB1zShY3tM3g6om4xxCELwCDN4g4Aq5dRn48+0hasAql7s2hdBOysCfNpr4fw==} + /@babel/plugin-transform-arrow-functions/7.25.9_@babel+core@7.20.12: + resolution: {integrity: sha512-6jmooXYIwn9ca5/RylZADJ+EnSxVUS5sjeJ9UPk6RWRzXCmOJCy6dqItPJFpw2cuCangPK4OYr5uhGKcmrm5Qg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-plugin-utils': 7.26.5 dev: false - /@babel/plugin-transform-async-to-generator/7.24.1_@babel+core@7.20.12: - resolution: {integrity: sha512-AawPptitRXp1y0n4ilKcGbRYWfbbzFWz2NqNu7dacYDtFtz0CMjG64b3LQsb3KIgnf4/obcUL78hfaOS7iCUfw==} + /@babel/plugin-transform-async-to-generator/7.25.9_@babel+core@7.20.12: + resolution: {integrity: sha512-NT7Ejn7Z/LjUH0Gv5KsBCxh7BH3fbLTV0ptHvpeMvrt3cPThHfJfst9Wrb7S8EvJ7vRTFI7z+VAvFVEQn/m5zQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.12 - '@babel/helper-module-imports': 7.24.3 - '@babel/helper-plugin-utils': 7.24.5 - '@babel/helper-remap-async-to-generator': 7.22.20_@babel+core@7.20.12 + '@babel/helper-module-imports': 7.25.9 + '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-remap-async-to-generator': 7.25.9_@babel+core@7.20.12 + transitivePeerDependencies: + - supports-color dev: false - /@babel/plugin-transform-block-scoped-functions/7.24.1_@babel+core@7.20.12: - resolution: {integrity: sha512-TWWC18OShZutrv9C6mye1xwtam+uNi2bnTOCBUd5sZxyHOiWbU6ztSROofIMrK84uweEZC219POICK/sTYwfgg==} + /@babel/plugin-transform-block-scoped-functions/7.26.5_@babel+core@7.20.12: + resolution: {integrity: sha512-chuTSY+hq09+/f5lMj8ZSYgCFpppV2CbYrhNFJ1BFoXpiWPnnAb7R0MqrafCpN8E1+YRrtM1MXZHJdIx8B6rMQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-plugin-utils': 7.26.5 dev: false - /@babel/plugin-transform-block-scoping/7.24.5_@babel+core@7.20.12: - resolution: {integrity: sha512-sMfBc3OxghjC95BkYrYocHL3NaOplrcaunblzwXhGmlPwpmfsxr4vK+mBBt49r+S240vahmv+kUxkeKgs+haCw==} + /@babel/plugin-transform-block-scoping/7.25.9_@babel+core@7.20.12: + resolution: {integrity: sha512-1F05O7AYjymAtqbsFETboN1NvBdcnzMerO+zlMyJBEz6WkMdejvGWw9p05iTSjC85RLlBseHHQpYaM4gzJkBGg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-plugin-utils': 7.26.5 dev: false - /@babel/plugin-transform-classes/7.24.5_@babel+core@7.20.12: - resolution: {integrity: sha512-gWkLP25DFj2dwe9Ck8uwMOpko4YsqyfZJrOmqqcegeDYEbp7rmn4U6UQZNj08UF6MaX39XenSpKRCvpDRBtZ7Q==} + /@babel/plugin-transform-classes/7.25.9_@babel+core@7.20.12: + resolution: {integrity: sha512-mD8APIXmseE7oZvZgGABDyM34GUmK45Um2TXiBUt7PnuAxrgoSVf123qUzPxEr/+/BHrRn5NMZCdE2m/1F8DGg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.12 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-function-name': 7.23.0 - '@babel/helper-plugin-utils': 7.24.5 - '@babel/helper-replace-supers': 7.24.1_@babel+core@7.20.12 - '@babel/helper-split-export-declaration': 7.24.5 + '@babel/helper-annotate-as-pure': 7.25.9 + '@babel/helper-compilation-targets': 7.26.5 + '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-replace-supers': 7.26.5_@babel+core@7.20.12 + '@babel/traverse': 7.26.9 globals: 11.12.0 + transitivePeerDependencies: + - supports-color dev: false - /@babel/plugin-transform-computed-properties/7.24.1_@babel+core@7.20.12: - resolution: {integrity: sha512-5pJGVIUfJpOS+pAqBQd+QMaTD2vCL/HcePooON6pDpHgRp4gNRmzyHTPIkXntwKsq3ayUFVfJaIKPw2pOkOcTw==} + /@babel/plugin-transform-computed-properties/7.25.9_@babel+core@7.20.12: + resolution: {integrity: sha512-HnBegGqXZR12xbcTHlJ9HGxw1OniltT26J5YpfruGqtUHlz/xKf/G2ak9e+t0rVqrjXa9WOhvYPz1ERfMj23AA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.24.5 - '@babel/template': 7.24.0 + '@babel/helper-plugin-utils': 7.26.5 + '@babel/template': 7.26.9 dev: false - /@babel/plugin-transform-destructuring/7.24.5_@babel+core@7.20.12: - resolution: {integrity: sha512-SZuuLyfxvsm+Ah57I/i1HVjveBENYK9ue8MJ7qkc7ndoNjqquJiElzA7f5yaAXjyW2hKojosOTAQQRX50bPSVg==} + /@babel/plugin-transform-destructuring/7.25.9_@babel+core@7.20.12: + resolution: {integrity: sha512-WkCGb/3ZxXepmMiX101nnGiU+1CAdut8oHyEOHxkKuS1qKpU2SMXE2uSvfz8PBuLd49V6LEsbtyPhWC7fnkgvQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-plugin-utils': 7.26.5 dev: false - /@babel/plugin-transform-dotall-regex/7.24.1_@babel+core@7.20.12: - resolution: {integrity: sha512-p7uUxgSoZwZ2lPNMzUkqCts3xlp8n+o05ikjy7gbtFJSt9gdU88jAmtfmOxHM14noQXBxfgzf2yRWECiNVhTCw==} + /@babel/plugin-transform-dotall-regex/7.25.9_@babel+core@7.20.12: + resolution: {integrity: sha512-t7ZQ7g5trIgSRYhI9pIJtRl64KHotutUJsh4Eze5l7olJv+mRSg4/MmbZ0tv1eeqRbdvo/+trvJD/Oc5DmW2cA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.12 - '@babel/helper-create-regexp-features-plugin': 7.22.15_@babel+core@7.20.12 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-create-regexp-features-plugin': 7.26.3_@babel+core@7.20.12 + '@babel/helper-plugin-utils': 7.26.5 dev: false - /@babel/plugin-transform-duplicate-keys/7.24.1_@babel+core@7.20.12: - resolution: {integrity: sha512-msyzuUnvsjsaSaocV6L7ErfNsa5nDWL1XKNnDePLgmz+WdU4w/J8+AxBMrWfi9m4IxfL5sZQKUPQKDQeeAT6lA==} + /@babel/plugin-transform-duplicate-keys/7.25.9_@babel+core@7.20.12: + resolution: {integrity: sha512-LZxhJ6dvBb/f3x8xwWIuyiAHy56nrRG3PeYTpBkkzkYRRQ6tJLu68lEF5VIqMUZiAV7a8+Tb78nEoMCMcqjXBw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-plugin-utils': 7.26.5 dev: false - /@babel/plugin-transform-exponentiation-operator/7.24.1_@babel+core@7.20.12: - resolution: {integrity: sha512-U1yX13dVBSwS23DEAqU+Z/PkwE9/m7QQy8Y9/+Tdb8UWYaGNDYwTLi19wqIAiROr8sXVum9A/rtiH5H0boUcTw==} + /@babel/plugin-transform-exponentiation-operator/7.26.3_@babel+core@7.20.12: + resolution: {integrity: sha512-7CAHcQ58z2chuXPWblnn1K6rLDnDWieghSOEmqQsrBenH0P9InCUtOJYD89pvngljmZlJcz3fcmgYsXFNGa1ZQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.12 - '@babel/helper-builder-binary-assignment-operator-visitor': 7.22.15 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-plugin-utils': 7.26.5 dev: false - /@babel/plugin-transform-for-of/7.24.1_@babel+core@7.20.12: - resolution: {integrity: sha512-OxBdcnF04bpdQdR3i4giHZNZQn7cm8RQKcSwA17wAAqEELo1ZOwp5FFgeptWUQXFyT9kwHo10aqqauYkRZPCAg==} + /@babel/plugin-transform-for-of/7.26.9_@babel+core@7.20.12: + resolution: {integrity: sha512-Hry8AusVm8LW5BVFgiyUReuoGzPUpdHQQqJY5bZnbbf+ngOHWuCuYFKw/BqaaWlvEUrF91HMhDtEaI1hZzNbLg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.24.5 - '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 + transitivePeerDependencies: + - supports-color dev: false - /@babel/plugin-transform-function-name/7.24.1_@babel+core@7.20.12: - resolution: {integrity: sha512-BXmDZpPlh7jwicKArQASrj8n22/w6iymRnvHYYd2zO30DbE277JO20/7yXJT3QxDPtiQiOxQBbZH4TpivNXIxA==} + /@babel/plugin-transform-function-name/7.25.9_@babel+core@7.20.12: + resolution: {integrity: sha512-8lP+Yxjv14Vc5MuWBpJsoUCd3hD6V9DgBon2FVYL4jJgbnVQ9fTgYmonchzZJOVNgzEgbxp4OwAf6xz6M/14XA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.12 - '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-function-name': 7.23.0 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-compilation-targets': 7.26.5 + '@babel/helper-plugin-utils': 7.26.5 + '@babel/traverse': 7.26.9 + transitivePeerDependencies: + - supports-color dev: false - /@babel/plugin-transform-literals/7.24.1_@babel+core@7.20.12: - resolution: {integrity: sha512-zn9pwz8U7nCqOYIiBaOxoQOtYmMODXTJnkxG4AtX8fPmnCRYWBOHD0qcpwS9e2VDSp1zNJYpdnFMIKb8jmwu6g==} + /@babel/plugin-transform-literals/7.25.9_@babel+core@7.20.12: + resolution: {integrity: sha512-9N7+2lFziW8W9pBl2TzaNht3+pgMIRP74zizeCSrtnSKVdUl8mAjjOP2OOVQAfZ881P2cNjDj1uAMEdeD50nuQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-plugin-utils': 7.26.5 dev: false - /@babel/plugin-transform-member-expression-literals/7.24.1_@babel+core@7.20.12: - resolution: {integrity: sha512-4ojai0KysTWXzHseJKa1XPNXKRbuUrhkOPY4rEGeR+7ChlJVKxFa3H3Bz+7tWaGKgJAXUWKOGmltN+u9B3+CVg==} + /@babel/plugin-transform-member-expression-literals/7.25.9_@babel+core@7.20.12: + resolution: {integrity: sha512-PYazBVfofCQkkMzh2P6IdIUaCEWni3iYEerAsRWuVd8+jlM1S9S9cz1dF9hIzyoZ8IA3+OwVYIp9v9e+GbgZhA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-plugin-utils': 7.26.5 dev: false - /@babel/plugin-transform-modules-amd/7.24.1_@babel+core@7.20.12: - resolution: {integrity: sha512-lAxNHi4HVtjnHd5Rxg3D5t99Xm6H7b04hUS7EHIXcUl2EV4yl1gWdqZrNzXnSrHveL9qMdbODlLF55mvgjAfaQ==} + /@babel/plugin-transform-modules-amd/7.25.9_@babel+core@7.20.12: + resolution: {integrity: sha512-g5T11tnI36jVClQlMlt4qKDLlWnG5pP9CSM4GhdRciTNMRgkfpo5cR6b4rGIOYPgRRuFAvwjPQ/Yk+ql4dyhbw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.12 - '@babel/helper-module-transforms': 7.24.5_@babel+core@7.20.12 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-module-transforms': 7.26.0_@babel+core@7.20.12 + '@babel/helper-plugin-utils': 7.26.5 + transitivePeerDependencies: + - supports-color dev: false - /@babel/plugin-transform-modules-commonjs/7.24.1_@babel+core@7.20.12: - resolution: {integrity: sha512-szog8fFTUxBfw0b98gEWPaEqF42ZUD/T3bkynW/wtgx2p/XCP55WEsb+VosKceRSd6njipdZvNogqdtI4Q0chw==} + /@babel/plugin-transform-modules-commonjs/7.26.3_@babel+core@7.20.12: + resolution: {integrity: sha512-MgR55l4q9KddUDITEzEFYn5ZsGDXMSsU9E+kh7fjRXTIC3RHqfCo8RPRbyReYJh44HQ/yomFkqbOFohXvDCiIQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.12 - '@babel/helper-module-transforms': 7.24.5_@babel+core@7.20.12 - '@babel/helper-plugin-utils': 7.24.5 - '@babel/helper-simple-access': 7.24.5 + '@babel/helper-module-transforms': 7.26.0_@babel+core@7.20.12 + '@babel/helper-plugin-utils': 7.26.5 + transitivePeerDependencies: + - supports-color dev: false - /@babel/plugin-transform-modules-systemjs/7.24.1_@babel+core@7.20.12: - resolution: {integrity: sha512-mqQ3Zh9vFO1Tpmlt8QPnbwGHzNz3lpNEMxQb1kAemn/erstyqw1r9KeOlOfo3y6xAnFEcOv2tSyrXfmMk+/YZA==} + /@babel/plugin-transform-modules-systemjs/7.25.9_@babel+core@7.20.12: + resolution: {integrity: sha512-hyss7iIlH/zLHaehT+xwiymtPOpsiwIIRlCAOwBB04ta5Tt+lNItADdlXw3jAWZ96VJ2jlhl/c+PNIQPKNfvcA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.12 - '@babel/helper-hoist-variables': 7.22.5 - '@babel/helper-module-transforms': 7.24.5_@babel+core@7.20.12 - '@babel/helper-plugin-utils': 7.24.5 - '@babel/helper-validator-identifier': 7.24.5 + '@babel/helper-module-transforms': 7.26.0_@babel+core@7.20.12 + '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-validator-identifier': 7.25.9 + '@babel/traverse': 7.26.9 + transitivePeerDependencies: + - supports-color dev: false - /@babel/plugin-transform-modules-umd/7.24.1_@babel+core@7.20.12: - resolution: {integrity: sha512-tuA3lpPj+5ITfcCluy6nWonSL7RvaG0AOTeAuvXqEKS34lnLzXpDb0dcP6K8jD0zWZFNDVly90AGFJPnm4fOYg==} + /@babel/plugin-transform-modules-umd/7.25.9_@babel+core@7.20.12: + resolution: {integrity: sha512-bS9MVObUgE7ww36HEfwe6g9WakQ0KF07mQF74uuXdkoziUPfKyu/nIm663kz//e5O1nPInPFx36z7WJmJ4yNEw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.12 - '@babel/helper-module-transforms': 7.24.5_@babel+core@7.20.12 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-module-transforms': 7.26.0_@babel+core@7.20.12 + '@babel/helper-plugin-utils': 7.26.5 + transitivePeerDependencies: + - supports-color dev: false - /@babel/plugin-transform-named-capturing-groups-regex/7.22.5_@babel+core@7.20.12: - resolution: {integrity: sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==} + /@babel/plugin-transform-named-capturing-groups-regex/7.25.9_@babel+core@7.20.12: + resolution: {integrity: sha512-oqB6WHdKTGl3q/ItQhpLSnWWOpjUJLsOCLVyeFgeTktkBSCiurvPOsyt93gibI9CmuKvTUEtWmG5VhZD+5T/KA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: '@babel/core': 7.20.12 - '@babel/helper-create-regexp-features-plugin': 7.22.15_@babel+core@7.20.12 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-create-regexp-features-plugin': 7.26.3_@babel+core@7.20.12 + '@babel/helper-plugin-utils': 7.26.5 dev: false - /@babel/plugin-transform-new-target/7.24.1_@babel+core@7.20.12: - resolution: {integrity: sha512-/rurytBM34hYy0HKZQyA0nHbQgQNFm4Q/BOc9Hflxi2X3twRof7NaE5W46j4kQitm7SvACVRXsa6N/tSZxvPug==} + /@babel/plugin-transform-new-target/7.25.9_@babel+core@7.20.12: + resolution: {integrity: sha512-U/3p8X1yCSoKyUj2eOBIx3FOn6pElFOKvAAGf8HTtItuPyB+ZeOqfn+mvTtg9ZlOAjsPdK3ayQEjqHjU/yLeVQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-plugin-utils': 7.26.5 dev: false - /@babel/plugin-transform-object-super/7.24.1_@babel+core@7.20.12: - resolution: {integrity: sha512-oKJqR3TeI5hSLRxudMjFQ9re9fBVUU0GICqM3J1mi8MqlhVr6hC/ZN4ttAyMuQR6EZZIY6h/exe5swqGNNIkWQ==} + /@babel/plugin-transform-object-super/7.25.9_@babel+core@7.20.12: + resolution: {integrity: sha512-Kj/Gh+Rw2RNLbCK1VAWj2U48yxxqL2x0k10nPtSdRa0O2xnHXalD0s+o1A6a0W43gJ00ANo38jxkQreckOzv5A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.24.5 - '@babel/helper-replace-supers': 7.24.1_@babel+core@7.20.12 + '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-replace-supers': 7.26.5_@babel+core@7.20.12 + transitivePeerDependencies: + - supports-color dev: false - /@babel/plugin-transform-optional-chaining/7.24.5_@babel+core@7.20.12: - resolution: {integrity: sha512-xWCkmwKT+ihmA6l7SSTpk8e4qQl/274iNbSKRRS8mpqFR32ksy36+a+LWY8OXCCEefF8WFlnOHVsaDI2231wBg==} + /@babel/plugin-transform-optional-chaining/7.25.9_@babel+core@7.20.12: + resolution: {integrity: sha512-6AvV0FsLULbpnXeBjrY4dmWF8F7gf8QnvTEoO/wX/5xm/xE1Xo8oPuD3MPS+KS9f9XBEAWN7X1aWr4z9HdOr7A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.24.5 - '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.20.12 + '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 + transitivePeerDependencies: + - supports-color dev: false - /@babel/plugin-transform-parameters/7.24.5_@babel+core@7.20.12: - resolution: {integrity: sha512-9Co00MqZ2aoky+4j2jhofErthm6QVLKbpQrvz20c3CH9KQCLHyNB+t2ya4/UrRpQGR+Wrwjg9foopoeSdnHOkA==} + /@babel/plugin-transform-parameters/7.25.9_@babel+core@7.20.12: + resolution: {integrity: sha512-wzz6MKwpnshBAiRmn4jR8LYz/g8Ksg0o80XmwZDlordjwEk9SxBzTWC7F5ef1jhbrbOW2DJ5J6ayRukrJmnr0g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-plugin-utils': 7.26.5 dev: false - /@babel/plugin-transform-property-literals/7.24.1_@babel+core@7.20.12: - resolution: {integrity: sha512-LetvD7CrHmEx0G442gOomRr66d7q8HzzGGr4PMHGr+5YIm6++Yke+jxj246rpvsbyhJwCLxcTn6zW1P1BSenqA==} + /@babel/plugin-transform-property-literals/7.25.9_@babel+core@7.20.12: + resolution: {integrity: sha512-IvIUeV5KrS/VPavfSM/Iu+RE6llrHrYIKY1yfCzyO/lMXHQ+p7uGhonmGVisv6tSBSVgWzMBohTcvkC9vQcQFA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-plugin-utils': 7.26.5 dev: false - /@babel/plugin-transform-react-display-name/7.24.1_@babel+core@7.20.12: - resolution: {integrity: sha512-mvoQg2f9p2qlpDQRBC7M3c3XTr0k7cp/0+kFKKO/7Gtu0LSw16eKB+Fabe2bDT/UpsyasTBBkAnbdsLrkD5XMw==} + /@babel/plugin-transform-react-display-name/7.25.9_@babel+core@7.20.12: + resolution: {integrity: sha512-KJfMlYIUxQB1CJfO3e0+h0ZHWOTLCPP115Awhaz8U0Zpq36Gl/cXlpoyMRnUWlhNUBAzldnCiAZNvCDj7CrKxQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-plugin-utils': 7.26.5 dev: false - /@babel/plugin-transform-react-jsx-development/7.22.5_@babel+core@7.20.12: - resolution: {integrity: sha512-bDhuzwWMuInwCYeDeMzyi7TaBgRQei6DqxhbyniL7/VG4RSS7HtSL2QbY4eESy1KJqlWt8g3xeEBGPuo+XqC8A==} + /@babel/plugin-transform-react-jsx-development/7.25.9_@babel+core@7.20.12: + resolution: {integrity: sha512-9mj6rm7XVYs4mdLIpbZnHOYdpW42uoiBCTVowg7sP1thUOiANgMb4UtpRivR0pp5iL+ocvUv7X4mZgFRpJEzGw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.12 - '@babel/plugin-transform-react-jsx': 7.23.4_@babel+core@7.20.12 + '@babel/plugin-transform-react-jsx': 7.25.9_@babel+core@7.20.12 + transitivePeerDependencies: + - supports-color dev: false - /@babel/plugin-transform-react-jsx-self/7.24.5_@babel+core@7.20.12: - resolution: {integrity: sha512-RtCJoUO2oYrYwFPtR1/jkoBEcFuI1ae9a9IMxeyAVa3a1Ap4AnxmyIKG2b2FaJKqkidw/0cxRbWN+HOs6ZWd1w==} + /@babel/plugin-transform-react-jsx-self/7.25.9_@babel+core@7.20.12: + resolution: {integrity: sha512-y8quW6p0WHkEhmErnfe58r7x0A70uKphQm8Sp8cV7tjNQwK56sNVK0M73LK3WuYmsuyrftut4xAkjjgU0twaMg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-plugin-utils': 7.26.5 dev: true - /@babel/plugin-transform-react-jsx-source/7.24.1_@babel+core@7.20.12: - resolution: {integrity: sha512-1v202n7aUq4uXAieRTKcwPzNyphlCuqHHDcdSNc+vdhoTEZcFMh+L5yZuCmGaIO7bs1nJUNfHB89TZyoL48xNA==} + /@babel/plugin-transform-react-jsx-source/7.25.9_@babel+core@7.20.12: + resolution: {integrity: sha512-+iqjT8xmXhhYv4/uiYd8FNQsraMFZIfxVSqxxVSZP0WbbSAWvBXAul0m/zu+7Vv4O/3WtApy9pmaTMiumEZgfg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-plugin-utils': 7.26.5 dev: true - /@babel/plugin-transform-react-jsx/7.23.4_@babel+core@7.20.12: - resolution: {integrity: sha512-5xOpoPguCZCRbo/JeHlloSkTA8Bld1J/E1/kLfD1nsuiW1m8tduTA1ERCgIZokDflX/IBzKcqR3l7VlRgiIfHA==} + /@babel/plugin-transform-react-jsx/7.25.9_@babel+core@7.20.12: + resolution: {integrity: sha512-s5XwpQYCqGerXl+Pu6VDL3x0j2d82eiV77UJ8a2mDHAW7j9SWRqQ2y1fNo1Z74CdcYipl5Z41zvjj4Nfzq36rw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.12 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-module-imports': 7.24.3 - '@babel/helper-plugin-utils': 7.24.5 - '@babel/plugin-syntax-jsx': 7.24.1_@babel+core@7.20.12 - '@babel/types': 7.24.5 + '@babel/helper-annotate-as-pure': 7.25.9 + '@babel/helper-module-imports': 7.25.9 + '@babel/helper-plugin-utils': 7.26.5 + '@babel/plugin-syntax-jsx': 7.25.9_@babel+core@7.20.12 + '@babel/types': 7.26.9 + transitivePeerDependencies: + - supports-color dev: false - /@babel/plugin-transform-react-pure-annotations/7.24.1_@babel+core@7.20.12: - resolution: {integrity: sha512-+pWEAaDJvSm9aFvJNpLiM2+ktl2Sn2U5DdyiWdZBxmLc6+xGt88dvFqsHiAiDS+8WqUwbDfkKz9jRxK3M0k+kA==} + /@babel/plugin-transform-react-pure-annotations/7.25.9_@babel+core@7.20.12: + resolution: {integrity: sha512-KQ/Takk3T8Qzj5TppkS1be588lkbTp5uj7w6a0LeQaTMSckU/wK0oJ/pih+T690tkgI5jfmg2TqDJvd41Sj1Cg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.12 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-annotate-as-pure': 7.25.9 + '@babel/helper-plugin-utils': 7.26.5 dev: false - /@babel/plugin-transform-regenerator/7.24.1_@babel+core@7.20.12: - resolution: {integrity: sha512-sJwZBCzIBE4t+5Q4IGLaaun5ExVMRY0lYwos/jNecjMrVCygCdph3IKv0tkP5Fc87e/1+bebAmEAGBfnRD+cnw==} + /@babel/plugin-transform-regenerator/7.25.9_@babel+core@7.20.12: + resolution: {integrity: sha512-vwDcDNsgMPDGP0nMqzahDWE5/MLcX8sv96+wfX7as7LoF/kr97Bo/7fI00lXY4wUXYfVmwIIyG80fGZ1uvt2qg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-plugin-utils': 7.26.5 regenerator-transform: 0.15.2 dev: false - /@babel/plugin-transform-reserved-words/7.24.1_@babel+core@7.20.12: - resolution: {integrity: sha512-JAclqStUfIwKN15HrsQADFgeZt+wexNQ0uLhuqvqAUFoqPMjEcFCYZBhq0LUdz6dZK/mD+rErhW71fbx8RYElg==} + /@babel/plugin-transform-reserved-words/7.25.9_@babel+core@7.20.12: + resolution: {integrity: sha512-7DL7DKYjn5Su++4RXu8puKZm2XBPHyjWLUidaPEkCUBbE7IPcsrkRHggAOOKydH1dASWdcUBxrkOGNxUv5P3Jg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-plugin-utils': 7.26.5 dev: false - /@babel/plugin-transform-shorthand-properties/7.24.1_@babel+core@7.20.12: - resolution: {integrity: sha512-LyjVB1nsJ6gTTUKRjRWx9C1s9hE7dLfP/knKdrfeH9UPtAGjYGgxIbFfx7xyLIEWs7Xe1Gnf8EWiUqfjLhInZA==} + /@babel/plugin-transform-shorthand-properties/7.25.9_@babel+core@7.20.12: + resolution: {integrity: sha512-MUv6t0FhO5qHnS/W8XCbHmiRWOphNufpE1IVxhK5kuN3Td9FT1x4rx4K42s3RYdMXCXpfWkGSbCSd0Z64xA7Ng==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-plugin-utils': 7.26.5 dev: false - /@babel/plugin-transform-spread/7.24.1_@babel+core@7.20.12: - resolution: {integrity: sha512-KjmcIM+fxgY+KxPVbjelJC6hrH1CgtPmTvdXAfn3/a9CnWGSTY7nH4zm5+cjmWJybdcPSsD0++QssDsjcpe47g==} + /@babel/plugin-transform-spread/7.25.9_@babel+core@7.20.12: + resolution: {integrity: sha512-oNknIB0TbURU5pqJFVbOOFspVlrpVwo2H1+HUIsVDvp5VauGGDP1ZEvO8Nn5xyMEs3dakajOxlmkNW7kNgSm6A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.24.5 - '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 + transitivePeerDependencies: + - supports-color dev: false - /@babel/plugin-transform-sticky-regex/7.24.1_@babel+core@7.20.12: - resolution: {integrity: sha512-9v0f1bRXgPVcPrngOQvLXeGNNVLc8UjMVfebo9ka0WF3/7+aVUHmaJVT3sa0XCzEFioPfPHZiOcYG9qOsH63cw==} + /@babel/plugin-transform-sticky-regex/7.25.9_@babel+core@7.20.12: + resolution: {integrity: sha512-WqBUSgeVwucYDP9U/xNRQam7xV8W5Zf+6Eo7T2SRVUFlhRiMNFdFz58u0KZmCVVqs2i7SHgpRnAhzRNmKfi2uA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-plugin-utils': 7.26.5 dev: false - /@babel/plugin-transform-template-literals/7.24.1_@babel+core@7.20.12: - resolution: {integrity: sha512-WRkhROsNzriarqECASCNu/nojeXCDTE/F2HmRgOzi7NGvyfYGq1NEjKBK3ckLfRgGc6/lPAqP0vDOSw3YtG34g==} + /@babel/plugin-transform-template-literals/7.26.8_@babel+core@7.20.12: + resolution: {integrity: sha512-OmGDL5/J0CJPJZTHZbi2XpO0tyT2Ia7fzpW5GURwdtp2X3fMmN8au/ej6peC/T33/+CRiIpA8Krse8hFGVmT5Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-plugin-utils': 7.26.5 dev: false - /@babel/plugin-transform-typeof-symbol/7.24.5_@babel+core@7.20.12: - resolution: {integrity: sha512-UTGnhYVZtTAjdwOTzT+sCyXmTn8AhaxOS/MjG9REclZ6ULHWF9KoCZur0HSGU7hk8PdBFKKbYe6+gqdXWz84Jg==} + /@babel/plugin-transform-typeof-symbol/7.26.7_@babel+core@7.20.12: + resolution: {integrity: sha512-jfoTXXZTgGg36BmhqT3cAYK5qkmqvJpvNrPhaK/52Vgjhw4Rq29s9UqpWWV0D6yuRmgiFH/BUVlkl96zJWqnaw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-plugin-utils': 7.26.5 dev: false - /@babel/plugin-transform-typescript/7.24.5_@babel+core@7.20.12: - resolution: {integrity: sha512-E0VWu/hk83BIFUWnsKZ4D81KXjN5L3MobvevOHErASk9IPwKHOkTgvqzvNo1yP/ePJWqqK2SpUR5z+KQbl6NVw==} + /@babel/plugin-transform-typescript/7.26.8_@babel+core@7.20.12: + resolution: {integrity: sha512-bME5J9AC8ChwA7aEPJ6zym3w7aObZULHhbNLU0bKUhKsAkylkzUdq+0kdymh9rzi8nlNFl2bmldFBCKNJBUpuw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.12 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-create-class-features-plugin': 7.24.5_@babel+core@7.20.12 - '@babel/helper-plugin-utils': 7.24.5 - '@babel/plugin-syntax-typescript': 7.24.1_@babel+core@7.20.12 + '@babel/helper-annotate-as-pure': 7.25.9 + '@babel/helper-create-class-features-plugin': 7.26.9_@babel+core@7.20.12 + '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 + '@babel/plugin-syntax-typescript': 7.25.9_@babel+core@7.20.12 + transitivePeerDependencies: + - supports-color dev: false - /@babel/plugin-transform-unicode-escapes/7.24.1_@babel+core@7.20.12: - resolution: {integrity: sha512-RlkVIcWT4TLI96zM660S877E7beKlQw7Ig+wqkKBiWfj0zH5Q4h50q6er4wzZKRNSYpfo6ILJ+hrJAGSX2qcNw==} + /@babel/plugin-transform-unicode-escapes/7.25.9_@babel+core@7.20.12: + resolution: {integrity: sha512-s5EDrE6bW97LtxOcGj1Khcx5AaXwiMmi4toFWRDP9/y0Woo6pXC+iyPu/KuhKtfSrNFd7jJB+/fkOtZy6aIC6Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-plugin-utils': 7.26.5 dev: false - /@babel/plugin-transform-unicode-regex/7.24.1_@babel+core@7.20.12: - resolution: {integrity: sha512-2A/94wgZgxfTsiLaQ2E36XAOdcZmGAaEEgVmxQWwZXWkGhvoHbaqXcKnU8zny4ycpu3vNqg0L/PcCiYtHtA13g==} + /@babel/plugin-transform-unicode-regex/7.25.9_@babel+core@7.20.12: + resolution: {integrity: sha512-yoxstj7Rg9dlNn9UQxzk4fcNivwv4nUYz7fYXBaKxvw/lnmPuOm/ikoELygbYq68Bls3D/D+NBPHiLwZdZZ4HA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.12 - '@babel/helper-create-regexp-features-plugin': 7.22.15_@babel+core@7.20.12 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-create-regexp-features-plugin': 7.26.3_@babel+core@7.20.12 + '@babel/helper-plugin-utils': 7.26.5 dev: false /@babel/preset-env/7.20.2_@babel+core@7.20.12: @@ -1592,13 +1624,13 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/compat-data': 7.24.4 + '@babel/compat-data': 7.26.8 '@babel/core': 7.20.12 - '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-plugin-utils': 7.24.5 - '@babel/helper-validator-option': 7.23.5 - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.24.1_@babel+core@7.20.12 - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.24.1_@babel+core@7.20.12 + '@babel/helper-compilation-targets': 7.26.5 + '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-validator-option': 7.25.9 + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.25.9_@babel+core@7.20.12 + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.25.9_@babel+core@7.20.12 '@babel/plugin-proposal-async-generator-functions': 7.20.7_@babel+core@7.20.12 '@babel/plugin-proposal-class-properties': 7.18.6_@babel+core@7.20.12 '@babel/plugin-proposal-class-static-block': 7.21.0_@babel+core@7.20.12 @@ -1619,7 +1651,7 @@ packages: '@babel/plugin-syntax-class-static-block': 7.14.5_@babel+core@7.20.12 '@babel/plugin-syntax-dynamic-import': 7.8.3_@babel+core@7.20.12 '@babel/plugin-syntax-export-namespace-from': 7.8.3_@babel+core@7.20.12 - '@babel/plugin-syntax-import-assertions': 7.24.1_@babel+core@7.20.12 + '@babel/plugin-syntax-import-assertions': 7.26.0_@babel+core@7.20.12 '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.20.12 '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.20.12 '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.20.12 @@ -1629,44 +1661,44 @@ packages: '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.20.12 '@babel/plugin-syntax-private-property-in-object': 7.14.5_@babel+core@7.20.12 '@babel/plugin-syntax-top-level-await': 7.14.5_@babel+core@7.20.12 - '@babel/plugin-transform-arrow-functions': 7.24.1_@babel+core@7.20.12 - '@babel/plugin-transform-async-to-generator': 7.24.1_@babel+core@7.20.12 - '@babel/plugin-transform-block-scoped-functions': 7.24.1_@babel+core@7.20.12 - '@babel/plugin-transform-block-scoping': 7.24.5_@babel+core@7.20.12 - '@babel/plugin-transform-classes': 7.24.5_@babel+core@7.20.12 - '@babel/plugin-transform-computed-properties': 7.24.1_@babel+core@7.20.12 - '@babel/plugin-transform-destructuring': 7.24.5_@babel+core@7.20.12 - '@babel/plugin-transform-dotall-regex': 7.24.1_@babel+core@7.20.12 - '@babel/plugin-transform-duplicate-keys': 7.24.1_@babel+core@7.20.12 - '@babel/plugin-transform-exponentiation-operator': 7.24.1_@babel+core@7.20.12 - '@babel/plugin-transform-for-of': 7.24.1_@babel+core@7.20.12 - '@babel/plugin-transform-function-name': 7.24.1_@babel+core@7.20.12 - '@babel/plugin-transform-literals': 7.24.1_@babel+core@7.20.12 - '@babel/plugin-transform-member-expression-literals': 7.24.1_@babel+core@7.20.12 - '@babel/plugin-transform-modules-amd': 7.24.1_@babel+core@7.20.12 - '@babel/plugin-transform-modules-commonjs': 7.24.1_@babel+core@7.20.12 - '@babel/plugin-transform-modules-systemjs': 7.24.1_@babel+core@7.20.12 - '@babel/plugin-transform-modules-umd': 7.24.1_@babel+core@7.20.12 - '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5_@babel+core@7.20.12 - '@babel/plugin-transform-new-target': 7.24.1_@babel+core@7.20.12 - '@babel/plugin-transform-object-super': 7.24.1_@babel+core@7.20.12 - '@babel/plugin-transform-parameters': 7.24.5_@babel+core@7.20.12 - '@babel/plugin-transform-property-literals': 7.24.1_@babel+core@7.20.12 - '@babel/plugin-transform-regenerator': 7.24.1_@babel+core@7.20.12 - '@babel/plugin-transform-reserved-words': 7.24.1_@babel+core@7.20.12 - '@babel/plugin-transform-shorthand-properties': 7.24.1_@babel+core@7.20.12 - '@babel/plugin-transform-spread': 7.24.1_@babel+core@7.20.12 - '@babel/plugin-transform-sticky-regex': 7.24.1_@babel+core@7.20.12 - '@babel/plugin-transform-template-literals': 7.24.1_@babel+core@7.20.12 - '@babel/plugin-transform-typeof-symbol': 7.24.5_@babel+core@7.20.12 - '@babel/plugin-transform-unicode-escapes': 7.24.1_@babel+core@7.20.12 - '@babel/plugin-transform-unicode-regex': 7.24.1_@babel+core@7.20.12 + '@babel/plugin-transform-arrow-functions': 7.25.9_@babel+core@7.20.12 + '@babel/plugin-transform-async-to-generator': 7.25.9_@babel+core@7.20.12 + '@babel/plugin-transform-block-scoped-functions': 7.26.5_@babel+core@7.20.12 + '@babel/plugin-transform-block-scoping': 7.25.9_@babel+core@7.20.12 + '@babel/plugin-transform-classes': 7.25.9_@babel+core@7.20.12 + '@babel/plugin-transform-computed-properties': 7.25.9_@babel+core@7.20.12 + '@babel/plugin-transform-destructuring': 7.25.9_@babel+core@7.20.12 + '@babel/plugin-transform-dotall-regex': 7.25.9_@babel+core@7.20.12 + '@babel/plugin-transform-duplicate-keys': 7.25.9_@babel+core@7.20.12 + '@babel/plugin-transform-exponentiation-operator': 7.26.3_@babel+core@7.20.12 + '@babel/plugin-transform-for-of': 7.26.9_@babel+core@7.20.12 + '@babel/plugin-transform-function-name': 7.25.9_@babel+core@7.20.12 + '@babel/plugin-transform-literals': 7.25.9_@babel+core@7.20.12 + '@babel/plugin-transform-member-expression-literals': 7.25.9_@babel+core@7.20.12 + '@babel/plugin-transform-modules-amd': 7.25.9_@babel+core@7.20.12 + '@babel/plugin-transform-modules-commonjs': 7.26.3_@babel+core@7.20.12 + '@babel/plugin-transform-modules-systemjs': 7.25.9_@babel+core@7.20.12 + '@babel/plugin-transform-modules-umd': 7.25.9_@babel+core@7.20.12 + '@babel/plugin-transform-named-capturing-groups-regex': 7.25.9_@babel+core@7.20.12 + '@babel/plugin-transform-new-target': 7.25.9_@babel+core@7.20.12 + '@babel/plugin-transform-object-super': 7.25.9_@babel+core@7.20.12 + '@babel/plugin-transform-parameters': 7.25.9_@babel+core@7.20.12 + '@babel/plugin-transform-property-literals': 7.25.9_@babel+core@7.20.12 + '@babel/plugin-transform-regenerator': 7.25.9_@babel+core@7.20.12 + '@babel/plugin-transform-reserved-words': 7.25.9_@babel+core@7.20.12 + '@babel/plugin-transform-shorthand-properties': 7.25.9_@babel+core@7.20.12 + '@babel/plugin-transform-spread': 7.25.9_@babel+core@7.20.12 + '@babel/plugin-transform-sticky-regex': 7.25.9_@babel+core@7.20.12 + '@babel/plugin-transform-template-literals': 7.26.8_@babel+core@7.20.12 + '@babel/plugin-transform-typeof-symbol': 7.26.7_@babel+core@7.20.12 + '@babel/plugin-transform-unicode-escapes': 7.25.9_@babel+core@7.20.12 + '@babel/plugin-transform-unicode-regex': 7.25.9_@babel+core@7.20.12 '@babel/preset-modules': 0.1.6_@babel+core@7.20.12 - '@babel/types': 7.24.5 + '@babel/types': 7.26.9 babel-plugin-polyfill-corejs2: 0.3.3_@babel+core@7.20.12 babel-plugin-polyfill-corejs3: 0.6.0_@babel+core@7.20.12 babel-plugin-polyfill-regenerator: 0.4.1_@babel+core@7.20.12 - core-js-compat: 3.37.1 + core-js-compat: 3.40.0 semver: 6.3.1 transitivePeerDependencies: - supports-color @@ -1678,10 +1710,10 @@ packages: '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-plugin-utils': 7.26.5 '@babel/plugin-proposal-unicode-property-regex': 7.18.6_@babel+core@7.20.12 - '@babel/plugin-transform-dotall-regex': 7.24.1_@babel+core@7.20.12 - '@babel/types': 7.24.5 + '@babel/plugin-transform-dotall-regex': 7.25.9_@babel+core@7.20.12 + '@babel/types': 7.26.9 esutils: 2.0.3 dev: false @@ -1692,12 +1724,14 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.24.5 - '@babel/helper-validator-option': 7.23.5 - '@babel/plugin-transform-react-display-name': 7.24.1_@babel+core@7.20.12 - '@babel/plugin-transform-react-jsx': 7.23.4_@babel+core@7.20.12 - '@babel/plugin-transform-react-jsx-development': 7.22.5_@babel+core@7.20.12 - '@babel/plugin-transform-react-pure-annotations': 7.24.1_@babel+core@7.20.12 + '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-validator-option': 7.25.9 + '@babel/plugin-transform-react-display-name': 7.25.9_@babel+core@7.20.12 + '@babel/plugin-transform-react-jsx': 7.25.9_@babel+core@7.20.12 + '@babel/plugin-transform-react-jsx-development': 7.25.9_@babel+core@7.20.12 + '@babel/plugin-transform-react-pure-annotations': 7.25.9_@babel+core@7.20.12 + transitivePeerDependencies: + - supports-color dev: false /@babel/preset-typescript/7.18.6_@babel+core@7.20.12: @@ -1707,53 +1741,47 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.24.5 - '@babel/helper-validator-option': 7.23.5 - '@babel/plugin-transform-typescript': 7.24.5_@babel+core@7.20.12 - dev: false - - /@babel/regjsgen/0.8.0: - resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==} + '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-validator-option': 7.25.9 + '@babel/plugin-transform-typescript': 7.26.8_@babel+core@7.20.12 + transitivePeerDependencies: + - supports-color dev: false - /@babel/runtime/7.24.5: - resolution: {integrity: sha512-Nms86NXrsaeU9vbBJKni6gXiEXZ4CVpYVzEjDH9Sb8vmZ3UljyA1GSOJl/6LGPO8EHLuSF9H+IxNXHPX8QHJ4g==} + /@babel/runtime/7.26.9: + resolution: {integrity: sha512-aA63XwOkcl4xxQa3HjPMqOP6LiK0ZDv3mUPYEFXkpHbaFjtGggE1A61FjFzJnB+p7/oy2gA8E+rcBNl/zC1tMg==} engines: {node: '>=6.9.0'} dependencies: regenerator-runtime: 0.14.1 - /@babel/template/7.24.0: - resolution: {integrity: sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==} + /@babel/template/7.26.9: + resolution: {integrity: sha512-qyRplbeIpNZhmzOysF/wFMuP9sctmh2cFzRAZOn1YapxBsE1i9bJIY586R/WBLfLcmcBlM8ROBiQURnnNy+zfA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/code-frame': 7.24.2 - '@babel/parser': 7.24.5 - '@babel/types': 7.24.5 + '@babel/code-frame': 7.26.2 + '@babel/parser': 7.26.9 + '@babel/types': 7.26.9 - /@babel/traverse/7.24.5: - resolution: {integrity: sha512-7aaBLeDQ4zYcUFDUD41lJc1fG8+5IU9DaNSJAgal866FGvmD5EbWQgnEC6kO1gGLsX0esNkfnJSndbTXA3r7UA==} + /@babel/traverse/7.26.9: + resolution: {integrity: sha512-ZYW7L+pL8ahU5fXmNbPF+iZFHCv5scFak7MZ9bwaRPLUhHh7QQEMjZUg0HevihoqCM5iSYHN61EyCoZvqC+bxg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/code-frame': 7.24.2 - '@babel/generator': 7.24.5 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-function-name': 7.23.0 - '@babel/helper-hoist-variables': 7.22.5 - '@babel/helper-split-export-declaration': 7.24.5 - '@babel/parser': 7.24.5 - '@babel/types': 7.24.5 + '@babel/code-frame': 7.26.2 + '@babel/generator': 7.26.9 + '@babel/parser': 7.26.9 + '@babel/template': 7.26.9 + '@babel/types': 7.26.9 debug: 4.3.4 globals: 11.12.0 transitivePeerDependencies: - supports-color - /@babel/types/7.24.5: - resolution: {integrity: sha512-6mQNsaLeXTw0nxYUYu+NSa4Hx4BlF1x1x8/PMFbiR+GBSr+2DkECc69b8hgy2frEodNcvPffeH8YfWd3LI6jhQ==} + /@babel/types/7.26.9: + resolution: {integrity: sha512-Y3IR1cRnOxOCDvMmNiym7XpXQ93iGDDPHx+Zj+NM+rg0fBaShfQLkg+hKPaZCEvg5N/LeCo4+Rj/i3FuJsIQaw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/helper-string-parser': 7.24.1 - '@babel/helper-validator-identifier': 7.24.5 - to-fast-properties: 2.0.0 + '@babel/helper-string-parser': 7.25.9 + '@babel/helper-validator-identifier': 7.25.9 /@bcoe/v8-coverage/0.2.3: resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} @@ -1818,8 +1846,8 @@ packages: debug: 4.3.4 espree: 9.6.1 globals: 13.24.0 - ignore: 5.3.1 - import-fresh: 3.3.0 + ignore: 5.3.2 + import-fresh: 3.3.1 js-yaml: 4.1.0 minimatch: 3.1.2 strip-json-comments: 3.1.1 @@ -1860,6 +1888,7 @@ packages: /@humanwhocodes/config-array/0.9.5: resolution: {integrity: sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==} engines: {node: '>=10.10.0'} + deprecated: Use @eslint/config-array instead dependencies: '@humanwhocodes/object-schema': 1.2.1 debug: 4.3.4 @@ -1869,6 +1898,7 @@ packages: /@humanwhocodes/object-schema/1.2.1: resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} + deprecated: Use @eslint/object-schema instead /@istanbuljs/load-nyc-config/1.1.0: resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==} @@ -1900,7 +1930,7 @@ packages: engines: {node: '>= 10.14.2'} dependencies: '@jest/types': 26.6.2 - '@types/node': 20.12.12 + '@types/node': 22.13.4 chalk: 4.1.2 jest-message-util: 26.6.2 jest-util: 26.6.2 @@ -1916,7 +1946,7 @@ packages: '@jest/test-result': 26.6.2 '@jest/transform': 26.6.2 '@jest/types': 26.6.2 - '@types/node': 20.12.12 + '@types/node': 22.13.4 ansi-escapes: 4.3.2 chalk: 4.1.2 exit: 0.1.2 @@ -1934,7 +1964,7 @@ packages: jest-util: 26.6.2 jest-validate: 26.6.2 jest-watcher: 26.6.2 - micromatch: 4.0.5 + micromatch: 4.0.8 p-each-series: 2.2.0 rimraf: 3.0.2 slash: 3.0.0 @@ -1956,7 +1986,7 @@ packages: '@jest/test-result': 26.6.2 '@jest/transform': 26.6.2 '@jest/types': 26.6.2 - '@types/node': 20.12.12 + '@types/node': 22.13.4 ansi-escapes: 4.3.2 chalk: 4.1.2 exit: 0.1.2 @@ -1974,7 +2004,7 @@ packages: jest-util: 26.6.2 jest-validate: 26.6.2 jest-watcher: 26.6.2 - micromatch: 4.0.5 + micromatch: 4.0.8 p-each-series: 2.2.0 rimraf: 3.0.2 slash: 3.0.0 @@ -1996,7 +2026,7 @@ packages: '@jest/test-result': 26.6.2 '@jest/transform': 26.6.2 '@jest/types': 26.6.2 - '@types/node': 20.12.12 + '@types/node': 22.13.4 ansi-escapes: 4.3.2 chalk: 4.1.2 exit: 0.1.2 @@ -2014,7 +2044,7 @@ packages: jest-util: 26.6.2 jest-validate: 26.6.2 jest-watcher: 26.6.2 - micromatch: 4.0.5 + micromatch: 4.0.8 p-each-series: 2.2.0 rimraf: 3.0.2 slash: 3.0.0 @@ -2045,7 +2075,7 @@ packages: dependencies: '@jest/fake-timers': 26.6.2 '@jest/types': 26.6.2 - '@types/node': 20.12.12 + '@types/node': 22.13.4 jest-mock: 26.6.2 dev: true @@ -2064,7 +2094,7 @@ packages: dependencies: '@jest/types': 26.6.2 '@sinonjs/fake-timers': 6.0.1 - '@types/node': 20.12.12 + '@types/node': 22.13.4 jest-message-util: 26.6.2 jest-mock: 26.6.2 jest-util: 26.6.2 @@ -2251,7 +2281,7 @@ packages: jest-haste-map: 26.6.2 jest-regex-util: 26.0.0 jest-util: 26.6.2 - micromatch: 4.0.5 + micromatch: 4.0.8 pirates: 4.0.6 slash: 3.0.0 source-map: 0.6.1 @@ -2275,17 +2305,17 @@ packages: dependencies: '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 20.12.12 + '@types/node': 22.13.4 '@types/yargs': 15.0.19 chalk: 4.1.2 dev: true - /@jridgewell/gen-mapping/0.3.5: - resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} + /@jridgewell/gen-mapping/0.3.8: + resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==} engines: {node: '>=6.0.0'} dependencies: '@jridgewell/set-array': 1.2.1 - '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/sourcemap-codec': 1.5.0 '@jridgewell/trace-mapping': 0.3.25 /@jridgewell/resolve-uri/3.1.2: @@ -2299,23 +2329,23 @@ packages: /@jridgewell/source-map/0.3.6: resolution: {integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==} dependencies: - '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/gen-mapping': 0.3.8 '@jridgewell/trace-mapping': 0.3.25 - /@jridgewell/sourcemap-codec/1.4.15: - resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} + /@jridgewell/sourcemap-codec/1.5.0: + resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} /@jridgewell/trace-mapping/0.3.25: resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} dependencies: '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/sourcemap-codec': 1.5.0 /@jridgewell/trace-mapping/0.3.9: resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} dependencies: '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/sourcemap-codec': 1.5.0 /@mapbox/node-pre-gyp/1.0.11: resolution: {integrity: sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==} @@ -2328,7 +2358,7 @@ packages: nopt: 5.0.0 npmlog: 5.0.1 rimraf: 3.0.2 - semver: 7.6.2 + semver: 7.7.1 tar: 6.2.1 transitivePeerDependencies: - encoding @@ -2351,7 +2381,7 @@ packages: engines: {node: '>= 8'} dependencies: '@nodelib/fs.scandir': 2.1.5 - fastq: 1.17.1 + fastq: 1.19.0 /@remix-run/router/1.4.0: resolution: {integrity: sha512-BJ9SxXux8zAg991UmT8slpwpsd31K1dHHbD3Ba4VzD+liLQ4WAMSxQp2d2ZPRPfN0jN2NPRowcSSoM7lCaF08Q==} @@ -2497,10 +2527,12 @@ packages: optional: true dependencies: '@babel/core': 7.20.12 - '@babel/helper-module-imports': 7.24.3 - '@rollup/pluginutils': 5.1.0_rollup@3.20.5 + '@babel/helper-module-imports': 7.25.9 + '@rollup/pluginutils': 5.1.4_rollup@3.20.5 '@types/babel__core': 7.20.0 rollup: 3.20.5 + transitivePeerDependencies: + - supports-color dev: false /@rollup/plugin-commonjs/24.1.0_rollup@3.20.5: @@ -2512,7 +2544,7 @@ packages: rollup: optional: true dependencies: - '@rollup/pluginutils': 5.1.0_rollup@3.20.5 + '@rollup/pluginutils': 5.1.4_rollup@3.20.5 commondir: 1.0.1 estree-walker: 2.0.2 glob: 8.1.0 @@ -2521,8 +2553,8 @@ packages: rollup: 3.20.5 dev: false - /@rollup/plugin-dynamic-import-vars/2.1.2: - resolution: {integrity: sha512-4lr2oXxs9hcxtGGaK8s0i9evfjzDrAs7ngw28TqruWKTEm0+U4Eljb+F6HXGYdFv8xRojQlrQwV7M/yxeh3yzQ==} + /@rollup/plugin-dynamic-import-vars/2.1.5: + resolution: {integrity: sha512-Mymi24fd9hlRifdZV/jYIFj1dn99F34imiYu3KzlAcgBcRi3i9SucgW/VRo5SQ9K4NuQ7dCep6pFWgNyhRdFHQ==} engines: {node: '>=14.0.0'} peerDependencies: rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 @@ -2530,11 +2562,11 @@ packages: rollup: optional: true dependencies: - '@rollup/pluginutils': 5.1.0 - astring: 1.8.6 + '@rollup/pluginutils': 5.1.4 + astring: 1.9.0 estree-walker: 2.0.2 - fast-glob: 3.3.2 - magic-string: 0.30.10 + fast-glob: 3.3.3 + magic-string: 0.30.17 dev: true /@rollup/plugin-json/6.0.1_rollup@3.20.5: @@ -2546,7 +2578,7 @@ packages: rollup: optional: true dependencies: - '@rollup/pluginutils': 5.1.0_rollup@3.20.5 + '@rollup/pluginutils': 5.1.4_rollup@3.20.5 rollup: 3.20.5 dev: false @@ -2559,12 +2591,12 @@ packages: rollup: optional: true dependencies: - '@rollup/pluginutils': 5.1.0_rollup@3.20.5 + '@rollup/pluginutils': 5.1.4_rollup@3.20.5 '@types/resolve': 1.20.2 deepmerge: 4.3.1 is-builtin-module: 3.2.1 is-module: 1.0.0 - resolve: 1.22.8 + resolve: 1.22.10 rollup: 3.20.5 dev: false @@ -2577,7 +2609,7 @@ packages: rollup: optional: true dependencies: - '@rollup/pluginutils': 5.1.0_rollup@3.20.5 + '@rollup/pluginutils': 5.1.4_rollup@3.20.5 magic-string: 0.27.0 rollup: 3.20.5 dev: false @@ -2610,8 +2642,8 @@ packages: tslib: optional: true dependencies: - '@rollup/pluginutils': 5.1.0_rollup@3.20.5 - resolve: 1.22.8 + '@rollup/pluginutils': 5.1.4_rollup@3.20.5 + resolve: 1.22.10 rollup: 3.20.5 typescript: 4.9.5 dev: false @@ -2625,14 +2657,14 @@ packages: rollup: optional: true dependencies: - '@rollup/pluginutils': 5.1.0_rollup@3.20.5 + '@rollup/pluginutils': 5.1.4_rollup@3.20.5 make-dir: 3.1.0 mime: 3.0.0 rollup: 3.20.5 dev: false - /@rollup/pluginutils/5.1.0: - resolution: {integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==} + /@rollup/pluginutils/5.1.4: + resolution: {integrity: sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ==} engines: {node: '>=14.0.0'} peerDependencies: rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 @@ -2640,13 +2672,13 @@ packages: rollup: optional: true dependencies: - '@types/estree': 1.0.5 + '@types/estree': 1.0.6 estree-walker: 2.0.2 - picomatch: 2.3.1 + picomatch: 4.0.2 dev: true - /@rollup/pluginutils/5.1.0_rollup@3.20.5: - resolution: {integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==} + /@rollup/pluginutils/5.1.4_rollup@3.20.5: + resolution: {integrity: sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ==} engines: {node: '>=14.0.0'} peerDependencies: rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 @@ -2654,12 +2686,16 @@ packages: rollup: optional: true dependencies: - '@types/estree': 1.0.5 + '@types/estree': 1.0.6 estree-walker: 2.0.2 - picomatch: 2.3.1 + picomatch: 4.0.2 rollup: 3.20.5 dev: false + /@rtsao/scc/1.1.0: + resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==} + dev: true + /@rushstack/eslint-patch/1.1.4: resolution: {integrity: sha512-LwzQKA4vzIct1zNZzBmRKI9QuNpLgTQMEjsQLf3BXuGYb3QPTP4Yjf6mkdX+X1mYttZ808QpOwAzZjv28kq7DA==} dev: true @@ -2681,309 +2717,354 @@ packages: '@sinonjs/commons': 1.8.6 dev: true - /@stdlib/array-base-filled/0.2.1: - resolution: {integrity: sha512-TPlWSAZx//8tIz+dhzE8I7Jz41cpdzUGa3MpEtiFZADQlfSE+NFdPbHZommIwpE2Yyo7YJbpaBmKqWwSTVbK0w==} + /@stdlib/array-base-filled/0.2.2: + resolution: {integrity: sha512-T7nB7dni5Y4/nsq6Gc1bAhYfzJbcOdqsmVZJUI698xpDbhCdVCIIaEbf0PnDMGN24psN+5mgAVmnNBom+uF0Xg==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dev: false - /@stdlib/array-base-zeros/0.2.1: - resolution: {integrity: sha512-uFMbnskktDL20tUNHHXchOdBp2EBHOtH93LFQBHL69nfcoOlsPYXaC7kCuqMBjSnQKC4uZG0uCb8zZm1oslqGQ==} + /@stdlib/array-base-zeros/0.2.2: + resolution: {integrity: sha512-iwxqaEtpi4c2qpqabmhFdaQGkzgo5COwjHPn2T0S0wfJuM1VuVl5UBl15syr+MmZPJQOB1eBbh6F1uTh9597qw==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dependencies: - '@stdlib/array-base-filled': 0.2.1 + '@stdlib/array-base-filled': 0.2.2 dev: false - /@stdlib/array-float32/0.2.1: - resolution: {integrity: sha512-Q5iME19GlfiF9TrZZbhKWvAYKzWGfe9sZQgsUeO9pvbF7N2tCbeUI9ZzQCClSfGr4uD3G+ExyvU1gUFNEayycQ==} + /@stdlib/array-float32/0.2.2: + resolution: {integrity: sha512-pTcy1FNQrrJLL1LMxJjuVpcKJaibbGCFFTe41iCSXpSOC8SuTBuNohrO6K9+xR301Ruxxn4yrzjJJ6Fa3nQJ2g==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dependencies: - '@stdlib/assert-has-float32array-support': 0.2.1 + '@stdlib/assert-has-float32array-support': 0.2.2 dev: false - /@stdlib/array-float64/0.2.1: - resolution: {integrity: sha512-FM6eNRA/TyPyIekTcCapfmsZcXAggeVzKM8XrsSXPjCdSYOcUrwtlOwqWfTs8gfx1t67roMPblsL+xEq4JUm5g==} + /@stdlib/array-float64/0.2.2: + resolution: {integrity: sha512-ZmV5wcacGrhT0maw9dfLXNv4N3ZwFUV3D7ItFfZFGFnKIJbubrWzwtaYnxzIXigrDc8g3F6FVHRpsQLMxq0/lA==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dependencies: - '@stdlib/assert-has-float64array-support': 0.2.1 + '@stdlib/assert-has-float64array-support': 0.2.2 dev: false - /@stdlib/array-uint16/0.2.1: - resolution: {integrity: sha512-TEX88VMABKpGPNSwx/xpNj9ixhaVPpGKWZNHCJuYoWG5AYv2CKyd3rIgZsMXR5A+yr0T83AayUc2YsDzrobhEw==} + /@stdlib/array-uint16/0.2.2: + resolution: {integrity: sha512-z5c/Izw43HkKfb1pTgEUMAS8GFvhtHkkHZSjX3XJN+17P0VjknxjlSvPiCBGqaDX9jXtlWH3mn1LSyDKtJQoeA==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dependencies: - '@stdlib/assert-has-uint16array-support': 0.2.1 + '@stdlib/assert-has-uint16array-support': 0.2.2 dev: false - /@stdlib/array-uint32/0.2.1: - resolution: {integrity: sha512-nRkvGvMEMd7OUfDWbHhUstqkoWaln08ufUkgDXVDbKyF03HpbCHMM4xGfiKDfaW7h3T2AYLE8YzyKylmAj5jLA==} + /@stdlib/array-uint32/0.2.2: + resolution: {integrity: sha512-3T894I9C2MqZJJmRCYFTuJp4Qw9RAt+GzYnVPyIXoK1h3TepUXe9VIVx50cUFIibdXycgu0IFGASeAb3YMyupw==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dependencies: - '@stdlib/assert-has-uint32array-support': 0.2.1 + '@stdlib/assert-has-uint32array-support': 0.2.2 dev: false - /@stdlib/array-uint8/0.2.1: - resolution: {integrity: sha512-EkRR9xeBUVMLSWSWDSy3t5I8GGKbKqCPbPdZTH0oPrARRrXVUETSB9itT64/LbhP3Oc2ny4eh+dn/7PuOOREUw==} + /@stdlib/array-uint8/0.2.2: + resolution: {integrity: sha512-Ip9MUC8+10U9x0crMKWkpvfoUBBhWzc6k5SI4lxx38neFVmiJ3f+5MBADEagjpoKSBs71vlY2drnEZe+Gs2Ytg==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dependencies: - '@stdlib/assert-has-uint8array-support': 0.2.1 + '@stdlib/assert-has-uint8array-support': 0.2.2 dev: false - /@stdlib/assert-has-float32array-support/0.2.1: - resolution: {integrity: sha512-m5UW0dJ1XfEpcDEvT/THKNrxvib7uvSu1bAkezuLlakI4vkfWvTUwRja0L2PtoKXCn6rxycGu0NXKFQXU4O5CQ==} + /@stdlib/assert-has-float32array-support/0.2.2: + resolution: {integrity: sha512-pi2akQl8mVki43fF1GNQVLYW0bHIPp2HuRNThX9GjB3OFQTpvrV8/3zPSh4lOxQa5gRiabgf0+Rgeu3AOhEw9A==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dependencies: - '@stdlib/assert-is-float32array': 0.2.1 - '@stdlib/constants-float64-pinf': 0.2.1 + '@stdlib/assert-is-float32array': 0.2.2 + '@stdlib/constants-float64-pinf': 0.2.2 dev: false - /@stdlib/assert-has-float64array-support/0.2.1: - resolution: {integrity: sha512-P++t7tMba8fNXabOVkZ+KgEkSEyJEuk7BzJuNtCbPttcPZmYR+e4xFXZe9wPO5VbLYVCaCKeP59h8HZpy8jHfg==} + /@stdlib/assert-has-float64array-support/0.2.2: + resolution: {integrity: sha512-8L3GuKY1o0dJARCOsW9MXcugXapaMTpSG6dGxyNuUVEvFfY5UOzcj9/JIDal5FjqSgqVOGL5qZl2qtRwub34VA==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dependencies: - '@stdlib/assert-is-float64array': 0.2.1 + '@stdlib/assert-is-float64array': 0.2.2 dev: false - /@stdlib/assert-has-generator-support/0.2.1: - resolution: {integrity: sha512-TUi8v/hgA3cHapUGJMaoWwpWSHd59DMpZnEtQrYLLP6QkhgRwttaNiaGF1Kyiy1ak+nE8CgMI17679V+gbmYNQ==} + /@stdlib/assert-has-generator-support/0.2.2: + resolution: {integrity: sha512-TcE9BGV8i7B2OmxPlJ/2DUrAwG0W4fFS/DE7HmVk68PXVZsgyNQ/WP/IHBoazHDjhN5c3dU21c20kM/Bw007Rw==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dependencies: - '@stdlib/utils-eval': 0.2.1 + '@stdlib/utils-eval': 0.2.2 dev: false - /@stdlib/assert-has-own-property/0.2.1: - resolution: {integrity: sha512-TNx+PlR1kGG6Ypg9aiHpHzaIYI8iaKAj7Ad1r/A6BlbkA/czzJMMidJE91uDlpgrMAIILAT68MRXt3kD6X2tAw==} + /@stdlib/assert-has-own-property/0.2.2: + resolution: {integrity: sha512-m5rV4Z2/iNkwx2vRsNheM6sQZMzc8rQQOo90LieICXovXZy8wA5jNld4kRKjMNcRt/TjrNP7i2Rhh8hruRDlHg==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dev: false - /@stdlib/assert-has-symbol-support/0.2.1: - resolution: {integrity: sha512-a0N1kI/csNiPZ/0lad7ATOIMSXgpm0mCBjV95TgA4+Dmmruol0DK3PrP4n+NuoziTLzRSM/CRgEtLQI5X9g6mQ==} + /@stdlib/assert-has-symbol-support/0.2.2: + resolution: {integrity: sha512-vCsGGmDZz5dikGgdF26rIL0y0nHvH7qaVf89HLLTybceuZijAqFSJEqcB3Gpl5uaeueLNAWExHi2EkoUVqKHGg==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dev: false - /@stdlib/assert-has-tostringtag-support/0.2.1: - resolution: {integrity: sha512-cWhgirurOsVJzHSSU0GdX5HqHGF2DRWXPk7xbQ4OPhu0x4yeOa2WAupPf7PHQ0pMD++IoWW3I16Gr310WjLDeg==} + /@stdlib/assert-has-tostringtag-support/0.2.2: + resolution: {integrity: sha512-bSHGqku11VH0swPEzO4Y2Dr+lTYEtjSWjamwqCTC8udOiOIOHKoxuU4uaMGKJjVfXG1L+XefLHqzuO5azxdRaA==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dependencies: - '@stdlib/assert-has-symbol-support': 0.2.1 + '@stdlib/assert-has-symbol-support': 0.2.2 dev: false - /@stdlib/assert-has-uint16array-support/0.2.1: - resolution: {integrity: sha512-9wryIrv16SZ4IZDa4AKCS0xgmRyBT7KHzpPcpkH1rFWGFe8kev8AKRH0MJ5ukl4C1wVnnqomctZyR1f3WFlNVg==} + /@stdlib/assert-has-uint16array-support/0.2.2: + resolution: {integrity: sha512-aL188V7rOkkEH4wYjfpB+1waDO4ULxo5ppGEK6X0kG4YiXYBL2Zyum53bjEQvo0Nkn6ixe18dNzqqWWytBmDeg==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dependencies: - '@stdlib/assert-is-uint16array': 0.2.1 - '@stdlib/constants-uint16-max': 0.2.1 + '@stdlib/assert-is-uint16array': 0.2.2 + '@stdlib/constants-uint16-max': 0.2.2 dev: false - /@stdlib/assert-has-uint32array-support/0.2.1: - resolution: {integrity: sha512-WrEfqfmgNjD7imwFVNMqr7RRky4iPuddXyJdL/rQQ0fBZA3FcGuOeoTRn7gSJBq92WYHvmmAkr2FQ1SoD0BQyg==} + /@stdlib/assert-has-uint32array-support/0.2.2: + resolution: {integrity: sha512-+UHKP3mZOACkJ9CQjeKNfbXHm5HGQB862V5nV5q3UQlHPzhslnXKyG1SwAxTx+0g88C/2vlDLeqG8H4TH2UTFA==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dependencies: - '@stdlib/assert-is-uint32array': 0.2.1 - '@stdlib/constants-uint32-max': 0.2.1 + '@stdlib/assert-is-uint32array': 0.2.2 + '@stdlib/constants-uint32-max': 0.2.2 dev: false - /@stdlib/assert-has-uint8array-support/0.2.1: - resolution: {integrity: sha512-ie9PmgRi4MfDQwDf7FBN1IkQYvSTFvUGDlEaz61rC397Sz88SfIWJDGMcDGmIRQ/0Mg7jkTCoYU4gNVsRTzW2w==} + /@stdlib/assert-has-uint8array-support/0.2.2: + resolution: {integrity: sha512-VfzrB0BMik9MvPyKcMDJL3waq4nM30RZUrr2EuuQ/RbUpromRWSDbzGTlRq5SfjtJrHDxILPV3rytDCc03dgWA==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dependencies: - '@stdlib/assert-is-uint8array': 0.2.1 - '@stdlib/constants-uint8-max': 0.2.1 + '@stdlib/assert-is-uint8array': 0.2.2 + '@stdlib/constants-uint8-max': 0.2.2 dev: false - /@stdlib/assert-is-array/0.2.1: - resolution: {integrity: sha512-5sn5LKMn6mELsAXEDsxsm6S2+9mmGDdKGQdTNw9QnT/Kz3M+DzBPKEH719M20Pm1J7QNwMKICBZNWJzb5mvM4g==} + /@stdlib/assert-is-array/0.2.2: + resolution: {integrity: sha512-aJyTX2U3JqAGCATgaAX9ygvDHc97GCIKkIhiZm/AZaLoFHPtMA1atQ4bKcefEC8Um9eefryxTHfFPfSr9CoNQQ==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dependencies: - '@stdlib/utils-native-class': 0.2.1 + '@stdlib/utils-native-class': 0.2.2 dev: false - /@stdlib/assert-is-big-endian/0.2.1: - resolution: {integrity: sha512-06jb/I9h96+Q48tS2/kfuYSobFoO8NTIAJImIqGWbPD3XEL0LEQKjyL37bc5BjyyCKTdpZiCuV5c+hdo1o+V9g==} + /@stdlib/assert-is-big-endian/0.2.2: + resolution: {integrity: sha512-mPEl30/bqZh++UyQbxlyOuB7k0wC73y5J9nD2J6Ud6Fcl76R5IAGHRW0WT3W18is/6jG1jzMd8hrISFyD7N0sA==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dependencies: - '@stdlib/array-uint16': 0.2.1 - '@stdlib/array-uint8': 0.2.1 + '@stdlib/array-uint16': 0.2.2 + '@stdlib/array-uint8': 0.2.2 dev: false - /@stdlib/assert-is-boolean/0.2.1: - resolution: {integrity: sha512-Ls9j8PAFGZsR8v9J/39QKghT9oLmkm8RI418dt+fHBemFsjd4U/VEvUUgNEfal1LsVAc31ltklR0HJEKrkGDEg==} + /@stdlib/assert-is-boolean/0.2.2: + resolution: {integrity: sha512-3KFLRTYZpX6u95baZ6PubBvjehJs2xBU6+zrenR0jx8KToUYCnJPxqqj7JXRhSD+cOURmcjj9rocVaG9Nz18Pg==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dependencies: - '@stdlib/assert-has-tostringtag-support': 0.2.1 - '@stdlib/boolean-ctor': 0.2.1 - '@stdlib/utils-define-nonenumerable-read-only-property': 0.2.1 - '@stdlib/utils-native-class': 0.2.1 + '@stdlib/assert-has-tostringtag-support': 0.2.2 + '@stdlib/boolean-ctor': 0.2.2 + '@stdlib/utils-define-nonenumerable-read-only-property': 0.2.2 + '@stdlib/utils-native-class': 0.2.2 dev: false - /@stdlib/assert-is-buffer/0.2.1: - resolution: {integrity: sha512-kSJW8R/byBz7yk2V3g3CCCM+6Im51l2pbNfnL7JABipyBZPolsOzRby6sD046PIFVf5jwufvpUUCZ68hzyEGsw==} + /@stdlib/assert-is-buffer/0.2.2: + resolution: {integrity: sha512-4/WMFTEcDYlVbRhxY8Wlqag4S70QCnn6WmQ4wmfiLW92kqQHsLvTNvdt/qqh/SDyDV31R/cpd3QPsVN534dNEA==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dependencies: - '@stdlib/assert-is-object-like': 0.2.1 + '@stdlib/assert-is-object-like': 0.2.2 dev: false - /@stdlib/assert-is-float32array/0.2.1: - resolution: {integrity: sha512-xrushmHQ2S5QOkdQgGxx263aQ+nUJFQ5LJDEAOHNuVTfmGErr/1SXanY7TdZEvfERrd4GJxO21q14+osvoBe4w==} + /@stdlib/assert-is-float32array/0.2.2: + resolution: {integrity: sha512-hxEKz/Y4m1NYuOaiQKoqQA1HeAYwNXFqSk3FJ4hC71DuGNit2tuxucVyck3mcWLpLmqo0+Qlojgwo5P9/C/9MQ==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dependencies: - '@stdlib/utils-native-class': 0.2.1 + '@stdlib/utils-native-class': 0.2.2 dev: false - /@stdlib/assert-is-float64array/0.2.1: - resolution: {integrity: sha512-TX/5Shjx0QrpP6EDXmOfNoQNEcYlUvX2IS4gt1OV8pvsV956/ZuZa4lD/2YwHVnCr4a4D2X8kttfyxHaPX6zvg==} + /@stdlib/assert-is-float64array/0.2.2: + resolution: {integrity: sha512-3R1wLi6u/IHXsXMtaLnvN9BSpqAJ8tWhwjOOr6kadDqCWsU7Odc7xKLeAXAInAxwnV8VDpO4ifym4A3wehazPQ==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dependencies: - '@stdlib/utils-native-class': 0.2.1 + '@stdlib/utils-native-class': 0.2.2 dev: false - /@stdlib/assert-is-function/0.2.1: - resolution: {integrity: sha512-tOt8GfMRxdx4t5x1ts85ndfYrnBUDE0wBiC5O1AR95xMdlA+yivkqyC1PjE3cA8XaxRT6E20DUruwJcbRamKIA==} + /@stdlib/assert-is-function/0.2.2: + resolution: {integrity: sha512-whY69DUYWljCJ79Cvygp7VzWGOtGTsh3SQhzNuGt+ut6EsOW+8nwiRkyBXYKf/MOF+NRn15pxg8cJEoeRgsPcA==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dependencies: - '@stdlib/utils-type-of': 0.2.1 + '@stdlib/utils-type-of': 0.2.2 dev: false - /@stdlib/assert-is-little-endian/0.2.1: - resolution: {integrity: sha512-IIMbYPtI2dNmV46qLDZsXO95Bgx+17aiIMMrN2y46WDo1vAkBuzf+I04sabzL6qiucCJYE75z4dURKa9dc3ROA==} + /@stdlib/assert-is-little-endian/0.2.2: + resolution: {integrity: sha512-KMzPndj85jDiE1+hYCpw12k2OQOVkfpCo7ojCmCl8366wtKGEaEdGbz1iH98zkxRvnZLSMXcYXI2z3gtdmB0Ag==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dependencies: - '@stdlib/array-uint16': 0.2.1 - '@stdlib/array-uint8': 0.2.1 + '@stdlib/array-uint16': 0.2.2 + '@stdlib/array-uint8': 0.2.2 dev: false - /@stdlib/assert-is-number/0.2.1: - resolution: {integrity: sha512-JrRo3C+DaLHix8gTk8mlZ+SQQ862NyQn06cg3ox5nuzBEIxpSQ9+n4CAT/PhC73TH/NkPD76HAcqfI+8eLYYQA==} + /@stdlib/assert-is-number/0.2.2: + resolution: {integrity: sha512-sWpJ59GqGbmlcdYSUV/OYkmQW8k47w10+E0K0zPu1x1VKzhjgA5ZB2sJcpgI8Vt3ckRLjdhuc62ZHJkrJujG7A==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dependencies: - '@stdlib/assert-has-tostringtag-support': 0.2.1 - '@stdlib/number-ctor': 0.2.1 - '@stdlib/utils-define-nonenumerable-read-only-property': 0.2.1 - '@stdlib/utils-native-class': 0.2.1 + '@stdlib/assert-has-tostringtag-support': 0.2.2 + '@stdlib/number-ctor': 0.2.2 + '@stdlib/utils-define-nonenumerable-read-only-property': 0.2.2 + '@stdlib/utils-native-class': 0.2.2 dev: false - /@stdlib/assert-is-object-like/0.2.1: - resolution: {integrity: sha512-vlnwFfJR0UmOO7R/Ny4nTZqZ3PCANIww3sz2Klliti3L85Yb3scUvTCmCGvRQ+QvbnFpqQsgIkCwqzGlKiQkcg==} + /@stdlib/assert-is-object-like/0.2.2: + resolution: {integrity: sha512-MjQBpHdEebbJwLlxh/BKNH8IEHqY0YlcCMRKOQU0UOlILSJg0vG+GL4fDDqtx9FSXxcTqC+w3keHx8kAKvQhzg==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dependencies: - '@stdlib/assert-tools-array-function': 0.2.1 - '@stdlib/utils-define-nonenumerable-read-only-property': 0.2.1 + '@stdlib/assert-tools-array-function': 0.2.2 + '@stdlib/utils-define-nonenumerable-read-only-property': 0.2.2 dev: false - /@stdlib/assert-is-object/0.2.1: - resolution: {integrity: sha512-Gl7fE1C61sTaFTcR9GxFGTtVH4v4+SwSceUCPP660eJQmfs1zt8ypyXGqvrc0Pr2qJ/PBms5y+Cpz1uPcIKS3Q==} + /@stdlib/assert-is-object/0.2.2: + resolution: {integrity: sha512-sNnphJuHyMDHHHaonlx6vaCKMe4sHOn0ag5Ck4iW3kJtM2OZB2J4h8qFcwKzlMk7fgFu7vYNGCZtpm1dYbbUfQ==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dependencies: - '@stdlib/assert-is-array': 0.2.1 + '@stdlib/assert-is-array': 0.2.2 dev: false - /@stdlib/assert-is-plain-object/0.2.1: - resolution: {integrity: sha512-prTOBRi5CeKR5mVP9q8Z+PKxE5YiIAwdArkxjiFMvugtXwDK9jT1QgRF5nE0oUOhuRQ0l1dVx58vzBggOCWkCQ==} + /@stdlib/assert-is-plain-object/0.2.2: + resolution: {integrity: sha512-o4AFWgBsSNzZAOOfIrxoDFYTqnLuGiaHDFwIeZGUHdpQeav2Fll+sGeaqOcekF7yKawoswnwWdJqTsjapb4Yzw==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dependencies: - '@stdlib/assert-has-own-property': 0.2.1 - '@stdlib/assert-is-function': 0.2.1 - '@stdlib/assert-is-object': 0.2.1 - '@stdlib/utils-get-prototype-of': 0.2.1 - '@stdlib/utils-native-class': 0.2.1 + '@stdlib/assert-has-own-property': 0.2.2 + '@stdlib/assert-is-function': 0.2.2 + '@stdlib/assert-is-object': 0.2.2 + '@stdlib/utils-get-prototype-of': 0.2.2 + '@stdlib/utils-native-class': 0.2.2 dev: false - /@stdlib/assert-is-regexp/0.2.1: - resolution: {integrity: sha512-XdPKcrW8Sh5TvuMdU4+DxuxuaBTX/K9pv7sIuOSMWHRZcblOUiEMf5wk8OHoG9I1PmRhDlaR0AC/MC6R5bFq3Q==} + /@stdlib/assert-is-regexp/0.2.2: + resolution: {integrity: sha512-2JtiUtRJxPaVXL7dkWoV3n5jouI65DwYDXsDXg3xo23TXlTNGgU/HhKO4FWC1Yqju7YMZi0hcZSW6E9v8ISqeQ==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dependencies: - '@stdlib/assert-has-tostringtag-support': 0.2.1 - '@stdlib/utils-native-class': 0.2.1 + '@stdlib/assert-has-tostringtag-support': 0.2.2 + '@stdlib/utils-native-class': 0.2.2 dev: false - /@stdlib/assert-is-string/0.2.1: - resolution: {integrity: sha512-xphxm9i61By/M7cmyCqgPiDof4DP3Rms3lVdcCpkr7T9PkBFMhOlm6zyhxo/2+dhukjf4Sak/WqntF/CWgJFJw==} + /@stdlib/assert-is-string/0.2.2: + resolution: {integrity: sha512-SOkFg4Hq443hkadM4tzcwTHWvTyKP9ULOZ8MSnnqmU0nBX1zLVFLFGY8jnF6Cary0dL0V7QQBCfuxqKFM6u2PQ==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dependencies: - '@stdlib/assert-has-tostringtag-support': 0.2.1 - '@stdlib/utils-define-nonenumerable-read-only-property': 0.2.1 - '@stdlib/utils-native-class': 0.2.1 + '@stdlib/assert-has-tostringtag-support': 0.2.2 + '@stdlib/utils-define-nonenumerable-read-only-property': 0.2.2 + '@stdlib/utils-native-class': 0.2.2 dev: false - /@stdlib/assert-is-uint16array/0.2.1: - resolution: {integrity: sha512-6HcIp+3xfI6sItm3Qe6UjbUAjhvqDF0aD9EtvPfYm9g8wR+fhoEGPE3LxBEsQS1nX52Q9bavzrKj8tQFVAJ1zQ==} + /@stdlib/assert-is-uint16array/0.2.2: + resolution: {integrity: sha512-w3+HeTiXGLJGw5nCqr0WbvgArNMEj7ulED1Yd19xXbmmk2W1ZUB+g9hJDOQTiKsTU4AVyH4/As+aA8eDVmWtmg==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dependencies: - '@stdlib/utils-native-class': 0.2.1 + '@stdlib/utils-native-class': 0.2.2 dev: false - /@stdlib/assert-is-uint32array/0.2.1: - resolution: {integrity: sha512-PYPdPqBzoX6cdfvNLb0DSWPqYHpi03X5RSI40FrLpKf226H6hQv7w7xVxFsxl7+uTueFoGyAsq5xa/aHrP4XsQ==} + /@stdlib/assert-is-uint32array/0.2.2: + resolution: {integrity: sha512-3F4nIHg1Qp0mMIsImWUC8DwQ3qBK5vdIJTjS2LufLbFBhHNmv5kK1yJiIXQDTLkENU0STZe05TByo01ZNLOmDQ==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dependencies: - '@stdlib/utils-native-class': 0.2.1 + '@stdlib/utils-native-class': 0.2.2 dev: false - /@stdlib/assert-is-uint8array/0.2.1: - resolution: {integrity: sha512-CHrY1QWnXnVPSyaH01yJ3t1QJ+X5Lqs0KjTYSOQtEt3rTH8hPK5e0iPZJFMy0JNSz5VwwV249oa2+RK1HQ2C8w==} + /@stdlib/assert-is-uint8array/0.2.2: + resolution: {integrity: sha512-51WnDip6H2RrN0CbqWmfqySAjam8IZ0VjlfUDc3PtcgrZGrKKjVgyHAsT/L3ZDydwF+aB94uvYJu5QyrCPNaZw==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dependencies: - '@stdlib/utils-native-class': 0.2.1 + '@stdlib/utils-native-class': 0.2.2 dev: false - /@stdlib/assert-tools-array-function/0.2.1: - resolution: {integrity: sha512-Igezf184udgzGjif5nS1VWJCSsYq1DgX9Lt2smE4YW29W0SjWW9ahps4t0QfEm3UrfTdiOY5DLLAO1MjzAVkVQ==} + /@stdlib/assert-tools-array-function/0.2.2: + resolution: {integrity: sha512-FYeT7X9x0C8Nh+MN6IJUDz+7i7yB6mio2/SDlrvyepjyPSU/cfHfwW0GEOnQhxZ+keLZC/YqDD930WjRODwMdA==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dependencies: - '@stdlib/assert-is-array': 0.2.1 - '@stdlib/string-format': 0.2.1 + '@stdlib/assert-is-array': 0.2.2 + '@stdlib/error-tools-fmtprodmsg': 0.2.2 + '@stdlib/string-format': 0.2.2 dev: false - /@stdlib/boolean-ctor/0.2.1: - resolution: {integrity: sha512-CJx4lCU2eYoIcthpdzIoEmhE1Fgd1PFvQeFHhOvbm4TidP/uRP5xQGU+eimgxQ4G0lMxTJ8RNXpLPiK5OdeSUQ==} + /@stdlib/boolean-ctor/0.2.2: + resolution: {integrity: sha512-qIkHzmfxDvGzQ3XI9R7sZG97QSaWG5TvWVlrvcysOGT1cs6HtQgnf4D//SRzZ52VLm8oICP+6OKtd8Hpm6G7Ww==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dev: false + /@stdlib/complex-float32-ctor/0.0.2: + resolution: {integrity: sha512-QsTLynhTRmDT0mSkfdHj0FSqQSxh2nKx+vvrH3Y0/Cd/r0WoHFZwyibndDxshfkf9B7nist8QKyvV82I3IZciA==} + engines: {node: '>=0.10.0', npm: '>2.7.0'} + os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] + dependencies: + '@stdlib/assert-is-number': 0.2.2 + '@stdlib/error-tools-fmtprodmsg': 0.2.2 + '@stdlib/number-float64-base-to-float32': 0.2.2 + '@stdlib/string-format': 0.2.2 + '@stdlib/utils-define-nonenumerable-read-only-property': 0.2.2 + '@stdlib/utils-define-property': 0.2.4 + dev: false + + /@stdlib/complex-float32-reim/0.1.2: + resolution: {integrity: sha512-24H+t1xwQF6vhOoMZdDA3TFB4M+jb5Swm/FwNaepovlzVIG2NlthUZs6mZg1T3oegqesIRQRwhpn4jIPjuGiTw==} + engines: {node: '>=0.10.0', npm: '>2.7.0'} + os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] + dependencies: + '@stdlib/array-float32': 0.2.2 + '@stdlib/complex-float32-ctor': 0.0.2 + dev: false + /@stdlib/complex-float32/0.2.1: resolution: {integrity: sha512-tp83HfJzcZLK7/6P6gZPcAa/8F/aHS7gBHgB6ft45d/n6oE+/VbnyOvsJKanRv8S96kBRj8xkvlWHz4IiBrT0Q==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dependencies: - '@stdlib/assert-is-number': 0.2.1 - '@stdlib/number-float64-base-to-float32': 0.2.1 - '@stdlib/string-format': 0.2.1 - '@stdlib/utils-define-nonenumerable-read-only-property': 0.2.1 - '@stdlib/utils-define-property': 0.2.3 + '@stdlib/assert-is-number': 0.2.2 + '@stdlib/number-float64-base-to-float32': 0.2.2 + '@stdlib/string-format': 0.2.2 + '@stdlib/utils-define-nonenumerable-read-only-property': 0.2.2 + '@stdlib/utils-define-property': 0.2.4 + dev: false + + /@stdlib/complex-float64-ctor/0.0.3: + resolution: {integrity: sha512-oixCtBif+Uab2rKtgedwQTbQTEC+wVSu4JQH935eJ8Jo0eL6vXUHHlVrkLgYKlCDLvq5px1QQn42Czg/ixh6Gw==} + engines: {node: '>=0.10.0', npm: '>2.7.0'} + os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] + dependencies: + '@stdlib/assert-is-number': 0.2.2 + '@stdlib/complex-float32-ctor': 0.0.2 + '@stdlib/error-tools-fmtprodmsg': 0.2.2 + '@stdlib/string-format': 0.2.2 + '@stdlib/utils-define-nonenumerable-read-only-property': 0.2.2 + '@stdlib/utils-define-property': 0.2.4 + dev: false + + /@stdlib/complex-float64-reim/0.1.2: + resolution: {integrity: sha512-q6RnfgbUunApAYuGmkft1oOM3x3xVMVJwNRlRgfIXwKDb8pYt+S/CeIwi3Su5SF6ay3AqA1s+ze7m21osXAJyw==} + engines: {node: '>=0.10.0', npm: '>2.7.0'} + os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] + dependencies: + '@stdlib/array-float64': 0.2.2 + '@stdlib/complex-float64-ctor': 0.0.3 dev: false /@stdlib/complex-float64/0.2.1: @@ -2991,11 +3072,11 @@ packages: engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dependencies: - '@stdlib/assert-is-number': 0.2.1 + '@stdlib/assert-is-number': 0.2.2 '@stdlib/complex-float32': 0.2.1 - '@stdlib/string-format': 0.2.1 - '@stdlib/utils-define-nonenumerable-read-only-property': 0.2.1 - '@stdlib/utils-define-property': 0.2.3 + '@stdlib/string-format': 0.2.2 + '@stdlib/utils-define-nonenumerable-read-only-property': 0.2.2 + '@stdlib/utils-define-property': 0.2.4 dev: false /@stdlib/complex-reim/0.2.1: @@ -3003,7 +3084,7 @@ packages: engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dependencies: - '@stdlib/array-float64': 0.2.1 + '@stdlib/array-float64': 0.2.2 '@stdlib/complex-float64': 0.2.1 dev: false @@ -3012,206 +3093,212 @@ packages: engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dependencies: - '@stdlib/array-float32': 0.2.1 + '@stdlib/array-float32': 0.2.2 '@stdlib/complex-float32': 0.2.1 dev: false - /@stdlib/constants-float32-max/0.2.1: - resolution: {integrity: sha512-Kxiw8OB38nXTYIB8kCqSY/b6pTUqMlIhY6hyT7ecI5BjKXYl6gySj1GzsRvpuEWQpXGFXtBF8Adh2zXjla1aoQ==} + /@stdlib/constants-float32-max/0.2.2: + resolution: {integrity: sha512-uxvIm/KmIeZP4vyfoqPd72l5/uidnCN9YJT3p7Z2LD8hYN3PPLu6pd/5b51HMFLwfkZ27byRJ9+YK6XnneJP0Q==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dev: false - /@stdlib/constants-float32-smallest-normal/0.2.1: - resolution: {integrity: sha512-wR5p1QTNqwntCunt9rwZv/FM7WiOYXYRpugwnHR1Sm4nsnl89gAaSb5pc3tc2o8itmxywy3V5GvsWBYw2/doOg==} + /@stdlib/constants-float32-smallest-normal/0.2.2: + resolution: {integrity: sha512-2qkGjGML2/8P9YguHnac2AKXLbfycpYdCxKmuXQdAVzMMNCJWjHoIqZMFG29WBEDBOP057X+48S6WhIqoxRpWA==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dev: false - /@stdlib/constants-float64-e/0.2.1: - resolution: {integrity: sha512-GUeGTk7yM75/tIM7WxSrq4W+XTNrzN7DJnCpF/FQwChdvG65PKdj3DLIIRLBSRSumVnS1kPYL+GO2L2P7h93AQ==} + /@stdlib/constants-float64-e/0.2.2: + resolution: {integrity: sha512-7fxHaABwosbUzpBsw6Z9Dd9MqUYne8x+44EjohVcWDr0p0mHB/DXVYEYTlwEP/U/XbRrKdO3jUG6IO/GsEjzWg==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dev: false - /@stdlib/constants-float64-eps/0.2.1: - resolution: {integrity: sha512-fMeEf4IkyiRcEVKUlXQG5/bq72dLv8t5otYsy8vXJsTzbWMCFsN2qVBUMrH8ZjBEZ1Kisgv8Rbc+sYl6FX1QfQ==} + /@stdlib/constants-float64-eps/0.2.2: + resolution: {integrity: sha512-61Pb2ip9aPhHXxiCn+VZ0UVw2rMYUp0xrX93FXyB3UTLacrofRKLMKtbV0SFac4VXx5igv2+0G+h6G/fwCgjyw==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dev: false - /@stdlib/constants-float64-eulergamma/0.2.1: - resolution: {integrity: sha512-aslVQpuDG25dObqttDUnh3AQT6mqk8FOlTtRj6rrrnrdTSq90/4QUjjB/uiDmkQ/om8ORNca3qJDrkYF5lDmoA==} + /@stdlib/constants-float64-eulergamma/0.2.2: + resolution: {integrity: sha512-XsuVud0d1hLTQspFzgUSH2e3IawTXLlJi2k4Vg0Nn6juulxfNO9PnAGtHz+p1BynYF/YwN+qhKnISQxrN31rsQ==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dev: false - /@stdlib/constants-float64-exponent-bias/0.2.1: - resolution: {integrity: sha512-95dbNiEFj3zlqTVXKCMh8xvXUtkwg2euO40Za9+V+vlhCZ+wjoujYsf9Bu5nRk8nQDf0UDVAzGiKLZ4GSAn2DA==} + /@stdlib/constants-float64-exponent-bias/0.2.2: + resolution: {integrity: sha512-zLWkjzDYHSsBsXB/4mwHysOGl64JS3XBt/McjvjCLc/IZpfsUNFxLCl7oVCplXzYYHcQj/RfEBFy6cxQ6FvdpQ==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dev: false - /@stdlib/constants-float64-fourth-pi/0.2.1: - resolution: {integrity: sha512-3NGlUOuxub2LrFzanNoXhrB7tqDTARvK9dQweZtP1+I5z3A7OacXSmDwKGHVTSsyKOl6GVXQhHqfsb6VSec7Kg==} + /@stdlib/constants-float64-fourth-pi/0.2.2: + resolution: {integrity: sha512-j0NOg45ouibms4ML8pfS/eDrurdtnhJTNPCGQM4mg3X+1ljsuO0pvkpVCvuz29t5J23KTcfGBXXr90ikoBmjlw==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dev: false - /@stdlib/constants-float64-gamma-lanczos-g/0.2.1: - resolution: {integrity: sha512-AZQyjLkrX7mhEY5IaVrjsv3lDklKrwI4tOl208va3GMoKsdJD1bOWFAffSogp1hMey05g4UW72AJYBNRprt72A==} + /@stdlib/constants-float64-gamma-lanczos-g/0.2.2: + resolution: {integrity: sha512-hCaZbZ042htCy9mlGrfUEbz4d0xW/DLdr3vHs5KiBWU+G+WHVH33vubSnEoyT0ugWpAk2ZqWXe/V8sLGgOu0xg==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dev: false - /@stdlib/constants-float64-half-ln-two/0.2.1: - resolution: {integrity: sha512-Tv7qDO3N2lu4HhpMfaOLm5g5+UNFEGOfRWlkdg9vjX4WLFAruUv59IJ2KTNh09jGX7zLleTahh8pKUfMKm19VQ==} + /@stdlib/constants-float64-half-ln-two/0.2.2: + resolution: {integrity: sha512-yv1XhzZR2AfJmnAGL0kdWlIUhc/vqdWol+1Gq2brXPVfgqbUmJu5XZuuK+jZA2k+fHyvRHNEwQRv9OPnOjchFg==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dev: false - /@stdlib/constants-float64-half-pi/0.2.1: - resolution: {integrity: sha512-W7J+2YAKvAXgmdi25l2QGgpxc4TnXkKYlmthLG4v2Objc/ZQLqPdmyHdYBudVEfKgT+lPsRRj7jIbvNRTimEeQ==} + /@stdlib/constants-float64-half-pi/0.2.2: + resolution: {integrity: sha512-lM3SiDsZCKiuF5lPThZFFqioIwh1bUiBUnnDMLB04/QkVRCAaXUo+dsq2hOB6iBhHoYhiKds6T+PsHSBlpqAaA==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dev: false - /@stdlib/constants-float64-high-word-abs-mask/0.2.1: - resolution: {integrity: sha512-F08nd38tFftL0rDI8Aa//Pt1l2QYbGecq6yMZx3ADCAXDXFEOOoq2A7K4+YgNGpINElq1Z/BWCk1/AhushXH+w==} + /@stdlib/constants-float64-high-word-abs-mask/0.2.2: + resolution: {integrity: sha512-YtYngcHlw9qvOpmsSlkNHi6cy/7Y7QkyYh5kJbDvuOUXPDKa3rEwBln4mKjbWsXhmmN0bk7TLypH7Ryd/UAjUQ==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dev: false - /@stdlib/constants-float64-high-word-exponent-mask/0.2.1: - resolution: {integrity: sha512-iQ8lB7oX7gc5Grkcw/CFOJLRyW7sev+BAZ3HQHd8+CZLFKELS6QCR6WY/SiEsRD99YTIKozM0cd6PHWvwDaxYA==} + /@stdlib/constants-float64-high-word-exponent-mask/0.2.2: + resolution: {integrity: sha512-LhYUXvpnLOFnWr8ucHA9N/H75VxcS2T9EoBDTmWBZoKj2Pg0icGVDmcNciRLIWbuPA9osgcKpxoU+ADIfaipVA==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dev: false - /@stdlib/constants-float64-high-word-sign-mask/0.2.0: - resolution: {integrity: sha512-JZZS/4WfyMFHBNwEGN8Vo5aMmUqsrRp6p+0Y0ZKHW4cwIJy2qpX+p7IMWEL756HtZas5FeAt78tXbv/c+4zB+Q==} + /@stdlib/constants-float64-high-word-sign-mask/0.2.1: + resolution: {integrity: sha512-Fep/Ccgvz5i9d5k96zJsDjgXGno8HJfmH7wihLmziFmA2z9t7NSacH4/BH4rPJ5yXFHLkacNLDxaF1gO1XpcLA==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/utils-library-manifest': 0.2.1 dev: false - /@stdlib/constants-float64-high-word-significand-mask/0.2.1: - resolution: {integrity: sha512-5m1OR1PSO0vobguBhTvMxMIuXnHW0tFWTcu8GhYDs834dKweTUDNK0aaNrANtiMMaDPjeN9d4yP5kr2opXymyQ==} + /@stdlib/constants-float64-high-word-significand-mask/0.2.2: + resolution: {integrity: sha512-eDDyiQ5PR1/qyklrW0Pus0ZopM7BYjkWTjqhSHhj0DibH6UMwSMlIl4ddCh3VX37p5eByuAavnaPgizk5c9mUw==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dev: false - /@stdlib/constants-float64-ln-sqrt-two-pi/0.2.1: - resolution: {integrity: sha512-FWPhfs4b9tR5VR+TM2QzHDDtJ5b31/VY7pyH70K4YdBUOq+ynhw3QlZaI/gSrAeLLZdpU78XgM6Xn7Is+gARMw==} + /@stdlib/constants-float64-ln-sqrt-two-pi/0.2.2: + resolution: {integrity: sha512-C9YS9W/lvv54wUC7DojQSRH9faKw0sMAM09oMRVm8OOYNr01Rs1wXeSPStl9ns4qiV/G13vZzd1I3nGqgqihbw==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dev: false - /@stdlib/constants-float64-ln-two/0.2.1: - resolution: {integrity: sha512-DRkFQ2Xg6Qoru6oVwWghfYXNIsmWqJOyyebRS+iC0y+PaSuRhtk1v/hUck7Jv8m6paZr8kHDAbHopjK5rhodKg==} + /@stdlib/constants-float64-ln-two/0.2.2: + resolution: {integrity: sha512-EQ8EJ6B1wPfuhva0aApKIsF7lTna++txV4AUzL2wTfwDHw6RzWpA44u+k54KnLF8ZXUNIYDNQHHvtzdfKrFzCA==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dev: false - /@stdlib/constants-float64-max-base2-exponent-subnormal/0.2.0: - resolution: {integrity: sha512-I6BD0t71YRdsS/Ql8BMffgL2WpMv5BpS3kEBp/CIfjsnvhPxotuVltDWz8+rNYo8lp/ztOlkE5R3E46EikUs/w==} + /@stdlib/constants-float64-max-base2-exponent-subnormal/0.2.1: + resolution: {integrity: sha512-D1wBNn54Hu2pK6P/yBz0FtPBI3/7HdgK8igYjWDKWUKzC92R/6PHZ9q5NzedcGxoBs8MUk1zNpP0tZyYj9Y4YQ==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/utils-library-manifest': 0.2.1 dev: false - /@stdlib/constants-float64-max-base2-exponent/0.2.1: - resolution: {integrity: sha512-aLqnk2/FGHqlr6T6yhssSGBGtIlJl6Dtb+8PU3xHv1hrGEpucSN/8ly4svfZU/dHHuyD/ozsymJl77ygFaRz5A==} + /@stdlib/constants-float64-max-base2-exponent/0.2.2: + resolution: {integrity: sha512-KmDe98pJ2HXz2SbqyFfSDhlSSVD7JssjbZ5K11HEK2avqMcoCbdHH20T+6/TpA01VqaK8dLbeyphOfALcDdMKA==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dev: false - /@stdlib/constants-float64-max-ln/0.2.1: - resolution: {integrity: sha512-pUsyc1OVSRM/L4VnYyTM2VEDCC6qGdH2lFKKGFaCyLmgw6JY4BHVpo5tCTvF1cYjOolunFbtfXrhQS4AS82mzQ==} + /@stdlib/constants-float64-max-ln/0.2.2: + resolution: {integrity: sha512-FPAEGjnoQMDPWJbCyyto7HWQ/SY2jjD8IkjyD8aOwENqbswjCbOINXRiK2ar27OOXG7Dv7CCpFpoorTxv0gmfA==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dev: false - /@stdlib/constants-float64-max-safe-integer/0.2.1: - resolution: {integrity: sha512-IcVEnGF64l1TV4/d+tS/2yUj43epbmRQYo3Hhem0RTZkcH4vDqIs2Y1AS2O7lqblS+jvr0QgYXt0p5aM2/d4QA==} + /@stdlib/constants-float64-max-safe-integer/0.2.2: + resolution: {integrity: sha512-d+sxmxhkt980SDFhnnRDSpujPQTv4nEt5Ox3L86HgYZU4mQU/wbzYVkMuHIANW9x3ehww5blnGXTKYG9rQCXAw==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dev: false - /@stdlib/constants-float64-max/0.2.1: - resolution: {integrity: sha512-VL+Kj8T6XvU8g8FuizczQtgoayzgY/FObDVZfidwPAm0H/H7i/6k1oMaI5Vc0nnvcNRb53vDNpFL11cmqUjNLQ==} + /@stdlib/constants-float64-max-safe-nth-factorial/0.1.0: + resolution: {integrity: sha512-sppIfkBbeyKNwfRbmNFi5obI7Q+IJCQzfWKYqvzmEJVOkmEg6hhtEeFc8zZJGCU7+Pndc3M2wdbTT5a3rhamHw==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dev: false - /@stdlib/constants-float64-min-base2-exponent-subnormal/0.2.0: - resolution: {integrity: sha512-AzENWSVhhG436Q98P6EmU7VPz6BlF6jkprKxrwmNLZS8wvr/gDQV1nbawBWKZj4TSLfeZ+YEaKGKrj3Smj/oxg==} + /@stdlib/constants-float64-max/0.2.2: + resolution: {integrity: sha512-S3kcIKTK65hPqirziof3KTYqfFKopgaTnaiDlDKdzaCzBZ5qkrAcRd4vl+W1KHoZruUyWC2/RYZUa/8+h075TQ==} + engines: {node: '>=0.10.0', npm: '>2.7.0'} + os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] + dev: false + + /@stdlib/constants-float64-min-base2-exponent-subnormal/0.2.1: + resolution: {integrity: sha512-fTXfvctXWj/48gK+gbRBrHuEHEKY4QOJoXSGp414Sz6vUxHusHJJ686p8ze3XqM7CY6fmL09ZgdGz/uhJl/7lw==} + engines: {node: '>=0.10.0', npm: '>2.7.0'} + os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] + dev: false + + /@stdlib/constants-float64-min-base2-exponent/0.2.2: + resolution: {integrity: sha512-YZmBiKik6LbWB4EOZ/ZUs/u6OIF742xNK8mhEqL0OEN4NuJe3OdErpOic6KjMmHjQuqCXdFoSqsWZaFHcIN7HA==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/utils-library-manifest': 0.2.1 dev: false - /@stdlib/constants-float64-min-ln/0.2.1: - resolution: {integrity: sha512-v1UwSQ4rfNcrvfB1ca/yDjx8/h+mYWZ9b7l0v/CvNEDrEFzvhNWbXFYQHiYJIxoAwW1SPn6fn1AlzS0VigbzeQ==} + /@stdlib/constants-float64-min-ln/0.2.2: + resolution: {integrity: sha512-N1Sxjo3uTdEIpHeG2TzaX06UuvpcKHvjYKpIMhJSajbxvfVDURHlc9kIpfbP9C9/YYoCy0FvewA/kvbqNaYypA==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dev: false - /@stdlib/constants-float64-ninf/0.2.1: - resolution: {integrity: sha512-6z1MihX3rLwRsXfiXrfK3OoNTsfalOfIfu6BtTxQ+j4Ekc6GuLsbOhs8PtFCFjgC0qegkkNXM6e4GVGYwP/bXA==} + /@stdlib/constants-float64-ninf/0.2.2: + resolution: {integrity: sha512-Iu+wZs/vgudAKVg9FEcRY3FadkmvsWuq/wJ3jIHjhaP5xcnoF3XJUO4IneEndybHwehfJL65NShnDsJcg1gicw==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dependencies: - '@stdlib/number-ctor': 0.2.1 + '@stdlib/number-ctor': 0.2.2 dev: false - /@stdlib/constants-float64-pi/0.2.1: - resolution: {integrity: sha512-mBbJ7thJ3tBMbL8FYn6sem1daTa7KDXTv/DUYESn1UHsaUmP4oCohAB2vCuNDPjL83k6KuTUZUuKLXMNjVYCmw==} + /@stdlib/constants-float64-pi/0.2.2: + resolution: {integrity: sha512-ix34KmpUQ0LUM++L6avLhM9LFCcGTlsUDyWD/tYVGZBiIzDS3TMKShHRkZvC+v87fuyYNPoxolYtk5AlbacI6g==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dev: false - /@stdlib/constants-float64-pinf/0.2.1: - resolution: {integrity: sha512-sphEj5GvJbWSFAYSc3Kc5qmFW0mcSbvDTtbBg5Cc1sB5jGfc9PzofZPuKBTJpjJRI5KjgjnST4grg8FFchjfVw==} + /@stdlib/constants-float64-pinf/0.2.2: + resolution: {integrity: sha512-UcwnWaSkUMD8QyKADwkXPlY7yOosCPZpE2EDXf/+WOzuWi5vpsec+JaasD5ggAN8Rv8OTVmexTFs1uZfrHgqVQ==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dev: false - /@stdlib/constants-float64-smallest-normal/0.2.1: - resolution: {integrity: sha512-EDgpj0X0zVqdeaxNl5/yuJ3lhZWUypz6fQEz8oSItrXNpMXlcBbEDZti3uKvneb1g+YztHvUN+w3V7YU2E1+Dw==} + /@stdlib/constants-float64-smallest-normal/0.2.2: + resolution: {integrity: sha512-GXNBkdqLT9X+dU59O1kmb7W5da/RhSXSvxx0xG5r7ipJPOtRLfTXGGvvTzWD4xA3Z5TKlrEL6ww5sph9BsPJnA==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dev: false - /@stdlib/constants-float64-smallest-subnormal/0.2.1: - resolution: {integrity: sha512-OOf23xOe9NRVZXvRnGMwrwXGkGp29nEIqESfceQ0g+tHRm0YVHzuQlu4TidBZ9ct7oqsfKE+NP4qpbI/B3s2TQ==} + /@stdlib/constants-float64-smallest-subnormal/0.2.2: + resolution: {integrity: sha512-KuF+scDOsP0okx8RLF+q3l1RheaYChf+u/HbhzFbz82GeCIdIVp86UMwoBgfn8AT8cnR5SrtvLtQw15MGfa/vg==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dev: false - /@stdlib/constants-float64-sqrt-eps/0.2.1: - resolution: {integrity: sha512-SoupAvxM0dqeT60C56vQ2aUrjBa7FVjsfj5TPKm0SuyNA6aaZzjfk82gRGj+lvpIp/jHOuZ+f4JzAoMxJ/c8uQ==} + /@stdlib/constants-float64-sqrt-eps/0.2.2: + resolution: {integrity: sha512-X7LnGfnwNnhiwlY+zd3FX6zclsx61MaboGTNAAdaV78YjBDTdGdWMHk5MQo1U17ryPlhdGphOAejhDHeaSnTXQ==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dev: false - /@stdlib/constants-float64-sqrt-two-pi/0.2.1: - resolution: {integrity: sha512-prCEiSsND6/lU6eOqXWZCAXnDoWZinqMKRU2224NIyovV0z7n7IM79pof+bq5SvMpIIhF4iAp7FRkyQeBhZCaQ==} + /@stdlib/constants-float64-sqrt-two-pi/0.2.2: + resolution: {integrity: sha512-I8Ylr64x8AFSQ2hFBT8szuIBAy2wqPx69taJMzfcmuM5SnSbS8SE/H19YnCimZErVFo4bz0Rh8Fp3edN4i6teQ==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dev: false - /@stdlib/constants-float64-sqrt-two/0.2.1: - resolution: {integrity: sha512-MeXO8hY7E2VoaIeHrGi+JMQaHshpkXF2+bFJu2A276aC2n0nJpVYLszb9h4v45nQMg+CmUpfeNY+BwvmBaOUVg==} + /@stdlib/constants-float64-sqrt-two/0.2.2: + resolution: {integrity: sha512-iqqouCuS9pUhjD91i5siScxLDtQTF1HsSZor6jaZRviMiOjCj/mjzxxTFHWUlU/rxHMBBhj/u7i12fv6a7dCAQ==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dev: false - /@stdlib/constants-float64-two-pi/0.2.1: - resolution: {integrity: sha512-WOaT5kNFyEGmeKlmQrZ04wVtBxOlh+gE6ljmsocisPA35WvX+HnQGJWHlEJSgY2H4kh09Hs8UCdTsJtwnl6scw==} + /@stdlib/constants-float64-two-pi/0.2.2: + resolution: {integrity: sha512-cyXuwYOersVsA8tDSJ0ocMbtOc5KGxjlGvYC4vrpLQVkgNpxcGbA57n6JvaGmNk7+InXXbQ7qhTWGbTNgafcLQ==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dev: false @@ -3222,102 +3309,109 @@ packages: os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dev: false - /@stdlib/constants-uint16-max/0.2.1: - resolution: {integrity: sha512-X8n01bbYzYf8BLm43jYtwik28YD3OJ9U8GkEwgqD1znL3MJ+Qpd/EUw7asOTIcEKrWzKGdoft1IPRgkGr1eGtw==} + /@stdlib/constants-int32-max/0.3.0: + resolution: {integrity: sha512-jYN84QfG/yP2RYw98OR6UYehFFs0PsGAihV6pYU0ey+WF9IOXgSjRP56KMoZ7ctHwl4wsnj9I+qB2tGuEXr+pQ==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dev: false - /@stdlib/constants-uint32-max/0.2.1: - resolution: {integrity: sha512-Bcr6I9VE2EPy5rTWKB5EhbqxAHoILP6M7IVcVyFqPZRw+efbvm0Z0/X5wvVxCcHOA15XaOyD4eS5/O40/CEP8A==} + /@stdlib/constants-uint16-max/0.2.2: + resolution: {integrity: sha512-qaFXbxgFnAkt73P5Ch7ODb0TsOTg0LEBM52hw6qt7+gTMZUdS0zBAiy5J2eEkTxA9rD9X3nIyUtLf2C7jafNdw==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dev: false - /@stdlib/constants-uint8-max/0.2.1: - resolution: {integrity: sha512-LaP+G7rwFmRwgFB887uKFsaiFMX5jLtN8BzbVs5mLtX6ItaYdM/GEu4kV8sePizlHODSfOW3EUsJYqq1021Obg==} + /@stdlib/constants-uint32-max/0.2.2: + resolution: {integrity: sha512-2G44HQgIKDrh3tJUkmvtz+eM+uwDvOMF+2I3sONcTHacANb+zP7la4LDYiTp+HFkPJyfh/kPapXBiHpissAb1A==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dev: false - /@stdlib/error-tools-fmtprodmsg/0.2.1: - resolution: {integrity: sha512-SaxvGeGfWfda/O3rTNGRGBzAL9gsY/yd8n1hXwzOl/2aUHf8nxcf6Fz6/BQ5PguT0GiBkca19XEhHZZHxX3X/g==} + /@stdlib/constants-uint8-max/0.2.2: + resolution: {integrity: sha512-ZTBQq3fqS/Y4ll6cPY5SKaS266EfmKP9PW3YLJaTELmYIzVo9w2RFtfCqN05G3olTQ6Le9MUEE/C6VFgZNElDQ==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dev: false - /@stdlib/fs-exists/0.2.1: - resolution: {integrity: sha512-LeynjpWVjizojjshscyAMZCWeaWziIIENBA9/99Zv/x60waoBPphibIYjCEhY0agUqIdgTx+9COJU6zvwASGCw==} + /@stdlib/error-tools-fmtprodmsg/0.2.2: + resolution: {integrity: sha512-2IliQfTes4WV5odPidZFGD5eYDswZrPXob7oOu95Q69ERqImo8WzSwnG2EDbHPyOyYCewuMfM5Ha6Ggf+u944Q==} + engines: {node: '>=0.10.0', npm: '>2.7.0'} + os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] + dev: false + + /@stdlib/fs-exists/0.2.2: + resolution: {integrity: sha512-uGLqc7izCIam2aTyv0miyktl4l8awgRkCS39eIEvvvnKIaTBF6pxfac7FtFHeEQKE3XhtKsOmdQ/yJjUMChLuA==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dependencies: - '@stdlib/utils-define-nonenumerable-read-only-property': 0.2.1 + '@stdlib/utils-define-nonenumerable-read-only-property': 0.2.2 dev: false - /@stdlib/fs-resolve-parent-path/0.2.1: - resolution: {integrity: sha512-BxkdEYgAJkcZpoctFeU/x7AeGuAJWuIzkwa39pi5qu3feWkSTMimD8Y+BnnJy8GPlGnClMlfp3hc13ojmJ79mQ==} + /@stdlib/fs-resolve-parent-path/0.2.2: + resolution: {integrity: sha512-ZG78ouZc+pdPLtU+sSpYTvbKTiLUgn6NTtlVFYmcmkYRFn+fGOOakwVuhYMcYG6ti10cLD6WzB/YujxIt8f+nA==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dependencies: - '@stdlib/assert-has-own-property': 0.2.1 - '@stdlib/assert-is-function': 0.2.1 - '@stdlib/assert-is-plain-object': 0.2.1 - '@stdlib/assert-is-string': 0.2.1 - '@stdlib/fs-exists': 0.2.1 - '@stdlib/process-cwd': 0.2.1 - '@stdlib/string-format': 0.2.1 - '@stdlib/utils-define-nonenumerable-read-only-property': 0.2.1 + '@stdlib/assert-has-own-property': 0.2.2 + '@stdlib/assert-is-function': 0.2.2 + '@stdlib/assert-is-plain-object': 0.2.2 + '@stdlib/assert-is-string': 0.2.2 + '@stdlib/error-tools-fmtprodmsg': 0.2.2 + '@stdlib/fs-exists': 0.2.2 + '@stdlib/process-cwd': 0.2.2 + '@stdlib/string-format': 0.2.2 + '@stdlib/utils-define-nonenumerable-read-only-property': 0.2.2 dev: false - /@stdlib/function-ctor/0.2.1: - resolution: {integrity: sha512-F+hdc9ydUG1BPzFH0ueDQASnJkNMT5nFAPtka9GwA8m/b7Eqa01qhfpD9MqS+USwTAJz2csQ8rqIf9E3gszPWg==} + /@stdlib/function-ctor/0.2.2: + resolution: {integrity: sha512-qSn1XQnnhgCSYBfFy4II0dY5eW4wdOprgDTHcOJ3PkPWuZHDC1fXZsok1OYAosHqIiIw44zBFcMS/JRex4ebdQ==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dev: false - /@stdlib/math-base-assert-is-even/0.2.2: - resolution: {integrity: sha512-CY2EphtieB9K1WfVtBSj/3z/es9E0FV5ejYgggghdozmjFukgg4GtXYYCAl1Zj8hlbGiPa2Jat8zPXf348EibA==} + /@stdlib/math-base-assert-is-even/0.2.3: + resolution: {integrity: sha512-cziGv8F/aNyfME7Wx2XJjnYBnf9vIeh8yTIzlLELd0OqGHqfsHU5OQxxcl9x5DbjZ1G/w0lphWxHFHYCuwFCHw==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dependencies: - '@stdlib/math-base-assert-is-integer': 0.2.4 - '@stdlib/utils-library-manifest': 0.2.1 + '@stdlib/math-base-assert-is-integer': 0.2.5 + '@stdlib/utils-library-manifest': 0.2.2 dev: false - /@stdlib/math-base-assert-is-infinite/0.2.1: - resolution: {integrity: sha512-xXlbchET8Y508q9dZI2CVNU7bUsDmvkXb/38huA5YAv+L+iU5+szHG3OV2+yK0w9s+yQuICpHzLw9HCV8GJdQQ==} + /@stdlib/math-base-assert-is-infinite/0.2.2: + resolution: {integrity: sha512-4zDZuinC3vkXRdQepr0ZTwWX3KgM0VIWqYthOmCSgLLA87L9M9z9MgUZL1QeYeYa0+60epjDcQ8MS3ecT70Jxw==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dependencies: - '@stdlib/constants-float64-ninf': 0.2.1 - '@stdlib/constants-float64-pinf': 0.2.1 - '@stdlib/utils-library-manifest': 0.2.1 + '@stdlib/constants-float64-ninf': 0.2.2 + '@stdlib/constants-float64-pinf': 0.2.2 + '@stdlib/utils-library-manifest': 0.2.2 dev: false - /@stdlib/math-base-assert-is-integer/0.2.4: - resolution: {integrity: sha512-aCmocusl/qXSLk/0x7HFkKdOIV8t2I534ROCOFP61ICl752CrpJd+0TpU1GwpBoaRkF2dYER5tLGOoRf91Bz1A==} + /@stdlib/math-base-assert-is-integer/0.2.5: + resolution: {integrity: sha512-Zi8N66GbWtSCR3OUsRdBknjNlX+aBN8w6CaVEP5+Jy/a7MgMYzevS52TNS5sm8jqzKBlFhZlPLex+Zl2GlPvSA==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dependencies: - '@stdlib/math-base-special-floor': 0.2.2 - '@stdlib/utils-library-manifest': 0.2.1 + '@stdlib/math-base-special-floor': 0.2.3 + '@stdlib/utils-library-manifest': 0.2.2 dev: false - /@stdlib/math-base-assert-is-nan/0.2.1: - resolution: {integrity: sha512-+WAc5YYLkqjOS/95QaFjrMq+ciNPdKN6M8ptNbfvxdPg2Oyrm7QeRih7tQ9gx99BifrD9UQ0wu5ndMiMG+dQcw==} + /@stdlib/math-base-assert-is-nan/0.2.2: + resolution: {integrity: sha512-QVS8rpWdkR9YmHqiYLDVLsCiM+dASt/2feuTl4T/GSdou3Y/PS/4j/tuDvCDoHDNfDkULUW+FCVjKYpbyoeqBQ==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dependencies: - '@stdlib/utils-library-manifest': 0.2.1 + '@stdlib/utils-library-manifest': 0.2.2 dev: false - /@stdlib/math-base-assert-is-negative-zero/0.2.1: - resolution: {integrity: sha512-vLaKqDY2PqXgfeMH1kyka0IDYxbXAdIDAVr04TuZ3WuhAO+17S80kal5TNh14cN/gjXFIUHAcPpwa1FCBCIc9A==} + /@stdlib/math-base-assert-is-negative-zero/0.2.2: + resolution: {integrity: sha512-WvKNuBZ6CDarOTzOuFLmO1jwZnFD+butIvfD2Ws6SsuqSCiWOaF4OhIckqPzo1XEdkqqhRNPqBxqc0D+hsEYVA==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dependencies: - '@stdlib/constants-float64-ninf': 0.2.1 - '@stdlib/utils-library-manifest': 0.2.1 + '@stdlib/constants-float64-ninf': 0.2.2 + '@stdlib/utils-library-manifest': 0.2.2 dev: false /@stdlib/math-base-assert-is-odd/0.2.1: @@ -3325,16 +3419,25 @@ packages: engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dependencies: - '@stdlib/math-base-assert-is-even': 0.2.2 + '@stdlib/math-base-assert-is-even': 0.2.3 + dev: false + + /@stdlib/math-base-assert-is-odd/0.3.0: + resolution: {integrity: sha512-V44F3xdR5/bHXqqYvE/AldLnVmijLr/rgf7EjnJXXDQLfPCgemy0iHTFl19N68KG1YO9SMPdyOaNjh4K0O9Qqw==} + engines: {node: '>=0.10.0', npm: '>2.7.0'} + os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] + dependencies: + '@stdlib/math-base-assert-is-even': 0.2.3 + '@stdlib/utils-library-manifest': 0.2.2 dev: false - /@stdlib/math-base-assert-is-positive-zero/0.2.1: - resolution: {integrity: sha512-QOSVW30dsmr/V9PvpW/X/bkyJGOF+/llGYNDXy3pNi5mrSdwbMigrxsVWpG7siZ2ub5xbCpWjSg8iUIW5F0bkA==} + /@stdlib/math-base-assert-is-positive-zero/0.2.2: + resolution: {integrity: sha512-mMX5xsemKpHRAgjpVJCb3eVZ3WIkZh6KnHQH8i8n4vI44pcdpN5rcTdEAMlhLjxT/rT7H2wq85f7/FRsq9r9rw==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dependencies: - '@stdlib/constants-float64-pinf': 0.2.1 - '@stdlib/utils-library-manifest': 0.2.1 + '@stdlib/constants-float64-pinf': 0.2.2 + '@stdlib/utils-library-manifest': 0.2.2 dev: false /@stdlib/math-base-napi-binary/0.2.1: @@ -3346,55 +3449,67 @@ packages: '@stdlib/complex-float64': 0.2.1 '@stdlib/complex-reim': 0.2.1 '@stdlib/complex-reimf': 0.2.1 - '@stdlib/utils-library-manifest': 0.2.1 + '@stdlib/utils-library-manifest': 0.2.2 dev: false - /@stdlib/math-base-napi-unary/0.2.1: - resolution: {integrity: sha512-M0a0IpCrkOZaS07j3x3xZXyq/X00FFeFPX6kUZOgk9mPfPHCQgGimgGJWBYgNKPcdWdRvpb4Nv2YI9G+nZu+gA==} + /@stdlib/math-base-napi-binary/0.3.0: + resolution: {integrity: sha512-bhwsmGMOMN1srcpNAFRjDMSXe9ue1s/XmaoBBlqcG6S2nqRQlIVnKKH4WZx4hmC1jDqoFXuNPJGE47VXpVV+mA==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dependencies: - '@stdlib/complex-float32': 0.2.1 - '@stdlib/complex-float64': 0.2.1 - '@stdlib/complex-reim': 0.2.1 - '@stdlib/complex-reimf': 0.2.1 - '@stdlib/utils-library-manifest': 0.2.1 + '@stdlib/complex-float32-ctor': 0.0.2 + '@stdlib/complex-float32-reim': 0.1.2 + '@stdlib/complex-float64-ctor': 0.0.3 + '@stdlib/complex-float64-reim': 0.1.2 + '@stdlib/utils-library-manifest': 0.2.2 + dev: false + + /@stdlib/math-base-napi-unary/0.2.3: + resolution: {integrity: sha512-BCyJmpq2S8EFo2yMt1z+v1EL7nn8RHcM6jn7fa8n3BTP679K0MSlawIh3A0CFogfrTdjPM4G44VO1ddsdLExcg==} + engines: {node: '>=0.10.0', npm: '>2.7.0'} + os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] + dependencies: + '@stdlib/complex-float32-ctor': 0.0.2 + '@stdlib/complex-float32-reim': 0.1.2 + '@stdlib/complex-float64-ctor': 0.0.3 + '@stdlib/complex-float64-reim': 0.1.2 + '@stdlib/utils-library-manifest': 0.2.2 dev: false - /@stdlib/math-base-special-abs/0.2.1: - resolution: {integrity: sha512-VKbQ4Dp8eNbVLejBbqVfii975LRM3HBTOLBNQYDCAi5ed2rPgBuzkxbnSKRlJe0B1o6aA6AVAF5VeUIXyiKyIg==} + /@stdlib/math-base-special-abs/0.2.2: + resolution: {integrity: sha512-cw5CXj05c/L0COaD9J+paHXwmoN5IBYh+Spk0331f1pEMvGxSO1KmCREZaooUEEFKPhKDukEHKeitja2yAQh4Q==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dependencies: - '@stdlib/constants-float64-high-word-abs-mask': 0.2.1 - '@stdlib/math-base-napi-unary': 0.2.1 - '@stdlib/number-float64-base-to-words': 0.2.1 - '@stdlib/utils-library-manifest': 0.2.1 + '@stdlib/constants-float64-high-word-abs-mask': 0.2.2 + '@stdlib/math-base-napi-unary': 0.2.3 + '@stdlib/number-float64-base-to-words': 0.2.2 + '@stdlib/utils-library-manifest': 0.2.2 dev: false - /@stdlib/math-base-special-acos/0.2.2: - resolution: {integrity: sha512-svGw++Oad1h5PVh04+AaLfPG3jgRKLBXE4GxAM2sc2LhlbJfYf0bMxBYWYD1sL2hJRCnJSAHGiQVaIUrJIaAJA==} + /@stdlib/math-base-special-acos/0.2.3: + resolution: {integrity: sha512-f66Ikq0E3U5XQm6sTu4UHwP3TmcPrVgSK/mZTvg2JenswZ6qPtGO1A8KHZ5+/5bk1TSc9EW4zDGUqWG7mGzT4Q==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dependencies: - '@stdlib/constants-float64-fourth-pi': 0.2.1 - '@stdlib/math-base-assert-is-nan': 0.2.1 - '@stdlib/math-base-napi-unary': 0.2.1 - '@stdlib/math-base-special-asin': 0.2.2 - '@stdlib/math-base-special-sqrt': 0.2.1 - '@stdlib/utils-library-manifest': 0.2.1 + '@stdlib/constants-float64-fourth-pi': 0.2.2 + '@stdlib/math-base-assert-is-nan': 0.2.2 + '@stdlib/math-base-napi-unary': 0.2.3 + '@stdlib/math-base-special-asin': 0.2.3 + '@stdlib/math-base-special-sqrt': 0.2.2 + '@stdlib/utils-library-manifest': 0.2.2 dev: false - /@stdlib/math-base-special-asin/0.2.2: - resolution: {integrity: sha512-FtRTRpVPJ/jkEtHxllmmlzE8hzEXeprwGFVvryAZKmvK+ypr4l7dDSf+jIKacYkiwPSS63cN4UywCGYsojdYRQ==} + /@stdlib/math-base-special-asin/0.2.3: + resolution: {integrity: sha512-Ju1UFJspOOL630SqBtVmUh3lHv5JMu1szcAgx7kQupJwZiwWljoVQ5MmxlNY4l3nGM5oMokenlqTDNXOau43lw==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dependencies: - '@stdlib/constants-float64-fourth-pi': 0.2.1 - '@stdlib/math-base-assert-is-nan': 0.2.1 - '@stdlib/math-base-napi-unary': 0.2.1 - '@stdlib/math-base-special-sqrt': 0.2.1 - '@stdlib/utils-library-manifest': 0.2.1 + '@stdlib/constants-float64-fourth-pi': 0.2.2 + '@stdlib/math-base-assert-is-nan': 0.2.2 + '@stdlib/math-base-napi-unary': 0.2.3 + '@stdlib/math-base-special-sqrt': 0.2.2 + '@stdlib/utils-library-manifest': 0.2.2 dev: false /@stdlib/math-base-special-beta/0.2.1: @@ -3402,59 +3517,76 @@ packages: engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dependencies: - '@stdlib/constants-float64-e': 0.2.1 - '@stdlib/constants-float64-eps': 0.2.1 - '@stdlib/math-base-assert-is-nan': 0.2.1 - '@stdlib/math-base-special-abs': 0.2.1 - '@stdlib/math-base-special-exp': 0.2.3 - '@stdlib/math-base-special-log1p': 0.2.2 + '@stdlib/constants-float64-e': 0.2.2 + '@stdlib/constants-float64-eps': 0.2.2 + '@stdlib/math-base-assert-is-nan': 0.2.2 + '@stdlib/math-base-special-abs': 0.2.2 + '@stdlib/math-base-special-exp': 0.2.4 + '@stdlib/math-base-special-log1p': 0.2.3 '@stdlib/math-base-special-pow': 0.2.1 - '@stdlib/math-base-special-sqrt': 0.2.1 + '@stdlib/math-base-special-sqrt': 0.2.2 dev: false - /@stdlib/math-base-special-betainc/0.2.1: - resolution: {integrity: sha512-BFiFBn9QncJbXHDePJwcJyC64KX2rQnAIOQTofxKy+hJ/+CZTYnCHvtIGKKA2E0N/Z0y9lJtrDtzVqbh+GImzg==} + /@stdlib/math-base-special-beta/0.3.0: + resolution: {integrity: sha512-SWUF1AZLqaEJ8g1Lj0/UOfj955AsIS3QPYH/ZMijELVxCwmp7VRgalI0AxMM09IraJt1cH5WrSwSnouH1WC3ZQ==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dependencies: - '@stdlib/math-base-special-kernel-betainc': 0.2.1 + '@stdlib/constants-float64-e': 0.2.2 + '@stdlib/constants-float64-eps': 0.2.2 + '@stdlib/math-base-assert-is-nan': 0.2.2 + '@stdlib/math-base-napi-binary': 0.3.0 + '@stdlib/math-base-special-abs': 0.2.2 + '@stdlib/math-base-special-exp': 0.2.4 + '@stdlib/math-base-special-log1p': 0.2.3 + '@stdlib/math-base-special-pow': 0.3.0 + '@stdlib/math-base-special-sqrt': 0.2.2 + '@stdlib/utils-library-manifest': 0.2.2 dev: false - /@stdlib/math-base-special-binomcoef/0.2.2: - resolution: {integrity: sha512-xKHcu4AizCqgDVT48V3SF2q55tiNw5xEWeTaB5hcO7KlOITnDKm7PMU44i0xCNOcrfmdeBk2RwHzgdBtzPJTrA==} + /@stdlib/math-base-special-betainc/0.2.2: + resolution: {integrity: sha512-95tzDgn5d9RV9al4gxHwKfszd9M6AizlpnhAiwIi0JwqcO+OY3xgbABWal4/H09Tb8DaC9jDqiyGuyPuB0iDew==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dependencies: - '@stdlib/constants-float64-max-safe-integer': 0.2.1 - '@stdlib/constants-float64-pinf': 0.2.1 - '@stdlib/math-base-assert-is-integer': 0.2.4 - '@stdlib/math-base-assert-is-nan': 0.2.1 - '@stdlib/math-base-assert-is-odd': 0.2.1 - '@stdlib/math-base-special-floor': 0.2.2 + '@stdlib/math-base-special-kernel-betainc': 0.2.2 + dev: false + + /@stdlib/math-base-special-binomcoef/0.2.3: + resolution: {integrity: sha512-RxnQ/QGgKUeqTvBL+7IH8rNKQYCfGs0I3PsFYfb0e9V1O2yIVvthURUpzjukurZM89JRapK1dN6aeZ5UM71Zgw==} + engines: {node: '>=0.10.0', npm: '>2.7.0'} + os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] + dependencies: + '@stdlib/constants-float64-max-safe-integer': 0.2.2 + '@stdlib/constants-float64-pinf': 0.2.2 + '@stdlib/math-base-assert-is-integer': 0.2.5 + '@stdlib/math-base-assert-is-nan': 0.2.2 + '@stdlib/math-base-assert-is-odd': 0.3.0 + '@stdlib/math-base-special-floor': 0.2.3 '@stdlib/math-base-special-gcd': 0.2.1 dev: false - /@stdlib/math-base-special-ceil/0.2.1: - resolution: {integrity: sha512-z65R2UEEvY+VxvL0rYWTCSi5jLuL1GR1gJZGQjd82nQ9Zd9TdFEkgDTOxjOdTigbtRzbT9dZft9uEDPX3oTcAg==} + /@stdlib/math-base-special-ceil/0.2.2: + resolution: {integrity: sha512-zGkDaMcPrxQ9Zo+fegf2MyI8UPIrVTK5sc/FgCN9qdwEFJTKGLsBd249T3xH7L2MDxx5JbIMGrr6L4U4uEm2Hw==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dependencies: - '@stdlib/math-base-napi-unary': 0.2.1 - '@stdlib/utils-library-manifest': 0.2.1 + '@stdlib/math-base-napi-unary': 0.2.3 + '@stdlib/utils-library-manifest': 0.2.2 dev: false - /@stdlib/math-base-special-copysign/0.2.1: - resolution: {integrity: sha512-ZscBdTPFLQNYrFmXAI06sPxzvOqIzansu3cTfxNGGdtRhUb1sEVflNPpJ8PRX1uwfMZTBE2+qefR3oe2OqPh+A==} + /@stdlib/math-base-special-copysign/0.2.2: + resolution: {integrity: sha512-m9nWIQhKsaNrZtS2vIPeToWDbzs/T0d0NWy7gSci38auQVufSbF6FYnCKl0f+uwiWlh5GYXs0uVbyCp7FFXN+A==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dependencies: - '@stdlib/constants-float64-high-word-abs-mask': 0.2.1 - '@stdlib/constants-float64-high-word-sign-mask': 0.2.0 - '@stdlib/math-base-napi-binary': 0.2.1 - '@stdlib/number-float64-base-from-words': 0.2.1 - '@stdlib/number-float64-base-get-high-word': 0.2.1 - '@stdlib/number-float64-base-to-words': 0.2.1 - '@stdlib/utils-library-manifest': 0.2.1 + '@stdlib/constants-float64-high-word-abs-mask': 0.2.2 + '@stdlib/constants-float64-high-word-sign-mask': 0.2.1 + '@stdlib/math-base-napi-binary': 0.3.0 + '@stdlib/number-float64-base-from-words': 0.2.2 + '@stdlib/number-float64-base-get-high-word': 0.2.2 + '@stdlib/number-float64-base-to-words': 0.2.2 + '@stdlib/utils-library-manifest': 0.2.2 dev: false /@stdlib/math-base-special-cos/0.2.1: @@ -3462,69 +3594,69 @@ packages: engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dependencies: - '@stdlib/math-base-special-kernel-cos': 0.2.2 - '@stdlib/math-base-special-kernel-sin': 0.2.2 + '@stdlib/math-base-special-kernel-cos': 0.2.3 + '@stdlib/math-base-special-kernel-sin': 0.2.3 '@stdlib/math-base-special-rempio2': 0.2.1 - '@stdlib/number-float64-base-get-high-word': 0.2.1 + '@stdlib/number-float64-base-get-high-word': 0.2.2 dev: false - /@stdlib/math-base-special-erfc/0.2.3: - resolution: {integrity: sha512-c1+Xhnb2mTgfJQ4jmA18mVLXOie5A2DSAbfJqt9GDV1kWjz3U7M/bBOTM3xmF8CI2YqbJmvgRG2P+Bk/QB1hTA==} + /@stdlib/math-base-special-erfc/0.2.4: + resolution: {integrity: sha512-tVI+mMnW+oDfQXwoH86sZ8q4ximpUXX6wZFCYZB6KcO5GXeKuvK74DnU0YyIm+sTV+r9WJiTSBEW9iVQLZOkzg==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dependencies: - '@stdlib/constants-float64-ninf': 0.2.1 - '@stdlib/constants-float64-pinf': 0.2.1 - '@stdlib/math-base-assert-is-nan': 0.2.1 - '@stdlib/math-base-napi-unary': 0.2.1 - '@stdlib/math-base-special-exp': 0.2.3 - '@stdlib/number-float64-base-set-low-word': 0.2.1 - '@stdlib/utils-library-manifest': 0.2.1 + '@stdlib/constants-float64-ninf': 0.2.2 + '@stdlib/constants-float64-pinf': 0.2.2 + '@stdlib/math-base-assert-is-nan': 0.2.2 + '@stdlib/math-base-napi-unary': 0.2.3 + '@stdlib/math-base-special-exp': 0.2.4 + '@stdlib/number-float64-base-set-low-word': 0.2.2 + '@stdlib/utils-library-manifest': 0.2.2 dev: false - /@stdlib/math-base-special-erfcinv/0.2.2: - resolution: {integrity: sha512-8MRZ5YfrV7L8f2/fw0I/zw0eVj5f571t6Eo3KGvDRn/VmAr+NpmV2FJZyl0RPz+dQMxwolWwiXQk38FOY6tKYg==} + /@stdlib/math-base-special-erfcinv/0.2.3: + resolution: {integrity: sha512-B8u7WZiIh0+rX8VWNOwvjPWpmeKBHIQoJtIigUseBgbch/rmgV43k63MCkjh2u+V2SmcFo38yD94qJg5bYyWeA==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dependencies: - '@stdlib/constants-float64-ninf': 0.2.1 - '@stdlib/constants-float64-pinf': 0.2.1 - '@stdlib/math-base-assert-is-nan': 0.2.1 - '@stdlib/math-base-napi-unary': 0.2.1 - '@stdlib/math-base-special-ln': 0.2.3 - '@stdlib/math-base-special-sqrt': 0.2.1 - '@stdlib/utils-library-manifest': 0.2.1 + '@stdlib/constants-float64-ninf': 0.2.2 + '@stdlib/constants-float64-pinf': 0.2.2 + '@stdlib/math-base-assert-is-nan': 0.2.2 + '@stdlib/math-base-napi-unary': 0.2.3 + '@stdlib/math-base-special-ln': 0.2.4 + '@stdlib/math-base-special-sqrt': 0.2.2 + '@stdlib/utils-library-manifest': 0.2.2 dev: false - /@stdlib/math-base-special-exp/0.2.3: - resolution: {integrity: sha512-HLEK0TYMMetAMU3sN90Ax30isPGfyB9HWHL4w7q874q8+mOMcATZ55TEu0jq8mmZv8Qz1OT3eFMGQDDuoZDFKg==} + /@stdlib/math-base-special-exp/0.2.4: + resolution: {integrity: sha512-G6pZqu1wA4WwBj7DcnztA+/ro61wXJUTpKFLOwrIb2f/28pHGpA//Lub+3vAk6/ksAkhJ+qM/dfdM2ue7zLuEw==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dependencies: - '@stdlib/constants-float64-ninf': 0.2.1 - '@stdlib/constants-float64-pinf': 0.2.1 - '@stdlib/math-base-assert-is-nan': 0.2.1 - '@stdlib/math-base-napi-unary': 0.2.1 - '@stdlib/math-base-special-ldexp': 0.2.2 - '@stdlib/math-base-special-trunc': 0.2.1 - '@stdlib/utils-library-manifest': 0.2.1 + '@stdlib/constants-float64-ninf': 0.2.2 + '@stdlib/constants-float64-pinf': 0.2.2 + '@stdlib/math-base-assert-is-nan': 0.2.2 + '@stdlib/math-base-napi-unary': 0.2.3 + '@stdlib/math-base-special-ldexp': 0.2.3 + '@stdlib/math-base-special-trunc': 0.2.2 + '@stdlib/utils-library-manifest': 0.2.2 dev: false - /@stdlib/math-base-special-expm1/0.2.2: - resolution: {integrity: sha512-7EESgES203koqRI3t7FKCd0BY8Qy4yMTIQA6wWNn1fLrjSnddaKou473Nl7b5oWzF6rofmLIllnGiKjL08t9lQ==} + /@stdlib/math-base-special-expm1/0.2.3: + resolution: {integrity: sha512-uJlYZjPjG9X8owuwp1h1/iz9xf21v3dlyEAuutQ0NoacUDzZKVSCbQ3Of0i2Mujn+4N+kjCvEeph6cqhfYAl+A==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dependencies: - '@stdlib/constants-float64-exponent-bias': 0.2.1 - '@stdlib/constants-float64-half-ln-two': 0.2.1 - '@stdlib/constants-float64-ninf': 0.2.1 - '@stdlib/constants-float64-pinf': 0.2.1 - '@stdlib/math-base-assert-is-nan': 0.2.1 - '@stdlib/math-base-napi-unary': 0.2.1 - '@stdlib/number-float64-base-from-words': 0.2.1 - '@stdlib/number-float64-base-get-high-word': 0.2.1 - '@stdlib/number-float64-base-set-high-word': 0.2.1 - '@stdlib/utils-library-manifest': 0.2.1 + '@stdlib/constants-float64-exponent-bias': 0.2.2 + '@stdlib/constants-float64-half-ln-two': 0.2.2 + '@stdlib/constants-float64-ninf': 0.2.2 + '@stdlib/constants-float64-pinf': 0.2.2 + '@stdlib/math-base-assert-is-nan': 0.2.2 + '@stdlib/math-base-napi-unary': 0.2.3 + '@stdlib/number-float64-base-from-words': 0.2.2 + '@stdlib/number-float64-base-get-high-word': 0.2.2 + '@stdlib/number-float64-base-set-high-word': 0.2.2 + '@stdlib/utils-library-manifest': 0.2.2 dev: false /@stdlib/math-base-special-factorial/0.2.1: @@ -3532,213 +3664,273 @@ packages: engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dependencies: - '@stdlib/constants-float64-pinf': 0.2.1 - '@stdlib/math-base-assert-is-integer': 0.2.4 - '@stdlib/math-base-assert-is-nan': 0.2.1 + '@stdlib/constants-float64-pinf': 0.2.2 + '@stdlib/math-base-assert-is-integer': 0.2.5 + '@stdlib/math-base-assert-is-nan': 0.2.2 '@stdlib/math-base-special-gamma': 0.2.1 dev: false - /@stdlib/math-base-special-floor/0.2.2: - resolution: {integrity: sha512-BJ5WA0kLX0b2/NV2HkOg4XgYcZOy3//HOjSc4oro642J6Ai3mjxk30sbnad7Miry0cUZEyQ6YsnwF42T1gOObw==} + /@stdlib/math-base-special-factorial/0.3.0: + resolution: {integrity: sha512-tXdXqstF4gmy4HpzALo3Bhkj2UQSlyk+PU3alWXZH5XtKUozHuXhQDnak+2c4w0JqnKxHq4mnaR2qgjfkDNZcA==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dependencies: - '@stdlib/math-base-napi-unary': 0.2.1 - '@stdlib/utils-library-manifest': 0.2.1 + '@stdlib/constants-float64-max-safe-nth-factorial': 0.1.0 + '@stdlib/constants-float64-pinf': 0.2.2 + '@stdlib/math-base-assert-is-integer': 0.2.5 + '@stdlib/math-base-assert-is-nan': 0.2.2 + '@stdlib/math-base-napi-unary': 0.2.3 + '@stdlib/math-base-special-gamma': 0.2.1 + '@stdlib/utils-library-manifest': 0.2.2 dev: false - /@stdlib/math-base-special-gamma-delta-ratio/0.2.1: - resolution: {integrity: sha512-/77bEhG1KjdTCcOriBCOyvv21r3T5hKyDOZp3q0KGHXFbOtyx7VkSb2Oq8+O5IxnrRat3OL0VXak/1OHv2DbNg==} + /@stdlib/math-base-special-floor/0.2.3: + resolution: {integrity: sha512-zTkxVRawtWwJ4NmAT/1e+ZsIoBj1JqUquGOpiNVGNIKtyLOeCONZlZSbN7zuxPkshvmcSjpQ/VLKR8Tw/37E9A==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dependencies: - '@stdlib/constants-float64-e': 0.2.1 - '@stdlib/constants-float64-eps': 0.2.1 - '@stdlib/constants-float64-gamma-lanczos-g': 0.2.1 - '@stdlib/math-base-special-abs': 0.2.1 - '@stdlib/math-base-special-exp': 0.2.3 - '@stdlib/math-base-special-factorial': 0.2.1 - '@stdlib/math-base-special-floor': 0.2.2 - '@stdlib/math-base-special-gamma': 0.2.1 - '@stdlib/math-base-special-gamma-lanczos-sum': 0.2.1 - '@stdlib/math-base-special-log1p': 0.2.2 - '@stdlib/math-base-special-pow': 0.2.1 + '@stdlib/math-base-napi-unary': 0.2.3 + '@stdlib/utils-library-manifest': 0.2.2 dev: false - /@stdlib/math-base-special-gamma-lanczos-sum-expg-scaled/0.2.1: - resolution: {integrity: sha512-rm3byvYjIlW4DW4kuU1RRCrtzav+aAl8ehBq0c2tQxPxf6y1zEUe9xTvAOQZ0q71Db39u85IuATTO+it2ARsGw==} + /@stdlib/math-base-special-fmod/0.1.0: + resolution: {integrity: sha512-osHwmEOT5MPWOXRx8y3wKCp362eGHIcJRt8LARJJICr/qTZlu1HMnZnbwuhfy1NIQzpJ8aLOhEdl2PrProTt3A==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] + dependencies: + '@stdlib/constants-float64-exponent-bias': 0.2.2 + '@stdlib/constants-float64-high-word-abs-mask': 0.2.2 + '@stdlib/constants-float64-high-word-exponent-mask': 0.2.2 + '@stdlib/constants-float64-high-word-sign-mask': 0.2.1 + '@stdlib/constants-float64-high-word-significand-mask': 0.2.2 + '@stdlib/constants-float64-min-base2-exponent': 0.2.2 + '@stdlib/math-base-napi-binary': 0.3.0 + '@stdlib/number-float64-base-from-words': 0.2.2 + '@stdlib/number-float64-base-to-words': 0.2.2 + '@stdlib/utils-library-manifest': 0.2.2 dev: false - /@stdlib/math-base-special-gamma-lanczos-sum/0.2.1: - resolution: {integrity: sha512-CNurrPYjJpGtpZ/qC+kLM+3I3FwcgNI1jSuBB24CTxVZhEAGobH7Nds4JV4SeIR2R84ETFL18tiWXV6GbXl0Zg==} + /@stdlib/math-base-special-gamma-delta-ratio/0.2.2: + resolution: {integrity: sha512-lan+cfafH7aoyUxa88vLO+pYwLA+0uiyVFmCumxDemQUboCrTiNCYhBjONFGI/ljE3RukHoE3ZV4AccIcx526A==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] + dependencies: + '@stdlib/constants-float64-e': 0.2.2 + '@stdlib/constants-float64-eps': 0.2.2 + '@stdlib/constants-float64-gamma-lanczos-g': 0.2.2 + '@stdlib/math-base-special-abs': 0.2.2 + '@stdlib/math-base-special-exp': 0.2.4 + '@stdlib/math-base-special-factorial': 0.2.1 + '@stdlib/math-base-special-floor': 0.2.3 + '@stdlib/math-base-special-gamma': 0.2.1 + '@stdlib/math-base-special-gamma-lanczos-sum': 0.3.0 + '@stdlib/math-base-special-log1p': 0.2.3 + '@stdlib/math-base-special-pow': 0.3.0 dev: false - /@stdlib/math-base-special-gamma/0.2.1: - resolution: {integrity: sha512-Sfq1HnVoL4kN9EDHH3YparEAF0r7QD5jNFppUTOXmrqkofgImSl5tLttttnr2I7O9zsNhYkBAiTx9q0y25bAiA==} + /@stdlib/math-base-special-gamma-lanczos-sum-expg-scaled/0.3.0: + resolution: {integrity: sha512-hScjKZvueOK5piX84ZLIV3ZiYvtvYtcixN8psxkPIxJlN7Bd5nAmSkEOBL+T+LeW2RjmdEMXFFJMF7FsK1js/Q==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dependencies: - '@stdlib/constants-float64-eulergamma': 0.2.1 - '@stdlib/constants-float64-ninf': 0.2.1 - '@stdlib/constants-float64-pi': 0.2.1 - '@stdlib/constants-float64-pinf': 0.2.1 - '@stdlib/constants-float64-sqrt-two-pi': 0.2.1 - '@stdlib/math-base-assert-is-integer': 0.2.4 - '@stdlib/math-base-assert-is-nan': 0.2.1 - '@stdlib/math-base-assert-is-negative-zero': 0.2.1 - '@stdlib/math-base-special-abs': 0.2.1 - '@stdlib/math-base-special-exp': 0.2.3 - '@stdlib/math-base-special-floor': 0.2.2 - '@stdlib/math-base-special-pow': 0.2.1 - '@stdlib/math-base-special-sin': 0.2.1 + '@stdlib/math-base-napi-unary': 0.2.3 + '@stdlib/utils-library-manifest': 0.2.2 dev: false - /@stdlib/math-base-special-gamma1pm1/0.2.1: - resolution: {integrity: sha512-1iRJIrCkUtpso3N13SRPIwstWAEoJaWimyxrWujJAE/KgPxnNo/N+DrzFP7f8ceoRfmFW8+2svzrwlmpY+z07A==} + /@stdlib/math-base-special-gamma-lanczos-sum/0.3.0: + resolution: {integrity: sha512-q13p6r7G0TmbD54cU8QgG8wGgdGGznV9dNKiNszw+hOqCQ+1DqziG8I6vN64R3EQLP7QN4yVprZcmuXSK+fgsg==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dependencies: - '@stdlib/constants-float64-eps': 0.2.1 - '@stdlib/math-base-assert-is-nan': 0.2.1 - '@stdlib/math-base-special-expm1': 0.2.2 - '@stdlib/math-base-special-gamma': 0.2.1 - '@stdlib/math-base-special-ln': 0.2.3 - '@stdlib/math-base-special-log1p': 0.2.2 + '@stdlib/constants-float64-pinf': 0.2.2 + '@stdlib/math-base-napi-unary': 0.2.3 + '@stdlib/utils-library-manifest': 0.2.2 dev: false - /@stdlib/math-base-special-gammainc/0.2.1: - resolution: {integrity: sha512-mr04nCv6IZzEk942t08U0Qh45EEQsJMrIgKmvo4rpx/d9Aon1oWr6gNgjxH3/CJr1RuXDOV4L0hKJpfvbpcm9A==} + /@stdlib/math-base-special-gamma/0.2.1: + resolution: {integrity: sha512-Sfq1HnVoL4kN9EDHH3YparEAF0r7QD5jNFppUTOXmrqkofgImSl5tLttttnr2I7O9zsNhYkBAiTx9q0y25bAiA==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dependencies: - '@stdlib/constants-float64-e': 0.2.1 - '@stdlib/constants-float64-gamma-lanczos-g': 0.2.1 - '@stdlib/constants-float64-max': 0.2.1 - '@stdlib/constants-float64-max-ln': 0.2.1 - '@stdlib/constants-float64-min-ln': 0.2.1 - '@stdlib/constants-float64-pi': 0.2.1 - '@stdlib/constants-float64-pinf': 0.2.1 - '@stdlib/constants-float64-sqrt-eps': 0.2.1 - '@stdlib/constants-float64-sqrt-two-pi': 0.2.1 - '@stdlib/constants-float64-two-pi': 0.2.1 - '@stdlib/math-base-special-abs': 0.2.1 - '@stdlib/math-base-special-erfc': 0.2.3 - '@stdlib/math-base-special-exp': 0.2.3 - '@stdlib/math-base-special-floor': 0.2.2 - '@stdlib/math-base-special-gamma': 0.2.1 - '@stdlib/math-base-special-gamma-lanczos-sum-expg-scaled': 0.2.1 - '@stdlib/math-base-special-gamma1pm1': 0.2.1 - '@stdlib/math-base-special-gammaln': 0.2.1 - '@stdlib/math-base-special-ln': 0.2.3 - '@stdlib/math-base-special-log1p': 0.2.2 - '@stdlib/math-base-special-log1pmx': 0.2.2 - '@stdlib/math-base-special-max': 0.2.1 - '@stdlib/math-base-special-min': 0.2.2 + '@stdlib/constants-float64-eulergamma': 0.2.2 + '@stdlib/constants-float64-ninf': 0.2.2 + '@stdlib/constants-float64-pi': 0.2.2 + '@stdlib/constants-float64-pinf': 0.2.2 + '@stdlib/constants-float64-sqrt-two-pi': 0.2.2 + '@stdlib/math-base-assert-is-integer': 0.2.5 + '@stdlib/math-base-assert-is-nan': 0.2.2 + '@stdlib/math-base-assert-is-negative-zero': 0.2.2 + '@stdlib/math-base-special-abs': 0.2.2 + '@stdlib/math-base-special-exp': 0.2.4 + '@stdlib/math-base-special-floor': 0.2.3 '@stdlib/math-base-special-pow': 0.2.1 - '@stdlib/math-base-special-powm1': 0.2.1 - '@stdlib/math-base-special-sqrt': 0.2.1 - '@stdlib/math-base-tools-continued-fraction': 0.2.1 - '@stdlib/math-base-tools-evalpoly': 0.2.1 - '@stdlib/math-base-tools-sum-series': 0.2.1 + '@stdlib/math-base-special-sin': 0.2.1 dev: false - /@stdlib/math-base-special-gammaincinv/0.2.1: - resolution: {integrity: sha512-YHl3Zx1g/x/o6TqhIdRqVYZtPljEb/OkWr88OX7fy3imDO8nJj0iLJYBnK8hF2k+fiGmC/6LfwbFsGj8rqgIsA==} + /@stdlib/math-base-special-gamma/0.3.0: + resolution: {integrity: sha512-YfW+e5xuSDoUxgpquXPrFtAbdwOzE7Kqt7M0dcAkDNot8/yUn+QmrDGzURyBVzUyhRm9SaC9bACHxTShdJkcuA==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dependencies: - '@stdlib/constants-float32-max': 0.2.1 - '@stdlib/constants-float32-smallest-normal': 0.2.1 - '@stdlib/constants-float64-ln-sqrt-two-pi': 0.2.1 - '@stdlib/constants-float64-pinf': 0.2.1 - '@stdlib/constants-float64-sqrt-two-pi': 0.2.1 - '@stdlib/constants-float64-two-pi': 0.2.1 - '@stdlib/math-base-assert-is-nan': 0.2.1 - '@stdlib/math-base-special-abs': 0.2.1 - '@stdlib/math-base-special-erfcinv': 0.2.2 - '@stdlib/math-base-special-exp': 0.2.3 - '@stdlib/math-base-special-gamma': 0.2.1 - '@stdlib/math-base-special-gammainc': 0.2.1 - '@stdlib/math-base-special-gammaln': 0.2.1 - '@stdlib/math-base-special-ln': 0.2.3 - '@stdlib/math-base-special-min': 0.2.2 - '@stdlib/math-base-special-pow': 0.2.1 - '@stdlib/math-base-special-sqrt': 0.2.1 - '@stdlib/math-base-tools-evalpoly': 0.2.1 - debug: 2.6.9 + '@stdlib/constants-float64-eulergamma': 0.2.2 + '@stdlib/constants-float64-ninf': 0.2.2 + '@stdlib/constants-float64-pi': 0.2.2 + '@stdlib/constants-float64-pinf': 0.2.2 + '@stdlib/constants-float64-sqrt-two-pi': 0.2.2 + '@stdlib/math-base-assert-is-integer': 0.2.5 + '@stdlib/math-base-assert-is-nan': 0.2.2 + '@stdlib/math-base-assert-is-negative-zero': 0.2.2 + '@stdlib/math-base-napi-unary': 0.2.3 + '@stdlib/math-base-special-abs': 0.2.2 + '@stdlib/math-base-special-exp': 0.2.4 + '@stdlib/math-base-special-floor': 0.2.3 + '@stdlib/math-base-special-pow': 0.3.0 + '@stdlib/math-base-special-sin': 0.2.1 + '@stdlib/utils-library-manifest': 0.2.2 dev: false - /@stdlib/math-base-special-gammaln/0.2.1: - resolution: {integrity: sha512-w4FgLM6pbefOM1rXTr1e1v380liHTGdjB8hYUFFrdtHk9Hx5ILYssJRiipbUB0O5a3YZETWkW/ei/Wrh45D7HQ==} + /@stdlib/math-base-special-gamma1pm1/0.2.2: + resolution: {integrity: sha512-lNT1lk0ifK2a/ta3GfR5V8KvfgkgheE44n5AQ/07BBfcVBMiAdqNuyjSMeWqsH/zVGzjU6G8+kLBzmaJXivPXQ==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dependencies: - '@stdlib/constants-float64-pi': 0.2.1 - '@stdlib/constants-float64-pinf': 0.2.1 - '@stdlib/math-base-assert-is-infinite': 0.2.1 - '@stdlib/math-base-assert-is-nan': 0.2.1 - '@stdlib/math-base-special-abs': 0.2.1 - '@stdlib/math-base-special-ln': 0.2.3 - '@stdlib/math-base-special-sinpi': 0.2.1 - '@stdlib/math-base-special-trunc': 0.2.1 + '@stdlib/constants-float64-eps': 0.2.2 + '@stdlib/math-base-assert-is-nan': 0.2.2 + '@stdlib/math-base-special-expm1': 0.2.3 + '@stdlib/math-base-special-gamma': 0.2.1 + '@stdlib/math-base-special-ln': 0.2.4 + '@stdlib/math-base-special-log1p': 0.2.3 + dev: false + + /@stdlib/math-base-special-gammainc/0.2.2: + resolution: {integrity: sha512-ffKZFiv/41SXs2Xms7IW3lPnICR898yfWAidq5uKjOLgRb3wrzNjq0sZ6EAVXvdBwyGULvSjyud28PpVhDLv3A==} + engines: {node: '>=0.10.0', npm: '>2.7.0'} + os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] + dependencies: + '@stdlib/constants-float64-e': 0.2.2 + '@stdlib/constants-float64-gamma-lanczos-g': 0.2.2 + '@stdlib/constants-float64-max': 0.2.2 + '@stdlib/constants-float64-max-ln': 0.2.2 + '@stdlib/constants-float64-min-ln': 0.2.2 + '@stdlib/constants-float64-pi': 0.2.2 + '@stdlib/constants-float64-pinf': 0.2.2 + '@stdlib/constants-float64-sqrt-eps': 0.2.2 + '@stdlib/constants-float64-sqrt-two-pi': 0.2.2 + '@stdlib/constants-float64-two-pi': 0.2.2 + '@stdlib/math-base-special-abs': 0.2.2 + '@stdlib/math-base-special-erfc': 0.2.4 + '@stdlib/math-base-special-exp': 0.2.4 + '@stdlib/math-base-special-floor': 0.2.3 + '@stdlib/math-base-special-gamma': 0.3.0 + '@stdlib/math-base-special-gamma-lanczos-sum-expg-scaled': 0.3.0 + '@stdlib/math-base-special-gamma1pm1': 0.2.2 + '@stdlib/math-base-special-gammaln': 0.2.2 + '@stdlib/math-base-special-ln': 0.2.4 + '@stdlib/math-base-special-log1p': 0.2.3 + '@stdlib/math-base-special-log1pmx': 0.2.3 + '@stdlib/math-base-special-max': 0.3.0 + '@stdlib/math-base-special-min': 0.2.3 + '@stdlib/math-base-special-pow': 0.3.0 + '@stdlib/math-base-special-powm1': 0.3.1 + '@stdlib/math-base-special-sqrt': 0.2.2 + '@stdlib/math-base-tools-continued-fraction': 0.2.2 + '@stdlib/math-base-tools-evalpoly': 0.2.2 + '@stdlib/math-base-tools-sum-series': 0.2.2 + dev: false + + /@stdlib/math-base-special-gammaincinv/0.2.2: + resolution: {integrity: sha512-bIZ94ob1rY87seDWsvBTBRxp8Ja2Y46DLtQYuaylHUQuK+I2xKy8XKL2ZHPsOfuwhXRqm+q+91PDjPEAdH1dQw==} + engines: {node: '>=0.10.0', npm: '>2.7.0'} + os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] + dependencies: + '@stdlib/constants-float32-max': 0.2.2 + '@stdlib/constants-float32-smallest-normal': 0.2.2 + '@stdlib/constants-float64-ln-sqrt-two-pi': 0.2.2 + '@stdlib/constants-float64-pinf': 0.2.2 + '@stdlib/constants-float64-sqrt-two-pi': 0.2.2 + '@stdlib/constants-float64-two-pi': 0.2.2 + '@stdlib/math-base-assert-is-nan': 0.2.2 + '@stdlib/math-base-special-abs': 0.2.2 + '@stdlib/math-base-special-erfcinv': 0.2.3 + '@stdlib/math-base-special-exp': 0.2.4 + '@stdlib/math-base-special-gamma': 0.3.0 + '@stdlib/math-base-special-gammainc': 0.2.2 + '@stdlib/math-base-special-gammaln': 0.2.2 + '@stdlib/math-base-special-ln': 0.2.4 + '@stdlib/math-base-special-min': 0.2.3 + '@stdlib/math-base-special-pow': 0.3.0 + '@stdlib/math-base-special-sqrt': 0.2.2 + '@stdlib/math-base-tools-evalpoly': 0.2.2 + debug: 2.6.9 dev: false - /@stdlib/math-base-special-gcd/0.2.1: - resolution: {integrity: sha512-w10k9W176lDkbiDIwnmVr1nkTyypTQLwA3/CN9qEUmXh/u8NlxkSnDYBpArcWnxE0oFaIggw8sLJ58TuMvxMaw==} + /@stdlib/math-base-special-gammaln/0.2.2: + resolution: {integrity: sha512-opG6HUlspi/GLvQAr4pcwyAevm7BYuymlopgNZ1VulWUvksDpytalaX3zva0idlD2HvniKrDmzHngT1N9p0J1A==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dependencies: - '@stdlib/constants-float64-ninf': 0.2.1 - '@stdlib/constants-float64-pinf': 0.2.1 - '@stdlib/constants-int32-max': 0.2.1 - '@stdlib/math-base-assert-is-integer': 0.2.4 - '@stdlib/math-base-assert-is-nan': 0.2.1 + '@stdlib/constants-float64-pi': 0.2.2 + '@stdlib/constants-float64-pinf': 0.2.2 + '@stdlib/math-base-assert-is-infinite': 0.2.2 + '@stdlib/math-base-assert-is-nan': 0.2.2 + '@stdlib/math-base-special-abs': 0.2.2 + '@stdlib/math-base-special-ln': 0.2.4 + '@stdlib/math-base-special-sinpi': 0.2.1 + '@stdlib/math-base-special-trunc': 0.2.2 dev: false - /@stdlib/math-base-special-kernel-betainc/0.2.1: - resolution: {integrity: sha512-81+Ef/wfzt8MruGLAzeXjfIr3svFC2ObrY8CJr0RNPRlGF5FrfF5NgrX4EK71ioLGrAaaxQVOCK3tpGL6r3llg==} + /@stdlib/math-base-special-gcd/0.2.1: + resolution: {integrity: sha512-w10k9W176lDkbiDIwnmVr1nkTyypTQLwA3/CN9qEUmXh/u8NlxkSnDYBpArcWnxE0oFaIggw8sLJ58TuMvxMaw==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dependencies: - '@stdlib/constants-float64-e': 0.2.1 - '@stdlib/constants-float64-eps': 0.2.1 - '@stdlib/constants-float64-gamma-lanczos-g': 0.2.1 - '@stdlib/constants-float64-half-pi': 0.2.1 - '@stdlib/constants-float64-max': 0.2.1 - '@stdlib/constants-float64-max-ln': 0.2.1 - '@stdlib/constants-float64-min-ln': 0.2.1 - '@stdlib/constants-float64-pi': 0.2.1 - '@stdlib/constants-float64-smallest-normal': 0.2.1 + '@stdlib/constants-float64-ninf': 0.2.2 + '@stdlib/constants-float64-pinf': 0.2.2 '@stdlib/constants-int32-max': 0.2.1 - '@stdlib/math-base-assert-is-nan': 0.2.1 - '@stdlib/math-base-special-abs': 0.2.1 - '@stdlib/math-base-special-asin': 0.2.2 - '@stdlib/math-base-special-beta': 0.2.1 - '@stdlib/math-base-special-binomcoef': 0.2.2 - '@stdlib/math-base-special-exp': 0.2.3 - '@stdlib/math-base-special-expm1': 0.2.2 - '@stdlib/math-base-special-factorial': 0.2.1 - '@stdlib/math-base-special-floor': 0.2.2 - '@stdlib/math-base-special-gamma': 0.2.1 - '@stdlib/math-base-special-gamma-delta-ratio': 0.2.1 - '@stdlib/math-base-special-gamma-lanczos-sum-expg-scaled': 0.2.1 - '@stdlib/math-base-special-gammainc': 0.2.1 - '@stdlib/math-base-special-gammaln': 0.2.1 - '@stdlib/math-base-special-ln': 0.2.3 - '@stdlib/math-base-special-log1p': 0.2.2 - '@stdlib/math-base-special-max': 0.2.1 - '@stdlib/math-base-special-maxabs': 0.2.1 - '@stdlib/math-base-special-min': 0.2.2 - '@stdlib/math-base-special-minabs': 0.2.2 - '@stdlib/math-base-special-pow': 0.2.1 - '@stdlib/math-base-special-sqrt': 0.2.1 - '@stdlib/math-base-tools-continued-fraction': 0.2.1 - '@stdlib/math-base-tools-sum-series': 0.2.1 - '@stdlib/utils-define-nonenumerable-read-only-property': 0.2.1 + '@stdlib/math-base-assert-is-integer': 0.2.5 + '@stdlib/math-base-assert-is-nan': 0.2.2 + dev: false + + /@stdlib/math-base-special-kernel-betainc/0.2.2: + resolution: {integrity: sha512-DQwQUWQkmZtjRgdvZ1yZOEdAYLQoEUEndbr47Z69Oe6AgwKwxxpZUh09h9imKheFCFHLVnwVUz20azIM5KifQw==} + engines: {node: '>=0.10.0', npm: '>2.7.0'} + os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] + dependencies: + '@stdlib/constants-float64-e': 0.2.2 + '@stdlib/constants-float64-eps': 0.2.2 + '@stdlib/constants-float64-gamma-lanczos-g': 0.2.2 + '@stdlib/constants-float64-half-pi': 0.2.2 + '@stdlib/constants-float64-max': 0.2.2 + '@stdlib/constants-float64-max-ln': 0.2.2 + '@stdlib/constants-float64-min-ln': 0.2.2 + '@stdlib/constants-float64-pi': 0.2.2 + '@stdlib/constants-float64-smallest-normal': 0.2.2 + '@stdlib/constants-int32-max': 0.3.0 + '@stdlib/math-base-assert-is-nan': 0.2.2 + '@stdlib/math-base-special-abs': 0.2.2 + '@stdlib/math-base-special-asin': 0.2.3 + '@stdlib/math-base-special-beta': 0.3.0 + '@stdlib/math-base-special-binomcoef': 0.2.3 + '@stdlib/math-base-special-exp': 0.2.4 + '@stdlib/math-base-special-expm1': 0.2.3 + '@stdlib/math-base-special-factorial': 0.3.0 + '@stdlib/math-base-special-floor': 0.2.3 + '@stdlib/math-base-special-gamma': 0.3.0 + '@stdlib/math-base-special-gamma-delta-ratio': 0.2.2 + '@stdlib/math-base-special-gamma-lanczos-sum-expg-scaled': 0.3.0 + '@stdlib/math-base-special-gammainc': 0.2.2 + '@stdlib/math-base-special-gammaln': 0.2.2 + '@stdlib/math-base-special-ln': 0.2.4 + '@stdlib/math-base-special-log1p': 0.2.3 + '@stdlib/math-base-special-max': 0.3.0 + '@stdlib/math-base-special-maxabs': 0.3.0 + '@stdlib/math-base-special-min': 0.2.3 + '@stdlib/math-base-special-minabs': 0.2.3 + '@stdlib/math-base-special-pow': 0.3.0 + '@stdlib/math-base-special-sqrt': 0.2.2 + '@stdlib/math-base-tools-continued-fraction': 0.2.2 + '@stdlib/math-base-tools-sum-series': 0.2.2 + '@stdlib/utils-define-nonenumerable-read-only-property': 0.2.2 dev: false /@stdlib/math-base-special-kernel-betaincinv/0.1.1: @@ -3746,121 +3938,121 @@ packages: engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dependencies: - '@stdlib/constants-float64-eps': 0.2.1 - '@stdlib/constants-float64-half-pi': 0.2.1 - '@stdlib/constants-float64-max': 0.2.1 - '@stdlib/constants-float64-pi': 0.2.1 - '@stdlib/constants-float64-smallest-normal': 0.2.1 - '@stdlib/constants-float64-smallest-subnormal': 0.2.1 - '@stdlib/constants-float64-sqrt-two': 0.2.1 - '@stdlib/math-base-special-abs': 0.2.1 - '@stdlib/math-base-special-acos': 0.2.2 - '@stdlib/math-base-special-asin': 0.2.2 + '@stdlib/constants-float64-eps': 0.2.2 + '@stdlib/constants-float64-half-pi': 0.2.2 + '@stdlib/constants-float64-max': 0.2.2 + '@stdlib/constants-float64-pi': 0.2.2 + '@stdlib/constants-float64-smallest-normal': 0.2.2 + '@stdlib/constants-float64-smallest-subnormal': 0.2.2 + '@stdlib/constants-float64-sqrt-two': 0.2.2 + '@stdlib/math-base-special-abs': 0.2.2 + '@stdlib/math-base-special-acos': 0.2.3 + '@stdlib/math-base-special-asin': 0.2.3 '@stdlib/math-base-special-beta': 0.2.1 - '@stdlib/math-base-special-betainc': 0.2.1 + '@stdlib/math-base-special-betainc': 0.2.2 '@stdlib/math-base-special-cos': 0.2.1 - '@stdlib/math-base-special-erfcinv': 0.2.2 - '@stdlib/math-base-special-exp': 0.2.3 - '@stdlib/math-base-special-expm1': 0.2.2 - '@stdlib/math-base-special-floor': 0.2.2 - '@stdlib/math-base-special-gamma-delta-ratio': 0.2.1 - '@stdlib/math-base-special-gammaincinv': 0.2.1 - '@stdlib/math-base-special-kernel-betainc': 0.2.1 - '@stdlib/math-base-special-ldexp': 0.2.2 - '@stdlib/math-base-special-ln': 0.2.3 - '@stdlib/math-base-special-log1p': 0.2.2 + '@stdlib/math-base-special-erfcinv': 0.2.3 + '@stdlib/math-base-special-exp': 0.2.4 + '@stdlib/math-base-special-expm1': 0.2.3 + '@stdlib/math-base-special-floor': 0.2.3 + '@stdlib/math-base-special-gamma-delta-ratio': 0.2.2 + '@stdlib/math-base-special-gammaincinv': 0.2.2 + '@stdlib/math-base-special-kernel-betainc': 0.2.2 + '@stdlib/math-base-special-ldexp': 0.2.3 + '@stdlib/math-base-special-ln': 0.2.4 + '@stdlib/math-base-special-log1p': 0.2.3 '@stdlib/math-base-special-max': 0.2.1 - '@stdlib/math-base-special-min': 0.2.2 + '@stdlib/math-base-special-min': 0.2.3 '@stdlib/math-base-special-pow': 0.2.1 '@stdlib/math-base-special-round': 0.2.1 - '@stdlib/math-base-special-signum': 0.2.1 + '@stdlib/math-base-special-signum': 0.2.2 '@stdlib/math-base-special-sin': 0.2.1 - '@stdlib/math-base-special-sqrt': 0.2.1 - '@stdlib/math-base-tools-evalpoly': 0.2.1 + '@stdlib/math-base-special-sqrt': 0.2.2 + '@stdlib/math-base-tools-evalpoly': 0.2.2 dev: false - /@stdlib/math-base-special-kernel-cos/0.2.2: - resolution: {integrity: sha512-8XofAj57zeBhrXQm6xlHtEu1+H1ihfNXUPr5s2KU0gvTD9cH6f7OOFJvuNLJLhuoLirwpJSUolql95fg1xOTqg==} + /@stdlib/math-base-special-kernel-cos/0.2.3: + resolution: {integrity: sha512-K5FbN25SmEc5Z89GejUkrZpqCv05ZX6D7g9SUFcKWFJ1fwiZNgxrF8q4aJtGDQhuV3q66C1gaKJyQeLq/OI8lQ==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dependencies: - '@stdlib/math-base-napi-binary': 0.2.1 - '@stdlib/utils-library-manifest': 0.2.1 + '@stdlib/math-base-napi-binary': 0.3.0 + '@stdlib/utils-library-manifest': 0.2.2 dev: false - /@stdlib/math-base-special-kernel-sin/0.2.2: - resolution: {integrity: sha512-/JPewJDjTJaqjkH6zPhxa0kRdH+wnn28jq5IJOv4vAvI+uqKTaR/at5LukFktcRwh+FYZgeORS0SYsK4fnGVUQ==} + /@stdlib/math-base-special-kernel-sin/0.2.3: + resolution: {integrity: sha512-PFnlGdapUaCaMXqZr+tG5Ioq+l4TCyGE5e8XEYlsyhNDILf0XE2ghHzlROA/wW365Arl4sPLWUoo4oH98DUPqw==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dependencies: - '@stdlib/math-base-napi-binary': 0.2.1 - '@stdlib/utils-library-manifest': 0.2.1 + '@stdlib/math-base-napi-binary': 0.3.0 + '@stdlib/utils-library-manifest': 0.2.2 dev: false - /@stdlib/math-base-special-ldexp/0.2.2: - resolution: {integrity: sha512-0U/Zftn/Ycq8JKHukGbA148/PVbbPDb+MGAXicfJ3Jcof9mHlbcnDOuSb4dOCrz4eqv/1RPR2ssOcWQMehi0hg==} + /@stdlib/math-base-special-ldexp/0.2.3: + resolution: {integrity: sha512-yD4YisQGVTJmTJUshuzpaoq34sxJtrU+Aw4Ih39mzgXiQi6sh3E3nijB8WXDNKr2v05acUWJ1PRMkkJSfu16Kg==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dependencies: - '@stdlib/constants-float64-exponent-bias': 0.2.1 - '@stdlib/constants-float64-max-base2-exponent': 0.2.1 - '@stdlib/constants-float64-max-base2-exponent-subnormal': 0.2.0 - '@stdlib/constants-float64-min-base2-exponent-subnormal': 0.2.0 - '@stdlib/constants-float64-ninf': 0.2.1 - '@stdlib/constants-float64-pinf': 0.2.1 - '@stdlib/math-base-assert-is-infinite': 0.2.1 - '@stdlib/math-base-assert-is-nan': 0.2.1 - '@stdlib/math-base-special-abs': 0.2.1 - '@stdlib/math-base-special-copysign': 0.2.1 - '@stdlib/number-float32-base-to-word': 0.2.1 - '@stdlib/number-float64-base-exponent': 0.2.1 - '@stdlib/number-float64-base-from-words': 0.2.1 - '@stdlib/number-float64-base-normalize': 0.2.2 - '@stdlib/number-float64-base-to-words': 0.2.1 - '@stdlib/utils-library-manifest': 0.2.1 + '@stdlib/constants-float64-exponent-bias': 0.2.2 + '@stdlib/constants-float64-max-base2-exponent': 0.2.2 + '@stdlib/constants-float64-max-base2-exponent-subnormal': 0.2.1 + '@stdlib/constants-float64-min-base2-exponent-subnormal': 0.2.1 + '@stdlib/constants-float64-ninf': 0.2.2 + '@stdlib/constants-float64-pinf': 0.2.2 + '@stdlib/math-base-assert-is-infinite': 0.2.2 + '@stdlib/math-base-assert-is-nan': 0.2.2 + '@stdlib/math-base-special-abs': 0.2.2 + '@stdlib/math-base-special-copysign': 0.2.2 + '@stdlib/number-float32-base-to-word': 0.2.2 + '@stdlib/number-float64-base-exponent': 0.2.2 + '@stdlib/number-float64-base-from-words': 0.2.2 + '@stdlib/number-float64-base-normalize': 0.2.3 + '@stdlib/number-float64-base-to-words': 0.2.2 + '@stdlib/utils-library-manifest': 0.2.2 dev: false - /@stdlib/math-base-special-ln/0.2.3: - resolution: {integrity: sha512-DAwMb9TnvMc3PpfRmY2HHlTtlRl8xVWP5vPnVmC3ELdHeJ8nUboU8X/jdos9LqZ/TwRJxgQMJxk4dX8j7Eff7Q==} + /@stdlib/math-base-special-ln/0.2.4: + resolution: {integrity: sha512-lSB47USaixrEmxwadT0/yByvTtxNhaRwN0FIXt5oj38bsgMXGW4V8xrANOy1N+hrn3KGfHJNDyFPYbXWVdMTIw==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dependencies: - '@stdlib/constants-float64-exponent-bias': 0.2.1 - '@stdlib/constants-float64-ninf': 0.2.1 - '@stdlib/math-base-assert-is-nan': 0.2.1 - '@stdlib/math-base-napi-unary': 0.2.1 - '@stdlib/number-float64-base-get-high-word': 0.2.1 - '@stdlib/number-float64-base-set-high-word': 0.2.1 - '@stdlib/utils-library-manifest': 0.2.1 + '@stdlib/constants-float64-exponent-bias': 0.2.2 + '@stdlib/constants-float64-ninf': 0.2.2 + '@stdlib/math-base-assert-is-nan': 0.2.2 + '@stdlib/math-base-napi-unary': 0.2.3 + '@stdlib/number-float64-base-get-high-word': 0.2.2 + '@stdlib/number-float64-base-set-high-word': 0.2.2 + '@stdlib/utils-library-manifest': 0.2.2 dev: false - /@stdlib/math-base-special-log1p/0.2.2: - resolution: {integrity: sha512-dcwuctmXE35yb1Rmwi+nju31Y75OGHFLcX6w5Y9RbkY7jmBxPFOaKK4NlahH2JarhDGti1aZ/0CJTtETMrZc0g==} + /@stdlib/math-base-special-log1p/0.2.3: + resolution: {integrity: sha512-1Pu3attNR+DcskIvhvyls+2KRZ0UCHQ/jP2tvgFI9bWDCgb4oEimXPzjFteGNg9Mj6WlAW2b9wU9tHt3bp8R3g==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dependencies: - '@stdlib/constants-float64-exponent-bias': 0.2.1 - '@stdlib/constants-float64-ninf': 0.2.1 - '@stdlib/constants-float64-pinf': 0.2.1 - '@stdlib/math-base-assert-is-nan': 0.2.1 - '@stdlib/math-base-napi-unary': 0.2.1 - '@stdlib/number-float64-base-get-high-word': 0.2.1 - '@stdlib/number-float64-base-set-high-word': 0.2.1 - '@stdlib/utils-library-manifest': 0.2.1 + '@stdlib/constants-float64-exponent-bias': 0.2.2 + '@stdlib/constants-float64-ninf': 0.2.2 + '@stdlib/constants-float64-pinf': 0.2.2 + '@stdlib/math-base-assert-is-nan': 0.2.2 + '@stdlib/math-base-napi-unary': 0.2.3 + '@stdlib/number-float64-base-get-high-word': 0.2.2 + '@stdlib/number-float64-base-set-high-word': 0.2.2 + '@stdlib/utils-library-manifest': 0.2.2 dev: false - /@stdlib/math-base-special-log1pmx/0.2.2: - resolution: {integrity: sha512-9KTgceZurChohZVp58nM1YYfbrdfl6Z07j/vMz/2Dj6zO+FVRDvwCtNc6LbDLhsH6/ojiG/uJ7ts0u9odkFNYA==} + /@stdlib/math-base-special-log1pmx/0.2.3: + resolution: {integrity: sha512-HfjDXcbFztm/GQRrn7a9FMYS0rm/4VPXWa50sYQzBHSYaEwYv5Y1awaZz+cA/ncuqAq1Mw0dfcwEMNRmZtnxEQ==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dependencies: - '@stdlib/constants-float64-eps': 0.2.1 - '@stdlib/math-base-napi-unary': 0.2.1 - '@stdlib/math-base-special-abs': 0.2.1 - '@stdlib/math-base-special-ln': 0.2.3 - '@stdlib/math-base-special-log1p': 0.2.2 - '@stdlib/math-base-tools-sum-series': 0.2.1 - '@stdlib/utils-library-manifest': 0.2.1 + '@stdlib/constants-float64-eps': 0.2.2 + '@stdlib/math-base-napi-unary': 0.2.3 + '@stdlib/math-base-special-abs': 0.2.2 + '@stdlib/math-base-special-ln': 0.2.4 + '@stdlib/math-base-special-log1p': 0.2.3 + '@stdlib/math-base-tools-sum-series': 0.2.2 + '@stdlib/utils-library-manifest': 0.2.2 dev: false /@stdlib/math-base-special-max/0.2.1: @@ -3868,80 +4060,126 @@ packages: engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dependencies: - '@stdlib/constants-float64-pinf': 0.2.1 - '@stdlib/math-base-assert-is-nan': 0.2.1 - '@stdlib/math-base-assert-is-positive-zero': 0.2.1 + '@stdlib/constants-float64-pinf': 0.2.2 + '@stdlib/math-base-assert-is-nan': 0.2.2 + '@stdlib/math-base-assert-is-positive-zero': 0.2.2 dev: false - /@stdlib/math-base-special-maxabs/0.2.1: - resolution: {integrity: sha512-pzBCSKeiNmwKspWeh/f1BhWcDIGmgmKYNFO5jbNRCKG8azCAeXsnuR/etW3r3IW1GwV3Qyq+jPJeCoUgT1n/Cw==} + /@stdlib/math-base-special-max/0.3.0: + resolution: {integrity: sha512-yXsmdFCLHRB24l34Kn1kHZXHKoGqBxPY/5Mi+n5qLg+FwrX85ZG6KGVbO3DfcpG1NxDTcEKb1hxbUargI0P5fw==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dependencies: - '@stdlib/math-base-special-abs': 0.2.1 - '@stdlib/math-base-special-max': 0.2.1 + '@stdlib/constants-float64-pinf': 0.2.2 + '@stdlib/math-base-assert-is-nan': 0.2.2 + '@stdlib/math-base-assert-is-positive-zero': 0.2.2 + '@stdlib/math-base-napi-binary': 0.2.1 + '@stdlib/utils-library-manifest': 0.2.2 dev: false - /@stdlib/math-base-special-min/0.2.2: - resolution: {integrity: sha512-vbiv706Nufbtvk9wZ+H5KlJ59aOwTSlWiLNgtfPSi14ahzXBt9cJTOHpGmwC1UVZO2lxWZ83P9U8IrgqyBcmMA==} + /@stdlib/math-base-special-maxabs/0.3.0: + resolution: {integrity: sha512-SDj+rGD9itZ/YG2hKzhLX4Tf13SNJdOyNsMy1ezjec6Az3xJXKzv2wJAJIteo0KF6jQnEDkI/F6OIF65MY+o0g==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dependencies: - '@stdlib/constants-float64-ninf': 0.2.1 - '@stdlib/math-base-assert-is-nan': 0.2.1 - '@stdlib/math-base-assert-is-negative-zero': 0.2.1 '@stdlib/math-base-napi-binary': 0.2.1 - '@stdlib/utils-library-manifest': 0.2.1 + '@stdlib/math-base-special-abs': 0.2.2 + '@stdlib/math-base-special-max': 0.2.1 + '@stdlib/utils-library-manifest': 0.2.2 dev: false - /@stdlib/math-base-special-minabs/0.2.2: - resolution: {integrity: sha512-dv3/E7qMvSp7QyP/mh+MbXBhc9gqeclZQzu2SvrqKaUZggpkkO+RPaZJEhtzmaOPRx678PFXVsdYJ8L5PYcX7g==} + /@stdlib/math-base-special-min/0.2.3: + resolution: {integrity: sha512-tNrKnkcHCRVWzteZJpZ/xql9B6N6EzecnUVizDYqG9y66bOVtI+TADcQ5I/bijEwAIi2BjrIVeq/TBEgQEQBkw==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dependencies: + '@stdlib/constants-float64-ninf': 0.2.2 + '@stdlib/math-base-assert-is-nan': 0.2.2 + '@stdlib/math-base-assert-is-negative-zero': 0.2.2 '@stdlib/math-base-napi-binary': 0.2.1 - '@stdlib/math-base-special-abs': 0.2.1 - '@stdlib/math-base-special-min': 0.2.2 - '@stdlib/utils-library-manifest': 0.2.1 + '@stdlib/utils-library-manifest': 0.2.2 dev: false - /@stdlib/math-base-special-pow/0.2.1: - resolution: {integrity: sha512-7SvgVzDkuilZKrHh4tPiXx9fypF/V7PSvAcUVjvcRj5kVEwv/15RpzlmCJlT9B20VPSx4gJ1S0UIA6xgmYFuAg==} + /@stdlib/math-base-special-minabs/0.2.3: + resolution: {integrity: sha512-IV7PSL09S2GHmsxxtFgebPEwLm/wHnC1e1ulP8Uiuo2zinOiv4NXy2tpf9T+nq95d0ICFMnr9IGxFs6Nd74hRw==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dependencies: - '@stdlib/constants-float64-exponent-bias': 0.2.1 - '@stdlib/constants-float64-high-word-abs-mask': 0.2.1 - '@stdlib/constants-float64-high-word-significand-mask': 0.2.1 - '@stdlib/constants-float64-ln-two': 0.2.1 - '@stdlib/constants-float64-ninf': 0.2.1 - '@stdlib/constants-float64-pinf': 0.2.1 - '@stdlib/math-base-assert-is-infinite': 0.2.1 - '@stdlib/math-base-assert-is-integer': 0.2.4 - '@stdlib/math-base-assert-is-nan': 0.2.1 - '@stdlib/math-base-assert-is-odd': 0.2.1 - '@stdlib/math-base-special-abs': 0.2.1 - '@stdlib/math-base-special-copysign': 0.2.1 - '@stdlib/math-base-special-ldexp': 0.2.2 - '@stdlib/math-base-special-sqrt': 0.2.1 - '@stdlib/number-float64-base-get-high-word': 0.2.1 - '@stdlib/number-float64-base-set-high-word': 0.2.1 - '@stdlib/number-float64-base-set-low-word': 0.2.1 - '@stdlib/number-float64-base-to-words': 0.2.1 - '@stdlib/number-uint32-base-to-int32': 0.2.1 + '@stdlib/math-base-napi-binary': 0.2.1 + '@stdlib/math-base-special-abs': 0.2.2 + '@stdlib/math-base-special-min': 0.2.3 + '@stdlib/utils-library-manifest': 0.2.2 dev: false - /@stdlib/math-base-special-powm1/0.2.1: - resolution: {integrity: sha512-DxNn9ddJY7Huok/eh0nIb1C2q5YZI2EqUH+o7Gs3eMsbJp0Oqh0zW3L2GmUYXuzwudSufDbHstQryk3diJEtuA==} + /@stdlib/math-base-special-pow/0.2.1: + resolution: {integrity: sha512-7SvgVzDkuilZKrHh4tPiXx9fypF/V7PSvAcUVjvcRj5kVEwv/15RpzlmCJlT9B20VPSx4gJ1S0UIA6xgmYFuAg==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dependencies: - '@stdlib/math-base-assert-is-nan': 0.2.1 - '@stdlib/math-base-special-abs': 0.2.1 - '@stdlib/math-base-special-expm1': 0.2.2 - '@stdlib/math-base-special-ln': 0.2.3 - '@stdlib/math-base-special-pow': 0.2.1 - '@stdlib/math-base-special-trunc': 0.2.1 + '@stdlib/constants-float64-exponent-bias': 0.2.2 + '@stdlib/constants-float64-high-word-abs-mask': 0.2.2 + '@stdlib/constants-float64-high-word-significand-mask': 0.2.2 + '@stdlib/constants-float64-ln-two': 0.2.2 + '@stdlib/constants-float64-ninf': 0.2.2 + '@stdlib/constants-float64-pinf': 0.2.2 + '@stdlib/math-base-assert-is-infinite': 0.2.2 + '@stdlib/math-base-assert-is-integer': 0.2.5 + '@stdlib/math-base-assert-is-nan': 0.2.2 + '@stdlib/math-base-assert-is-odd': 0.2.1 + '@stdlib/math-base-special-abs': 0.2.2 + '@stdlib/math-base-special-copysign': 0.2.2 + '@stdlib/math-base-special-ldexp': 0.2.3 + '@stdlib/math-base-special-sqrt': 0.2.2 + '@stdlib/number-float64-base-get-high-word': 0.2.2 + '@stdlib/number-float64-base-set-high-word': 0.2.2 + '@stdlib/number-float64-base-set-low-word': 0.2.2 + '@stdlib/number-float64-base-to-words': 0.2.2 + '@stdlib/number-uint32-base-to-int32': 0.2.2 + dev: false + + /@stdlib/math-base-special-pow/0.3.0: + resolution: {integrity: sha512-sMDYRUYGFyMXDHcCYy7hE07lV7jgI6rDspLMROKyESWcH4n8j54XE4/0w0i8OpdzR40H895MaPWU/tVnU1tP6w==} + engines: {node: '>=0.10.0', npm: '>2.7.0'} + os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] + dependencies: + '@stdlib/constants-float64-exponent-bias': 0.2.2 + '@stdlib/constants-float64-high-word-abs-mask': 0.2.2 + '@stdlib/constants-float64-high-word-significand-mask': 0.2.2 + '@stdlib/constants-float64-ln-two': 0.2.2 + '@stdlib/constants-float64-ninf': 0.2.2 + '@stdlib/constants-float64-pinf': 0.2.2 + '@stdlib/math-base-assert-is-infinite': 0.2.2 + '@stdlib/math-base-assert-is-integer': 0.2.5 + '@stdlib/math-base-assert-is-nan': 0.2.2 + '@stdlib/math-base-assert-is-odd': 0.3.0 + '@stdlib/math-base-napi-binary': 0.3.0 + '@stdlib/math-base-special-abs': 0.2.2 + '@stdlib/math-base-special-copysign': 0.2.2 + '@stdlib/math-base-special-ldexp': 0.2.3 + '@stdlib/math-base-special-sqrt': 0.2.2 + '@stdlib/number-float64-base-get-high-word': 0.2.2 + '@stdlib/number-float64-base-set-high-word': 0.2.2 + '@stdlib/number-float64-base-set-low-word': 0.2.2 + '@stdlib/number-float64-base-to-words': 0.2.2 + '@stdlib/number-uint32-base-to-int32': 0.2.2 + '@stdlib/utils-library-manifest': 0.2.2 + dev: false + + /@stdlib/math-base-special-powm1/0.3.1: + resolution: {integrity: sha512-Pz7e2JlZH9EktJCDuyFPoT9IxMUSiZiJquyh2xB92NQQi9CAIdyaPUryNo36LxG65bne5GZF47MeiWCE8oWgiA==} + engines: {node: '>=0.10.0', npm: '>2.7.0'} + os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] + dependencies: + '@stdlib/math-base-assert-is-infinite': 0.2.2 + '@stdlib/math-base-assert-is-nan': 0.2.2 + '@stdlib/math-base-napi-binary': 0.3.0 + '@stdlib/math-base-special-abs': 0.2.2 + '@stdlib/math-base-special-expm1': 0.2.3 + '@stdlib/math-base-special-fmod': 0.1.0 + '@stdlib/math-base-special-ln': 0.2.4 + '@stdlib/math-base-special-pow': 0.3.0 + '@stdlib/math-base-special-trunc': 0.2.2 + '@stdlib/utils-library-manifest': 0.2.2 dev: false /@stdlib/math-base-special-rempio2/0.2.1: @@ -3949,16 +4187,16 @@ packages: engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dependencies: - '@stdlib/array-base-zeros': 0.2.1 - '@stdlib/constants-float64-high-word-abs-mask': 0.2.1 - '@stdlib/constants-float64-high-word-exponent-mask': 0.2.1 - '@stdlib/constants-float64-high-word-significand-mask': 0.2.1 - '@stdlib/math-base-special-floor': 0.2.2 - '@stdlib/math-base-special-ldexp': 0.2.2 + '@stdlib/array-base-zeros': 0.2.2 + '@stdlib/constants-float64-high-word-abs-mask': 0.2.2 + '@stdlib/constants-float64-high-word-exponent-mask': 0.2.2 + '@stdlib/constants-float64-high-word-significand-mask': 0.2.2 + '@stdlib/math-base-special-floor': 0.2.3 + '@stdlib/math-base-special-ldexp': 0.2.3 '@stdlib/math-base-special-round': 0.2.1 - '@stdlib/number-float64-base-from-words': 0.2.1 - '@stdlib/number-float64-base-get-high-word': 0.2.1 - '@stdlib/number-float64-base-get-low-word': 0.2.1 + '@stdlib/number-float64-base-from-words': 0.2.2 + '@stdlib/number-float64-base-get-high-word': 0.2.2 + '@stdlib/number-float64-base-get-low-word': 0.2.2 dev: false /@stdlib/math-base-special-round/0.2.1: @@ -3967,14 +4205,14 @@ packages: os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dev: false - /@stdlib/math-base-special-signum/0.2.1: - resolution: {integrity: sha512-hUYfPk4wQUVB4rz1wNMYenMQ1qJnCODTd2QAhDeEvo5aELySd7PSAj2K2y/boHtqzBiWYnRRaFpOQgNiuTt/IQ==} + /@stdlib/math-base-special-signum/0.2.2: + resolution: {integrity: sha512-cszwgkfeMTnUiORRWdWv6Q/tpoXkXkMYNMoAFO5qzHTuahnDP37Lkn8fTmCEtgHEasg3Cm69xLbqP0UDuNPHyA==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dependencies: - '@stdlib/math-base-assert-is-nan': 0.2.1 - '@stdlib/math-base-napi-unary': 0.2.1 - '@stdlib/utils-library-manifest': 0.2.1 + '@stdlib/math-base-assert-is-nan': 0.2.2 + '@stdlib/math-base-napi-unary': 0.2.3 + '@stdlib/utils-library-manifest': 0.2.2 dev: false /@stdlib/math-base-special-sin/0.2.1: @@ -3982,12 +4220,12 @@ packages: engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dependencies: - '@stdlib/constants-float64-high-word-abs-mask': 0.2.1 - '@stdlib/constants-float64-high-word-exponent-mask': 0.2.1 - '@stdlib/math-base-special-kernel-cos': 0.2.2 - '@stdlib/math-base-special-kernel-sin': 0.2.2 + '@stdlib/constants-float64-high-word-abs-mask': 0.2.2 + '@stdlib/constants-float64-high-word-exponent-mask': 0.2.2 + '@stdlib/math-base-special-kernel-cos': 0.2.3 + '@stdlib/math-base-special-kernel-sin': 0.2.3 '@stdlib/math-base-special-rempio2': 0.2.1 - '@stdlib/number-float64-base-get-high-word': 0.2.1 + '@stdlib/number-float64-base-get-high-word': 0.2.2 dev: false /@stdlib/math-base-special-sinpi/0.2.1: @@ -3995,189 +4233,189 @@ packages: engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dependencies: - '@stdlib/constants-float64-pi': 0.2.1 - '@stdlib/math-base-assert-is-infinite': 0.2.1 - '@stdlib/math-base-assert-is-nan': 0.2.1 - '@stdlib/math-base-special-abs': 0.2.1 - '@stdlib/math-base-special-copysign': 0.2.1 + '@stdlib/constants-float64-pi': 0.2.2 + '@stdlib/math-base-assert-is-infinite': 0.2.2 + '@stdlib/math-base-assert-is-nan': 0.2.2 + '@stdlib/math-base-special-abs': 0.2.2 + '@stdlib/math-base-special-copysign': 0.2.2 '@stdlib/math-base-special-cos': 0.2.1 '@stdlib/math-base-special-sin': 0.2.1 dev: false - /@stdlib/math-base-special-sqrt/0.2.1: - resolution: {integrity: sha512-X0PywU+izTJwq0PVDuaohg0rbVRmOn4Hej7t4D3xNig70KFibOYdo5w2pEhIwdvNvWNa7h0dQ4qbyE3sAv4v1A==} + /@stdlib/math-base-special-sqrt/0.2.2: + resolution: {integrity: sha512-YWxe9vVE5blDbRPDAdZfU03vfGTBHy/8pLDa/qLz7SiJj5n5sVWKObdbMR2oPHF4c6DaZh4IYkrcHFleiY8YkQ==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dependencies: - '@stdlib/math-base-napi-unary': 0.2.1 - '@stdlib/utils-library-manifest': 0.2.1 + '@stdlib/math-base-napi-unary': 0.2.3 + '@stdlib/utils-library-manifest': 0.2.2 dev: false - /@stdlib/math-base-special-trunc/0.2.1: - resolution: {integrity: sha512-N6b0jKSelGrOYU3dKHFGhKmzcBxPChsjsXYNzcQ4ApPPZkPwu/3VWwNaPq6JMC4z2ThaeMkgPoQ/e7jutkyG9w==} + /@stdlib/math-base-special-trunc/0.2.2: + resolution: {integrity: sha512-cvizbo6oFEbdiv7BrtEMODGW+cJcBgyAIleJnIpCf75C722Y/IZgWikWhACSjv4stxGywFubx85B7uvm3vLgwA==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dependencies: - '@stdlib/math-base-napi-unary': 0.2.1 - '@stdlib/math-base-special-ceil': 0.2.1 - '@stdlib/math-base-special-floor': 0.2.2 - '@stdlib/utils-library-manifest': 0.2.1 + '@stdlib/math-base-napi-unary': 0.2.3 + '@stdlib/math-base-special-ceil': 0.2.2 + '@stdlib/math-base-special-floor': 0.2.3 + '@stdlib/utils-library-manifest': 0.2.2 dev: false - /@stdlib/math-base-tools-continued-fraction/0.2.1: - resolution: {integrity: sha512-Sh4PYhlUxGAe/9Km75C37FCPZY7+tC4Uf5K0VKEpd33KDGHM0ucMt1OvomGIRY8wi6wtxKrTKBjSOSN5Fl9Wxw==} + /@stdlib/math-base-tools-continued-fraction/0.2.2: + resolution: {integrity: sha512-5dm72lTXwSVOsBsOLF57RZqqHehRd9X3HKdQ3WhOoHx7fNc0lxJJEDjtK8gMdV3NvfoER1MBiGbs2h23oaK5qw==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dependencies: - '@stdlib/assert-has-generator-support': 0.2.1 - '@stdlib/constants-float32-smallest-normal': 0.2.1 - '@stdlib/constants-float64-eps': 0.2.1 - '@stdlib/math-base-special-abs': 0.2.1 + '@stdlib/assert-has-generator-support': 0.2.2 + '@stdlib/constants-float32-smallest-normal': 0.2.2 + '@stdlib/constants-float64-eps': 0.2.2 + '@stdlib/math-base-special-abs': 0.2.2 dev: false - /@stdlib/math-base-tools-evalpoly/0.2.1: - resolution: {integrity: sha512-uR5kdwp+kH8NihTapuit0WX9xZIe6lZkqbnudDhx7AC3OAE0WY9a2nqSNpIhYg/QVfIjYCD/6gT5bTCg1K3NJA==} + /@stdlib/math-base-tools-evalpoly/0.2.2: + resolution: {integrity: sha512-vLvfkMkccXZGFiyI3GPf8Ayi6vPEZeHgENnoBDGC+eMIDIoVWmOpVWsjpUz8xtc5xGNsa1hKalSI40IrouHsYA==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dependencies: - '@stdlib/function-ctor': 0.2.1 - '@stdlib/utils-define-nonenumerable-read-only-property': 0.2.1 + '@stdlib/function-ctor': 0.2.2 + '@stdlib/utils-define-nonenumerable-read-only-property': 0.2.2 dev: false - /@stdlib/math-base-tools-sum-series/0.2.1: - resolution: {integrity: sha512-z6lwiFj4q2tJifzXVJncVpcwN8l0M6TDCsQP0SPKeUeJyPw6dspIic43I5bitiGswW8bsMkEBEtneU1bBAVMQg==} + /@stdlib/math-base-tools-sum-series/0.2.2: + resolution: {integrity: sha512-P3X+jMONClp93ucJi1Up/x26uwL0kH20CMV9bLzcQyRY8Mceh7jPZuEwzGQR0jq/tJ/4J7AnHg4kdrx4Pd+BNA==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dependencies: - '@stdlib/assert-has-generator-support': 0.2.1 - '@stdlib/constants-float64-eps': 0.2.1 - '@stdlib/math-base-special-abs': 0.2.1 + '@stdlib/assert-has-generator-support': 0.2.2 + '@stdlib/constants-float64-eps': 0.2.2 + '@stdlib/math-base-special-abs': 0.2.2 dev: false - /@stdlib/number-ctor/0.2.1: - resolution: {integrity: sha512-Y77276+aKfpd5VSQLK5rGNo6ULW35I95zd+5V6hSF63UmpNppiuNe2z+6ltJmp1zI/pNuEscevmF4KVREhH47g==} + /@stdlib/number-ctor/0.2.2: + resolution: {integrity: sha512-98pL4f1uiXVIw9uRV6t4xecMFUYRRTUoctsqDDV8MSRtKEYDzqkWCNz/auupJFJ135L1ejzkejh73fASsgcwKQ==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dev: false - /@stdlib/number-float32-base-to-word/0.2.1: - resolution: {integrity: sha512-cxA423tsaV4tsUZUdOR+ROvLpwMFV9nLUrwNRqSSF9rBr0OT4oZ0EDqmQ5mBeMpFwz5k+EKELuJzOEirjCVg9Q==} + /@stdlib/number-float32-base-to-word/0.2.2: + resolution: {integrity: sha512-/I866ocLExPpAjgZnHAjeaBw3ZHg5tVPcRdJoTPEiBG2hwD/OonHdCsfB9lu6FxO6sbp7I9BR1JolCoEyrhmYg==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dependencies: - '@stdlib/array-float32': 0.2.1 - '@stdlib/array-uint32': 0.2.1 - '@stdlib/utils-library-manifest': 0.2.1 + '@stdlib/array-float32': 0.2.2 + '@stdlib/array-uint32': 0.2.2 + '@stdlib/utils-library-manifest': 0.2.2 dev: false - /@stdlib/number-float64-base-exponent/0.2.1: - resolution: {integrity: sha512-0gTks2TvT+zFkg2pOIvwA8et5JoVJRQhWT71e3TtmVgt1VcZJ9t+87X9+UcHmi+ea9zwa4ob1p61VDFch9kjtg==} + /@stdlib/number-float64-base-exponent/0.2.2: + resolution: {integrity: sha512-mYivBQKCuu54ulorf5A5rIhFaGPjGvmtkxhvK14q7gzRA80si83dk8buUsLpeeYsakg7yLn10RCVjBEP9/gm7Q==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dependencies: - '@stdlib/constants-float64-exponent-bias': 0.2.1 - '@stdlib/constants-float64-high-word-exponent-mask': 0.2.1 - '@stdlib/number-float64-base-get-high-word': 0.2.1 - '@stdlib/utils-library-manifest': 0.2.1 + '@stdlib/constants-float64-exponent-bias': 0.2.2 + '@stdlib/constants-float64-high-word-exponent-mask': 0.2.2 + '@stdlib/number-float64-base-get-high-word': 0.2.2 + '@stdlib/utils-library-manifest': 0.2.2 dev: false - /@stdlib/number-float64-base-from-words/0.2.1: - resolution: {integrity: sha512-J2HIDUkETc/+oeOWPVyCxtkUWf2vJm2lReu2K2koeq9+IcmQdaaPI+CDMdvL0o+fiIWGnlfw+GNobSmC+MhMUQ==} + /@stdlib/number-float64-base-from-words/0.2.2: + resolution: {integrity: sha512-SzMDXSnIDZ8l3PDmtN9TPKTf0mUmh83kKCtj4FisKTcTbcmUmT/ovmrpMTiqdposymjHBieNvGiCz/K03NmlAA==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dependencies: - '@stdlib/array-float64': 0.2.1 - '@stdlib/array-uint32': 0.2.1 - '@stdlib/assert-is-little-endian': 0.2.1 - '@stdlib/number-float64-base-to-words': 0.2.1 - '@stdlib/utils-library-manifest': 0.2.1 + '@stdlib/array-float64': 0.2.2 + '@stdlib/array-uint32': 0.2.2 + '@stdlib/assert-is-little-endian': 0.2.2 + '@stdlib/number-float64-base-to-words': 0.2.2 + '@stdlib/utils-library-manifest': 0.2.2 dev: false - /@stdlib/number-float64-base-get-high-word/0.2.1: - resolution: {integrity: sha512-SHc1ODPZAMwgCJ99xaO6AZAJDy57LOT+3/tu3e4MZzwD1XP1FgubHRA+XTVjmoTm2fIeXSJOn6yh3jzOe3EBvw==} + /@stdlib/number-float64-base-get-high-word/0.2.2: + resolution: {integrity: sha512-LMNQAHdLZepKOFMRXAXLuq30GInmEdTtR0rO7Ka4F3m7KpYvw84JMyvZByMQHBu+daR6JNr2a/o9aFjmVIe51g==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dependencies: - '@stdlib/array-float64': 0.2.1 - '@stdlib/array-uint32': 0.2.1 - '@stdlib/assert-is-little-endian': 0.2.1 - '@stdlib/number-float64-base-to-words': 0.2.1 - '@stdlib/utils-library-manifest': 0.2.1 + '@stdlib/array-float64': 0.2.2 + '@stdlib/array-uint32': 0.2.2 + '@stdlib/assert-is-little-endian': 0.2.2 + '@stdlib/number-float64-base-to-words': 0.2.2 + '@stdlib/utils-library-manifest': 0.2.2 dev: false - /@stdlib/number-float64-base-get-low-word/0.2.1: - resolution: {integrity: sha512-j+Y+kdmX5nni4OMUTeu0Bk5Bb5ZbW3jl4bgyE+uqVLBC0bk9nuFrEcPBRGBGxtZi5nZvKdK4z9BBqxoIkROYxQ==} + /@stdlib/number-float64-base-get-low-word/0.2.2: + resolution: {integrity: sha512-VZjflvoQ9//rZwwuhl7uSLUnnscdIIYmBrHofnBHRjHwdLGUzSd9PM0iagtvI82OHw5QnydBYI4hohBeAAg+aQ==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dependencies: - '@stdlib/array-float64': 0.2.1 - '@stdlib/array-uint32': 0.2.1 - '@stdlib/assert-is-little-endian': 0.2.1 - '@stdlib/number-float64-base-to-words': 0.2.1 - '@stdlib/utils-library-manifest': 0.2.1 + '@stdlib/array-float64': 0.2.2 + '@stdlib/array-uint32': 0.2.2 + '@stdlib/assert-is-little-endian': 0.2.2 + '@stdlib/number-float64-base-to-words': 0.2.2 + '@stdlib/utils-library-manifest': 0.2.2 dev: false - /@stdlib/number-float64-base-normalize/0.2.2: - resolution: {integrity: sha512-YEJy99uNYpamuFh/SfD+WcuHWvRO1xcnF3L8S0zoP7NQ7+RUmzLGvR1v0IAbjhJ5nqZUlM4MKyYM1vgxyHn1tw==} + /@stdlib/number-float64-base-normalize/0.2.3: + resolution: {integrity: sha512-HT+3fhYZOEg2JgHBWS/ysc9ZveQZV10weKbtxhLHOsvceQVp1GbThsLik62mU2/3f96S9MgiVfPfSDI3jnBoYw==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dependencies: - '@stdlib/constants-float64-smallest-normal': 0.2.1 - '@stdlib/math-base-assert-is-infinite': 0.2.1 - '@stdlib/math-base-assert-is-nan': 0.2.1 - '@stdlib/math-base-special-abs': 0.2.1 - '@stdlib/utils-define-nonenumerable-read-only-property': 0.2.1 - '@stdlib/utils-library-manifest': 0.2.1 + '@stdlib/constants-float64-smallest-normal': 0.2.2 + '@stdlib/math-base-assert-is-infinite': 0.2.2 + '@stdlib/math-base-assert-is-nan': 0.2.2 + '@stdlib/math-base-special-abs': 0.2.2 + '@stdlib/utils-define-nonenumerable-read-only-property': 0.2.2 + '@stdlib/utils-library-manifest': 0.2.2 dev: false - /@stdlib/number-float64-base-set-high-word/0.2.1: - resolution: {integrity: sha512-W3fntm8XVVqlSRjHYWngBm02Wj0c2DZMFZ7cv43gb3P3/K8ML7cttJuCQkP5IvkKu//MylzoWiPJWOY9q4drXQ==} + /@stdlib/number-float64-base-set-high-word/0.2.2: + resolution: {integrity: sha512-bLvH15GJgX5URMaOOJAQgO8/dCJPYUQoXPZH7ecSC3XnnVMfWEf43knkjEGYCnWp4nro5hPRElbtdV4mKEjpUg==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dependencies: - '@stdlib/array-float64': 0.2.1 - '@stdlib/array-uint32': 0.2.1 - '@stdlib/assert-is-little-endian': 0.2.1 - '@stdlib/number-float64-base-to-words': 0.2.1 - '@stdlib/utils-library-manifest': 0.2.1 + '@stdlib/array-float64': 0.2.2 + '@stdlib/array-uint32': 0.2.2 + '@stdlib/assert-is-little-endian': 0.2.2 + '@stdlib/number-float64-base-to-words': 0.2.2 + '@stdlib/utils-library-manifest': 0.2.2 dev: false - /@stdlib/number-float64-base-set-low-word/0.2.1: - resolution: {integrity: sha512-alPnPKZkS5l7mjtU85d4m91Pn9ol7Ow8CZITzLIlNurY+2JEXl+q+D4BZPr1LmoNliHYLL+wJOzPUELGtqeCIQ==} + /@stdlib/number-float64-base-set-low-word/0.2.2: + resolution: {integrity: sha512-E1pGjTwacJ+Tkt5rKQNdwitKnM1iDgMlulYosNdn6CtvU0Pkq359bNhscMscxehdY3MifwuJpuGzDWD2EGUXzQ==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dependencies: - '@stdlib/array-float64': 0.2.1 - '@stdlib/array-uint32': 0.2.1 - '@stdlib/assert-is-little-endian': 0.2.1 - '@stdlib/number-float64-base-to-words': 0.2.1 - '@stdlib/utils-library-manifest': 0.2.1 + '@stdlib/array-float64': 0.2.2 + '@stdlib/array-uint32': 0.2.2 + '@stdlib/assert-is-little-endian': 0.2.2 + '@stdlib/number-float64-base-to-words': 0.2.2 + '@stdlib/utils-library-manifest': 0.2.2 dev: false - /@stdlib/number-float64-base-to-float32/0.2.1: - resolution: {integrity: sha512-cAHWxJMrQ94XIrSIAobvmu8VAseM39zP4SYr/PinhtpGS1xTP/sx4Fr0oVQgxe4D7oLWsRaj1ORl99cSSzPcmQ==} + /@stdlib/number-float64-base-to-float32/0.2.2: + resolution: {integrity: sha512-T5snDkVNZY6pomrSW/qLWQfZ9JHgqCFLi8jaaarfNj2o+5NMUuvvRifLUIacTm8/uC96xB0j3+wKTh1zbIV5ig==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dependencies: - '@stdlib/array-float32': 0.2.1 + '@stdlib/array-float32': 0.2.2 dev: false - /@stdlib/number-float64-base-to-words/0.2.1: - resolution: {integrity: sha512-3DRMzeb3RN5pjkh3NEC4KgmzT3jvwbX46KLprG1Vai/lPuG26rvhE2l4W4dZbc7nd6SAKG2uMMWVzKrvgxGqpg==} + /@stdlib/number-float64-base-to-words/0.2.2: + resolution: {integrity: sha512-nkFHHXoMhb3vcfl7ZvzgiNdqBdBfbKxHtgvDXRxrNQoVmyYbnjljjYD489d2/TAhe+Zvn7qph6QLgTod3zaeww==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dependencies: - '@stdlib/array-float64': 0.2.1 - '@stdlib/array-uint32': 0.2.1 - '@stdlib/assert-is-little-endian': 0.2.1 - '@stdlib/os-byte-order': 0.2.1 - '@stdlib/os-float-word-order': 0.2.1 - '@stdlib/utils-define-nonenumerable-read-only-property': 0.2.1 - '@stdlib/utils-library-manifest': 0.2.1 + '@stdlib/array-float64': 0.2.2 + '@stdlib/array-uint32': 0.2.2 + '@stdlib/assert-is-little-endian': 0.2.2 + '@stdlib/os-byte-order': 0.2.2 + '@stdlib/os-float-word-order': 0.2.2 + '@stdlib/utils-define-nonenumerable-read-only-property': 0.2.2 + '@stdlib/utils-library-manifest': 0.2.2 dev: false - /@stdlib/number-uint32-base-to-int32/0.2.1: - resolution: {integrity: sha512-/o7TCLjq1Tw/7Yqdo6SlzM+h5piIQk4ZUa41GoekfMqzyHwuM3hkxUiTf/Si2QqfKX1ZLfxgA53Yq7hLsk+69w==} + /@stdlib/number-uint32-base-to-int32/0.2.2: + resolution: {integrity: sha512-NPADfdHE/3VEifKDttXM24dRj5YQqxwh2wTRD8fQrpHeaWiMIUo8yDqWrrFNIdLVAcqjL2SwWpo4VJ7oKTYaIA==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dev: false @@ -4188,43 +4426,43 @@ packages: os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dev: false - /@stdlib/os-byte-order/0.2.1: - resolution: {integrity: sha512-nNZVafgeAb8TdDFUXRVXIoeRX5ulg2BnhAJLu7wEO7OfZJLLBET7FHG0G/HWNettCrSjdfs6W6BCrDMdsDJESA==} + /@stdlib/os-byte-order/0.2.2: + resolution: {integrity: sha512-2y6rHAvZo43YmZu9u/E/7cnqZa0hNTLoIiMpV1IxQ/7iv03xZ45Z3xyvWMk0b7bAWwWL7iUknOAAmEchK/kHBA==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dependencies: - '@stdlib/assert-is-big-endian': 0.2.1 - '@stdlib/assert-is-little-endian': 0.2.1 + '@stdlib/assert-is-big-endian': 0.2.2 + '@stdlib/assert-is-little-endian': 0.2.2 dev: false - /@stdlib/os-float-word-order/0.2.1: - resolution: {integrity: sha512-nur3EwuXt6Etek70UZBRcT1hG1HbS+/liWfbY1vk/wlaebRb4LWmaIwdbjQvQSHPLmQVdmIUdvqgSbDTpL52Kw==} + /@stdlib/os-float-word-order/0.2.2: + resolution: {integrity: sha512-5xpcEuxv/CudKctHS5czKdM7Bj/gC+sm/5R5bRPYyqxANM67t365j3v2v8rmmOxkEp9t0fa8Dggx8VmOkpJXaA==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dependencies: - '@stdlib/os-byte-order': 0.2.1 + '@stdlib/os-byte-order': 0.2.2 dev: false - /@stdlib/process-cwd/0.2.1: - resolution: {integrity: sha512-VnUglHWLeotm/zqhEmPaRtVBcivbr7mRbMn3MP0z9u8uS4aYRgQy32tHhYfZdYb+RANJIDylTMJnczN+sDKbYA==} + /@stdlib/process-cwd/0.2.2: + resolution: {integrity: sha512-8Q/nA/ud5d5PEzzG6ZtKzcOw+RMLm5CWR8Wd+zVO5vcPj+JD7IV7M2lBhbzfUzr63Torrf/vEhT3cob8vUHV/A==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dev: false - /@stdlib/regexp-extended-length-path/0.2.1: - resolution: {integrity: sha512-sQFAjW0JieAsvVyrIBJyAS5eObp+W0J/h6omsrxecRQc8HkTTc8HnseSMtWRxIw4/Z2dm4+0VLxosHugAy2F3w==} + /@stdlib/regexp-extended-length-path/0.2.2: + resolution: {integrity: sha512-z3jqauEsaxpsQU3rj1A1QnOgu17pyW5kt+Az8QkoTk7wqNE8HhPikI6k4o7XBHV689rSFWZCl4c4W+7JAiNObQ==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dependencies: - '@stdlib/utils-define-nonenumerable-read-only-property': 0.2.1 + '@stdlib/utils-define-nonenumerable-read-only-property': 0.2.2 dev: false - /@stdlib/regexp-function-name/0.2.1: - resolution: {integrity: sha512-Ba/EpQ6Lt9CybnFGd5IWvwk8iKCWVv9zVsssuY5ABHhKc+nK0b7CK5qorISMYOMhVHH8PwofhY/iQtWfeb8RWA==} + /@stdlib/regexp-function-name/0.2.2: + resolution: {integrity: sha512-0z/KRsgHJJ3UQkmBeLH+Nin0hXIeA+Fw1T+mnG2V5CHnTA6FKlpxJxWrvwLEsRX7mR/DNtDp06zGyzMFE/4kig==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dependencies: - '@stdlib/utils-define-nonenumerable-read-only-property': 0.2.1 + '@stdlib/utils-define-nonenumerable-read-only-property': 0.2.2 dev: false /@stdlib/stats-base-dists-t-quantile/0.2.1: @@ -4232,173 +4470,177 @@ packages: engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dependencies: - '@stdlib/math-base-assert-is-nan': 0.2.1 + '@stdlib/math-base-assert-is-nan': 0.2.2 '@stdlib/math-base-special-kernel-betaincinv': 0.1.1 - '@stdlib/math-base-special-signum': 0.2.1 - '@stdlib/math-base-special-sqrt': 0.2.1 - '@stdlib/utils-constant-function': 0.2.1 - '@stdlib/utils-define-nonenumerable-read-only-property': 0.2.1 + '@stdlib/math-base-special-signum': 0.2.2 + '@stdlib/math-base-special-sqrt': 0.2.2 + '@stdlib/utils-constant-function': 0.2.2 + '@stdlib/utils-define-nonenumerable-read-only-property': 0.2.2 dev: false - /@stdlib/string-base-format-interpolate/0.2.1: - resolution: {integrity: sha512-Uxz89eUi4m9yao4VjsqXIxLIF7qDmqEAH0e+XBRWRGC2zx6DhmK2kLnaU0xW69+VJPn3dq4itxq0oryw2E+qIQ==} + /@stdlib/string-base-format-interpolate/0.2.2: + resolution: {integrity: sha512-i9nU9rAB2+o/RR66TS9iQ8x+YzeUDL1SGiAo6GY3hP6Umz5Dx9Qp/v8T69gWVsb4a1YSclz5+YeCWaFgwvPjKA==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dev: false - /@stdlib/string-base-format-tokenize/0.2.1: - resolution: {integrity: sha512-3Ut96pmCgEFArrdwXKm1q0j1FOqTnG/uOsh24uYNU/ABRsMOOajRlAjCCdQv9f8P916qPrSnF1V3Pd18LAaksg==} + /@stdlib/string-base-format-tokenize/0.2.2: + resolution: {integrity: sha512-kXq2015i+LJjqth5dN+hYnvJXBSzRm8w0ABWB5tYAsIuQTpQK+mSo2muM8JBEFEnqUHAwpUsu2qNTK/9o8lsJg==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dev: false - /@stdlib/string-base-lowercase/0.3.1: - resolution: {integrity: sha512-4VnyWsIkmzHP5mVU1UJVZBSlAt4oxaRBj4fSQhG3kcKnS+5ZtfncWQDsskM0WveSkBRi37DXdyhbPm0/KYQUwA==} + /@stdlib/string-base-lowercase/0.4.0: + resolution: {integrity: sha512-IH35Z5e4T+S3b3SfYY39mUhrD2qvJVp4VS7Rn3+jgj4+C3syocuAPsJ8C4OQXWGfblX/N9ymizbpFBCiVvMW8w==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dev: false - /@stdlib/string-base-replace/0.2.1: - resolution: {integrity: sha512-n7FRXJDCFTr7BfW/HOhyaOFKYrzsUHS3MULrykCld5MEJrVbTL61eXRWBPhMWeTVwJHCHU6zxtiwGt4+cU5vdg==} + /@stdlib/string-base-replace/0.2.2: + resolution: {integrity: sha512-Y4jZwRV4Uertw7AlA/lwaYl1HjTefSriN5+ztRcQQyDYmoVN3gzoVKLJ123HPiggZ89vROfC+sk/6AKvly+0CA==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dev: false - /@stdlib/string-format/0.2.1: - resolution: {integrity: sha512-+HpXkEJ0Z4gthH5KicXvRRJiCiCTSrKzM+mS8N6vwaAD+OG+Oq8Cn43XBD1ic/UHROI9un42MruF1ZLlkSmdOw==} + /@stdlib/string-format/0.2.2: + resolution: {integrity: sha512-GUa50uxgMAtoItsxTbMmwkyhIwrCxCrsjzk3nAbLnt/1Kt1EWOWMwsALqZdD6K4V/xSJ4ns6PZur3W6w+vKk9g==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dependencies: - '@stdlib/string-base-format-interpolate': 0.2.1 - '@stdlib/string-base-format-tokenize': 0.2.1 + '@stdlib/string-base-format-interpolate': 0.2.2 + '@stdlib/string-base-format-tokenize': 0.2.2 dev: false - /@stdlib/string-replace/0.2.1: - resolution: {integrity: sha512-rle3pW4KowxxITbrad0+/cjRg+zWUMITvWqK2MKNDRfI8x9Jf1wOA34N7w0YBCMcT6UVQDJKX3cwe4rhz3ZDKw==} + /@stdlib/string-replace/0.2.2: + resolution: {integrity: sha512-czNS5IU7sBuHjac45Y3VWUTsUoi82yc8JsMZrOMcjgSrEuDrVmA6sNJg7HC1DuSpdPjm/v9uUk102s1gIfk3Nw==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dependencies: - '@stdlib/assert-is-function': 0.2.1 - '@stdlib/assert-is-regexp': 0.2.1 - '@stdlib/assert-is-string': 0.2.1 - '@stdlib/string-base-replace': 0.2.1 - '@stdlib/string-format': 0.2.1 - '@stdlib/utils-escape-regexp-string': 0.2.1 + '@stdlib/assert-is-function': 0.2.2 + '@stdlib/assert-is-regexp': 0.2.2 + '@stdlib/assert-is-string': 0.2.2 + '@stdlib/error-tools-fmtprodmsg': 0.2.2 + '@stdlib/string-base-replace': 0.2.2 + '@stdlib/string-format': 0.2.2 + '@stdlib/utils-escape-regexp-string': 0.2.2 dev: false - /@stdlib/symbol-ctor/0.2.1: - resolution: {integrity: sha512-ZZAuKPJZ9PVrbRCp4iPKdlyh7uyrCi39dqrU/j/w38mOzYZJV6utK33eeAIsQH5yMDO7Tr0Zu69TKGf2XqmaPw==} + /@stdlib/symbol-ctor/0.2.2: + resolution: {integrity: sha512-XsmiTfHnTb9jSPf2SoK3O0wrNOXMxqzukvDvtzVur1XBKfim9+seaAS4akmV1H3+AroAXQWVtde885e1B6jz1w==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dev: false - /@stdlib/utils-constant-function/0.2.1: - resolution: {integrity: sha512-9ZkxLhmz45a6Yi0meIkgWxod5rwSaUz5yc2tBWmOBrwpXFcwwpm9/bOI8+QJklJl/pcFxN6CoGCRvl0ggfLtkw==} + /@stdlib/utils-constant-function/0.2.2: + resolution: {integrity: sha512-ezRenGy5zU4R0JTfha/bpF8U+Hx0b52AZV++ca/pcaQVvPBRkgCsJacXX0eDbexoBB4+ZZ1vcyIi4RKJ0RRlbQ==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dev: false - /@stdlib/utils-constructor-name/0.2.1: - resolution: {integrity: sha512-liLBKiHjR5pPrvq+H2UtDA05LMRHGZgyxOAGiR/rW5Lb1OmBHOQcxzR9k4TK3Ck0pHPzS8Oe6Yxy/d7lO9sqFg==} + /@stdlib/utils-constructor-name/0.2.2: + resolution: {integrity: sha512-TBtO3MKDAf05ij5ajmyBCbpKKt0Lfahn5tu18gqds4PkFltgcw5tVZfSHY5DZ2HySJQ2GMMYjPW2Kbg6yPCSVg==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dependencies: - '@stdlib/assert-is-buffer': 0.2.1 - '@stdlib/regexp-function-name': 0.2.1 - '@stdlib/utils-native-class': 0.2.1 + '@stdlib/assert-is-buffer': 0.2.2 + '@stdlib/regexp-function-name': 0.2.2 + '@stdlib/utils-native-class': 0.2.2 dev: false - /@stdlib/utils-convert-path/0.2.1: - resolution: {integrity: sha512-8RN52B1tXN8LFP5nQJWK8zYJxLRcYymEs+glSYAWHXR8A4O+RKLFaJRvVCiND20N/jddagOyanOWJcrebhlkzg==} + /@stdlib/utils-convert-path/0.2.2: + resolution: {integrity: sha512-8nNuAgt23Np9NssjShUrPK42c6gRTweGuoQw+yTpTfBR9VQv8WFyt048n8gRGUlAHizrdMNpEY9VAb7IBzpVYw==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dependencies: - '@stdlib/assert-is-string': 0.2.1 - '@stdlib/regexp-extended-length-path': 0.2.1 - '@stdlib/string-base-lowercase': 0.3.1 - '@stdlib/string-format': 0.2.1 - '@stdlib/string-replace': 0.2.1 + '@stdlib/assert-is-string': 0.2.2 + '@stdlib/error-tools-fmtprodmsg': 0.2.2 + '@stdlib/regexp-extended-length-path': 0.2.2 + '@stdlib/string-base-lowercase': 0.4.0 + '@stdlib/string-format': 0.2.2 + '@stdlib/string-replace': 0.2.2 dev: false - /@stdlib/utils-define-nonenumerable-read-only-property/0.2.1: - resolution: {integrity: sha512-L8fs1kI79T2RQIg8rHR9aQnnSDELqiDGWbK3jA1NP8iW+ydxlxXyO8Dw17fBCXVua3Y19a1NVyGtIN5WGe2UCw==} + /@stdlib/utils-define-nonenumerable-read-only-property/0.2.2: + resolution: {integrity: sha512-V3mpAesJemLYDKG376CsmoczWPE/4LKsp8xBvUxCt5CLNAx3J/1W39iZQyA5q6nY1RStGinGn1/dYZwa8ig0Uw==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dependencies: - '@stdlib/utils-define-property': 0.2.3 + '@stdlib/utils-define-property': 0.2.4 dev: false - /@stdlib/utils-define-property/0.2.3: - resolution: {integrity: sha512-+EzWImaQR/6XNFbXIITFi3PLQGTbKVIWSYxJfHXAuTtibAMnhHOWvEzKOumVe/Q4Cdsrc3/PIkpjJzliqAX9AA==} + /@stdlib/utils-define-property/0.2.4: + resolution: {integrity: sha512-XlMdz7xwuw/sqXc9LbsV8XunCzZXjbZPC+OAdf4t4PBw4ZRwGzlTI6WED+f4PYR5Tp9F1cHgLPyMYCIBfA2zRg==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dependencies: - '@stdlib/error-tools-fmtprodmsg': 0.2.1 - '@stdlib/string-format': 0.2.1 + '@stdlib/error-tools-fmtprodmsg': 0.2.2 + '@stdlib/string-format': 0.2.2 dev: false - /@stdlib/utils-escape-regexp-string/0.2.1: - resolution: {integrity: sha512-JwxkU1JGuHu9WJfEAgAvGElizGfainZ25JqIxLOn1pzpmHRW0RVa2cq+scgTjlAvHebcDjjkRQN66ROzIDgUNw==} + /@stdlib/utils-escape-regexp-string/0.2.2: + resolution: {integrity: sha512-areCibzgpmvm6pGKBg+mXkSDJW4NxtS5jcAT7RtunGMdAYhA/I5whISMPaeJkIT2XhjjFkjKBaIs5pF6aPr4fQ==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dependencies: - '@stdlib/assert-is-string': 0.2.1 - '@stdlib/string-format': 0.2.1 + '@stdlib/assert-is-string': 0.2.2 + '@stdlib/error-tools-fmtprodmsg': 0.2.2 + '@stdlib/string-format': 0.2.2 dev: false - /@stdlib/utils-eval/0.2.1: - resolution: {integrity: sha512-pcVcLAi+PXxcMBjint23s4tiMeEp6bRbyAxmoRYrsPae7dtLsiM6+4Hk0hiFFtfa4h3UwYThB7q4gl9J3h7Xog==} + /@stdlib/utils-eval/0.2.2: + resolution: {integrity: sha512-MaFpWZh3fGcTjUeozju5faXqH8w4MRVfpO/M5pon3osTM0by8zrKiI5D9oWqNVygb9JBd+etE+4tj2L1nr5j2A==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dev: false - /@stdlib/utils-get-prototype-of/0.2.1: - resolution: {integrity: sha512-qb8IQd93m47VisTGi6Awu2i2sk+ptzmnIkUt9lYYrNDK5EIpH/nveAuWTfi/X/QdJpFfIXtTuC/sv43KAgYe1Q==} + /@stdlib/utils-get-prototype-of/0.2.2: + resolution: {integrity: sha512-eDb1BAvt7GW/jduBkfuQrUsA9p09mV8RW20g0DWPaxci6ORYg/UB0tdbAA23aZz2QUoxdYY5s/UJxlq/GHwoKQ==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dependencies: - '@stdlib/assert-is-function': 0.2.1 + '@stdlib/assert-is-function': 0.2.2 '@stdlib/object-ctor': 0.2.1 - '@stdlib/utils-native-class': 0.2.1 + '@stdlib/utils-native-class': 0.2.2 dev: false - /@stdlib/utils-global/0.2.1: - resolution: {integrity: sha512-xf/cwHUN/BFSTYwiokQmMLxuXlYZYzNch/HgyDGx78bCx4MAVinK86EzP0dPn8HOLcZ/roxtQ5rXsyD49lEp/w==} + /@stdlib/utils-global/0.2.2: + resolution: {integrity: sha512-A4E8VFHn+1bpfJ4PA8H2b62CMQpjv2A+H3QDEBrouLFWne0wrx0TNq8vH6VYHxx9ZRxhgWQjfHiSAxtUJobrbQ==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dependencies: - '@stdlib/assert-is-boolean': 0.2.1 - '@stdlib/string-format': 0.2.1 + '@stdlib/assert-is-boolean': 0.2.2 + '@stdlib/error-tools-fmtprodmsg': 0.2.2 + '@stdlib/string-format': 0.2.2 dev: false - /@stdlib/utils-library-manifest/0.2.1: - resolution: {integrity: sha512-5qhCqcJ2DD1ZylPOX7JGzzIGpgXJ5UsiG2oOmS/P8XEnoQA9DVMXt7aCD60AN+pE5QUfK+r20144XH7JMBQzMw==} + /@stdlib/utils-library-manifest/0.2.2: + resolution: {integrity: sha512-YqzVLuBsB4wTqzdUtRArAjBJoT3x61iop2jFChXexhl6ejV3vDpHcukEEkqIOcJKut+1cG5TLJdexgHNt1C0NA==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dependencies: - '@stdlib/fs-resolve-parent-path': 0.2.1 - '@stdlib/utils-convert-path': 0.2.1 + '@stdlib/fs-resolve-parent-path': 0.2.2 + '@stdlib/utils-convert-path': 0.2.2 debug: 2.6.9 - resolve: 1.22.8 + resolve: 1.22.10 dev: false - /@stdlib/utils-native-class/0.2.1: - resolution: {integrity: sha512-tM3am6amt50I4mFRlClExUmORqPzMExgDyZc4Lur+LXn5wb0uEoeBbJ27ftMDg8PNLSi5RUuBCwZBEXvYpG0yw==} + /@stdlib/utils-native-class/0.2.2: + resolution: {integrity: sha512-cSn/FozbEpfR/FlJAoceQtZ8yUJFhZ8RFkbEsxW/7+H4o09yln3lBS0HSfUJISYNtpTNN/2/Fup88vmvwspvwA==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dependencies: - '@stdlib/assert-has-own-property': 0.2.1 - '@stdlib/assert-has-tostringtag-support': 0.2.1 - '@stdlib/symbol-ctor': 0.2.1 + '@stdlib/assert-has-own-property': 0.2.2 + '@stdlib/assert-has-tostringtag-support': 0.2.2 + '@stdlib/symbol-ctor': 0.2.2 dev: false - /@stdlib/utils-type-of/0.2.1: - resolution: {integrity: sha512-FE7rbPMkHwFsciA8ntfAcMvJ71DCerNO7m/pnpq+cFPR7bJSb8h2gaIqoHTkg9+vTMnJaOo3tDIWz4vN/CEQ8w==} + /@stdlib/utils-type-of/0.2.2: + resolution: {integrity: sha512-RLGFxPNgY9AtVVrFGdKO6Y3pOd/Ov2WA4O2/czZN/AbgYzbPdoF0KkfvHRIney6k+TtvoyYB8YqZXJ4G88f9BQ==} engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] dependencies: - '@stdlib/utils-constructor-name': 0.2.1 - '@stdlib/utils-global': 0.2.1 + '@stdlib/utils-constructor-name': 0.2.2 + '@stdlib/utils-global': 0.2.2 dev: false /@szmarczak/http-timer/1.1.2: @@ -4482,42 +4724,42 @@ packages: /@types/babel__core/7.20.0: resolution: {integrity: sha512-+n8dL/9GWblDO0iU6eZAwEIJVr5DWigtle+Q6HLOrh/pdbXOhOtqzq8VPPE2zvNJzSKY4vH/z3iT3tn0A3ypiQ==} dependencies: - '@babel/parser': 7.24.5 - '@babel/types': 7.24.5 + '@babel/parser': 7.26.9 + '@babel/types': 7.26.9 '@types/babel__generator': 7.6.8 '@types/babel__template': 7.4.4 - '@types/babel__traverse': 7.20.5 + '@types/babel__traverse': 7.20.6 /@types/babel__generator/7.6.8: resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==} dependencies: - '@babel/types': 7.24.5 + '@babel/types': 7.26.9 /@types/babel__template/7.4.4: resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} dependencies: - '@babel/parser': 7.24.5 - '@babel/types': 7.24.5 + '@babel/parser': 7.26.9 + '@babel/types': 7.26.9 - /@types/babel__traverse/7.20.5: - resolution: {integrity: sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==} + /@types/babel__traverse/7.20.6: + resolution: {integrity: sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==} dependencies: - '@babel/types': 7.24.5 + '@babel/types': 7.26.9 /@types/chai-subset/1.3.5: resolution: {integrity: sha512-c2mPnw+xHtXDoHmdtcCXGwyLMiauiAyxWMzhGpqHC4nqI/Y5G2XhTampslK2rb59kpcuHon03UH8W6iYUzw88A==} dependencies: - '@types/chai': 4.3.16 + '@types/chai': 4.3.20 dev: true - /@types/chai/4.3.16: - resolution: {integrity: sha512-PatH4iOdyh3MyWtmHVFXLWCCIhUbopaltqddG9BzB+gMIzee2MJrvd+jouii9Z3wzQJruGWAm7WOMjgfG8hQlQ==} + /@types/chai/4.3.20: + resolution: {integrity: sha512-/pC9HAB5I/xMlc5FP77qjCnI16ChlJfW0tGa0IUcFn38VJrTV6DeZ60NU5KZBtaOZqjdpwTWohz5HU1RrhiYxQ==} dev: true /@types/clean-css/4.2.6: resolution: {integrity: sha512-Ze1tf+LnGPmG6hBFMi0B4TEB0mhF7EiMM5oyjLDNPE9hxrPU0W+5+bHvO+eFPA+bt0iC1zkQMoU/iGdRVjcRbw==} dependencies: - '@types/node': 20.12.12 + '@types/node': 22.13.4 source-map: 0.6.1 dev: true @@ -4531,8 +4773,8 @@ packages: resolution: {integrity: sha512-p2zEz57kHxWVg39XZ9QQVW6ity4rC3/1cCeLqm2eqqomvOrf8CFYaw7jO8gdYuchO4532ak0Z0f/vBr9irwG/w==} dev: true - /@types/estree/1.0.5: - resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} + /@types/estree/1.0.6: + resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} /@types/euclidean-distance/1.0.3: resolution: {integrity: sha512-xC2/ybsj2K+/B7QeoRzvkmhfweUuOkkUGvpefkp4wKrdk7XnzFlepETI2dkYsb0ladJhTwI6P2VfKoEIhy68gA==} @@ -4544,40 +4786,40 @@ packages: /@types/fs-extra/9.0.13: resolution: {integrity: sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==} dependencies: - '@types/node': 20.12.12 + '@types/node': 22.13.4 dev: true /@types/glob-stream/8.0.2: resolution: {integrity: sha512-kyuRfGE+yiSJWzSO3t74rXxdZNdYfLcllO0IUha4eX1fl40pm9L02Q/TEc3mykTLjoWz4STBNwYnUWdFu3I0DA==} dependencies: - '@types/node': 20.12.12 - '@types/picomatch': 2.3.3 + '@types/node': 22.13.4 + '@types/picomatch': 3.0.2 '@types/streamx': 2.9.5 dev: true /@types/glob-watcher/5.0.2: resolution: {integrity: sha512-MZeh2nIzibl/euv5UV0femkGzcKTSE4G2+zv48d6ymeitWwCx52+4X+FqzML9oH2mQnPs+N/JHp3CsBPj1x1Ug==} dependencies: - '@types/node': 20.12.12 + '@types/node': 22.13.4 dev: true /@types/glob/7.2.0: resolution: {integrity: sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==} dependencies: '@types/minimatch': 5.1.2 - '@types/node': 20.12.12 + '@types/node': 22.13.4 dev: true /@types/graceful-fs/4.1.9: resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==} dependencies: - '@types/node': 20.12.12 + '@types/node': 22.13.4 dev: true /@types/gulp-if/0.0.34: resolution: {integrity: sha512-r2A04hHDC+ZWMRAm+3q6/UeC3ggvl+TZm9P1+2umnp4q9bOlBmUQnR178Io3c0DkZPQAwup8VNtOvmvaWCpP5w==} dependencies: - '@types/node': 20.12.12 + '@types/node': 22.13.4 '@types/vinyl': 2.0.7 dev: true @@ -4591,7 +4833,7 @@ packages: /@types/gulp-sourcemaps/0.0.35: resolution: {integrity: sha512-vUBuizwA4CAV3Mke0DJYHQxyN4YOB1aAql284qAO7Et7fe0hmnPi/R9Fhu2UhxMuSxAwFktsJUOQk5dJHOU1eA==} dependencies: - '@types/node': 20.12.12 + '@types/node': 22.13.4 '@types/vinyl': 2.0.7 dev: true @@ -4660,8 +4902,8 @@ packages: resolution: {integrity: sha512-/THyiqyQAP9AfARo4pF+aCGcyiQ94tX/Is2I7HofNRqoYLgN1PBoOWu2/zTA5zMxzP5EFutMtWtGAFRKUe961Q==} dev: true - /@types/markdown-it/13.0.8: - resolution: {integrity: sha512-V+KmpgiipS+zoypeUSS9ojesWtY/0k4XfqcK2fnVrX/qInJhX7rsCxZ/rygiPH2zxlPPrhfuW0I6ddMcWTKLsg==} + /@types/markdown-it/13.0.9: + resolution: {integrity: sha512-1XPwR0+MgXLWfTn9gCsZ55AHOKW1WN+P9vr0PaQh5aerR9LLQXUbjfEAFhjmEmyoYFWAyuN2Mqkn40MZ4ukjBw==} dependencies: '@types/linkify-it': 3.0.5 '@types/mdurl': 1.0.5 @@ -4674,7 +4916,7 @@ packages: /@types/merge2/1.4.0: resolution: {integrity: sha512-MRHDvln2ldZELrUC8n1PGaQzZ33aNh8uDcsGehREW0zR1Fr818a4/JTZjO9eloHPPxnpUp8fz/YFTRc5CWm7Xw==} dependencies: - '@types/node': 20.12.12 + '@types/node': 22.13.4 dev: true /@types/minimatch/5.1.2: @@ -4697,36 +4939,38 @@ packages: resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==} dev: true - /@types/node/20.12.12: - resolution: {integrity: sha512-eWLDGF/FOSPtAvEqeRAQ4C8LSA7M1I7i0ky1I8U7kD1J5ITyW3AsRhQrKVoWf5pFKZ2kILsEGJhsI9r93PYnOw==} + /@types/node/22.13.4: + resolution: {integrity: sha512-ywP2X0DYtX3y08eFVx5fNIw7/uIv8hYUKgXoK8oayJlLnKcRfEYCxWMVE1XagUdVtCJlZT1AU4LXEABW+L1Peg==} dependencies: - undici-types: 5.26.5 + undici-types: 6.20.0 /@types/normalize-package-data/2.4.4: resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} dev: true - /@types/picomatch/2.3.3: - resolution: {integrity: sha512-Yll76ZHikRFCyz/pffKGjrCwe/le2CDwOP5F210KQo27kpRE46U2rDnzikNlVn6/ezH3Mhn46bJMTfeVTtcYMg==} + /@types/picomatch/3.0.2: + resolution: {integrity: sha512-n0i8TD3UDB7paoMMxA3Y65vUncFJXjcUf7lQY7YyKGl6031FNjfsLs6pdLFCy2GNFxItPJG8GvvpbZc2skH7WA==} dev: true /@types/prettier/2.7.3: resolution: {integrity: sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==} dev: true - /@types/prop-types/15.7.12: - resolution: {integrity: sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==} + /@types/prop-types/15.7.14: + resolution: {integrity: sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==} - /@types/react-dom/18.3.0: - resolution: {integrity: sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==} + /@types/react-dom/18.3.5_@types+react@18.3.18: + resolution: {integrity: sha512-P4t6saawp+b/dFrUr2cvkVsfvPguwsxtH6dNIYRllMsefqFzkZk5UIjzyDOv5g1dXIPdG4Sp1yCR4Z6RCUsG/Q==} + peerDependencies: + '@types/react': ^18.0.0 dependencies: - '@types/react': 18.3.2 + '@types/react': 18.3.18 dev: true - /@types/react/18.3.2: - resolution: {integrity: sha512-Btgg89dAnqD4vV7R3hlwOxgqobUQKgx3MmrQRi0yYbs/P0ym8XozIAlkqVilPqHQwXs4e9Tf63rrCgl58BcO4w==} + /@types/react/18.3.18: + resolution: {integrity: sha512-t4yC+vtgnkYjNSKlFx1jkAhH8LgTo2N/7Qvi83kdEaUtMDiwpbLAktKDaAMlRcJ5eSxZkH74eEGt1ky31d7kfQ==} dependencies: - '@types/prop-types': 15.7.12 + '@types/prop-types': 15.7.14 csstype: 3.1.3 /@types/resolve/1.20.2: @@ -4748,7 +4992,7 @@ packages: /@types/streamx/2.9.5: resolution: {integrity: sha512-IHYsa6jYrck8VEdSwpY141FTTf6D7boPeMq9jy4qazNrFMA4VbRz/sw5LSsfR7jwdDcx0QKWkUexZvsWBC2eIQ==} dependencies: - '@types/node': 20.12.12 + '@types/node': 22.13.4 dev: true /@types/terser/3.12.0: @@ -4761,7 +5005,7 @@ packages: /@types/through2/2.0.38: resolution: {integrity: sha512-YFu+nHmjxMurkH1BSzA0Z1WrKDAY8jUKPZctNQn7mc+/KKtp2XxnclHFXxdB1m7Iqnzb5aywgP8TMK283LezGQ==} dependencies: - '@types/node': 20.12.12 + '@types/node': 22.13.4 dev: true /@types/undertaker-registry/1.0.4: @@ -4771,7 +5015,7 @@ packages: /@types/undertaker/1.2.8: resolution: {integrity: sha512-gW3PRqCHYpo45XFQHJBhch7L6hytPsIe0QeLujlnFsjHPnXLhJcPdN6a9368d7aIQgH2I/dUTPFBlGeSNA3qOg==} dependencies: - '@types/node': 20.12.12 + '@types/node': 22.13.4 '@types/undertaker-registry': 1.0.4 async-done: 1.3.2 dev: true @@ -4780,7 +5024,7 @@ packages: resolution: {integrity: sha512-ckYz9giHgV6U10RFuf9WsDQ3X86EFougapxHmmoxLK7e6ICQqO8CE+4V/3lBN148V5N1pb4nQMmMjyScleVsig==} dependencies: '@types/glob-stream': 8.0.2 - '@types/node': 20.12.12 + '@types/node': 22.13.4 '@types/vinyl': 2.0.7 dev: true @@ -4788,7 +5032,7 @@ packages: resolution: {integrity: sha512-4UqPv+2567NhMQuMLdKAyK4yzrfCqwaTt6bLhHEs8PFcxbHILsrxaY63n4wgE/BRLDWDQeI+WcTmkXKExh9hQg==} dependencies: '@types/expect': 1.20.4 - '@types/node': 20.12.12 + '@types/node': 22.13.4 /@types/yargs-parser/21.0.0: resolution: {integrity: sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==} @@ -4824,9 +5068,9 @@ packages: debug: 4.3.4 eslint: 8.18.0 functional-red-black-tree: 1.0.1 - ignore: 5.3.1 + ignore: 5.3.2 regexpp: 3.2.0 - semver: 7.6.2 + semver: 7.7.1 tsutils: 3.21.0_typescript@4.9.5 typescript: 4.9.5 transitivePeerDependencies: @@ -4849,9 +5093,9 @@ packages: '@typescript-eslint/utils': 5.30.0_typescript@4.9.5 debug: 4.3.4 functional-red-black-tree: 1.0.1 - ignore: 5.3.1 + ignore: 5.3.2 regexpp: 3.2.0 - semver: 7.6.2 + semver: 7.7.1 tsutils: 3.21.0_typescript@4.9.5 typescript: 4.9.5 transitivePeerDependencies: @@ -4957,7 +5201,7 @@ packages: debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 - semver: 7.6.2 + semver: 7.7.1 tsutils: 3.21.0_typescript@4.9.5 typescript: 4.9.5 transitivePeerDependencies: @@ -5008,31 +5252,32 @@ packages: resolution: {integrity: sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==} dev: true - /@visactor/vchart-theme/1.11.5_@visactor+vchart@1.10.4: - resolution: {integrity: sha512-scHPV7Gxm7v51fpR+Mv2B9T2vJtOZqwjAaY4CLHu0UE1JZ1REMLC0t/EhxJIfTZAc4ErsTANJ8gYdpi76mCoTw==} + /@visactor/vchart-theme/1.12.2_@visactor+vchart@1.13.5: + resolution: {integrity: sha512-r298TUdK+CKbHGVYWgQnNSEB5uqpFvF2/aMNZ/2POQnd2CovAPJOx2nTE6hAcOn8rra2FwJ2xF8AyP1O5OhrTw==} peerDependencies: '@visactor/vchart': '>=1.10.4' dependencies: - '@visactor/vchart': 1.10.4 + '@visactor/vchart': 1.13.5 dev: false - /@visactor/vchart/1.10.4: - resolution: {integrity: sha512-vKX+y0H/fvWcOsKqxgFThkGQ220cKDod4vuFURo4osR9frnRqjXtrXi5RT6gYpjveDDVMKHy9wD2T898d9IIug==} + /@visactor/vchart/1.13.5: + resolution: {integrity: sha512-GYpLpNb56LX6CG3YlgcUk0bv4nIwvn9FFLtixe8cPjnkVLHyAR/LkoMYPUz7JwBmItgFPnNEayhEH6j7c4daPA==} dependencies: - '@visactor/vdataset': 0.18.8 - '@visactor/vgrammar-core': 0.12.8 - '@visactor/vgrammar-hierarchy': 0.12.8 - '@visactor/vgrammar-projection': 0.12.8 - '@visactor/vgrammar-sankey': 0.12.8 - '@visactor/vgrammar-util': 0.12.8 - '@visactor/vgrammar-wordcloud': 0.12.8 - '@visactor/vgrammar-wordcloud-shape': 0.12.8 - '@visactor/vrender-components': 0.18.8 - '@visactor/vrender-core': 0.18.8 - '@visactor/vrender-kits': 0.18.8 - '@visactor/vscale': 0.18.8 - '@visactor/vutils': 0.18.8 - '@visactor/vutils-extension': 1.10.4 + '@visactor/vdataset': 0.19.4 + '@visactor/vgrammar-core': 0.15.6 + '@visactor/vgrammar-hierarchy': 0.15.6 + '@visactor/vgrammar-projection': 0.15.6 + '@visactor/vgrammar-sankey': 0.15.6 + '@visactor/vgrammar-util': 0.15.6 + '@visactor/vgrammar-venn': 0.15.6 + '@visactor/vgrammar-wordcloud': 0.15.6 + '@visactor/vgrammar-wordcloud-shape': 0.15.6 + '@visactor/vrender-components': 0.21.15 + '@visactor/vrender-core': 0.21.15 + '@visactor/vrender-kits': 0.21.15 + '@visactor/vscale': 0.19.4 + '@visactor/vutils': 0.19.4 + '@visactor/vutils-extension': 1.13.5 /@visactor/vdataset/0.17.5: resolution: {integrity: sha512-zVBdLWHWrhldGc8JDjSYF9lvpFT4ZEFQDB0b6yvfSiHzHKHiSco+rWmUFvA7r4ObT6j2QWF1vZAV9To8Ml4vHw==} @@ -5049,20 +5294,20 @@ packages: geobuf: 3.0.2 geojson-dissolve: 3.1.0 path-browserify: 1.0.1 - pbf: 3.2.1 + pbf: 3.3.0 point-at-length: 1.1.0 - simple-statistics: 7.8.3 + simple-statistics: 7.8.7 simplify-geojson: 1.0.5 topojson-client: 3.1.0 dev: false - /@visactor/vdataset/0.18.8: - resolution: {integrity: sha512-vYZtZR0DLaYamZvLWJuelwOPUVY+6c+czN5erdQSAVz+7OEn1b9YgxdFJTzJ/loQIxkJNxF/aYLrqrqBzHaNIA==} + /@visactor/vdataset/0.19.4: + resolution: {integrity: sha512-xxglcFtvho5jWiQPKwTolKXbNOG8f77CrK7TJhfiqNlzoe27qO8B+A6lUKlLMt1kZaCH7ZNrFFkHyPjnnZ/gng==} dependencies: '@turf/flatten': 6.5.0 '@turf/helpers': 6.5.0 '@turf/rewind': 6.5.0 - '@visactor/vutils': 0.18.8 + '@visactor/vutils': 0.19.4 d3-dsv: 2.0.0 d3-geo: 1.12.1 d3-hexbin: 0.2.2 @@ -5071,128 +5316,130 @@ packages: geobuf: 3.0.2 geojson-dissolve: 3.1.0 path-browserify: 1.0.1 - pbf: 3.2.1 + pbf: 3.3.0 point-at-length: 1.1.0 - simple-statistics: 7.8.3 + simple-statistics: 7.8.7 simplify-geojson: 1.0.5 topojson-client: 3.1.0 - /@visactor/vgrammar-coordinate/0.12.8: - resolution: {integrity: sha512-e4/Qc6xVkzDFbPShQ9T7kNa16vELfrE6iwzP5sFHiHOxp3U5nRajYffPK4SSAS6/my9sGplhKK4HC2gpasd0EQ==} + /@visactor/vgrammar-coordinate/0.15.6: + resolution: {integrity: sha512-BQumlt//0xO0cii1uer0ydfVm5hIZ7tNjT3goxmeqrKfk/Yd3kaUsyz22M9yyJ0gU0B0Uo3mWhNJSts2NOP9vA==} dependencies: - '@visactor/vgrammar-util': 0.12.8 - '@visactor/vutils': 0.18.8 + '@visactor/vgrammar-util': 0.15.6 + '@visactor/vutils': 0.19.4 - /@visactor/vgrammar-core/0.12.8: - resolution: {integrity: sha512-RcvLxYcYK9xJC/vs2IndsVdmtOevqOJ3NWsinO4AGfed/AzWxXKxVTQ30XhylBtOSF3nz8fLdg8vRP8pZYjtng==} + /@visactor/vgrammar-core/0.15.6: + resolution: {integrity: sha512-y6BIzaTn3ov0BfrmKEkhEBZvIZjMDl0MgYTr/GtOjnrHvk9Yvl8skOHWLz8B6oD3VBWmpNLh8p08DReO4CGtTg==} dependencies: - '@visactor/vdataset': 0.18.8 - '@visactor/vgrammar-coordinate': 0.12.8 - '@visactor/vgrammar-util': 0.12.8 - '@visactor/vrender-components': 0.18.8 - '@visactor/vrender-core': 0.18.8 - '@visactor/vrender-kits': 0.18.8 - '@visactor/vscale': 0.18.8 - '@visactor/vutils': 0.18.8 + '@visactor/vdataset': 0.19.4 + '@visactor/vgrammar-coordinate': 0.15.6 + '@visactor/vgrammar-util': 0.15.6 + '@visactor/vrender-components': 0.21.15 + '@visactor/vrender-core': 0.21.15 + '@visactor/vrender-kits': 0.21.15 + '@visactor/vscale': 0.19.4 + '@visactor/vutils': 0.19.4 - /@visactor/vgrammar-hierarchy/0.12.8: - resolution: {integrity: sha512-NNYrYRAqa0iGlMdpZPK1yexdmTE2HCmPzz52CotoopLVzzrJ1L7LqO4fTUwT21nZAMsQ2iPHh4AX1bwdQ2IRCQ==} + /@visactor/vgrammar-hierarchy/0.15.6: + resolution: {integrity: sha512-bZt4mS4QTEjzblvg4zja9c8JL3nwTL6x8pcOtqTwIidt2pkyk29r30wOuTJwgeT/Vh2j0yu4vSYk29QYLwQi8Q==} dependencies: - '@visactor/vgrammar-core': 0.12.8 - '@visactor/vgrammar-util': 0.12.8 - '@visactor/vrender-core': 0.18.8 - '@visactor/vrender-kits': 0.18.8 - '@visactor/vutils': 0.18.8 + '@visactor/vgrammar-core': 0.15.6 + '@visactor/vgrammar-util': 0.15.6 + '@visactor/vrender-core': 0.21.15 + '@visactor/vrender-kits': 0.21.15 + '@visactor/vutils': 0.19.4 - /@visactor/vgrammar-projection/0.12.8: - resolution: {integrity: sha512-sDrsMoTticsopUQ4Rtn0uywY6JdCEgF1fresAGOTmLCGPy1AYXNIKXQIi2DYxmNsUb+XUWJNOaml+lHX5YeBbQ==} + /@visactor/vgrammar-projection/0.15.6: + resolution: {integrity: sha512-xQnBHknHQ1iMkqlwefnGWJtD+edn++Mh+fRrMqjqo1S5etY6gJUkKIp+oxCIsiCZr0PxJyDxV99ZdlakMe6W8A==} dependencies: - '@visactor/vgrammar-core': 0.12.8 - '@visactor/vgrammar-util': 0.12.8 - '@visactor/vutils': 0.18.8 + '@visactor/vgrammar-core': 0.15.6 + '@visactor/vgrammar-util': 0.15.6 + '@visactor/vutils': 0.19.4 d3-geo: 1.12.1 - /@visactor/vgrammar-sankey/0.12.8: - resolution: {integrity: sha512-+Cf8pb8HKcRk/06t+DNbf+EPjPmRdTLI0LefY+QzViWu7+tzEJCH7B79Y4o1pXF4ECWKCx3poiMp8+3I1FWrig==} + /@visactor/vgrammar-sankey/0.15.6: + resolution: {integrity: sha512-7WcYKk5on8TtGEVTnSQAAfRffs90/6/rxuAqNrVDVjX8KCJ+ENkqhERZFiAQlnzt1p2pg4GTmk/CrkLH3/SIBA==} dependencies: - '@visactor/vgrammar-core': 0.12.8 - '@visactor/vgrammar-util': 0.12.8 - '@visactor/vrender-core': 0.18.8 - '@visactor/vrender-kits': 0.18.8 - '@visactor/vutils': 0.18.8 + '@visactor/vgrammar-core': 0.15.6 + '@visactor/vgrammar-util': 0.15.6 + '@visactor/vrender-core': 0.21.15 + '@visactor/vrender-kits': 0.21.15 + '@visactor/vutils': 0.19.4 - /@visactor/vgrammar-util/0.12.8: - resolution: {integrity: sha512-To1YW+oL/zhiIPzRcgjt1TrrSOyKT/kaDh1Agn8w1NpRcac2LZ930QTm9QPAeMHMZC9HjuT8UnJC9GeHbhVlNw==} + /@visactor/vgrammar-util/0.15.6: + resolution: {integrity: sha512-Ub0/EJc/kOSVum65CGmV1ApAi1Nl2/sdKJ7wFGGVfEayifY35Oc41b4YP7AQ02OaMFnPa9qokSv73YiGYuma1Q==} dependencies: - '@visactor/vutils': 0.18.8 + '@visactor/vrender-core': 0.21.15 + '@visactor/vutils': 0.19.4 - /@visactor/vgrammar-wordcloud-shape/0.12.8: - resolution: {integrity: sha512-GaLLEHz/Ru+AyctmD3HcqGbxE+mQsncEY8VQH6F+jf3n0sFZpphWptbSL2Ld2RCf3oo7XERMEPki954XHfuL0A==} + /@visactor/vgrammar-venn/0.15.6: + resolution: {integrity: sha512-uluqJ0XWiuITIdSdSEOn/aBWaVp4DRUkPyou4M1gwgSX85wU4BOJYgpLPOlbWUqX9eZ6ozQj7bwTS4vILiLakg==} dependencies: - '@visactor/vgrammar-core': 0.12.8 - '@visactor/vgrammar-util': 0.12.8 - '@visactor/vrender-core': 0.18.8 - '@visactor/vrender-kits': 0.18.8 - '@visactor/vscale': 0.18.8 - '@visactor/vutils': 0.18.8 + '@visactor/vgrammar-core': 0.15.6 + '@visactor/vgrammar-util': 0.15.6 + '@visactor/vrender-core': 0.21.15 + '@visactor/vrender-kits': 0.21.15 + '@visactor/vutils': 0.19.4 - /@visactor/vgrammar-wordcloud/0.12.8: - resolution: {integrity: sha512-WhZCaUc1C0xW5caMHuFsuRPI5Q+4JPkoQdkgNfw1HkJ0oPZUuqnpj++j4h2w+B87yFZ9pAbvyp2VeKZh6Avj2w==} + /@visactor/vgrammar-wordcloud-shape/0.15.6: + resolution: {integrity: sha512-2dT/YRZNZBuq5EvXbma6DjuUa7OoGeHMeoWpQLDQHgTtbqgNvWZw/lqOZ9IMQ7Jfrp7IeA3V/1bIwzr9+UnX/g==} dependencies: - '@visactor/vgrammar-core': 0.12.8 - '@visactor/vgrammar-util': 0.12.8 - '@visactor/vrender-core': 0.18.8 - '@visactor/vrender-kits': 0.18.8 - '@visactor/vutils': 0.18.8 + '@visactor/vgrammar-core': 0.15.6 + '@visactor/vgrammar-util': 0.15.6 + '@visactor/vrender-core': 0.21.15 + '@visactor/vrender-kits': 0.21.15 + '@visactor/vscale': 0.19.4 + '@visactor/vutils': 0.19.4 - /@visactor/vrender-components/0.18.8: - resolution: {integrity: sha512-/P7MSXIYFzg++zw/jg+Fqogknp17BJWhaoVrCBIZgF45O+qGkCbxZGa2kMR4dGs05lqLvb6/Zle8D3g3Pr2/qg==} + /@visactor/vgrammar-wordcloud/0.15.6: + resolution: {integrity: sha512-HX9wVPBc3rafCH6DnETa2PxlThLL7rqGWU0igz4f+0NpAmjuCpp4V8c5IH+aqYp5UZAuo3gI7rfCIHgVAQgAWw==} dependencies: - '@visactor/vrender-core': 0.18.8 - '@visactor/vrender-kits': 0.18.8 - '@visactor/vscale': 0.17.5 - '@visactor/vutils': 0.18.8 + '@visactor/vgrammar-core': 0.15.6 + '@visactor/vgrammar-util': 0.15.6 + '@visactor/vrender-core': 0.21.15 + '@visactor/vrender-kits': 0.21.15 + '@visactor/vutils': 0.19.4 + + /@visactor/vrender-components/0.21.15: + resolution: {integrity: sha512-RMMX5JFTdaOXmrCLi+3yY0tPSipqMS6MlWYLvycfNw3NFlaBkRtEjTDBJiK/x40qQZEzlZuPVIgDkzhCdfvhbA==} + dependencies: + '@visactor/vrender-core': 0.21.15 + '@visactor/vrender-kits': 0.21.15 + '@visactor/vscale': 0.19.4 + '@visactor/vutils': 0.19.4 /@visactor/vrender-core/0.17.29: resolution: {integrity: sha512-1l2lLfhl33xK8QIotvE/t+k9IqwqyZq66okI+CZvKstRnnC/Ct6VZ5S7Wh7lNyN98zX25bLhA4vsL9GQpu6BMw==} dependencies: - '@visactor/vutils': 0.18.8 + '@visactor/vutils': 0.18.18 color-convert: 2.0.1 dev: true - /@visactor/vrender-core/0.18.8: - resolution: {integrity: sha512-b3NgF89qsX1DvYAAR/YUIWqZVjjyXt5HF5+xfNh1VGhti6l8CLCa70Hxkg2Hnw3RBVP+o9t2T54U+Mwjg7RBuQ==} + /@visactor/vrender-core/0.21.15: + resolution: {integrity: sha512-FWiFu6pZK/0dpD/a97zON8TssTx0aefh+qm9oVmUjMNmltpt1Zs3wEMZyiuN3V17dNF4U0gdI6dLChUsqhZgfQ==} dependencies: - '@visactor/vutils': 0.18.8 + '@visactor/vutils': 0.19.4 color-convert: 2.0.1 - /@visactor/vrender-kits/0.18.8: - resolution: {integrity: sha512-cJppsZOuFB2BPFKn5Lq3uXDZ0SBQErMblwXdeL70f25MDgv1+FZm+TDoHjo9452rA7nHGSM4GaKoN47gb7HhIg==} + /@visactor/vrender-kits/0.21.15: + resolution: {integrity: sha512-bMp8hESV1vO9Nf7zNXE3MAGWQ6QTzedTzC8XyEHZZ2Mp4+XUagDLJfjQYhVMogulzEJ2H5wcMluDRfpbY13HCQ==} dependencies: '@resvg/resvg-js': 2.4.1 - '@visactor/vrender-core': 0.18.8 - '@visactor/vutils': 0.18.8 + '@visactor/vrender-core': 0.21.15 + '@visactor/vutils': 0.19.4 + gifuct-js: 2.1.2 roughjs: 4.5.2 - /@visactor/vscale/0.17.5: - resolution: {integrity: sha512-2dkS1IlAJ/IdTp8JElbctOOv6lkHKBKPDm8KvwBo0NuGWQeYAebSeyN3QCdwKbj76gMlCub4zc+xWrS5YiA2zA==} - dependencies: - '@visactor/vutils': 0.17.5 - - /@visactor/vscale/0.18.8: - resolution: {integrity: sha512-MNeLZ9qKJKZpIGhPTdBl9wPbD5NXIbv7ZuDYSxOXZ3I0gUkeHfgUXBGOpP083r0yjf24/B5o2V9GiJ8w01wSpg==} + /@visactor/vscale/0.19.4: + resolution: {integrity: sha512-kp69hPMof3GBKRuUiXSR9+9K+Z8ZXsTlOAwcnknXmiiZDhdcDkPlv27/d+Xx1Wi/iqw+BS2S7YIjHmfzdiVQ/Q==} dependencies: - '@visactor/vutils': 0.18.8 + '@visactor/vutils': 0.19.4 - /@visactor/vutils-extension/1.10.4: - resolution: {integrity: sha512-1qoZ+oEz+Ms3/iQrx8AudWi58IFPqjxcRE72Vam5xZN5jxrIdbQftN3BAvmQrcjteDMeSS1HgE0j/mUnxxDR8A==} + /@visactor/vutils-extension/1.13.5: + resolution: {integrity: sha512-6HGDlElS3IQFsMQ2xGGRJtW7WYSzMSOux4Y58Go1WxTbYNiQ0L/17wPM5IcM7rqdlYh9wNZhpES6cGsmVku+HA==} dependencies: - '@visactor/vdataset': 0.18.8 - '@visactor/vrender-components': 0.18.8 - '@visactor/vrender-core': 0.18.8 - '@visactor/vrender-kits': 0.18.8 - '@visactor/vscale': 0.18.8 - '@visactor/vutils': 0.18.8 + '@visactor/vdataset': 0.19.4 + '@visactor/vutils': 0.19.4 /@visactor/vutils/0.17.5: resolution: {integrity: sha512-HFN6Pk1Wc1RK842g02MeKOlvdri5L7/nqxMVTqxIvi0XMhHXpmoqN4+/9H+h8LmJpVohyrI/MT85TRBV/rManw==} @@ -5200,9 +5447,18 @@ packages: '@turf/helpers': 6.5.0 '@turf/invariant': 6.5.0 eventemitter3: 4.0.7 + dev: false + + /@visactor/vutils/0.18.18: + resolution: {integrity: sha512-byEJefqxiCz3UWe+YedEVjsdPtnJOAtKdRYi4qT9ojgACdd6QqlWs53Eb7PlMZgWDxVxqkxJP2bZnRKw+ME0Xg==} + dependencies: + '@turf/helpers': 6.5.0 + '@turf/invariant': 6.5.0 + eventemitter3: 4.0.7 + dev: true - /@visactor/vutils/0.18.8: - resolution: {integrity: sha512-9+YODg9msVyObDbamt94lsEF/idV8gyW3lf31DhuKsLKbuB/ajvSg6jNKD/FTMoXpmCNwfZgZ0F6wXLwI5aIpw==} + /@visactor/vutils/0.19.4: + resolution: {integrity: sha512-kLbcsTe1/3HSSvEJvJikzGD0plY0gdHbpxt98oo7W6OrianfYd97nm/w7rFXcq/S49e6C5d1SdU4MZk/PYxhEQ==} dependencies: '@turf/helpers': 6.5.0 '@turf/invariant': 6.5.0 @@ -5215,8 +5471,8 @@ packages: vite: ^4.1.0-beta.0 dependencies: '@babel/core': 7.20.12 - '@babel/plugin-transform-react-jsx-self': 7.24.5_@babel+core@7.20.12 - '@babel/plugin-transform-react-jsx-source': 7.24.1_@babel+core@7.20.12 + '@babel/plugin-transform-react-jsx-self': 7.25.9_@babel+core@7.20.12 + '@babel/plugin-transform-react-jsx-source': 7.25.9_@babel+core@7.20.12 magic-string: 0.27.0 react-refresh: 0.14.2 vite: 3.2.6 @@ -5229,7 +5485,7 @@ packages: dependencies: '@vitest/spy': 0.30.1 '@vitest/utils': 0.30.1 - chai: 4.4.1 + chai: 4.5.0 dev: true /@vitest/runner/0.30.1: @@ -5244,7 +5500,7 @@ packages: /@vitest/snapshot/0.30.1: resolution: {integrity: sha512-fJZqKrE99zo27uoZA/azgWyWbFvM1rw2APS05yB0JaLwUIg9aUtvvnBf4q7JWhEcAHmSwbrxKFgyBUga6tq9Tw==} dependencies: - magic-string: 0.30.10 + magic-string: 0.30.17 pathe: 1.1.2 pretty-format: 27.5.1 dev: true @@ -5275,6 +5531,14 @@ packages: /abs-svg-path/0.1.1: resolution: {integrity: sha512-d8XPSGjfyzlXC3Xx891DJRyZfqk5JU0BJrDQcsWomFIV1/BIzPW5HDH5iDdWpqWaav0YVIEzT1RHTwWr0FFshA==} + /accepts/1.3.8: + resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} + engines: {node: '>= 0.6'} + dependencies: + mime-types: 2.1.35 + negotiator: 0.6.3 + dev: true + /acorn-globals/4.3.4: resolution: {integrity: sha512-clfQEh21R+D0leSbUdWf3OcfqyaCSAQ8Ryq00bofSekfr9W8u1jyYZo6ir0xu9Gtcf7BjcHJpnbZH7JOCpP60A==} dependencies: @@ -5289,12 +5553,12 @@ packages: acorn-walk: 7.2.0 dev: true - /acorn-jsx/5.3.2_acorn@8.11.3: + /acorn-jsx/5.3.2_acorn@8.14.0: resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - acorn: 8.11.3 + acorn: 8.14.0 /acorn-walk/6.2.0: resolution: {integrity: sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA==} @@ -5306,9 +5570,11 @@ packages: engines: {node: '>=0.4.0'} dev: true - /acorn-walk/8.3.2: - resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==} + /acorn-walk/8.3.4: + resolution: {integrity: sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==} engines: {node: '>=0.4.0'} + dependencies: + acorn: 8.14.0 /acorn/5.7.4: resolution: {integrity: sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg==} @@ -5327,8 +5593,8 @@ packages: hasBin: true dev: true - /acorn/8.11.3: - resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} + /acorn/8.14.0: + resolution: {integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==} engines: {node: '>=0.4.0'} hasBin: true @@ -5341,7 +5607,7 @@ packages: - supports-color dev: true - /ajv-formats/2.1.1_ajv@8.13.0: + /ajv-formats/2.1.1_ajv@8.17.1: resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} peerDependencies: ajv: ^8.0.0 @@ -5349,7 +5615,7 @@ packages: ajv: optional: true dependencies: - ajv: 8.13.0 + ajv: 8.17.1 dev: true /ajv/6.12.6: @@ -5360,13 +5626,13 @@ packages: json-schema-traverse: 0.4.1 uri-js: 4.4.1 - /ajv/8.13.0: - resolution: {integrity: sha512-PRA911Blj99jR5RMeTunVbNXMF6Lp4vZXnk5GQjcnUWUTsrXtekg/pnmFFI2u/I36Y/2bITGS30GZCXei6uNkA==} + /ajv/8.17.1: + resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==} dependencies: fast-deep-equal: 3.1.3 + fast-uri: 3.0.6 json-schema-traverse: 1.0.0 require-from-string: 2.0.2 - uri-js: 4.4.1 dev: true /alasql/4.3.3: @@ -5374,7 +5640,7 @@ packages: engines: {node: '>=15'} hasBin: true dependencies: - cross-fetch: 4.0.0 + cross-fetch: 4.1.0 yargs: 16.2.0 transitivePeerDependencies: - encoding @@ -5444,6 +5710,7 @@ packages: engines: {node: '>=4'} dependencies: color-convert: 1.9.3 + dev: true /ansi-styles/4.3.0: resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} @@ -5493,6 +5760,7 @@ packages: /are-we-there-yet/2.0.0: resolution: {integrity: sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==} engines: {node: '>=10'} + deprecated: This package is no longer supported. dependencies: delegates: 1.0.0 readable-stream: 3.6.2 @@ -5510,10 +5778,9 @@ packages: /argparse/2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} - /aria-query/5.3.0: - resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} - dependencies: - dequal: 2.0.3 + /aria-query/5.3.2: + resolution: {integrity: sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==} + engines: {node: '>= 0.4'} dev: true /arr-diff/1.1.0: @@ -5559,12 +5826,12 @@ packages: resolution: {integrity: sha512-8wdW3ZGk6UjMPJx/glyEt0sLzzwAE1bhToPsO1W2pbpR2gULyxe3BjSiuJFheP50T/GgODVPz2fuMUmIywt8cQ==} dev: false - /array-buffer-byte-length/1.0.1: - resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==} + /array-buffer-byte-length/1.0.2: + resolution: {integrity: sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.7 - is-array-buffer: 3.0.4 + call-bound: 1.0.3 + is-array-buffer: 3.0.5 /array-each/1.0.1: resolution: {integrity: sha512-zHjL5SZa68hkKHBFBK6DJCTtr9sfTCPCaph/L7tMSLcTFgy+zX7E+6q5UArbtOtMBCtxdICpfTCspRse+ywyXA==} @@ -5575,16 +5842,20 @@ packages: resolution: {integrity: sha512-gUHx76KtnhEgB3HOuFYiCm3FIdEs6ocM2asHvNTkfu/Y09qQVrrVVaOKENmS2KkSaGoxgXNqC+ZVtR/n0MOkSA==} dev: true + /array-flatten/1.1.1: + resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} + dev: true + /array-includes/3.1.8: resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.3 - es-object-atoms: 1.0.0 - get-intrinsic: 1.2.4 - is-string: 1.0.7 + es-abstract: 1.23.9 + es-object-atoms: 1.1.1 + get-intrinsic: 1.2.7 + is-string: 1.1.1 /array-initial/1.1.0: resolution: {integrity: sha512-BC4Yl89vneCYfpLrs5JU2aAu9/a+xWbeKhvISg9PT7eWFB9UlRvI+rKEtk6mgxWr3dSkk9gQ8hCrdqt06NXPdw==} @@ -5641,57 +5912,56 @@ packages: resolution: {integrity: sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.3 + es-abstract: 1.23.9 es-errors: 1.3.0 - es-object-atoms: 1.0.0 - es-shim-unscopables: 1.0.2 + es-object-atoms: 1.1.1 + es-shim-unscopables: 1.1.0 dev: true - /array.prototype.flat/1.3.2: - resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} + /array.prototype.flat/1.3.3: + resolution: {integrity: sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.3 - es-shim-unscopables: 1.0.2 + es-abstract: 1.23.9 + es-shim-unscopables: 1.1.0 - /array.prototype.flatmap/1.3.2: - resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==} + /array.prototype.flatmap/1.3.3: + resolution: {integrity: sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.3 - es-shim-unscopables: 1.0.2 + es-abstract: 1.23.9 + es-shim-unscopables: 1.1.0 /array.prototype.reduce/1.0.7: resolution: {integrity: sha512-mzmiUCVwtiD4lgxYP8g7IYy8El8p2CSMePvIbTS7gchKir/L1fgJrk0yDKmAX6mnRQFKNADYIk8nNlTris5H1Q==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.3 + es-abstract: 1.23.9 es-array-method-boxes-properly: 1.0.0 es-errors: 1.3.0 - es-object-atoms: 1.0.0 - is-string: 1.0.7 + es-object-atoms: 1.1.1 + is-string: 1.1.1 dev: true - /arraybuffer.prototype.slice/1.0.3: - resolution: {integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==} + /arraybuffer.prototype.slice/1.0.4: + resolution: {integrity: sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==} engines: {node: '>= 0.4'} dependencies: - array-buffer-byte-length: 1.0.1 - call-bind: 1.0.7 + array-buffer-byte-length: 1.0.2 + call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.3 + es-abstract: 1.23.9 es-errors: 1.3.0 - get-intrinsic: 1.2.4 - is-array-buffer: 3.0.4 - is-shared-array-buffer: 1.0.3 + get-intrinsic: 1.2.7 + is-array-buffer: 3.0.5 /asn1/0.2.6: resolution: {integrity: sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==} @@ -5716,8 +5986,8 @@ packages: resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==} dev: true - /astring/1.8.6: - resolution: {integrity: sha512-ISvCdHdlTDlH5IpxQJIex7BWBywFWgjJSVdwst+/iQCoEYnyOaQ95+X1JGshuBjGp6nxKUy1jMgE3zPqN7fQdg==} + /astring/1.9.0: + resolution: {integrity: sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==} hasBin: true dev: true @@ -5734,6 +6004,10 @@ packages: resolution: {integrity: sha512-c646jH1avxr+aVpndVMeAfYw7wAa6idufrlN3LPA4PmKS0QEGp6PIC9nwz0WQkkvBGAMEki3pFdtxaF39J9vvg==} dev: false + /async-function/1.0.0: + resolution: {integrity: sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==} + engines: {node: '>= 0.4'} + /async-limiter/1.0.1: resolution: {integrity: sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==} dev: true @@ -5760,11 +6034,11 @@ packages: peerDependencies: postcss: ^8.1.0 dependencies: - browserslist: 4.23.0 - caniuse-lite: 1.0.30001620 + browserslist: 4.24.4 + caniuse-lite: 1.0.30001700 fraction.js: 4.3.7 normalize-range: 0.1.2 - picocolors: 1.0.1 + picocolors: 1.1.1 postcss: 8.4.21 postcss-value-parser: 4.2.0 dev: false @@ -5773,35 +6047,34 @@ packages: resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} engines: {node: '>= 0.4'} dependencies: - possible-typed-array-names: 1.0.0 + possible-typed-array-names: 1.1.0 /aws-sign2/0.7.0: resolution: {integrity: sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==} dev: true - /aws4/1.12.0: - resolution: {integrity: sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==} + /aws4/1.13.2: + resolution: {integrity: sha512-lHe62zvbTB5eEABUVi/AwVh0ZKY9rMMDhmm+eeyuuUQbQ3+J+fONVQOZyj+DdrvD4BY33uYniyRJ4UJIaSKAfw==} dev: true - /axe-core/4.7.0: - resolution: {integrity: sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ==} + /axe-core/4.10.2: + resolution: {integrity: sha512-RE3mdQ7P3FRSe7eqCWoeQ/Z9QXrtniSjp1wUjt5nRC3WIpz5rSCve6o3fsZ2aCpJtrZjSZgjwXAoTO5k4tEI0w==} engines: {node: '>=4'} dev: true - /axios/1.7.0: - resolution: {integrity: sha512-IiB0wQeKyPRdsFVhBgIo31FbzOyf2M6wYl7/NVutFwFBRMiAbjNiydJIHKeLmPugF4kJLfA1uWZ82Is2QzqqFA==} + /axios/1.7.9: + resolution: {integrity: sha512-LhLcE7Hbiryz8oMDdDptSrWowmB4Bl6RCt6sIJKpRB4XtVf0iEgewX3au/pJqm+Py1kCASkb/FFKjxQaLtxJvw==} dependencies: - follow-redirects: 1.15.6 - form-data: 4.0.0 + follow-redirects: 1.15.9 + form-data: 4.0.2 proxy-from-env: 1.1.0 transitivePeerDependencies: - debug dev: false - /axobject-query/3.2.1: - resolution: {integrity: sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==} - dependencies: - dequal: 2.0.3 + /axobject-query/4.1.0: + resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} + engines: {node: '>= 0.4'} dev: true /b-tween/0.3.3: @@ -5850,14 +6123,16 @@ packages: /babel-plugin-import/1.13.6: resolution: {integrity: sha512-N7FYnGh0DFsvDRkAPsvFq/metVfVD7P2h1rokOPpEH4cZbdRHCW+2jbXt0nnuqowkm/xhh2ww1anIdEpfYa7ZA==} dependencies: - '@babel/helper-module-imports': 7.24.3 + '@babel/helper-module-imports': 7.25.9 + transitivePeerDependencies: + - supports-color dev: false /babel-plugin-istanbul/5.2.0: resolution: {integrity: sha512-5LphC0USA8t4i1zCtjbbNb6jJj/9+X6P37Qfirc/70EQ34xKlMW+a1RHGwxGI+SwWpNwZ27HqvzAobeqaXwiZw==} engines: {node: '>=6'} dependencies: - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-plugin-utils': 7.26.5 find-up: 3.0.0 istanbul-lib-instrument: 3.3.0 test-exclude: 5.2.3 @@ -5869,7 +6144,7 @@ packages: resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==} engines: {node: '>=8'} dependencies: - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-plugin-utils': 7.26.5 '@istanbuljs/load-nyc-config': 1.1.0 '@istanbuljs/schema': 0.1.3 istanbul-lib-instrument: 5.2.1 @@ -5882,17 +6157,17 @@ packages: resolution: {integrity: sha512-2EMA2P8Vp7lG0RAzr4HXqtYwacfMErOuv1U3wrvxHX6rD1sV6xS3WXG3r8TRQ2r6w8OhvSdWt+z41hQNwNm3Xw==} engines: {node: '>= 6'} dependencies: - '@types/babel__traverse': 7.20.5 + '@types/babel__traverse': 7.20.6 dev: true /babel-plugin-jest-hoist/26.6.2: resolution: {integrity: sha512-PO9t0697lNTmcEHH69mdtYiOIkkOlj9fySqfO3K1eCcdISevLAE0xY59VLLUj0SoiPiTX/JU2CYFpILydUa5Lw==} engines: {node: '>= 10.14.2'} dependencies: - '@babel/template': 7.24.0 - '@babel/types': 7.24.5 + '@babel/template': 7.26.9 + '@babel/types': 7.26.9 '@types/babel__core': 7.20.0 - '@types/babel__traverse': 7.20.5 + '@types/babel__traverse': 7.20.6 dev: true /babel-plugin-polyfill-corejs2/0.3.3_@babel+core@7.20.12: @@ -5900,7 +6175,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/compat-data': 7.24.4 + '@babel/compat-data': 7.26.8 '@babel/core': 7.20.12 '@babel/helper-define-polyfill-provider': 0.3.3_@babel+core@7.20.12 semver: 6.3.1 @@ -5915,7 +6190,7 @@ packages: dependencies: '@babel/core': 7.20.12 '@babel/helper-define-polyfill-provider': 0.3.3_@babel+core@7.20.12 - core-js-compat: 3.37.1 + core-js-compat: 3.40.0 transitivePeerDependencies: - supports-color dev: false @@ -5931,8 +6206,8 @@ packages: - supports-color dev: false - /babel-preset-current-node-syntax/1.0.1_@babel+core@7.20.12: - resolution: {integrity: sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==} + /babel-preset-current-node-syntax/1.1.0_@babel+core@7.20.12: + resolution: {integrity: sha512-ldYss8SbBlWva1bs28q78Ju5Zq1F+8BrqBZZ0VFhLBvhh6lCpC2o3gDJi/5DRLs9FgYZCnmPYIVFU4lRXCkyUw==} peerDependencies: '@babel/core': ^7.0.0 dependencies: @@ -5940,6 +6215,8 @@ packages: '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.20.12 '@babel/plugin-syntax-bigint': 7.8.3_@babel+core@7.20.12 '@babel/plugin-syntax-class-properties': 7.12.13_@babel+core@7.20.12 + '@babel/plugin-syntax-class-static-block': 7.14.5_@babel+core@7.20.12 + '@babel/plugin-syntax-import-attributes': 7.26.0_@babel+core@7.20.12 '@babel/plugin-syntax-import-meta': 7.10.4_@babel+core@7.20.12 '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.20.12 '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.20.12 @@ -5948,6 +6225,7 @@ packages: '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.20.12 '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.20.12 '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.20.12 + '@babel/plugin-syntax-private-property-in-object': 7.14.5_@babel+core@7.20.12 '@babel/plugin-syntax-top-level-await': 7.14.5_@babel+core@7.20.12 dev: true @@ -5970,7 +6248,7 @@ packages: dependencies: '@babel/core': 7.20.12 babel-plugin-jest-hoist: 26.6.2 - babel-preset-current-node-syntax: 1.0.1_@babel+core@7.20.12 + babel-preset-current-node-syntax: 1.1.0_@babel+core@7.20.12 dev: true /bach/1.2.0: @@ -6035,7 +6313,6 @@ packages: /bindings/1.5.0: resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==} - requiresBuild: true dependencies: file-uri-to-path: 1.0.0 optional: true @@ -6044,8 +6321,27 @@ packages: resolution: {integrity: sha512-DRQrD6gJyy8FbiE4s+bDoXS9hiW3Vbx5uCdwvcCf3zLHL+Iv7LtGHLpr+GZV8rHG8tK766FGYBwRbu8pELTt+w==} dev: true + /body-parser/1.20.3: + resolution: {integrity: sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + dependencies: + bytes: 3.1.2 + content-type: 1.0.5 + debug: 2.6.9 + depd: 2.0.0 + destroy: 1.2.0 + http-errors: 2.0.0 + iconv-lite: 0.4.24 + on-finished: 2.4.1 + qs: 6.13.0 + raw-body: 2.5.2 + type-is: 1.6.18 + unpipe: 1.0.0 + dev: true + /boolean/3.2.0: resolution: {integrity: sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. dev: true optional: true @@ -6075,11 +6371,11 @@ packages: split-string: 3.1.0 to-regex: 3.0.2 - /braces/3.0.2: - resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} + /braces/3.0.3: + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} dependencies: - fill-range: 7.0.1 + fill-range: 7.1.1 /browser-process-hrtime/1.0.0: resolution: {integrity: sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==} @@ -6095,15 +6391,15 @@ packages: resolution: {integrity: sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==} dev: true - /browserslist/4.23.0: - resolution: {integrity: sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==} + /browserslist/4.24.4: + resolution: {integrity: sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001620 - electron-to-chromium: 1.4.774 - node-releases: 2.0.14 - update-browserslist-db: 1.0.16_browserslist@4.23.0 + caniuse-lite: 1.0.30001700 + electron-to-chromium: 1.5.102 + node-releases: 2.0.19 + update-browserslist-db: 1.1.2_browserslist@4.24.4 /bs-logger/0.2.6: resolution: {integrity: sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==} @@ -6135,6 +6431,11 @@ packages: engines: {node: '>=6'} dev: false + /bytes/3.1.2: + resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} + engines: {node: '>= 0.8'} + dev: true + /cac/6.7.14: resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} engines: {node: '>=8'} @@ -6167,16 +6468,29 @@ packages: responselike: 1.0.2 dev: true - /call-bind/1.0.7: - resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} + /call-bind-apply-helpers/1.0.2: + resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} engines: {node: '>= 0.4'} dependencies: - es-define-property: 1.0.0 es-errors: 1.3.0 function-bind: 1.1.2 - get-intrinsic: 1.2.4 + + /call-bind/1.0.8: + resolution: {integrity: sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==} + engines: {node: '>= 0.4'} + dependencies: + call-bind-apply-helpers: 1.0.2 + es-define-property: 1.0.1 + get-intrinsic: 1.2.7 set-function-length: 1.2.2 + /call-bound/1.0.3: + resolution: {integrity: sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind-apply-helpers: 1.0.2 + get-intrinsic: 1.2.7 + /callsites/3.1.0: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} engines: {node: '>=6'} @@ -6196,8 +6510,8 @@ packages: engines: {node: '>=10'} dev: true - /caniuse-lite/1.0.30001620: - resolution: {integrity: sha512-WJvYsOjd1/BYUY6SNGUosK9DUidBPDTnOARHp3fSmFO1ekdxaY6nKRttEVrfMmYi80ctS0kz1wiWmm14fVc3ew==} + /caniuse-lite/1.0.30001700: + resolution: {integrity: sha512-2S6XIXwaE7K7erT8dY+kLQcpa5ms63XlRkMkReXjle+kf6c5g38vyMl+Z5y8dSxOFDhcFe+nxnn261PLxBSQsQ==} /canvas/2.11.2: resolution: {integrity: sha512-ItanGBMrmRV7Py2Z+Xhs7cT+FNt5K0vPL4p9EZ/UX/Mu7hFbkxSjKF2KVtPwX7UYWp7dRKnrTvReflgrItJbdw==} @@ -6205,7 +6519,7 @@ packages: requiresBuild: true dependencies: '@mapbox/node-pre-gyp': 1.0.11 - nan: 2.19.0 + nan: 2.22.0 simple-get: 3.1.1 transitivePeerDependencies: - encoding @@ -6223,17 +6537,17 @@ packages: resolution: {integrity: sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==} dev: true - /chai/4.4.1: - resolution: {integrity: sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==} + /chai/4.5.0: + resolution: {integrity: sha512-RITGBfijLkBddZvnn8jdqoTypxvqbOLYQkGGxXzeFjVHvudaPw0HNFD9x928/eUwYWd2dPCugVqspGALTZZQKw==} engines: {node: '>=4'} dependencies: assertion-error: 1.1.0 check-error: 1.0.3 - deep-eql: 4.1.3 + deep-eql: 4.1.4 get-func-name: 2.0.2 loupe: 2.3.7 pathval: 1.1.1 - type-detect: 4.0.8 + type-detect: 4.1.0 dev: true /chalk/2.4.2: @@ -6243,6 +6557,7 @@ packages: ansi-styles: 3.2.1 escape-string-regexp: 1.0.5 supports-color: 5.5.0 + dev: true /chalk/3.0.0: resolution: {integrity: sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==} @@ -6272,7 +6587,6 @@ packages: /chokidar/2.1.8: resolution: {integrity: sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==} - deprecated: Chokidar 2 does not receive security updates since 2019. Upgrade to chokidar 3 with 15x fewer dependencies dependencies: anymatch: 2.0.0 async-each: 1.0.6 @@ -6294,7 +6608,7 @@ packages: engines: {node: '>= 8.10.0'} dependencies: anymatch: 3.1.3 - braces: 3.0.2 + braces: 3.0.3 glob-parent: 5.1.2 is-binary-path: 2.1.0 is-glob: 4.0.3 @@ -6309,7 +6623,7 @@ packages: engines: {node: '>= 8.10.0'} dependencies: anymatch: 3.1.3 - braces: 3.0.2 + braces: 3.0.3 glob-parent: 5.1.2 is-binary-path: 2.1.0 is-glob: 4.0.3 @@ -6324,6 +6638,10 @@ packages: engines: {node: '>=10'} dev: true + /chroma-js/3.1.2: + resolution: {integrity: sha512-IJnETTalXbsLx1eKEgx19d5L6SRM7cH4vINw/99p/M11HCuXGRWL+6YmCm7FWFGIo6dtWuQoQi1dc5yQ7ESIHg==} + dev: false + /ci-info/2.0.0: resolution: {integrity: sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==} dev: true @@ -6550,8 +6868,8 @@ packages: well-known-symbols: 2.0.0 dev: true - /confbox/0.1.7: - resolution: {integrity: sha512-uJcB/FKZtBMCJpK8MQji6bJHgu1tixKPxRLeGkNzBoOZzpnZUJm0jm2/sBDWcuBx1dYgxV4JU+g5hmNxCyAmdA==} + /confbox/0.1.8: + resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==} dev: true /config-chain/1.1.13: @@ -6560,15 +6878,36 @@ packages: ini: 1.3.8 proto-list: 1.2.4 dev: true - optional: true + optional: true + + /console-control-strings/1.1.0: + resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==} + dev: true + + /content-disposition/0.5.4: + resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} + engines: {node: '>= 0.6'} + dependencies: + safe-buffer: 5.2.1 + dev: true - /console-control-strings/1.1.0: - resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==} + /content-type/1.0.5: + resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} + engines: {node: '>= 0.6'} dev: true /convert-source-map/1.9.0: resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} + /cookie-signature/1.0.6: + resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} + dev: true + + /cookie/0.7.1: + resolution: {integrity: sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==} + engines: {node: '>= 0.6'} + dev: true + /copy-anything/2.0.6: resolution: {integrity: sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==} dependencies: @@ -6585,10 +6924,10 @@ packages: is-plain-object: 5.0.0 dev: false - /core-js-compat/3.37.1: - resolution: {integrity: sha512-9TNiImhKvQqSUkOvk/mMRZzOANTiEVC7WaBNhHcKM7x+/5E1l5NvsysR19zuDQScE8k+kfQXWRN3AtS/eOSHpg==} + /core-js-compat/3.40.0: + resolution: {integrity: sha512-0XEDpr5y5mijvw8Lbc6E5AkjrHfp7eEoPlu36SWeAbcL8fn1G1ANe8DBlo2XoNN89oVpxWwOjYIPVzR4ZvsKCQ==} dependencies: - browserslist: 4.23.0 + browserslist: 4.24.4 dev: false /core-util-is/1.0.2: @@ -6601,16 +6940,16 @@ packages: /create-require/1.1.1: resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} - /cross-fetch/4.0.0: - resolution: {integrity: sha512-e4a5N8lVvuLgAWgnCrLr2PP0YyDOTHa9H/Rj54dirp61qXnNq46m82bRhNqIA5VccJtWBvPTFRV3TtvHUKPB1g==} + /cross-fetch/4.1.0: + resolution: {integrity: sha512-uKm5PU+MHTootlWEY+mZ4vvXoCn4fLQxT9dSc1sXVMSFkINTJVN8cAQROpwcKm8bJ/c7rgZVIBWzH5T78sNZZw==} dependencies: node-fetch: 2.7.0 transitivePeerDependencies: - encoding dev: false - /cross-spawn/6.0.5: - resolution: {integrity: sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==} + /cross-spawn/6.0.6: + resolution: {integrity: sha512-VqCUuhcd1iB+dsv8gxPttb5iZh/D0iubSP21g36KXdEuf6I5JiioesUVjpCdHV9MZRUfVFlvwtIUyPfxo5trtw==} engines: {node: '>=4.8'} dependencies: nice-try: 1.0.5 @@ -6620,8 +6959,8 @@ packages: which: 1.3.1 dev: true - /cross-spawn/7.0.3: - resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + /cross-spawn/7.0.6: + resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} engines: {node: '>= 8'} dependencies: path-key: 3.1.1 @@ -6665,7 +7004,7 @@ packages: engines: {node: '>=0.12'} dependencies: es5-ext: 0.10.64 - type: 2.7.2 + type: 2.7.3 dev: false /d3-array/1.2.4: @@ -6719,29 +7058,29 @@ packages: whatwg-url: 8.7.0 dev: true - /data-view-buffer/1.0.1: - resolution: {integrity: sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==} + /data-view-buffer/1.0.2: + resolution: {integrity: sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.7 + call-bound: 1.0.3 es-errors: 1.3.0 - is-data-view: 1.0.1 + is-data-view: 1.0.2 - /data-view-byte-length/1.0.1: - resolution: {integrity: sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==} + /data-view-byte-length/1.0.2: + resolution: {integrity: sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.7 + call-bound: 1.0.3 es-errors: 1.3.0 - is-data-view: 1.0.1 + is-data-view: 1.0.2 - /data-view-byte-offset/1.0.0: - resolution: {integrity: sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==} + /data-view-byte-offset/1.0.1: + resolution: {integrity: sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.7 + call-bound: 1.0.3 es-errors: 1.3.0 - is-data-view: 1.0.1 + is-data-view: 1.0.2 /date-time/3.1.0: resolution: {integrity: sha512-uqCUKXE5q1PNBXjPqvwhwJf9SwMoAHBgWJ6DcrnS5o+W2JOiIILl0JEdVD8SGujrNS02GGxgwAg2PN2zONgtjg==} @@ -6750,14 +7089,14 @@ packages: time-zone: 1.0.0 dev: true - /dayjs/1.11.11: - resolution: {integrity: sha512-okzr3f11N6WuqYtZSvm+F776mB41wRZMhKP+hc34YdW+KmtYYK9iqvHSwo2k9FEH3fhGXvOPV6yz2IcSrfRUDg==} + /dayjs/1.11.13: + resolution: {integrity: sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==} /debug-fabulous/1.1.0: resolution: {integrity: sha512-GZqvGIgKNlUnHUPQhepnUZFIMoi3dgZKQBzKDeL2g7oJF9SNAji/AAu36dusFUas0O+pae74lNeoIPHqXWDkLg==} dependencies: debug: 3.2.7 - memoizee: 0.4.15 + memoizee: 0.4.17 object-assign: 4.1.1 dev: false @@ -6804,8 +7143,8 @@ packages: engines: {node: '>=10'} dev: true - /decimal.js/10.4.3: - resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==} + /decimal.js/10.5.0: + resolution: {integrity: sha512-8vDa8Qxvr/+d94hSh5P3IJwI5t8/c0KsMp+g8bNw9cY2icONa5aPfvKeieW1WlG0WQYwwhJ7mjui2xtiePQSXw==} dev: true /decode-uri-component/0.2.2: @@ -6826,11 +7165,11 @@ packages: mimic-response: 2.1.0 dev: true - /deep-eql/4.1.3: - resolution: {integrity: sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==} + /deep-eql/4.1.4: + resolution: {integrity: sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg==} engines: {node: '>=6'} dependencies: - type-detect: 4.0.8 + type-detect: 4.1.0 dev: true /deep-is/0.1.4: @@ -6860,9 +7199,9 @@ packages: resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} engines: {node: '>= 0.4'} dependencies: - es-define-property: 1.0.0 + es-define-property: 1.0.1 es-errors: 1.3.0 - gopd: 1.0.1 + gopd: 1.2.0 /define-properties/1.2.1: resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} @@ -6903,9 +7242,14 @@ packages: resolution: {integrity: sha512-icpmBubVTwLnsaor9qH/4tG5+7+f61VcqMN3V3pm9sxxSCt2Jcs0zWOgwZW9ARJYaKD3FumIgHiMOcIMRRAzFQ==} dev: false - /dequal/2.0.3: - resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} - engines: {node: '>=6'} + /depd/2.0.0: + resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} + engines: {node: '>= 0.8'} + dev: true + + /destroy/1.2.0: + resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} dev: true /detect-file/1.0.0: @@ -6975,7 +7319,7 @@ packages: /dom-helpers/5.2.1: resolution: {integrity: sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==} dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.26.9 csstype: 3.1.3 /dom-serializer/1.4.1: @@ -7032,6 +7376,14 @@ packages: engines: {node: '>=12'} dev: true + /dunder-proto/1.0.1: + resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} + engines: {node: '>= 0.4'} + dependencies: + call-bind-apply-helpers: 1.0.2 + es-errors: 1.3.0 + gopd: 1.2.0 + /duplexer3/0.1.5: resolution: {integrity: sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==} dev: true @@ -7068,8 +7420,12 @@ packages: safer-buffer: 2.1.2 dev: true - /electron-to-chromium/1.4.774: - resolution: {integrity: sha512-132O1XCd7zcTkzS3FgkAzKmnBuNJjK8WjcTtNuoylj7MYbqw5eXehjQ5OK91g0zm7OTKIPeaAG4CPoRfD9M1Mg==} + /ee-first/1.1.1: + resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} + dev: true + + /electron-to-chromium/1.5.102: + resolution: {integrity: sha512-eHhqaja8tE/FNpIiBrvBjFV/SSKpyWHLvxuR9dPTdo+3V9ppdLmFB7ZZQ98qNovcngPLYIz0oOBF9P0FfZef5Q==} /electron/11.5.0: resolution: {integrity: sha512-WjNDd6lGpxyiNjE3LhnFCAk/D9GIj1rU3GSDealVShhkkkPR3Vh4q8ErXGDl1OAO/faomVa10KoFPUN/pLbNxg==} @@ -7104,7 +7460,11 @@ packages: resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} engines: {node: '>= 0.8'} dev: true - optional: true + + /encodeurl/2.0.0: + resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==} + engines: {node: '>= 0.8'} + dev: true /end-of-stream/1.4.4: resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} @@ -7138,117 +7498,102 @@ packages: dependencies: is-arrayish: 0.2.1 - /es-abstract/1.23.3: - resolution: {integrity: sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==} + /es-abstract/1.23.9: + resolution: {integrity: sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==} engines: {node: '>= 0.4'} dependencies: - array-buffer-byte-length: 1.0.1 - arraybuffer.prototype.slice: 1.0.3 + array-buffer-byte-length: 1.0.2 + arraybuffer.prototype.slice: 1.0.4 available-typed-arrays: 1.0.7 - call-bind: 1.0.7 - data-view-buffer: 1.0.1 - data-view-byte-length: 1.0.1 - data-view-byte-offset: 1.0.0 - es-define-property: 1.0.0 + call-bind: 1.0.8 + call-bound: 1.0.3 + data-view-buffer: 1.0.2 + data-view-byte-length: 1.0.2 + data-view-byte-offset: 1.0.1 + es-define-property: 1.0.1 es-errors: 1.3.0 - es-object-atoms: 1.0.0 - es-set-tostringtag: 2.0.3 - es-to-primitive: 1.2.1 - function.prototype.name: 1.1.6 - get-intrinsic: 1.2.4 - get-symbol-description: 1.0.2 + es-object-atoms: 1.1.1 + es-set-tostringtag: 2.1.0 + es-to-primitive: 1.3.0 + function.prototype.name: 1.1.8 + get-intrinsic: 1.2.7 + get-proto: 1.0.1 + get-symbol-description: 1.1.0 globalthis: 1.0.4 - gopd: 1.0.1 + gopd: 1.2.0 has-property-descriptors: 1.0.2 - has-proto: 1.0.3 - has-symbols: 1.0.3 + has-proto: 1.2.0 + has-symbols: 1.1.0 hasown: 2.0.2 - internal-slot: 1.0.7 - is-array-buffer: 3.0.4 + internal-slot: 1.1.0 + is-array-buffer: 3.0.5 is-callable: 1.2.7 - is-data-view: 1.0.1 - is-negative-zero: 2.0.3 - is-regex: 1.1.4 - is-shared-array-buffer: 1.0.3 - is-string: 1.0.7 - is-typed-array: 1.1.13 - is-weakref: 1.0.2 - object-inspect: 1.13.1 + is-data-view: 1.0.2 + is-regex: 1.2.1 + is-shared-array-buffer: 1.0.4 + is-string: 1.1.1 + is-typed-array: 1.1.15 + is-weakref: 1.1.1 + math-intrinsics: 1.1.0 + object-inspect: 1.13.4 object-keys: 1.1.1 - object.assign: 4.1.5 - regexp.prototype.flags: 1.5.2 - safe-array-concat: 1.1.2 - safe-regex-test: 1.0.3 - string.prototype.trim: 1.2.9 - string.prototype.trimend: 1.0.8 + object.assign: 4.1.7 + own-keys: 1.0.1 + regexp.prototype.flags: 1.5.4 + safe-array-concat: 1.1.3 + safe-push-apply: 1.0.0 + safe-regex-test: 1.1.0 + set-proto: 1.0.0 + string.prototype.trim: 1.2.10 + string.prototype.trimend: 1.0.9 string.prototype.trimstart: 1.0.8 - typed-array-buffer: 1.0.2 - typed-array-byte-length: 1.0.1 - typed-array-byte-offset: 1.0.2 - typed-array-length: 1.0.6 - unbox-primitive: 1.0.2 - which-typed-array: 1.1.15 + typed-array-buffer: 1.0.3 + typed-array-byte-length: 1.0.3 + typed-array-byte-offset: 1.0.4 + typed-array-length: 1.0.7 + unbox-primitive: 1.1.0 + which-typed-array: 1.1.18 /es-array-method-boxes-properly/1.0.0: resolution: {integrity: sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==} dev: true - /es-define-property/1.0.0: - resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} + /es-define-property/1.0.1: + resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} engines: {node: '>= 0.4'} - dependencies: - get-intrinsic: 1.2.4 /es-errors/1.3.0: resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} engines: {node: '>= 0.4'} - /es-iterator-helpers/1.0.19: - resolution: {integrity: sha512-zoMwbCcH5hwUkKJkT8kDIBZSz9I6mVG//+lDCinLCGov4+r7NIy0ld8o03M0cJxl2spVf6ESYVS6/gpIfq1FFw==} + /es-object-atoms/1.1.1: + resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.23.3 es-errors: 1.3.0 - es-set-tostringtag: 2.0.3 - function-bind: 1.1.2 - get-intrinsic: 1.2.4 - globalthis: 1.0.4 - has-property-descriptors: 1.0.2 - has-proto: 1.0.3 - has-symbols: 1.0.3 - internal-slot: 1.0.7 - iterator.prototype: 1.1.2 - safe-array-concat: 1.1.2 - dev: true - /es-object-atoms/1.0.0: - resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==} + /es-set-tostringtag/2.1.0: + resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==} engines: {node: '>= 0.4'} dependencies: es-errors: 1.3.0 - - /es-set-tostringtag/2.0.3: - resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==} - engines: {node: '>= 0.4'} - dependencies: - get-intrinsic: 1.2.4 + get-intrinsic: 1.2.7 has-tostringtag: 1.0.2 hasown: 2.0.2 - /es-shim-unscopables/1.0.2: - resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==} + /es-shim-unscopables/1.1.0: + resolution: {integrity: sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==} + engines: {node: '>= 0.4'} dependencies: hasown: 2.0.2 - /es-to-primitive/1.2.1: - resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} + /es-to-primitive/1.3.0: + resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==} engines: {node: '>= 0.4'} dependencies: is-callable: 1.2.7 - is-date-object: 1.0.5 - is-symbol: 1.0.4 + is-date-object: 1.1.0 + is-symbol: 1.1.1 /es5-ext/0.10.64: resolution: {integrity: sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg==} @@ -7501,10 +7846,14 @@ packages: esbuild-windows-arm64: 0.15.18 dev: true - /escalade/3.1.2: - resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} + /escalade/3.2.0: + resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} engines: {node: '>=6'} + /escape-html/1.0.3: + resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} + dev: true + /escape-string-regexp/1.0.5: resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} engines: {node: '>=0.8.0'} @@ -7555,12 +7904,12 @@ packages: resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} dependencies: debug: 3.2.7 - is-core-module: 2.13.1 - resolve: 1.22.8 + is-core-module: 2.16.1 + resolve: 1.22.10 dev: true - /eslint-module-utils/2.8.1_eslint@8.18.0: - resolution: {integrity: sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==} + /eslint-module-utils/2.12.0_eslint@8.18.0: + resolution: {integrity: sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==} engines: {node: '>=4'} peerDependencies: eslint: '*' @@ -7572,55 +7921,56 @@ packages: eslint: 8.18.0 dev: true - /eslint-plugin-import/2.29.1_eslint@8.18.0: - resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==} + /eslint-plugin-import/2.31.0_eslint@8.18.0: + resolution: {integrity: sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==} engines: {node: '>=4'} peerDependencies: - eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9 dependencies: + '@rtsao/scc': 1.1.0 array-includes: 3.1.8 array.prototype.findlastindex: 1.2.5 - array.prototype.flat: 1.3.2 - array.prototype.flatmap: 1.3.2 + array.prototype.flat: 1.3.3 + array.prototype.flatmap: 1.3.3 debug: 3.2.7 doctrine: 2.1.0 eslint: 8.18.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.1_eslint@8.18.0 + eslint-module-utils: 2.12.0_eslint@8.18.0 hasown: 2.0.2 - is-core-module: 2.13.1 + is-core-module: 2.16.1 is-glob: 4.0.3 minimatch: 3.1.2 object.fromentries: 2.0.8 object.groupby: 1.0.3 - object.values: 1.2.0 + object.values: 1.2.1 semver: 6.3.1 + string.prototype.trimend: 1.0.9 tsconfig-paths: 3.15.0 dev: true - /eslint-plugin-jsx-a11y/6.8.0_eslint@8.18.0: - resolution: {integrity: sha512-Hdh937BS3KdwwbBaKd5+PLCOmYY6U4f2h9Z2ktwtNKvIdIEu137rjYbcb9ApSbVJfWxANNuiKTD/9tOKjK9qOA==} + /eslint-plugin-jsx-a11y/6.10.2_eslint@8.18.0: + resolution: {integrity: sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q==} engines: {node: '>=4.0'} peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9 dependencies: - '@babel/runtime': 7.24.5 - aria-query: 5.3.0 + aria-query: 5.3.2 array-includes: 3.1.8 - array.prototype.flatmap: 1.3.2 + array.prototype.flatmap: 1.3.3 ast-types-flow: 0.0.8 - axe-core: 4.7.0 - axobject-query: 3.2.1 + axe-core: 4.10.2 + axobject-query: 4.1.0 damerau-levenshtein: 1.0.8 emoji-regex: 9.2.2 - es-iterator-helpers: 1.0.19 eslint: 8.18.0 hasown: 2.0.2 jsx-ast-utils: 3.3.5 language-tags: 1.0.9 minimatch: 3.1.2 - object.entries: 1.1.8 object.fromentries: 2.0.8 + safe-regex-test: 1.1.0 + string.prototype.includes: 2.0.1 dev: true /eslint-plugin-prettier/4.2.1_ohknqdiadpdc4n44qqsbqlxxwa: @@ -7664,7 +8014,7 @@ packages: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 dependencies: array-includes: 3.1.8 - array.prototype.flatmap: 1.3.2 + array.prototype.flatmap: 1.3.3 doctrine: 2.1.0 eslint: 8.18.0 estraverse: 5.3.0 @@ -7673,11 +8023,11 @@ packages: object.entries: 1.1.8 object.fromentries: 2.0.8 object.hasown: 1.1.4 - object.values: 1.2.0 + object.values: 1.2.1 prop-types: 15.8.1 resolve: 2.0.0-next.5 semver: 6.3.1 - string.prototype.matchall: 4.0.11 + string.prototype.matchall: 4.0.12 /eslint-scope/5.1.1: resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} @@ -7722,13 +8072,14 @@ packages: /eslint/8.18.0: resolution: {integrity: sha512-As1EfFMVk7Xc6/CvhssHUjsAQSkpfXvUGMFC3ce8JDe6WvqCgRrLOBQbVpsBFr1X1V+RACOadnzVvcUS5ni2bA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options. hasBin: true dependencies: '@eslint/eslintrc': 1.4.1 '@humanwhocodes/config-array': 0.9.5 ajv: 6.12.6 chalk: 4.1.2 - cross-spawn: 7.0.3 + cross-spawn: 7.0.6 debug: 4.3.4 doctrine: 3.0.0 escape-string-regexp: 4.0.0 @@ -7736,15 +8087,15 @@ packages: eslint-utils: 3.0.0_eslint@8.18.0 eslint-visitor-keys: 3.4.3 espree: 9.6.1 - esquery: 1.5.0 + esquery: 1.6.0 esutils: 2.0.3 fast-deep-equal: 3.1.3 file-entry-cache: 6.0.1 functional-red-black-tree: 1.0.1 glob-parent: 6.0.2 globals: 13.24.0 - ignore: 5.3.1 - import-fresh: 3.3.0 + ignore: 5.3.2 + import-fresh: 3.3.1 imurmurhash: 0.1.4 is-glob: 4.0.3 js-yaml: 4.1.0 @@ -7769,15 +8120,15 @@ packages: d: 1.0.2 es5-ext: 0.10.64 event-emitter: 0.3.5 - type: 2.7.2 + type: 2.7.3 dev: false /espree/9.6.1: resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - acorn: 8.11.3 - acorn-jsx: 5.3.2_acorn@8.11.3 + acorn: 8.14.0 + acorn-jsx: 5.3.2_acorn@8.14.0 eslint-visitor-keys: 3.4.3 /esprima/4.0.1: @@ -7786,8 +8137,8 @@ packages: hasBin: true dev: true - /esquery/1.5.0: - resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} + /esquery/1.6.0: + resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} engines: {node: '>=0.10'} dependencies: estraverse: 5.3.0 @@ -7813,6 +8164,11 @@ packages: resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} engines: {node: '>=0.10.0'} + /etag/1.8.1: + resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} + engines: {node: '>= 0.6'} + dev: true + /euclidean-distance/1.0.0: resolution: {integrity: sha512-3+1fOi9GKT2PhSX+uKZ/cX4F98wLY2gTibZPPZeToEPvHZNLnnoymcJgQzWeeIMvqciQRIhn9KEKY7QVplC7hQ==} dev: false @@ -7835,7 +8191,7 @@ packages: resolution: {integrity: sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==} engines: {node: '>=6'} dependencies: - cross-spawn: 6.0.5 + cross-spawn: 6.0.6 get-stream: 4.1.0 is-stream: 1.1.0 npm-run-path: 2.0.2 @@ -7848,7 +8204,7 @@ packages: resolution: {integrity: sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==} engines: {node: '>=10'} dependencies: - cross-spawn: 7.0.3 + cross-spawn: 7.0.6 get-stream: 5.2.0 human-signals: 1.1.1 is-stream: 2.0.1 @@ -7907,10 +8263,47 @@ packages: jest-regex-util: 26.0.0 dev: true + /express/4.21.2: + resolution: {integrity: sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==} + engines: {node: '>= 0.10.0'} + dependencies: + accepts: 1.3.8 + array-flatten: 1.1.1 + body-parser: 1.20.3 + content-disposition: 0.5.4 + content-type: 1.0.5 + cookie: 0.7.1 + cookie-signature: 1.0.6 + debug: 2.6.9 + depd: 2.0.0 + encodeurl: 2.0.0 + escape-html: 1.0.3 + etag: 1.8.1 + finalhandler: 1.3.1 + fresh: 0.5.2 + http-errors: 2.0.0 + merge-descriptors: 1.0.3 + methods: 1.1.2 + on-finished: 2.4.1 + parseurl: 1.3.3 + path-to-regexp: 0.1.12 + proxy-addr: 2.0.7 + qs: 6.13.0 + range-parser: 1.2.1 + safe-buffer: 5.2.1 + send: 0.19.0 + serve-static: 1.16.2 + setprototypeof: 1.2.0 + statuses: 2.0.1 + type-is: 1.6.18 + utils-merge: 1.0.1 + vary: 1.1.2 + dev: true + /ext/1.7.0: resolution: {integrity: sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==} dependencies: - type: 2.7.2 + type: 2.7.3 dev: false /extend-shallow/1.1.4: @@ -7981,15 +8374,15 @@ packages: resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==} dev: true - /fast-glob/3.3.2: - resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} + /fast-glob/3.3.3: + resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} engines: {node: '>=8.6.0'} dependencies: '@nodelib/fs.stat': 2.0.5 '@nodelib/fs.walk': 1.2.8 glob-parent: 5.1.2 merge2: 1.4.1 - micromatch: 4.0.5 + micromatch: 4.0.8 /fast-json-stable-stringify/2.1.0: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} @@ -8001,8 +8394,12 @@ packages: /fast-levenshtein/2.0.6: resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} - /fastq/1.17.1: - resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} + /fast-uri/3.0.6: + resolution: {integrity: sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==} + dev: true + + /fastq/1.19.0: + resolution: {integrity: sha512-7SFSRCNjBQIZH/xZR3iy5iQYR8aGBE0h3VG6/cwlbrpdciNYBMotQav8c1XI3HjHH+NikUpP53nPdlZSdWmFzA==} dependencies: reusify: 1.0.4 @@ -8031,7 +8428,6 @@ packages: /file-uri-to-path/1.0.0: resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==} - requiresBuild: true optional: true /fill-range/4.0.0: @@ -8043,12 +8439,25 @@ packages: repeat-string: 1.6.1 to-regex-range: 2.1.1 - /fill-range/7.0.1: - resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} + /fill-range/7.1.1: + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} engines: {node: '>=8'} dependencies: to-regex-range: 5.0.1 + /finalhandler/1.3.1: + resolution: {integrity: sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==} + engines: {node: '>= 0.8'} + dependencies: + debug: 2.6.9 + encodeurl: 2.0.0 + escape-html: 1.0.3 + on-finished: 2.4.1 + parseurl: 1.3.3 + statuses: 2.0.1 + unpipe: 1.0.0 + dev: true + /find-up/1.1.2: resolution: {integrity: sha512-jvElSjyuo4EMQGoTwo1uJU5pQMwTW5lS1x05zzfJuTIyLR3zwO27LYrxNg+dlvKpGOuGy/MzBdXh80g0ve5+HA==} engines: {node: '>=0.10.0'} @@ -8120,7 +8529,7 @@ packages: resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} engines: {node: ^10.12.0 || >=12.0.0} dependencies: - flatted: 3.3.1 + flatted: 3.3.3 keyv: 4.5.4 rimraf: 3.0.2 @@ -8129,8 +8538,8 @@ packages: hasBin: true dev: true - /flatted/3.3.1: - resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} + /flatted/3.3.3: + resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==} /flush-write-stream/1.1.1: resolution: {integrity: sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==} @@ -8139,14 +8548,14 @@ packages: readable-stream: 2.3.8 dev: false - /focus-lock/1.3.5: - resolution: {integrity: sha512-QFaHbhv9WPUeLYBDe/PAuLKJ4Dd9OPvKs9xZBr3yLXnUrDNaVXKu2baDBXe3naPY30hgHYSsf2JW4jzas2mDEQ==} + /focus-lock/1.3.6: + resolution: {integrity: sha512-Ik/6OCk9RQQ0T5Xw+hKNLWrjSMtv51dD4GRmJjbD5a58TIEpI5a5iXagKVl3Z5UuyslMCA8Xwnu76jQob62Yhg==} engines: {node: '>=10'} dependencies: - tslib: 2.6.2 + tslib: 2.8.1 - /follow-redirects/1.15.6: - resolution: {integrity: sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==} + /follow-redirects/1.15.9: + resolution: {integrity: sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==} engines: {node: '>=4.0'} peerDependencies: debug: '*' @@ -8155,8 +8564,9 @@ packages: optional: true dev: false - /for-each/0.3.3: - resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} + /for-each/0.3.5: + resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==} + engines: {node: '>= 0.4'} dependencies: is-callable: 1.2.7 @@ -8188,24 +8598,31 @@ packages: mime-types: 2.1.35 dev: true - /form-data/3.0.1: - resolution: {integrity: sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==} + /form-data/3.0.3: + resolution: {integrity: sha512-q5YBMeWy6E2Un0nMGWMgI65MAKtaylxfNJGJxpGh45YDciZB4epbWpaAfImil6CPAPTYB4sh0URQNDRIZG5F2w==} engines: {node: '>= 6'} dependencies: asynckit: 0.4.0 combined-stream: 1.0.8 + es-set-tostringtag: 2.1.0 mime-types: 2.1.35 dev: true - /form-data/4.0.0: - resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} + /form-data/4.0.2: + resolution: {integrity: sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w==} engines: {node: '>= 6'} dependencies: asynckit: 0.4.0 combined-stream: 1.0.8 + es-set-tostringtag: 2.1.0 mime-types: 2.1.35 dev: false + /forwarded/0.2.0: + resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} + engines: {node: '>= 0.6'} + dev: true + /fraction.js/4.3.7: resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} dev: false @@ -8216,6 +8633,11 @@ packages: dependencies: map-cache: 0.2.2 + /fresh/0.5.2: + resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} + engines: {node: '>= 0.6'} + dev: true + /fs-extra/10.1.0: resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} engines: {node: '>=12'} @@ -8255,11 +8677,11 @@ packages: resolution: {integrity: sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==} engines: {node: '>= 4.0'} os: [darwin] - deprecated: The v1 package contains DANGEROUS / INSECURE binaries. Upgrade to safe fsevents v2 + deprecated: Upgrade to fsevents v2 to mitigate potential security issues requiresBuild: true dependencies: bindings: 1.5.0 - nan: 2.19.0 + nan: 2.22.0 optional: true /fsevents/2.3.3: @@ -8272,14 +8694,16 @@ packages: /function-bind/1.1.2: resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} - /function.prototype.name/1.1.6: - resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} + /function.prototype.name/1.1.8: + resolution: {integrity: sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 + call-bound: 1.0.3 define-properties: 1.2.1 - es-abstract: 1.23.3 functions-have-names: 1.2.3 + hasown: 2.0.2 + is-callable: 1.2.7 /functional-red-black-tree/1.0.1: resolution: {integrity: sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==} @@ -8290,6 +8714,7 @@ packages: /gauge/3.0.2: resolution: {integrity: sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==} engines: {node: '>=10'} + deprecated: This package is no longer supported. dependencies: aproba: 2.0.0 color-support: 1.1.3 @@ -8311,7 +8736,7 @@ packages: hasBin: true dependencies: concat-stream: 2.0.0 - pbf: 3.2.1 + pbf: 3.3.0 shapefile: 0.6.6 /geojson-dissolve/3.1.0: @@ -8345,21 +8770,33 @@ packages: resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} dev: true - /get-intrinsic/1.2.4: - resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} + /get-intrinsic/1.2.7: + resolution: {integrity: sha512-VW6Pxhsrk0KAOqs3WEd0klDiF/+V7gQOpAvY1jVU/LHmaD/kQO4523aiJuikX/QAKYiW6x8Jh+RJej1almdtCA==} engines: {node: '>= 0.4'} dependencies: + call-bind-apply-helpers: 1.0.2 + es-define-property: 1.0.1 es-errors: 1.3.0 + es-object-atoms: 1.1.1 function-bind: 1.1.2 - has-proto: 1.0.3 - has-symbols: 1.0.3 + get-proto: 1.0.1 + gopd: 1.2.0 + has-symbols: 1.1.0 hasown: 2.0.2 + math-intrinsics: 1.1.0 /get-package-type/0.1.0: resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} engines: {node: '>=8.0.0'} dev: true + /get-proto/1.0.1: + resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} + engines: {node: '>= 0.4'} + dependencies: + dunder-proto: 1.0.1 + es-object-atoms: 1.1.1 + /get-stdin/6.0.0: resolution: {integrity: sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g==} engines: {node: '>=4'} @@ -8368,23 +8805,23 @@ packages: resolution: {integrity: sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==} engines: {node: '>=6'} dependencies: - pump: 3.0.0 + pump: 3.0.2 dev: true /get-stream/5.2.0: resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} engines: {node: '>=8'} dependencies: - pump: 3.0.0 + pump: 3.0.2 dev: true - /get-symbol-description/1.0.2: - resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==} + /get-symbol-description/1.1.0: + resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.7 + call-bound: 1.0.3 es-errors: 1.3.0 - get-intrinsic: 1.2.4 + get-intrinsic: 1.2.7 /get-value/2.0.6: resolution: {integrity: sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==} @@ -8396,6 +8833,11 @@ packages: assert-plus: 1.0.0 dev: true + /gifuct-js/2.1.2: + resolution: {integrity: sha512-rI2asw77u0mGgwhV3qA+OEgYqaDn5UNqgs+Bx0FGwSpuqfYn+Ir6RQY5ENNQ8SbIiG/m5gVa7CD5RriO4f4Lsg==} + dependencies: + js-binary-schema-parser: 2.0.3 + /glob-parent/3.1.0: resolution: {integrity: sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==} dependencies: @@ -8446,6 +8888,7 @@ packages: /glob/7.2.0: resolution: {integrity: sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==} + deprecated: Glob versions prior to v9 are no longer supported dependencies: fs.realpath: 1.0.0 inflight: 1.0.6 @@ -8457,6 +8900,7 @@ packages: /glob/7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + deprecated: Glob versions prior to v9 are no longer supported dependencies: fs.realpath: 1.0.0 inflight: 1.0.6 @@ -8468,6 +8912,7 @@ packages: /glob/8.1.0: resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} engines: {node: '>=12'} + deprecated: Glob versions prior to v9 are no longer supported dependencies: fs.realpath: 1.0.0 inflight: 1.0.6 @@ -8537,7 +8982,7 @@ packages: engines: {node: '>= 0.4'} dependencies: define-properties: 1.2.1 - gopd: 1.0.1 + gopd: 1.2.0 /globby/11.1.0: resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} @@ -8545,8 +8990,8 @@ packages: dependencies: array-union: 2.1.0 dir-glob: 3.0.1 - fast-glob: 3.3.2 - ignore: 5.3.1 + fast-glob: 3.3.3 + ignore: 5.3.2 merge2: 1.4.1 slash: 3.0.0 @@ -8557,10 +9002,9 @@ packages: sparkles: 1.0.1 dev: false - /gopd/1.0.1: - resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} - dependencies: - get-intrinsic: 1.2.4 + /gopd/1.2.0: + resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} + engines: {node: '>= 0.4'} /got/9.6.0: resolution: {integrity: sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==} @@ -8646,7 +9090,7 @@ packages: resolution: {integrity: sha512-SVSF7ikuWKhpAW4l4wapAqPPSToJoiNKsbDoUnRrSgwZHH7lH8pbPeQj1aOVYQrbZKhfSVBxVW+Py7vtulRktw==} engines: {node: '>=10'} dependencies: - '@types/node': 20.12.12 + '@types/node': 22.13.4 '@types/vinyl': 2.0.7 istextorbinary: 3.3.0 replacestream: 4.0.3 @@ -8717,12 +9161,14 @@ packages: har-schema: 2.0.0 dev: true - /has-bigints/1.0.2: - resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} + /has-bigints/1.1.0: + resolution: {integrity: sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==} + engines: {node: '>= 0.4'} /has-flag/3.0.0: resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} engines: {node: '>=4'} + dev: true /has-flag/4.0.0: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} @@ -8731,21 +9177,23 @@ packages: /has-property-descriptors/1.0.2: resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} dependencies: - es-define-property: 1.0.0 + es-define-property: 1.0.1 - /has-proto/1.0.3: - resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} + /has-proto/1.2.0: + resolution: {integrity: sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==} engines: {node: '>= 0.4'} + dependencies: + dunder-proto: 1.0.1 - /has-symbols/1.0.3: - resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} + /has-symbols/1.1.0: + resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} engines: {node: '>= 0.4'} /has-tostringtag/1.0.2: resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} engines: {node: '>= 0.4'} dependencies: - has-symbols: 1.0.3 + has-symbols: 1.1.0 /has-unicode/2.0.1: resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==} @@ -8789,8 +9237,8 @@ packages: hasBin: true dev: true - /highlight.js/11.9.0: - resolution: {integrity: sha512-fJ7cW7fQGCYAkgv4CPfwFHrfd/cLS4Hau96JuJ+ZTOWhjnhoeN1ub1tFmALm/+lW5z4WCAuAV9bm05AP0mS6Gw==} + /highlight.js/11.11.1: + resolution: {integrity: sha512-Xwwo44whKBVCYoliBQwaPvtd/2tYFkRQtXDWj1nackaV2JPXx3L0+Jvd8/qCJ2p+ML0/XVkJ2q+Mr+UVdpJK5w==} engines: {node: '>=12.0.0'} dev: false @@ -8834,6 +9282,17 @@ packages: resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} dev: true + /http-errors/2.0.0: + resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} + engines: {node: '>= 0.8'} + dependencies: + depd: 2.0.0 + inherits: 2.0.4 + setprototypeof: 1.2.0 + statuses: 2.0.1 + toidentifier: 1.0.1 + dev: true + /http-proxy-agent/4.0.1: resolution: {integrity: sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==} engines: {node: '>= 6'} @@ -8885,8 +9344,8 @@ packages: /ieee754/1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} - /ignore/5.3.1: - resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} + /ignore/5.3.2: + resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} engines: {node: '>= 4'} /image-size/0.5.5: @@ -8896,15 +9355,15 @@ packages: requiresBuild: true optional: true - /import-fresh/3.3.0: - resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} + /import-fresh/3.3.1: + resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} engines: {node: '>=6'} dependencies: parent-module: 1.0.1 resolve-from: 4.0.0 - /import-local/3.1.0: - resolution: {integrity: sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==} + /import-local/3.2.0: + resolution: {integrity: sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==} engines: {node: '>=8'} hasBin: true dependencies: @@ -8918,6 +9377,7 @@ packages: /inflight/1.0.6: resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. dependencies: once: 1.4.0 wrappy: 1.0.2 @@ -8928,13 +9388,13 @@ packages: /ini/1.3.8: resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} - /internal-slot/1.0.7: - resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==} + /internal-slot/1.1.0: + resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==} engines: {node: '>= 0.4'} dependencies: es-errors: 1.3.0 hasown: 2.0.2 - side-channel: 1.0.6 + side-channel: 1.1.0 /interpret/1.4.0: resolution: {integrity: sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==} @@ -8952,6 +9412,11 @@ packages: engines: {node: '>=0.10.0'} dev: false + /ipaddr.js/1.9.1: + resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} + engines: {node: '>= 0.10'} + dev: true + /is-absolute/1.0.0: resolution: {integrity: sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==} engines: {node: '>=0.10.0'} @@ -8966,12 +9431,13 @@ packages: dependencies: hasown: 2.0.2 - /is-array-buffer/3.0.4: - resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==} + /is-array-buffer/3.0.5: + resolution: {integrity: sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.7 - get-intrinsic: 1.2.4 + call-bind: 1.0.8 + call-bound: 1.0.3 + get-intrinsic: 1.2.7 /is-arrayish/0.2.1: resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} @@ -8979,17 +9445,21 @@ packages: /is-arrayish/0.3.2: resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} - /is-async-function/2.0.0: - resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==} + /is-async-function/2.1.1: + resolution: {integrity: sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==} engines: {node: '>= 0.4'} dependencies: + async-function: 1.0.0 + call-bound: 1.0.3 + get-proto: 1.0.1 has-tostringtag: 1.0.2 - dev: true + safe-regex-test: 1.1.0 - /is-bigint/1.0.4: - resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} + /is-bigint/1.1.0: + resolution: {integrity: sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==} + engines: {node: '>= 0.4'} dependencies: - has-bigints: 1.0.2 + has-bigints: 1.1.0 /is-binary-path/1.0.1: resolution: {integrity: sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q==} @@ -9005,11 +9475,11 @@ packages: binary-extensions: 2.3.0 dev: true - /is-boolean-object/1.1.2: - resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} + /is-boolean-object/1.2.2: + resolution: {integrity: sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.7 + call-bound: 1.0.3 has-tostringtag: 1.0.2 /is-buffer/1.1.6: @@ -9033,8 +9503,9 @@ packages: ci-info: 2.0.0 dev: true - /is-core-module/2.13.1: - resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} + /is-core-module/2.16.1: + resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} + engines: {node: '>= 0.4'} dependencies: hasown: 2.0.2 @@ -9044,16 +9515,19 @@ packages: dependencies: hasown: 2.0.2 - /is-data-view/1.0.1: - resolution: {integrity: sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==} + /is-data-view/1.0.2: + resolution: {integrity: sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==} engines: {node: '>= 0.4'} dependencies: - is-typed-array: 1.1.13 + call-bound: 1.0.3 + get-intrinsic: 1.2.7 + is-typed-array: 1.1.15 - /is-date-object/1.0.5: - resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} + /is-date-object/1.1.0: + resolution: {integrity: sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==} engines: {node: '>= 0.4'} dependencies: + call-bound: 1.0.3 has-tostringtag: 1.0.2 /is-descriptor/0.1.7: @@ -9091,11 +9565,11 @@ packages: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} - /is-finalizationregistry/1.0.2: - resolution: {integrity: sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==} + /is-finalizationregistry/1.1.1: + resolution: {integrity: sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==} + engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.7 - dev: true + call-bound: 1.0.3 /is-fullwidth-code-point/1.0.0: resolution: {integrity: sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==} @@ -9118,12 +9592,14 @@ packages: engines: {node: '>=6'} dev: true - /is-generator-function/1.0.10: - resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} + /is-generator-function/1.1.0: + resolution: {integrity: sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==} engines: {node: '>= 0.4'} dependencies: + call-bound: 1.0.3 + get-proto: 1.0.1 has-tostringtag: 1.0.2 - dev: true + safe-regex-test: 1.1.0 /is-glob/3.1.0: resolution: {integrity: sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==} @@ -9141,7 +9617,6 @@ packages: /is-map/2.0.3: resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} engines: {node: '>= 0.4'} - dev: true /is-module/1.0.0: resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==} @@ -9152,14 +9627,11 @@ packages: engines: {node: '>=0.10.0'} dev: false - /is-negative-zero/2.0.3: - resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} - engines: {node: '>= 0.4'} - - /is-number-object/1.0.7: - resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} + /is-number-object/1.1.1: + resolution: {integrity: sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==} engines: {node: '>= 0.4'} dependencies: + call-bound: 1.0.3 has-tostringtag: 1.0.2 /is-number/3.0.0: @@ -9204,15 +9676,17 @@ packages: /is-reference/1.2.1: resolution: {integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==} dependencies: - '@types/estree': 1.0.5 + '@types/estree': 1.0.6 dev: false - /is-regex/1.1.4: - resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} + /is-regex/1.2.1: + resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.7 + call-bound: 1.0.3 + gopd: 1.2.0 has-tostringtag: 1.0.2 + hasown: 2.0.2 /is-relative/1.0.0: resolution: {integrity: sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==} @@ -9224,13 +9698,12 @@ packages: /is-set/2.0.3: resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} engines: {node: '>= 0.4'} - dev: true - /is-shared-array-buffer/1.0.3: - resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==} + /is-shared-array-buffer/1.0.4: + resolution: {integrity: sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.7 + call-bound: 1.0.3 /is-stream/1.1.0: resolution: {integrity: sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==} @@ -9242,23 +9715,26 @@ packages: engines: {node: '>=8'} dev: true - /is-string/1.0.7: - resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} + /is-string/1.1.1: + resolution: {integrity: sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==} engines: {node: '>= 0.4'} dependencies: + call-bound: 1.0.3 has-tostringtag: 1.0.2 - /is-symbol/1.0.4: - resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} + /is-symbol/1.1.1: + resolution: {integrity: sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==} engines: {node: '>= 0.4'} dependencies: - has-symbols: 1.0.3 + call-bound: 1.0.3 + has-symbols: 1.1.0 + safe-regex-test: 1.1.0 - /is-typed-array/1.1.13: - resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==} + /is-typed-array/1.1.15: + resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==} engines: {node: '>= 0.4'} dependencies: - which-typed-array: 1.1.15 + which-typed-array: 1.1.18 /is-typedarray/1.0.0: resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==} @@ -9292,20 +9768,19 @@ packages: /is-weakmap/2.0.2: resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} engines: {node: '>= 0.4'} - dev: true - /is-weakref/1.0.2: - resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} + /is-weakref/1.1.1: + resolution: {integrity: sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==} + engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.7 + call-bound: 1.0.3 - /is-weakset/2.0.3: - resolution: {integrity: sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==} + /is-weakset/2.0.4: + resolution: {integrity: sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.7 - get-intrinsic: 1.2.4 - dev: true + call-bound: 1.0.3 + get-intrinsic: 1.2.7 /is-what/3.14.1: resolution: {integrity: sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==} @@ -9363,10 +9838,10 @@ packages: engines: {node: '>=6'} dependencies: '@babel/generator': 7.21.1 - '@babel/parser': 7.24.5 - '@babel/template': 7.24.0 - '@babel/traverse': 7.24.5 - '@babel/types': 7.24.5 + '@babel/parser': 7.26.9 + '@babel/template': 7.26.9 + '@babel/traverse': 7.26.9 + '@babel/types': 7.26.9 istanbul-lib-coverage: 2.0.5 semver: 6.3.1 transitivePeerDependencies: @@ -9390,7 +9865,7 @@ packages: engines: {node: '>=8'} dependencies: '@babel/core': 7.20.12 - '@babel/parser': 7.24.5 + '@babel/parser': 7.26.9 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 semver: 6.3.1 @@ -9434,16 +9909,6 @@ packages: textextensions: 3.3.0 dev: false - /iterator.prototype/1.1.2: - resolution: {integrity: sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==} - dependencies: - define-properties: 1.2.1 - get-intrinsic: 1.2.4 - has-symbols: 1.0.3 - reflect.getprototypeof: 1.0.6 - set-function-name: 2.0.2 - dev: true - /jest-changed-files/26.6.2: resolution: {integrity: sha512-fDS7szLcY9sCtIip8Fjry9oGf3I2ht/QT21bAHm5Dmf0mD4X3ReNUf17y+bO6fR8WgbIZTlbyG1ak/53cbRzKQ==} engines: {node: '>= 10.14.2'} @@ -9464,7 +9929,7 @@ packages: chalk: 4.1.2 exit: 0.1.2 graceful-fs: 4.2.11 - import-local: 3.1.0 + import-local: 3.2.0 is-ci: 2.0.0 jest-config: 26.6.3 jest-util: 26.6.2 @@ -9490,7 +9955,7 @@ packages: chalk: 4.1.2 exit: 0.1.2 graceful-fs: 4.2.11 - import-local: 3.1.0 + import-local: 3.2.0 is-ci: 2.0.0 jest-config: 26.6.3_canvas@2.11.2 jest-util: 26.6.2 @@ -9516,7 +9981,7 @@ packages: chalk: 4.1.2 exit: 0.1.2 graceful-fs: 4.2.11 - import-local: 3.1.0 + import-local: 3.2.0 is-ci: 2.0.0 jest-config: 26.6.3_ts-node@10.9.0 jest-util: 26.6.2 @@ -9581,7 +10046,7 @@ packages: jest-resolve: 26.6.2 jest-util: 26.6.2 jest-validate: 26.6.2 - micromatch: 4.0.5 + micromatch: 4.0.8 pretty-format: 26.6.2 transitivePeerDependencies: - bufferutil @@ -9615,7 +10080,7 @@ packages: jest-resolve: 26.6.2 jest-util: 26.6.2 jest-validate: 26.6.2 - micromatch: 4.0.5 + micromatch: 4.0.8 pretty-format: 26.6.2 transitivePeerDependencies: - bufferutil @@ -9649,9 +10114,9 @@ packages: jest-resolve: 26.6.2 jest-util: 26.6.2 jest-validate: 26.6.2 - micromatch: 4.0.5 + micromatch: 4.0.8 pretty-format: 26.6.2 - ts-node: 10.9.0_tei2piaewgwz3rqboli3bdgchy + ts-node: 10.9.0_gneqayswslsivwydh4xidq7ly4 transitivePeerDependencies: - bufferutil - canvas @@ -9756,7 +10221,7 @@ packages: '@jest/environment': 26.6.2 '@jest/fake-timers': 26.6.2 '@jest/types': 26.6.2 - '@types/node': 20.12.12 + '@types/node': 22.13.4 jest-mock: 26.6.2 jest-util: 26.6.2 jsdom: 16.7.0 @@ -9774,7 +10239,7 @@ packages: '@jest/environment': 26.6.2 '@jest/fake-timers': 26.6.2 '@jest/types': 26.6.2 - '@types/node': 20.12.12 + '@types/node': 22.13.4 jest-mock: 26.6.2 jest-util: 26.6.2 jsdom: 16.7.0_canvas@2.11.2 @@ -9805,7 +10270,7 @@ packages: '@jest/environment': 26.6.2 '@jest/fake-timers': 26.6.2 '@jest/types': 26.6.2 - '@types/node': 20.12.12 + '@types/node': 22.13.4 jest-mock: 26.6.2 jest-util: 26.6.2 dev: true @@ -9845,7 +10310,7 @@ packages: dependencies: '@jest/types': 26.6.2 '@types/graceful-fs': 4.1.9 - '@types/node': 20.12.12 + '@types/node': 22.13.4 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 @@ -9853,7 +10318,7 @@ packages: jest-serializer: 26.6.2 jest-util: 26.6.2 jest-worker: 26.6.2 - micromatch: 4.0.5 + micromatch: 4.0.8 sane: 4.1.0 walker: 1.0.8 optionalDependencies: @@ -9864,7 +10329,7 @@ packages: resolution: {integrity: sha512-Cq7vkAgaYKp+PsX+2/JbTarrk0DmNhsEtqBXNwUHkdlbrTBLtMJINADf2mf5FkowNsq8evbPc07/qFO0AdKTzw==} engines: {node: '>= 6'} dependencies: - '@babel/traverse': 7.24.5 + '@babel/traverse': 7.26.9 '@jest/environment': 24.9.0 '@jest/test-result': 24.9.0 '@jest/types': 24.9.0 @@ -9888,12 +10353,12 @@ packages: resolution: {integrity: sha512-kPKUrQtc8aYwBV7CqBg5pu+tmYXlvFlSFYn18ev4gPFtrRzB15N2gW/Roew3187q2w2eHuu0MU9TJz6w0/nPEg==} engines: {node: '>= 10.14.2'} dependencies: - '@babel/traverse': 7.24.5 + '@babel/traverse': 7.26.9 '@jest/environment': 26.6.2 '@jest/source-map': 26.6.2 '@jest/test-result': 26.6.2 '@jest/types': 26.6.2 - '@types/node': 20.12.12 + '@types/node': 22.13.4 chalk: 4.1.2 co: 4.6.0 expect: 26.6.2 @@ -9918,12 +10383,12 @@ packages: resolution: {integrity: sha512-kPKUrQtc8aYwBV7CqBg5pu+tmYXlvFlSFYn18ev4gPFtrRzB15N2gW/Roew3187q2w2eHuu0MU9TJz6w0/nPEg==} engines: {node: '>= 10.14.2'} dependencies: - '@babel/traverse': 7.24.5 + '@babel/traverse': 7.26.9 '@jest/environment': 26.6.2 '@jest/source-map': 26.6.2 '@jest/test-result': 26.6.2 '@jest/types': 26.6.2 - '@types/node': 20.12.12 + '@types/node': 22.13.4 chalk: 4.1.2 co: 4.6.0 expect: 26.6.2 @@ -9948,12 +10413,12 @@ packages: resolution: {integrity: sha512-kPKUrQtc8aYwBV7CqBg5pu+tmYXlvFlSFYn18ev4gPFtrRzB15N2gW/Roew3187q2w2eHuu0MU9TJz6w0/nPEg==} engines: {node: '>= 10.14.2'} dependencies: - '@babel/traverse': 7.24.5 + '@babel/traverse': 7.26.9 '@jest/environment': 26.6.2 '@jest/source-map': 26.6.2 '@jest/test-result': 26.6.2 '@jest/types': 26.6.2 - '@types/node': 20.12.12 + '@types/node': 22.13.4 chalk: 4.1.2 co: 4.6.0 expect: 26.6.2 @@ -10014,7 +10479,7 @@ packages: resolution: {integrity: sha512-oCj8FiZ3U0hTP4aSui87P4L4jC37BtQwUMqk+zk/b11FR19BJDeZsZAvIHutWnmtw7r85UmR3CEWZ0HWU2mAlw==} engines: {node: '>= 6'} dependencies: - '@babel/code-frame': 7.24.2 + '@babel/code-frame': 7.26.2 '@jest/test-result': 24.9.0 '@jest/types': 24.9.0 '@types/stack-utils': 1.0.1 @@ -10028,12 +10493,12 @@ packages: resolution: {integrity: sha512-rGiLePzQ3AzwUshu2+Rn+UMFk0pHN58sOG+IaJbk5Jxuqo3NYO1U2/MIR4S1sKgsoYSXSzdtSa0TgrmtUwEbmA==} engines: {node: '>= 10.14.2'} dependencies: - '@babel/code-frame': 7.24.2 + '@babel/code-frame': 7.26.2 '@jest/types': 26.6.2 '@types/stack-utils': 2.0.3 chalk: 4.1.2 graceful-fs: 4.2.11 - micromatch: 4.0.5 + micromatch: 4.0.8 pretty-format: 26.6.2 slash: 3.0.0 stack-utils: 2.0.6 @@ -10051,7 +10516,7 @@ packages: engines: {node: '>= 10.14.2'} dependencies: '@jest/types': 26.6.2 - '@types/node': 20.12.12 + '@types/node': 22.13.4 dev: true /jest-pnp-resolver/1.2.3_jest-resolve@24.9.0: @@ -10118,7 +10583,7 @@ packages: jest-pnp-resolver: 1.2.3_jest-resolve@26.6.2 jest-util: 26.6.2 read-pkg-up: 7.0.1 - resolve: 1.22.8 + resolve: 1.22.10 slash: 3.0.0 dev: true @@ -10157,7 +10622,7 @@ packages: '@jest/environment': 26.6.2 '@jest/test-result': 26.6.2 '@jest/types': 26.6.2 - '@types/node': 20.12.12 + '@types/node': 22.13.4 chalk: 4.1.2 emittery: 0.7.2 exit: 0.1.2 @@ -10189,7 +10654,7 @@ packages: '@jest/environment': 26.6.2 '@jest/test-result': 26.6.2 '@jest/types': 26.6.2 - '@types/node': 20.12.12 + '@types/node': 22.13.4 chalk: 4.1.2 emittery: 0.7.2 exit: 0.1.2 @@ -10221,7 +10686,7 @@ packages: '@jest/environment': 26.6.2 '@jest/test-result': 26.6.2 '@jest/types': 26.6.2 - '@types/node': 20.12.12 + '@types/node': 22.13.4 chalk: 4.1.2 emittery: 0.7.2 exit: 0.1.2 @@ -10406,7 +10871,7 @@ packages: resolution: {integrity: sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g==} engines: {node: '>= 10.14.2'} dependencies: - '@types/node': 20.12.12 + '@types/node': 22.13.4 graceful-fs: 4.2.11 dev: true @@ -10414,7 +10879,7 @@ packages: resolution: {integrity: sha512-uI/rszGSs73xCM0l+up7O7a40o90cnrk429LOiK3aeTvfC0HHmldbd81/B7Ix81KSFe1lwkbl7GnBGG4UfuDew==} engines: {node: '>= 6'} dependencies: - '@babel/types': 7.24.5 + '@babel/types': 7.26.9 '@jest/types': 24.9.0 chalk: 2.4.2 expect: 24.9.0 @@ -10433,9 +10898,9 @@ packages: resolution: {integrity: sha512-OLhxz05EzUtsAmOMzuupt1lHYXCNib0ECyuZ/PZOx9TrZcC8vL0x+DUG3TL+GLX3yHG45e6YGjIm0XwDc3q3og==} engines: {node: '>= 10.14.2'} dependencies: - '@babel/types': 7.24.5 + '@babel/types': 7.26.9 '@jest/types': 26.6.2 - '@types/babel__traverse': 7.20.5 + '@types/babel__traverse': 7.20.6 '@types/prettier': 2.7.3 chalk: 4.1.2 expect: 26.6.2 @@ -10474,11 +10939,11 @@ packages: engines: {node: '>= 10.14.2'} dependencies: '@jest/types': 26.6.2 - '@types/node': 20.12.12 + '@types/node': 22.13.4 chalk: 4.1.2 graceful-fs: 4.2.11 is-ci: 2.0.0 - micromatch: 4.0.5 + micromatch: 4.0.8 dev: true /jest-validate/24.9.0: @@ -10511,7 +10976,7 @@ packages: dependencies: '@jest/test-result': 26.6.2 '@jest/types': 26.6.2 - '@types/node': 20.12.12 + '@types/node': 22.13.4 ansi-escapes: 4.3.2 chalk: 4.1.2 jest-util: 26.6.2 @@ -10530,7 +10995,7 @@ packages: resolution: {integrity: sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==} engines: {node: '>= 10.13.0'} dependencies: - '@types/node': 20.12.12 + '@types/node': 22.13.4 merge-stream: 2.0.0 supports-color: 7.2.0 dev: true @@ -10541,7 +11006,7 @@ packages: hasBin: true dependencies: '@jest/core': 26.6.3 - import-local: 3.1.0 + import-local: 3.2.0 jest-cli: 26.6.3 transitivePeerDependencies: - bufferutil @@ -10557,7 +11022,7 @@ packages: hasBin: true dependencies: '@jest/core': 26.6.3_canvas@2.11.2 - import-local: 3.1.0 + import-local: 3.2.0 jest-cli: 26.6.3_canvas@2.11.2 transitivePeerDependencies: - bufferutil @@ -10573,7 +11038,7 @@ packages: hasBin: true dependencies: '@jest/core': 26.6.3_ts-node@10.9.0 - import-local: 3.1.0 + import-local: 3.2.0 jest-cli: 26.6.3_ts-node@10.9.0 transitivePeerDependencies: - bufferutil @@ -10583,6 +11048,9 @@ packages: - utf-8-validate dev: true + /js-binary-schema-parser/2.0.3: + resolution: {integrity: sha512-xezGJmOb4lk/M1ZZLTR/jaBHQ4gG/lqQnJqdIv4721DMggsa1bDVlHXNeHYogaIEHD9vCRv0fcL4hMA+Coarkg==} + /js-string-escape/1.0.1: resolution: {integrity: sha512-Smw4xcfIQ5LVjAOuJCvN/zIodzA/BBSsluuoSykP+lUvScIi4U6RJLfwHet5cxFnCswUjISV8oAXaqaJDY3chg==} engines: {node: '>= 0.8'} @@ -10623,12 +11091,12 @@ packages: escodegen: 1.14.3 html-encoding-sniffer: 1.0.2 left-pad: 1.3.0 - nwsapi: 2.2.10 + nwsapi: 2.2.16 parse5: 4.0.0 pn: 1.1.0 request: 2.88.2 request-promise-native: 1.0.9_request@2.88.2 - sax: 1.3.0 + sax: 1.4.1 symbol-tree: 3.2.4 tough-cookie: 2.5.0 w3c-hr-time: 1.0.2 @@ -10636,7 +11104,7 @@ packages: whatwg-encoding: 1.0.5 whatwg-mimetype: 2.3.0 whatwg-url: 6.5.0 - ws: 5.2.3 + ws: 5.2.4 xml-name-validator: 3.0.0 dev: true @@ -10650,20 +11118,20 @@ packages: optional: true dependencies: abab: 2.0.6 - acorn: 8.11.3 + acorn: 8.14.0 acorn-globals: 6.0.0 cssom: 0.4.4 cssstyle: 2.3.0 data-urls: 2.0.0 - decimal.js: 10.4.3 + decimal.js: 10.5.0 domexception: 2.0.1 escodegen: 2.1.0 - form-data: 3.0.1 + form-data: 3.0.3 html-encoding-sniffer: 2.0.1 http-proxy-agent: 4.0.1 https-proxy-agent: 5.0.1 is-potential-custom-element-name: 1.0.1 - nwsapi: 2.2.10 + nwsapi: 2.2.16 parse5: 6.0.1 saxes: 5.0.1 symbol-tree: 3.2.4 @@ -10674,7 +11142,7 @@ packages: whatwg-encoding: 1.0.5 whatwg-mimetype: 2.3.0 whatwg-url: 8.7.0 - ws: 7.5.9 + ws: 7.5.10 xml-name-validator: 3.0.0 transitivePeerDependencies: - bufferutil @@ -10692,21 +11160,21 @@ packages: optional: true dependencies: abab: 2.0.6 - acorn: 8.11.3 + acorn: 8.14.0 acorn-globals: 6.0.0 canvas: 2.11.2 cssom: 0.4.4 cssstyle: 2.3.0 data-urls: 2.0.0 - decimal.js: 10.4.3 + decimal.js: 10.5.0 domexception: 2.0.1 escodegen: 2.1.0 - form-data: 3.0.1 + form-data: 3.0.3 html-encoding-sniffer: 2.0.1 http-proxy-agent: 4.0.1 https-proxy-agent: 5.0.1 is-potential-custom-element-name: 1.0.1 - nwsapi: 2.2.10 + nwsapi: 2.2.16 parse5: 6.0.1 saxes: 5.0.1 symbol-tree: 3.2.4 @@ -10717,7 +11185,7 @@ packages: whatwg-encoding: 1.0.5 whatwg-mimetype: 2.3.0 whatwg-url: 8.7.0 - ws: 7.5.9 + ws: 7.5.10 xml-name-validator: 3.0.0 transitivePeerDependencies: - bufferutil @@ -10725,16 +11193,22 @@ packages: - utf-8-validate dev: true - /jsesc/0.5.0: - resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} - hasBin: true - dev: false - /jsesc/2.5.2: resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} engines: {node: '>=4'} hasBin: true + /jsesc/3.0.2: + resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==} + engines: {node: '>=6'} + hasBin: true + dev: false + + /jsesc/3.1.0: + resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} + engines: {node: '>=6'} + hasBin: true + /json-buffer/3.0.0: resolution: {integrity: sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==} dev: true @@ -10793,6 +11267,11 @@ packages: optionalDependencies: graceful-fs: 4.2.11 + /jsonrepair/3.8.1: + resolution: {integrity: sha512-5wnjaO53EJOhfLFY92nvBz2B9gqF9ql/D4HKUb1WOSBaqtVcAifFfmurblnhCJn/ySqKFA8U3n7nhGMAu/hEjQ==} + hasBin: true + dev: false + /jsprim/1.4.2: resolution: {integrity: sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==} engines: {node: '>=0.6.0'} @@ -10812,9 +11291,9 @@ packages: engines: {node: '>=4.0'} dependencies: array-includes: 3.1.8 - array.prototype.flat: 1.3.2 - object.assign: 4.1.5 - object.values: 1.2.0 + array.prototype.flat: 1.3.3 + object.assign: 4.1.7 + object.values: 1.2.1 /just-debounce/1.1.0: resolution: {integrity: sha512-qpcRocdkUmf+UTNBYx5w6dexX5J31AKK1OmPwH630a83DdVVUIngk55RSAiIGpQyoH0dlr872VHfPjnQnK1qDQ==} @@ -10862,15 +11341,15 @@ packages: engines: {node: '>=6'} dev: true - /language-subtag-registry/0.3.22: - resolution: {integrity: sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==} + /language-subtag-registry/0.3.23: + resolution: {integrity: sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==} dev: true /language-tags/1.0.9: resolution: {integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==} engines: {node: '>=0.10'} dependencies: - language-subtag-registry: 0.3.22 + language-subtag-registry: 0.3.23 dev: true /last-run/1.1.1: @@ -10914,7 +11393,7 @@ packages: dependencies: copy-anything: 2.0.6 parse-node-version: 1.0.1 - tslib: 2.6.2 + tslib: 2.8.1 optionalDependencies: errno: 0.1.8 graceful-fs: 4.2.11 @@ -10955,7 +11434,7 @@ packages: is-plain-object: 2.0.4 object.map: 1.0.1 rechoir: 0.6.2 - resolve: 1.22.8 + resolve: 1.22.10 dev: false /lines-and-columns/1.2.4: @@ -11081,12 +11560,12 @@ packages: resolution: {integrity: sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==} engines: {node: '>=12'} dependencies: - '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/sourcemap-codec': 1.5.0 - /magic-string/0.30.10: - resolution: {integrity: sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==} + /magic-string/0.30.17: + resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==} dependencies: - '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/sourcemap-codec': 1.5.0 dev: true /make-dir/2.1.0: @@ -11108,7 +11587,7 @@ packages: resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} engines: {node: '>=10'} dependencies: - semver: 7.6.2 + semver: 7.7.1 dev: true /make-error/1.3.6: @@ -11160,7 +11639,7 @@ packages: dependencies: findup-sync: 2.0.0 micromatch: 3.1.10 - resolve: 1.22.8 + resolve: 1.22.10 stack-trace: 0.0.10 dev: false @@ -11172,6 +11651,10 @@ packages: dev: true optional: true + /math-intrinsics/1.1.0: + resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} + engines: {node: '>= 0.4'} + /md5-hex/3.0.1: resolution: {integrity: sha512-BUiRtTtV39LIJwinWBjqVsU9xhdnz7/i889V859IBFpuqGAj6LuOvHv5XLbgZ2R7ptJoJaEcxkv88/h25T7Ciw==} engines: {node: '>=8'} @@ -11183,8 +11666,14 @@ packages: resolution: {integrity: sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==} dev: false - /memoizee/0.4.15: - resolution: {integrity: sha512-UBWmJpLZd5STPm7PMUlOw/TSy972M+z8gcyQ5veOnSDRREz/0bmpyTfKt3/51DhEBqCZQn1udM/5flcSPYhkdQ==} + /media-typer/0.3.0: + resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} + engines: {node: '>= 0.6'} + dev: true + + /memoizee/0.4.17: + resolution: {integrity: sha512-DGqD7Hjpi/1or4F/aYAspXKNm5Yili0QDAFAY4QYvpqpgiY6+1jOfqpmByzjxbWd/T9mChbCArXAbDAsTm5oXA==} + engines: {node: '>=0.12'} dependencies: d: 1.0.2 es5-ext: 0.10.64 @@ -11193,7 +11682,7 @@ packages: is-promise: 2.2.2 lru-queue: 0.1.0 next-tick: 1.1.0 - timers-ext: 0.1.7 + timers-ext: 0.1.8 dev: false /memorystream/0.3.1: @@ -11201,6 +11690,10 @@ packages: engines: {node: '>= 0.10.0'} dev: true + /merge-descriptors/1.0.3: + resolution: {integrity: sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==} + dev: true + /merge-stream/2.0.0: resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} @@ -11208,6 +11701,11 @@ packages: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} + /methods/1.1.2: + resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} + engines: {node: '>= 0.6'} + dev: true + /micromatch/3.1.10: resolution: {integrity: sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==} engines: {node: '>=0.10.0'} @@ -11226,11 +11724,11 @@ packages: snapdragon: 0.8.2 to-regex: 3.0.2 - /micromatch/4.0.5: - resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} + /micromatch/4.0.8: + resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} engines: {node: '>=8.6'} dependencies: - braces: 3.0.2 + braces: 3.0.3 picomatch: 2.3.1 /mime-db/1.52.0: @@ -11247,8 +11745,6 @@ packages: resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} engines: {node: '>=4'} hasBin: true - requiresBuild: true - optional: true /mime/3.0.0: resolution: {integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==} @@ -11289,8 +11785,8 @@ packages: brace-expansion: 2.0.1 dev: false - /minimatch/9.0.4: - resolution: {integrity: sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==} + /minimatch/9.0.5: + resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} engines: {node: '>=16 || 14 >=14.17'} dependencies: brace-expansion: 2.0.1 @@ -11346,13 +11842,13 @@ packages: hasBin: true dev: true - /mlly/1.7.0: - resolution: {integrity: sha512-U9SDaXGEREBYQgfejV97coK0UL1r+qnF2SyO9A3qcI8MzKnsIFKHNVEkrDyNncQTKQQumsasmeq84eNMdBfsNQ==} + /mlly/1.7.4: + resolution: {integrity: sha512-qmdSIPC4bDJXgZTCR7XosJiNKySV7O215tsPtDN9iEO/7q/76b/ijtgRu/+epFXSJhijtTCCGp3DWS549P3xKw==} dependencies: - acorn: 8.11.3 - pathe: 1.1.2 - pkg-types: 1.1.1 - ufo: 1.5.3 + acorn: 8.14.0 + pathe: 2.0.3 + pkg-types: 1.3.1 + ufo: 1.5.4 dev: true /mocha/9.2.2: @@ -11400,8 +11896,8 @@ packages: engines: {node: '>= 0.10'} dev: false - /nan/2.19.0: - resolution: {integrity: sha512-nO1xXxfh/RWNxfd/XPfbIfFk5vgLsAxUR9y5O0cHMJu/AW9U95JLXqthYHjEp+8gQ5p96K9jUp8nbVOxCdRbtw==} + /nan/2.22.0: + resolution: {integrity: sha512-nbajikzWTMwsW+eSsNm3QwlOs7het9gGJU5dDZzRTQGk03vyBOauxgI4VakDzE0PtsGTmXPsXTbbjVhRwR5mpw==} /nanoid/3.3.1: resolution: {integrity: sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw==} @@ -11409,8 +11905,8 @@ packages: hasBin: true dev: true - /nanoid/3.3.7: - resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} + /nanoid/3.3.8: + resolution: {integrity: sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true @@ -11440,9 +11936,14 @@ packages: requiresBuild: true dependencies: iconv-lite: 0.6.3 - sax: 1.3.0 + sax: 1.4.1 optional: true + /negotiator/0.6.3: + resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} + engines: {node: '>= 0.6'} + dev: true + /next-tick/1.1.0: resolution: {integrity: sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==} dev: false @@ -11479,8 +11980,8 @@ packages: dev: true optional: true - /node-releases/2.0.14: - resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} + /node-releases/2.0.19: + resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==} /node-sql-parser/4.17.0: resolution: {integrity: sha512-3IhovpmUBpcETnoKK/KBdkz2mz53kVG5E1dnqz1QuYvtzdxYZW5xaGGEvW9u6Yyy2ivwR3eUZrn9inmEVef02w==} @@ -11501,7 +12002,7 @@ packages: resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} dependencies: hosted-git-info: 2.8.9 - resolve: 1.22.8 + resolve: 1.22.10 semver: 5.7.2 validate-npm-package-license: 3.0.4 @@ -11548,12 +12049,12 @@ packages: dependencies: ansi-styles: 3.2.1 chalk: 2.4.2 - cross-spawn: 6.0.5 + cross-spawn: 6.0.6 memorystream: 0.3.1 minimatch: 3.1.2 pidtree: 0.3.1 read-pkg: 3.0.0 - shell-quote: 1.8.1 + shell-quote: 1.8.2 string.prototype.padend: 3.1.6 dev: true @@ -11573,6 +12074,7 @@ packages: /npmlog/5.0.1: resolution: {integrity: sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==} + deprecated: This package is no longer supported. dependencies: are-we-there-yet: 2.0.0 console-control-strings: 1.1.0 @@ -11588,8 +12090,8 @@ packages: /number-precision/1.6.0: resolution: {integrity: sha512-05OLPgbgmnixJw+VvEh18yNPUo3iyp4BEWJcrLu4X9W05KmMifN7Mu5exYvQXqxxeNWhvIF+j3Rij+HmddM/hQ==} - /nwsapi/2.2.10: - resolution: {integrity: sha512-QK0sRs7MKv0tKe1+5uZIQk/C8XGza4DAnztJG8iD+TpJIORARrCxczA738awHrZoHeTjSSoHqao2teO0dC/gFQ==} + /nwsapi/2.2.16: + resolution: {integrity: sha512-F1I/bimDpj3ncaNDhfyMWuFqmQDBwDB0Fogc2qpL3BWvkQteFD/8BzWuIRl83rq0DXfm8SGt/HFhLXZyljTXcQ==} dev: true /oauth-sign/0.9.0: @@ -11608,8 +12110,9 @@ packages: define-property: 0.2.5 kind-of: 3.2.2 - /object-inspect/1.13.1: - resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} + /object-inspect/1.13.4: + resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==} + engines: {node: '>= 0.4'} /object-keys/1.1.1: resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} @@ -11621,13 +12124,15 @@ packages: dependencies: isobject: 3.0.1 - /object.assign/4.1.5: - resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} + /object.assign/4.1.7: + resolution: {integrity: sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 + call-bound: 1.0.3 define-properties: 1.2.1 - has-symbols: 1.0.3 + es-object-atoms: 1.1.1 + has-symbols: 1.1.0 object-keys: 1.1.1 /object.defaults/1.1.0: @@ -11644,39 +12149,39 @@ packages: resolution: {integrity: sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 define-properties: 1.2.1 - es-object-atoms: 1.0.0 + es-object-atoms: 1.1.1 /object.fromentries/2.0.8: resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.3 - es-object-atoms: 1.0.0 + es-abstract: 1.23.9 + es-object-atoms: 1.1.1 /object.getownpropertydescriptors/2.1.8: resolution: {integrity: sha512-qkHIGe4q0lSYMv0XI4SsBTJz3WaURhLvd0lKSgtVuOsJ2krg4SgMw3PIRQFMp07yi++UR3se2mkcLqsBNpBb/A==} engines: {node: '>= 0.8'} dependencies: array.prototype.reduce: 1.0.7 - call-bind: 1.0.7 + call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.3 - es-object-atoms: 1.0.0 - gopd: 1.0.1 - safe-array-concat: 1.1.2 + es-abstract: 1.23.9 + es-object-atoms: 1.1.1 + gopd: 1.2.0 + safe-array-concat: 1.1.3 dev: true /object.groupby/1.0.3: resolution: {integrity: sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.3 + es-abstract: 1.23.9 dev: true /object.hasown/1.1.4: @@ -11684,8 +12189,8 @@ packages: engines: {node: '>= 0.4'} dependencies: define-properties: 1.2.1 - es-abstract: 1.23.3 - es-object-atoms: 1.0.0 + es-abstract: 1.23.9 + es-object-atoms: 1.1.1 /object.map/1.0.1: resolution: {integrity: sha512-3+mAJu2PLfnSVGHwIWubpOFLscJANBKuB/6A4CxBstc4aqwQY0FWcsppuy4jU5GSB95yES5JHSI+33AWuS4k6w==} @@ -11709,13 +12214,21 @@ packages: make-iterator: 1.0.1 dev: false - /object.values/1.2.0: - resolution: {integrity: sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==} + /object.values/1.2.1: + resolution: {integrity: sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 + call-bound: 1.0.3 define-properties: 1.2.1 - es-object-atoms: 1.0.0 + es-object-atoms: 1.1.1 + + /on-finished/2.4.1: + resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} + engines: {node: '>= 0.8'} + dependencies: + ee-first: 1.1.1 + dev: true /once/1.4.0: resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} @@ -11764,6 +12277,14 @@ packages: lcid: 1.0.0 dev: false + /own-keys/1.0.1: + resolution: {integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.7 + object-keys: 1.1.1 + safe-push-apply: 1.0.0 + /p-cancelable/1.1.0: resolution: {integrity: sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==} engines: {node: '>=6'} @@ -11797,7 +12318,7 @@ packages: resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: - yocto-queue: 1.0.0 + yocto-queue: 1.1.1 dev: true /p-locate/3.0.0: @@ -11860,7 +12381,7 @@ packages: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} engines: {node: '>=8'} dependencies: - '@babel/code-frame': 7.24.2 + '@babel/code-frame': 7.26.2 error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 @@ -11886,6 +12407,11 @@ packages: resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==} dev: true + /parseurl/1.3.3: + resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} + engines: {node: '>= 0.8'} + dev: true + /pascalcase/0.1.1: resolution: {integrity: sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==} engines: {node: '>=0.10.0'} @@ -11955,6 +12481,10 @@ packages: array-source: 0.0.4 file-source: 0.6.1 + /path-to-regexp/0.1.12: + resolution: {integrity: sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==} + dev: true + /path-type/1.1.0: resolution: {integrity: sha512-S4eENJz1pkiQn9Znv33Q+deTOKmbl+jj1Fl+qiP/vYezj+S8x+J3Uo0ISrx/QoEvIlOaDWJhPaRd1flJ9HXZqg==} engines: {node: '>=0.10.0'} @@ -11979,12 +12509,16 @@ packages: resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} dev: true + /pathe/2.0.3: + resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} + dev: true + /pathval/1.1.1: resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} dev: true - /pbf/3.2.1: - resolution: {integrity: sha512-ClrV7pNOn7rtmoQVF4TS1vyU0WhYRnP92fzbfF75jAIwpnzdJXf8iTd4CMEqO4yUenH6NDqLiwjqlh6QgZzgLQ==} + /pbf/3.3.0: + resolution: {integrity: sha512-XDF38WCH3z5OV/OVa8GKUNtLAyneuzbCisx7QUCF8Q6Nutx0WnJrQe5O+kOtBlLfRNUws98Y58Lblp+NJG5T4Q==} hasBin: true dependencies: ieee754: 1.2.1 @@ -12002,13 +12536,17 @@ packages: resolution: {integrity: sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==} dev: false - /picocolors/1.0.1: - resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} + /picocolors/1.1.1: + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} /picomatch/2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} + /picomatch/4.0.2: + resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} + engines: {node: '>=12'} + /pidtree/0.3.1: resolution: {integrity: sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==} engines: {node: '>=0.10'} @@ -12054,12 +12592,12 @@ packages: find-up: 4.1.0 dev: true - /pkg-types/1.1.1: - resolution: {integrity: sha512-ko14TjmDuQJ14zsotODv7dBlwxKhUKQEhuhmbqo1uCi9BB0Z2alo/wAXg6q1dTR5TyuqYyWhjtfe/Tsh+X28jQ==} + /pkg-types/1.3.1: + resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==} dependencies: - confbox: 0.1.7 - mlly: 1.7.0 - pathe: 1.1.2 + confbox: 0.1.8 + mlly: 1.7.4 + pathe: 2.0.3 dev: true /plugin-error/0.1.2: @@ -12107,8 +12645,8 @@ packages: resolution: {integrity: sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==} engines: {node: '>=0.10.0'} - /possible-typed-array-names/1.0.0: - resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} + /possible-typed-array-names/1.1.0: + resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==} engines: {node: '>= 0.4'} /postcss-value-parser/4.2.0: @@ -12127,9 +12665,9 @@ packages: resolution: {integrity: sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==} engines: {node: ^10 || ^12 || >=14} dependencies: - nanoid: 3.3.7 - picocolors: 1.0.1 - source-map-js: 1.2.0 + nanoid: 3.3.8 + picocolors: 1.1.1 + source-map-js: 1.2.1 /prelude-ls/1.1.2: resolution: {integrity: sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==} @@ -12217,6 +12755,14 @@ packages: /protocol-buffers-schema/3.6.0: resolution: {integrity: sha512-TdDRD+/QNdrCGCE7v8340QyuXd4kIWIgapsE2+n/SaGiSSbomYl4TjHlvIoCWRpE7wFt02EpB35VVA2ImcBVqw==} + /proxy-addr/2.0.7: + resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} + engines: {node: '>= 0.10'} + dependencies: + forwarded: 0.2.0 + ipaddr.js: 1.9.1 + dev: true + /proxy-from-env/1.1.0: resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} dev: false @@ -12225,8 +12771,10 @@ packages: resolution: {integrity: sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==} optional: true - /psl/1.9.0: - resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==} + /psl/1.15.0: + resolution: {integrity: sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==} + dependencies: + punycode: 2.3.1 dev: true /pump/2.0.1: @@ -12236,8 +12784,8 @@ packages: once: 1.4.0 dev: false - /pump/3.0.0: - resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} + /pump/3.0.2: + resolution: {integrity: sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==} dependencies: end-of-stream: 1.4.4 once: 1.4.0 @@ -12255,6 +12803,13 @@ packages: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} + /qs/6.13.0: + resolution: {integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==} + engines: {node: '>=0.6'} + dependencies: + side-channel: 1.1.0 + dev: true + /qs/6.5.3: resolution: {integrity: sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==} engines: {node: '>=0.6'} @@ -12272,12 +12827,27 @@ packages: dependencies: safe-buffer: 5.2.1 - /react-clientside-effect/1.2.6_react@18.3.1: - resolution: {integrity: sha512-XGGGRQAKY+q25Lz9a/4EPqom7WRjz3z9R2k4jhVKA/puQFH/5Nt27vFZYql4m4NVNdUvX8PS3O7r/Zzm7cjUlg==} + /range-parser/1.2.1: + resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} + engines: {node: '>= 0.6'} + dev: true + + /raw-body/2.5.2: + resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==} + engines: {node: '>= 0.8'} + dependencies: + bytes: 3.1.2 + http-errors: 2.0.0 + iconv-lite: 0.4.24 + unpipe: 1.0.0 + dev: true + + /react-clientside-effect/1.2.7_react@18.3.1: + resolution: {integrity: sha512-gce9m0Pk/xYYMEojRI9bgvqQAkl6hm7ozQvqWPyQx+kULiatdHgkNM1QG4DQRx5N9BAzWSCJmt9mMV8/KsdgVg==} peerDependencies: - react: ^15.3.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.26.9 react: 18.3.1 /react-dom/18.3.1_react@18.3.1: @@ -12289,23 +12859,23 @@ packages: react: 18.3.1 scheduler: 0.23.2 - /react-focus-lock/2.12.1_2eeaxkqdcvbrwk75oeh4jz4him: - resolution: {integrity: sha512-lfp8Dve4yJagkHiFrC1bGtib3mF2ktqwPJw4/WGcgPW+pJ/AVQA5X2vI7xgp13FcxFEpYBBHpXai/N2DBNC0Jw==} + /react-focus-lock/2.13.6_x25zuu6u7xhdvbznsywf7wxevq: + resolution: {integrity: sha512-ehylFFWyYtBKXjAO9+3v8d0i+cnc1trGS0vlTGhzFW1vbFXVUTmR8s2tt/ZQG8x5hElg6rhENlLG1H3EZK0Llg==} peerDependencies: - '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 + '@types/react': '*' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc peerDependenciesMeta: '@types/react': optional: true dependencies: - '@babel/runtime': 7.24.5 - '@types/react': 18.3.2 - focus-lock: 1.3.5 + '@babel/runtime': 7.26.9 + '@types/react': 18.3.18 + focus-lock: 1.3.6 prop-types: 15.8.1 react: 18.3.1 - react-clientside-effect: 1.2.6_react@18.3.1 - use-callback-ref: 1.3.2_2eeaxkqdcvbrwk75oeh4jz4him - use-sidecar: 1.1.2_2eeaxkqdcvbrwk75oeh4jz4him + react-clientside-effect: 1.2.7_react@18.3.1 + use-callback-ref: 1.3.3_x25zuu6u7xhdvbznsywf7wxevq + use-sidecar: 1.1.3_x25zuu6u7xhdvbznsywf7wxevq /react-is/16.13.1: resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} @@ -12346,7 +12916,7 @@ packages: react: '>=16.6.0' react-dom: '>=16.6.0' dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.26.9 dom-helpers: 5.2.1 loose-envify: 1.4.0 prop-types: 15.8.1 @@ -12459,31 +13029,31 @@ packages: resolution: {integrity: sha512-wlgPA6cCIIg9gKz0fgAPjnzh4yR/LnXovwuo9hvyGvx3h8nX4+/iLZplfUWasXpqD8BdnGnP5njOFjkUwPzvjA==} engines: {node: '>=4'} dependencies: - util.promisify: 1.1.2 + util.promisify: 1.1.3 dev: true /rechoir/0.6.2: resolution: {integrity: sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==} engines: {node: '>= 0.10'} dependencies: - resolve: 1.22.8 + resolve: 1.22.10 dev: false - /reflect.getprototypeof/1.0.6: - resolution: {integrity: sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==} + /reflect.getprototypeof/1.0.10: + resolution: {integrity: sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.3 + es-abstract: 1.23.9 es-errors: 1.3.0 - get-intrinsic: 1.2.4 - globalthis: 1.0.4 - which-builtin-type: 1.1.3 - dev: true + es-object-atoms: 1.1.1 + get-intrinsic: 1.2.7 + get-proto: 1.0.1 + which-builtin-type: 1.2.1 - /regenerate-unicode-properties/10.1.1: - resolution: {integrity: sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==} + /regenerate-unicode-properties/10.2.0: + resolution: {integrity: sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA==} engines: {node: '>=4'} dependencies: regenerate: 1.4.2 @@ -12503,7 +13073,7 @@ packages: /regenerator-transform/0.15.2: resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==} dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.26.9 dev: false /regex-not/1.0.2: @@ -12513,36 +13083,42 @@ packages: extend-shallow: 3.0.2 safe-regex: 1.1.0 - /regexp.prototype.flags/1.5.2: - resolution: {integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==} + /regexp.prototype.flags/1.5.4: + resolution: {integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 define-properties: 1.2.1 es-errors: 1.3.0 + get-proto: 1.0.1 + gopd: 1.2.0 set-function-name: 2.0.2 /regexpp/3.2.0: resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==} engines: {node: '>=8'} - /regexpu-core/5.3.2: - resolution: {integrity: sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==} + /regexpu-core/6.2.0: + resolution: {integrity: sha512-H66BPQMrv+V16t8xtmq+UC0CBpiTBA60V8ibS1QVReIp8T1z8hwFxqcGzm9K6lgsN7sB5edVH8a+ze6Fqm4weA==} engines: {node: '>=4'} dependencies: - '@babel/regjsgen': 0.8.0 regenerate: 1.4.2 - regenerate-unicode-properties: 10.1.1 - regjsparser: 0.9.1 + regenerate-unicode-properties: 10.2.0 + regjsgen: 0.8.0 + regjsparser: 0.12.0 unicode-match-property-ecmascript: 2.0.0 - unicode-match-property-value-ecmascript: 2.1.0 + unicode-match-property-value-ecmascript: 2.2.0 dev: false - /regjsparser/0.9.1: - resolution: {integrity: sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==} + /regjsgen/0.8.0: + resolution: {integrity: sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==} + dev: false + + /regjsparser/0.12.0: + resolution: {integrity: sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ==} hasBin: true dependencies: - jsesc: 0.5.0 + jsesc: 3.0.2 dev: false /remove-bom-buffer/3.0.0: @@ -12624,7 +13200,7 @@ packages: deprecated: request has been deprecated, see https://github.com/request/request/issues/3142 dependencies: aws-sign2: 0.7.0 - aws4: 1.12.0 + aws4: 1.13.2 caseless: 0.12.0 combined-stream: 1.0.8 extend: 3.0.2 @@ -12713,11 +13289,12 @@ packages: resolution: {integrity: sha512-9znBF0vBcaSN3W2j7wKvdERPwqTxSpCq+if5C0WoTCyV9n24rua28jeuQ2pL/HOf+yUe/Mef+H/5p60K0Id3bg==} dev: true - /resolve/1.22.8: - resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} + /resolve/1.22.10: + resolution: {integrity: sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==} + engines: {node: '>= 0.4'} hasBin: true dependencies: - is-core-module: 2.13.1 + is-core-module: 2.16.1 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 @@ -12725,7 +13302,7 @@ packages: resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==} hasBin: true dependencies: - is-core-module: 2.13.1 + is-core-module: 2.16.1 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 @@ -12753,6 +13330,7 @@ packages: /rimraf/2.7.1: resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==} + deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true dependencies: glob: 7.2.3 @@ -12760,6 +13338,7 @@ packages: /rimraf/3.0.2: resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true dependencies: glob: 7.2.3 @@ -12777,8 +13356,8 @@ packages: dev: true optional: true - /rollup/2.79.1: - resolution: {integrity: sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==} + /rollup/2.79.2: + resolution: {integrity: sha512-fS6iqSPZDs3dr/y7Od6y5nha8dW1YnbgtsyotCVvoFGKbERG++CVRFv1meyGDE1SNItQA8BrnCw7ScdAhRJ3XQ==} engines: {node: '>=10.0.0'} hasBin: true optionalDependencies: @@ -12813,13 +13392,14 @@ packages: /rw/1.3.3: resolution: {integrity: sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==} - /safe-array-concat/1.1.2: - resolution: {integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==} + /safe-array-concat/1.1.3: + resolution: {integrity: sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==} engines: {node: '>=0.4'} dependencies: - call-bind: 1.0.7 - get-intrinsic: 1.2.4 - has-symbols: 1.0.3 + call-bind: 1.0.8 + call-bound: 1.0.3 + get-intrinsic: 1.2.7 + has-symbols: 1.1.0 isarray: 2.0.5 /safe-buffer/5.1.2: @@ -12828,21 +13408,28 @@ packages: /safe-buffer/5.2.1: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} - /safe-regex-test/1.0.3: - resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==} + /safe-push-apply/1.0.0: + resolution: {integrity: sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==} + engines: {node: '>= 0.4'} + dependencies: + es-errors: 1.3.0 + isarray: 2.0.5 + + /safe-regex-test/1.1.0: + resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.7 + call-bound: 1.0.3 es-errors: 1.3.0 - is-regex: 1.1.4 + is-regex: 1.2.1 /safe-regex/1.1.0: resolution: {integrity: sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==} dependencies: ret: 0.1.15 - /safe-stable-stringify/2.4.3: - resolution: {integrity: sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==} + /safe-stable-stringify/2.5.0: + resolution: {integrity: sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==} engines: {node: '>=10'} dev: false @@ -12866,8 +13453,8 @@ packages: walker: 1.0.8 dev: true - /sax/1.3.0: - resolution: {integrity: sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==} + /sax/1.4.1: + resolution: {integrity: sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==} /saxes/5.0.1: resolution: {integrity: sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==} @@ -12913,11 +13500,30 @@ packages: dependencies: lru-cache: 6.0.0 - /semver/7.6.2: - resolution: {integrity: sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==} + /semver/7.7.1: + resolution: {integrity: sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==} engines: {node: '>=10'} hasBin: true + /send/0.19.0: + resolution: {integrity: sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==} + engines: {node: '>= 0.8.0'} + dependencies: + debug: 2.6.9 + depd: 2.0.0 + destroy: 1.2.0 + encodeurl: 1.0.2 + escape-html: 1.0.3 + etag: 1.8.1 + fresh: 0.5.2 + http-errors: 2.0.0 + mime: 1.6.0 + ms: 2.1.3 + on-finished: 2.4.1 + range-parser: 1.2.1 + statuses: 2.0.1 + dev: true + /serialize-error/7.0.1: resolution: {integrity: sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==} engines: {node: '>=10'} @@ -12938,6 +13544,16 @@ packages: randombytes: 2.1.0 dev: false + /serve-static/1.16.2: + resolution: {integrity: sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==} + engines: {node: '>= 0.8.0'} + dependencies: + encodeurl: 2.0.0 + escape-html: 1.0.3 + parseurl: 1.3.3 + send: 0.19.0 + dev: true + /set-blocking/2.0.0: resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} @@ -12948,8 +13564,8 @@ packages: define-data-property: 1.1.4 es-errors: 1.3.0 function-bind: 1.1.2 - get-intrinsic: 1.2.4 - gopd: 1.0.1 + get-intrinsic: 1.2.7 + gopd: 1.2.0 has-property-descriptors: 1.0.2 /set-function-name/2.0.2: @@ -12961,6 +13577,14 @@ packages: functions-have-names: 1.2.3 has-property-descriptors: 1.0.2 + /set-proto/1.0.0: + resolution: {integrity: sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==} + engines: {node: '>= 0.4'} + dependencies: + dunder-proto: 1.0.1 + es-errors: 1.3.0 + es-object-atoms: 1.1.1 + /set-value/2.0.1: resolution: {integrity: sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==} engines: {node: '>=0.10.0'} @@ -12970,6 +13594,10 @@ packages: is-plain-object: 2.0.4 split-string: 3.1.0 + /setprototypeof/1.2.0: + resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} + dev: true + /shallowequal/1.1.0: resolution: {integrity: sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==} @@ -13006,8 +13634,9 @@ packages: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} - /shell-quote/1.8.1: - resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==} + /shell-quote/1.8.2: + resolution: {integrity: sha512-AzqKpGKjrj7EM6rKVQEPpB288oCfnrEIuyoT9cyF4nmGa7V8Zk6f7RRqYisX8X9m+Q7bd632aZW4ky7EhbQztA==} + engines: {node: '>= 0.4'} dev: true /shellwords/0.1.1: @@ -13015,14 +13644,41 @@ packages: dev: true optional: true - /side-channel/1.0.6: - resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} + /side-channel-list/1.0.0: + resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==} + engines: {node: '>= 0.4'} + dependencies: + es-errors: 1.3.0 + object-inspect: 1.13.4 + + /side-channel-map/1.0.1: + resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==} + engines: {node: '>= 0.4'} + dependencies: + call-bound: 1.0.3 + es-errors: 1.3.0 + get-intrinsic: 1.2.7 + object-inspect: 1.13.4 + + /side-channel-weakmap/1.0.2: + resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==} + engines: {node: '>= 0.4'} + dependencies: + call-bound: 1.0.3 + es-errors: 1.3.0 + get-intrinsic: 1.2.7 + object-inspect: 1.13.4 + side-channel-map: 1.0.1 + + /side-channel/1.1.0: + resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.7 es-errors: 1.3.0 - get-intrinsic: 1.2.4 - object-inspect: 1.13.1 + object-inspect: 1.13.4 + side-channel-list: 1.0.0 + side-channel-map: 1.0.1 + side-channel-weakmap: 1.0.2 /siginfo/2.0.0: resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} @@ -13043,8 +13699,8 @@ packages: simple-concat: 1.0.1 dev: true - /simple-statistics/7.8.3: - resolution: {integrity: sha512-JFvMY00t6SBGtwMuJ+nqgsx9ylkMiJ5JlK9bkj8AdvniIe5615wWQYkKHXe84XtSuc40G/tlrPu0A5/NlJvv8A==} + /simple-statistics/7.8.7: + resolution: {integrity: sha512-ed5FwTNYvkMTfbCai1U+r3symP+lIPKWCqKdudpN4NFNMn9RtDlFtSyAQhCp4oPH0YBjWu/qnW+5q5ZkPB3uHQ==} /simple-swizzle/0.2.2: resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} @@ -13114,8 +13770,8 @@ packages: source-map-resolve: 0.5.3 use: 3.1.1 - /source-map-js/1.2.0: - resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} + /source-map-js/1.2.1: + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} engines: {node: '>=0.10.0'} /source-map-resolve/0.5.3: @@ -13167,7 +13823,7 @@ packages: resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} dependencies: spdx-expression-parse: 3.0.1 - spdx-license-ids: 3.0.17 + spdx-license-ids: 3.0.21 /spdx-exceptions/2.5.0: resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==} @@ -13176,10 +13832,10 @@ packages: resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} dependencies: spdx-exceptions: 2.5.0 - spdx-license-ids: 3.0.17 + spdx-license-ids: 3.0.21 - /spdx-license-ids/3.0.17: - resolution: {integrity: sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==} + /spdx-license-ids/3.0.21: + resolution: {integrity: sha512-Bvg/8F5XephndSK3JffaRqdT+gyhfqIPwDHpX80tJrF8QQRYMo8sNMeaZ2Dp5+jhwKnUmIOyFFQfHRkjJm5nXg==} /split-string/3.1.0: resolution: {integrity: sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==} @@ -13241,8 +13897,13 @@ packages: define-property: 0.2.5 object-copy: 0.1.0 - /std-env/3.7.0: - resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==} + /statuses/2.0.1: + resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} + engines: {node: '>= 0.8'} + dev: true + + /std-env/3.8.0: + resolution: {integrity: sha512-Bc3YwwCB+OzldMxOXJIIvC6cPRWr/LxOp48CdQTOkPyk/t4JWWJbrilwBd7RJzKV8QW7tJkcgAmeuLLJugl5/w==} dev: true /stealthy-require/1.1.1: @@ -13268,6 +13929,10 @@ packages: strip-ansi: 6.0.1 dev: true + /string-similarity-js/2.1.4: + resolution: {integrity: sha512-uApODZNjCHGYROzDSAdCmAHf60L/pMDHnP/yk6TAbvGg7JSPZlSto/ceCI7hZEqzc53/juU2aOJFkM2yUVTMTA==} + dev: false + /string-width/1.0.2: resolution: {integrity: sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==} engines: {node: '>=0.10.0'} @@ -13294,56 +13959,71 @@ packages: is-fullwidth-code-point: 3.0.0 strip-ansi: 6.0.1 - /string.prototype.matchall/4.0.11: - resolution: {integrity: sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==} + /string.prototype.includes/2.0.1: + resolution: {integrity: sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.3 + es-abstract: 1.23.9 + dev: true + + /string.prototype.matchall/4.0.12: + resolution: {integrity: sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.3 + define-properties: 1.2.1 + es-abstract: 1.23.9 es-errors: 1.3.0 - es-object-atoms: 1.0.0 - get-intrinsic: 1.2.4 - gopd: 1.0.1 - has-symbols: 1.0.3 - internal-slot: 1.0.7 - regexp.prototype.flags: 1.5.2 + es-object-atoms: 1.1.1 + get-intrinsic: 1.2.7 + gopd: 1.2.0 + has-symbols: 1.1.0 + internal-slot: 1.1.0 + regexp.prototype.flags: 1.5.4 set-function-name: 2.0.2 - side-channel: 1.0.6 + side-channel: 1.1.0 /string.prototype.padend/3.1.6: resolution: {integrity: sha512-XZpspuSB7vJWhvJc9DLSlrXl1mcA2BdoY5jjnS135ydXqLoqhs96JjDtCkjJEQHvfqZIp9hBuBMgI589peyx9Q==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.3 - es-object-atoms: 1.0.0 + es-abstract: 1.23.9 + es-object-atoms: 1.1.1 dev: true - /string.prototype.trim/1.2.9: - resolution: {integrity: sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==} + /string.prototype.trim/1.2.10: + resolution: {integrity: sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 + call-bound: 1.0.3 + define-data-property: 1.1.4 define-properties: 1.2.1 - es-abstract: 1.23.3 - es-object-atoms: 1.0.0 + es-abstract: 1.23.9 + es-object-atoms: 1.1.1 + has-property-descriptors: 1.0.2 - /string.prototype.trimend/1.0.8: - resolution: {integrity: sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==} + /string.prototype.trimend/1.0.9: + resolution: {integrity: sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==} + engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 + call-bound: 1.0.3 define-properties: 1.2.1 - es-object-atoms: 1.0.0 + es-object-atoms: 1.1.1 /string.prototype.trimstart/1.0.8: resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 define-properties: 1.2.1 - es-object-atoms: 1.0.0 + es-object-atoms: 1.1.1 /string_decoder/0.10.31: resolution: {integrity: sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==} @@ -13417,7 +14097,7 @@ packages: /strip-literal/1.3.0: resolution: {integrity: sha512-PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg==} dependencies: - acorn: 8.11.3 + acorn: 8.14.0 dev: true /sumchecker/3.0.1: @@ -13434,6 +14114,7 @@ packages: engines: {node: '>=4'} dependencies: has-flag: 3.0.0 + dev: true /supports-color/6.1.0: resolution: {integrity: sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==} @@ -13513,7 +14194,7 @@ packages: hasBin: true dependencies: '@jridgewell/source-map': 0.3.6 - acorn: 8.11.3 + acorn: 8.14.0 commander: 2.20.3 source-map-support: 0.5.21 @@ -13593,15 +14274,16 @@ packages: engines: {node: '>=4'} dev: true - /timers-ext/0.1.7: - resolution: {integrity: sha512-b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ==} + /timers-ext/0.1.8: + resolution: {integrity: sha512-wFH7+SEAcKfJpfLPkrgMPvvwnEtj8W4IurvEyrKsDleXnKLCDw71w8jltvfLa8Rm4qQxxT4jmDBYbJG/z7qoww==} + engines: {node: '>=0.12'} dependencies: es5-ext: 0.10.64 next-tick: 1.1.0 dev: false - /tinybench/2.8.0: - resolution: {integrity: sha512-1/eK7zUnIklz4JUUlL+658n58XO2hHLQfSk1Zf2LKieUjxidN16eKFEoDEfjHc3ohofSSqK3X5yO6VGb6iW8Lw==} + /tinybench/2.9.0: + resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==} dev: true /tinypool/0.4.0: @@ -13626,10 +14308,6 @@ packages: is-negated-glob: 1.0.0 dev: false - /to-fast-properties/2.0.0: - resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} - engines: {node: '>=4'} - /to-object-path/0.3.0: resolution: {integrity: sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==} engines: {node: '>=0.10.0'} @@ -13670,6 +14348,11 @@ packages: through2: 2.0.5 dev: false + /toidentifier/1.0.1: + resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} + engines: {node: '>=0.6'} + dev: true + /topojson-client/3.1.0: resolution: {integrity: sha512-605uxS6bcYxGXw9qi62XyrV6Q3xwbndjachmNxu8HWTtVPxZfEJN9fd/SZS1Q54Sn2y0TMyMxFj/cJINqGHrKw==} hasBin: true @@ -13686,7 +14369,7 @@ packages: resolution: {integrity: sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==} engines: {node: '>=0.8'} dependencies: - psl: 1.9.0 + psl: 1.15.0 punycode: 2.3.1 dev: true @@ -13694,7 +14377,7 @@ packages: resolution: {integrity: sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==} engines: {node: '>=6'} dependencies: - psl: 1.9.0 + psl: 1.15.0 punycode: 2.3.1 universalify: 0.2.0 url-parse: 1.5.10 @@ -13738,7 +14421,7 @@ packages: yargs-parser: 20.2.9 dev: true - /ts-node/10.9.0_tei2piaewgwz3rqboli3bdgchy: + /ts-node/10.9.0_gneqayswslsivwydh4xidq7ly4: resolution: {integrity: sha512-bunW18GUyaCSYRev4DPf4SQpom3pWH29wKl0sDk5zE7ze19RImEVhCW7K4v3hHKkUyfWotU08ToE2RS+Y49aug==} hasBin: true peerDependencies: @@ -13757,9 +14440,9 @@ packages: '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 20.12.12 - acorn: 8.11.3 - acorn-walk: 8.3.2 + '@types/node': 22.13.4 + acorn: 8.14.0 + acorn-walk: 8.3.4 arg: 4.1.3 create-require: 1.1.1 diff: 4.0.2 @@ -13784,8 +14467,8 @@ packages: /tslib/1.14.1: resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} - /tslib/2.6.2: - resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} + /tslib/2.8.1: + resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} /tsutils/3.21.0_typescript@4.9.5: resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} @@ -13830,6 +14513,11 @@ packages: engines: {node: '>=4'} dev: true + /type-detect/4.1.0: + resolution: {integrity: sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw==} + engines: {node: '>=4'} + dev: true + /type-fest/0.13.1: resolution: {integrity: sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==} engines: {node: '>=10'} @@ -13855,49 +14543,58 @@ packages: engines: {node: '>=8'} dev: true - /type/2.7.2: - resolution: {integrity: sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==} + /type-is/1.6.18: + resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} + engines: {node: '>= 0.6'} + dependencies: + media-typer: 0.3.0 + mime-types: 2.1.35 + dev: true + + /type/2.7.3: + resolution: {integrity: sha512-8j+1QmAbPvLZow5Qpi6NCaN8FB60p/6x8/vfNqOk/hC+HuvFZhL4+WfekuhQLiqFZXOgQdrs3B+XxEmCc6b3FQ==} dev: false - /typed-array-buffer/1.0.2: - resolution: {integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==} + /typed-array-buffer/1.0.3: + resolution: {integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.7 + call-bound: 1.0.3 es-errors: 1.3.0 - is-typed-array: 1.1.13 + is-typed-array: 1.1.15 - /typed-array-byte-length/1.0.1: - resolution: {integrity: sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==} + /typed-array-byte-length/1.0.3: + resolution: {integrity: sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.7 - for-each: 0.3.3 - gopd: 1.0.1 - has-proto: 1.0.3 - is-typed-array: 1.1.13 + call-bind: 1.0.8 + for-each: 0.3.5 + gopd: 1.2.0 + has-proto: 1.2.0 + is-typed-array: 1.1.15 - /typed-array-byte-offset/1.0.2: - resolution: {integrity: sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==} + /typed-array-byte-offset/1.0.4: + resolution: {integrity: sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==} engines: {node: '>= 0.4'} dependencies: available-typed-arrays: 1.0.7 - call-bind: 1.0.7 - for-each: 0.3.3 - gopd: 1.0.1 - has-proto: 1.0.3 - is-typed-array: 1.1.13 - - /typed-array-length/1.0.6: - resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==} + call-bind: 1.0.8 + for-each: 0.3.5 + gopd: 1.2.0 + has-proto: 1.2.0 + is-typed-array: 1.1.15 + reflect.getprototypeof: 1.0.10 + + /typed-array-length/1.0.7: + resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.7 - for-each: 0.3.3 - gopd: 1.0.1 - has-proto: 1.0.3 - is-typed-array: 1.1.13 - possible-typed-array-names: 1.0.0 + call-bind: 1.0.8 + for-each: 0.3.5 + gopd: 1.2.0 + is-typed-array: 1.1.15 + possible-typed-array-names: 1.1.0 + reflect.getprototypeof: 1.0.10 /typedarray-to-buffer/3.1.5: resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==} @@ -13920,17 +14617,18 @@ packages: resolution: {integrity: sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==} dev: false - /ufo/1.5.3: - resolution: {integrity: sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw==} + /ufo/1.5.4: + resolution: {integrity: sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==} dev: true - /unbox-primitive/1.0.2: - resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} + /unbox-primitive/1.1.0: + resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==} + engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.7 - has-bigints: 1.0.2 - has-symbols: 1.0.3 - which-boxed-primitive: 1.0.2 + call-bound: 1.0.3 + has-bigints: 1.1.0 + has-symbols: 1.1.0 + which-boxed-primitive: 1.1.1 /unc-path-regex/0.1.2: resolution: {integrity: sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg==} @@ -13958,15 +14656,15 @@ packages: undertaker-registry: 1.0.1 dev: false - /undici-types/5.26.5: - resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} - /undici-types/5.28.4: resolution: {integrity: sha512-3OeMF5Lyowe8VW0skf5qaIE7Or3yS9LS7fvMUI0gg4YxpIBVg0L8BxCmROw2CcYhSkpR68Epz7CGc8MPj94Uww==} dev: true - /unicode-canonical-property-names-ecmascript/2.0.0: - resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==} + /undici-types/6.20.0: + resolution: {integrity: sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==} + + /unicode-canonical-property-names-ecmascript/2.0.1: + resolution: {integrity: sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==} engines: {node: '>=4'} dev: false @@ -13974,12 +14672,12 @@ packages: resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==} engines: {node: '>=4'} dependencies: - unicode-canonical-property-names-ecmascript: 2.0.0 + unicode-canonical-property-names-ecmascript: 2.0.1 unicode-property-aliases-ecmascript: 2.1.0 dev: false - /unicode-match-property-value-ecmascript/2.1.0: - resolution: {integrity: sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==} + /unicode-match-property-value-ecmascript/2.2.0: + resolution: {integrity: sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg==} engines: {node: '>=4'} dev: false @@ -14018,6 +14716,11 @@ packages: resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} engines: {node: '>= 10.0.0'} + /unpipe/1.0.0: + resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} + engines: {node: '>= 0.8'} + dev: true + /unset-value/1.0.0: resolution: {integrity: sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==} engines: {node: '>=0.10.0'} @@ -14030,15 +14733,15 @@ packages: engines: {node: '>=4'} dev: false - /update-browserslist-db/1.0.16_browserslist@4.23.0: - resolution: {integrity: sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==} + /update-browserslist-db/1.1.2_browserslist@4.24.4: + resolution: {integrity: sha512-PPypAm5qvlD7XMZC3BujecnaOxwhrtoFR+Dqkk5Aa/6DssiH0ibKoketaj9w8LP7Bont1rYeoV5plxD7RTEPRg==} hasBin: true peerDependencies: browserslist: '>= 4.21.0' dependencies: - browserslist: 4.23.0 - escalade: 3.1.2 - picocolors: 1.0.1 + browserslist: 4.24.4 + escalade: 3.2.0 + picocolors: 1.1.1 /uri-js/4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} @@ -14063,34 +14766,34 @@ packages: requires-port: 1.0.0 dev: true - /use-callback-ref/1.3.2_2eeaxkqdcvbrwk75oeh4jz4him: - resolution: {integrity: sha512-elOQwe6Q8gqZgDA8mrh44qRTQqpIHDcZ3hXTLjBe1i4ph8XpNJnO+aQf3NaG+lriLopI4HMx9VjQLfPQ6vhnoA==} + /use-callback-ref/1.3.3_x25zuu6u7xhdvbznsywf7wxevq: + resolution: {integrity: sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==} engines: {node: '>=10'} peerDependencies: - '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 + '@types/react': '*' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc peerDependenciesMeta: '@types/react': optional: true dependencies: - '@types/react': 18.3.2 + '@types/react': 18.3.18 react: 18.3.1 - tslib: 2.6.2 + tslib: 2.8.1 - /use-sidecar/1.1.2_2eeaxkqdcvbrwk75oeh4jz4him: - resolution: {integrity: sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==} + /use-sidecar/1.1.3_x25zuu6u7xhdvbznsywf7wxevq: + resolution: {integrity: sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ==} engines: {node: '>=10'} peerDependencies: - '@types/react': ^16.9.0 || ^17.0.0 || ^18.0.0 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 + '@types/react': '*' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc peerDependenciesMeta: '@types/react': optional: true dependencies: - '@types/react': 18.3.2 + '@types/react': 18.3.18 detect-node-es: 1.1.0 react: 18.3.1 - tslib: 2.6.2 + tslib: 2.8.1 /use/3.1.1: resolution: {integrity: sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==} @@ -14099,16 +14802,27 @@ packages: /util-deprecate/1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} - /util.promisify/1.1.2: - resolution: {integrity: sha512-PBdZ03m1kBnQ5cjjO0ZvJMJS+QsbyIcFwi4hY4U76OQsCO9JrOYjbCFgIF76ccFg9xnJo7ZHPkqyj1GqmdS7MA==} + /util.promisify/1.1.3: + resolution: {integrity: sha512-GIEaZ6o86fj09Wtf0VfZ5XP7tmd4t3jM5aZCgmBi231D0DB1AEBa3Aa6MP48DMsAIi96WkpWLimIWVwOjbDMOw==} + engines: {node: '>= 0.8'} dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 + call-bound: 1.0.3 + define-data-property: 1.1.4 define-properties: 1.2.1 - for-each: 0.3.3 - has-proto: 1.0.3 - has-symbols: 1.0.3 + es-errors: 1.3.0 + es-object-atoms: 1.1.1 + for-each: 0.3.5 + get-intrinsic: 1.2.7 + has-proto: 1.2.0 + has-symbols: 1.1.0 object.getownpropertydescriptors: 2.1.8 - safe-array-concat: 1.1.2 + safe-array-concat: 1.1.3 + dev: true + + /utils-merge/1.0.1: + resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} + engines: {node: '>= 0.4.0'} dev: true /uuid/3.4.0: @@ -14156,6 +14870,11 @@ packages: engines: {node: '>= 0.10'} dev: false + /vary/1.1.2: + resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} + engines: {node: '>= 0.8'} + dev: true + /verror/1.10.0: resolution: {integrity: sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==} engines: {'0': node >=0.6.0} @@ -14175,7 +14894,7 @@ packages: is-valid-glob: 1.0.0 lazystream: 1.0.1 lead: 1.0.0 - object.assign: 4.1.5 + object.assign: 4.1.7 pumpify: 1.5.1 readable-stream: 2.3.8 remove-bom-buffer: 3.0.0 @@ -14213,17 +14932,17 @@ packages: replace-ext: 1.0.1 dev: false - /vite-node/0.30.1_ljqiwlgqg3eth5elf7amwtqemy: + /vite-node/0.30.1_ssmfx65rqlwutpnpi6p7rsghdm: resolution: {integrity: sha512-vTikpU/J7e6LU/8iM3dzBo8ZhEiKZEKRznEMm+mJh95XhWaPrJQraT/QsT2NWmuEf+zgAoMe64PKT7hfZ1Njmg==} engines: {node: '>=v14.18.0'} hasBin: true dependencies: cac: 6.7.14 debug: 4.3.4 - mlly: 1.7.0 + mlly: 1.7.4 pathe: 1.1.2 - picocolors: 1.0.1 - vite: 3.2.6_ljqiwlgqg3eth5elf7amwtqemy + picocolors: 1.1.1 + vite: 3.2.6_ssmfx65rqlwutpnpi6p7rsghdm transitivePeerDependencies: - '@types/node' - less @@ -14243,8 +14962,8 @@ packages: peerDependencies: vite: '*' dependencies: - minimatch: 9.0.4 - vite: 3.2.6_3nkz6rpljilosylc4qp7fvkgxu + minimatch: 9.0.5 + vite: 3.2.6_2v5bjsaaesy2knzxgxpk67cwwq dev: true /vite/3.2.6: @@ -14274,13 +14993,13 @@ packages: dependencies: esbuild: 0.15.18 postcss: 8.4.21 - resolve: 1.22.8 - rollup: 2.79.1 + resolve: 1.22.10 + rollup: 2.79.2 optionalDependencies: fsevents: 2.3.3 dev: true - /vite/3.2.6_3nkz6rpljilosylc4qp7fvkgxu: + /vite/3.2.6_2v5bjsaaesy2knzxgxpk67cwwq: resolution: {integrity: sha512-nTXTxYVvaQNLoW5BQ8PNNQ3lPia57gzsQU/Khv+JvzKPku8kNZL6NMUR/qwXhMG6E+g1idqEPanomJ+VZgixEg==} engines: {node: ^14.18.0 || >=16.0.0} hasBin: true @@ -14305,17 +15024,17 @@ packages: terser: optional: true dependencies: - '@types/node': 20.12.12 + '@types/node': 22.13.4 esbuild: 0.15.18 less: 4.1.3 postcss: 8.4.21 - resolve: 1.22.8 - rollup: 2.79.1 + resolve: 1.22.10 + rollup: 2.79.2 optionalDependencies: fsevents: 2.3.3 dev: true - /vite/3.2.6_ljqiwlgqg3eth5elf7amwtqemy: + /vite/3.2.6_ssmfx65rqlwutpnpi6p7rsghdm: resolution: {integrity: sha512-nTXTxYVvaQNLoW5BQ8PNNQ3lPia57gzsQU/Khv+JvzKPku8kNZL6NMUR/qwXhMG6E+g1idqEPanomJ+VZgixEg==} engines: {node: ^14.18.0 || >=16.0.0} hasBin: true @@ -14340,12 +15059,12 @@ packages: terser: optional: true dependencies: - '@types/node': 20.12.12 + '@types/node': 22.13.4 esbuild: 0.15.18 less: 4.1.3 postcss: 8.4.21 - resolve: 1.22.8 - rollup: 2.79.1 + resolve: 1.22.10 + rollup: 2.79.2 terser: 5.17.1 optionalDependencies: fsevents: 2.3.3 @@ -14382,32 +15101,32 @@ packages: webdriverio: optional: true dependencies: - '@types/chai': 4.3.16 + '@types/chai': 4.3.20 '@types/chai-subset': 1.3.5 - '@types/node': 20.12.12 + '@types/node': 22.13.4 '@vitest/expect': 0.30.1 '@vitest/runner': 0.30.1 '@vitest/snapshot': 0.30.1 '@vitest/spy': 0.30.1 '@vitest/utils': 0.30.1 - acorn: 8.11.3 - acorn-walk: 8.3.2 + acorn: 8.14.0 + acorn-walk: 8.3.4 cac: 6.7.14 - chai: 4.4.1 + chai: 4.5.0 concordance: 5.0.4 debug: 4.3.4 local-pkg: 0.4.3 - magic-string: 0.30.10 + magic-string: 0.30.17 pathe: 1.1.2 - picocolors: 1.0.1 + picocolors: 1.1.1 source-map: 0.6.1 - std-env: 3.7.0 + std-env: 3.8.0 strip-literal: 1.3.0 - tinybench: 2.8.0 + tinybench: 2.9.0 tinypool: 0.4.0 - vite: 3.2.6_ljqiwlgqg3eth5elf7amwtqemy - vite-node: 0.30.1_ljqiwlgqg3eth5elf7amwtqemy - why-is-node-running: 2.2.2 + vite: 3.2.6_ssmfx65rqlwutpnpi6p7rsghdm + vite-node: 0.30.1_ssmfx65rqlwutpnpi6p7rsghdm + why-is-node-running: 2.3.0 transitivePeerDependencies: - less - sass @@ -14500,32 +15219,33 @@ packages: webidl-conversions: 6.1.0 dev: true - /which-boxed-primitive/1.0.2: - resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} + /which-boxed-primitive/1.1.1: + resolution: {integrity: sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==} + engines: {node: '>= 0.4'} dependencies: - is-bigint: 1.0.4 - is-boolean-object: 1.1.2 - is-number-object: 1.0.7 - is-string: 1.0.7 - is-symbol: 1.0.4 + is-bigint: 1.1.0 + is-boolean-object: 1.2.2 + is-number-object: 1.1.1 + is-string: 1.1.1 + is-symbol: 1.1.1 - /which-builtin-type/1.1.3: - resolution: {integrity: sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==} + /which-builtin-type/1.2.1: + resolution: {integrity: sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==} engines: {node: '>= 0.4'} dependencies: - function.prototype.name: 1.1.6 + call-bound: 1.0.3 + function.prototype.name: 1.1.8 has-tostringtag: 1.0.2 - is-async-function: 2.0.0 - is-date-object: 1.0.5 - is-finalizationregistry: 1.0.2 - is-generator-function: 1.0.10 - is-regex: 1.1.4 - is-weakref: 1.0.2 + is-async-function: 2.1.1 + is-date-object: 1.1.0 + is-finalizationregistry: 1.1.1 + is-generator-function: 1.1.0 + is-regex: 1.2.1 + is-weakref: 1.1.1 isarray: 2.0.5 - which-boxed-primitive: 1.0.2 + which-boxed-primitive: 1.1.1 which-collection: 1.0.2 - which-typed-array: 1.1.15 - dev: true + which-typed-array: 1.1.18 /which-collection/1.0.2: resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} @@ -14534,8 +15254,7 @@ packages: is-map: 2.0.3 is-set: 2.0.3 is-weakmap: 2.0.2 - is-weakset: 2.0.3 - dev: true + is-weakset: 2.0.4 /which-module/1.0.0: resolution: {integrity: sha512-F6+WgncZi/mJDrammbTuHe1q0R5hOXv/mBaiNA2TCNT/LTHusX0V+CJnj9XT8ki5ln2UZyyddDgHfCzyrOH7MQ==} @@ -14545,14 +15264,15 @@ packages: resolution: {integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==} dev: true - /which-typed-array/1.1.15: - resolution: {integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==} + /which-typed-array/1.1.18: + resolution: {integrity: sha512-qEcY+KJYlWyLH9vNbsr6/5j59AXk5ni5aakf8ldzBvGde6Iz4sxZGkJyWSAueTG7QhOvNRYb1lDdFmL5Td0QKA==} engines: {node: '>= 0.4'} dependencies: available-typed-arrays: 1.0.7 - call-bind: 1.0.7 - for-each: 0.3.3 - gopd: 1.0.1 + call-bind: 1.0.8 + call-bound: 1.0.3 + for-each: 0.3.5 + gopd: 1.2.0 has-tostringtag: 1.0.2 /which/1.3.1: @@ -14568,8 +15288,8 @@ packages: dependencies: isexe: 2.0.0 - /why-is-node-running/2.2.2: - resolution: {integrity: sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==} + /why-is-node-running/2.3.0: + resolution: {integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==} engines: {node: '>=8'} hasBin: true dependencies: @@ -14645,14 +15365,14 @@ packages: typedarray-to-buffer: 3.1.5 dev: true - /ws/5.2.3: - resolution: {integrity: sha512-jZArVERrMsKUatIdnLzqvcfydI85dvd/Fp1u/VOpfdDWQ4c9qWXe+VIeAbQ5FrDwciAkr+lzofXLz3Kuf26AOA==} + /ws/5.2.4: + resolution: {integrity: sha512-fFCejsuC8f9kOSu9FYaOw8CdO68O3h5v0lg4p74o8JqWpwTf9tniOD+nOB78aWoVSS6WptVUmDrp/KPsMVBWFQ==} dependencies: async-limiter: 1.0.1 dev: true - /ws/7.5.9: - resolution: {integrity: sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==} + /ws/7.5.10: + resolution: {integrity: sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==} engines: {node: '>=8.3.0'} peerDependencies: bufferutil: ^4.0.1 @@ -14727,7 +15447,7 @@ packages: resolution: {integrity: sha512-wpav5XYiddjXxirPoCTUPbqM0PXvJ9hiBMvuJgInvo4/lAOTZzUprArw17q2O1P2+GHhbBr18/iQwjL5Z9BqfA==} dependencies: camelcase: 3.0.0 - object.assign: 4.1.5 + object.assign: 4.1.7 dev: false /yargs-unparser/2.0.0: @@ -14777,7 +15497,7 @@ packages: engines: {node: '>=10'} dependencies: cliui: 7.0.4 - escalade: 3.1.2 + escalade: 3.2.0 get-caller-file: 2.0.5 require-directory: 2.1.1 string-width: 4.2.3 @@ -14789,7 +15509,7 @@ packages: engines: {node: '>=12'} dependencies: cliui: 8.0.1 - escalade: 3.1.2 + escalade: 3.2.0 get-caller-file: 2.0.5 require-directory: 2.1.1 string-width: 4.2.3 @@ -14830,7 +15550,7 @@ packages: engines: {node: '>=10'} dev: true - /yocto-queue/1.0.0: - resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} + /yocto-queue/1.1.1: + resolution: {integrity: sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==} engines: {node: '>=12.20'} dev: true diff --git a/common/config/rush/version-policies.json b/common/config/rush/version-policies.json index f62502da..e3b3144c 100644 --- a/common/config/rush/version-policies.json +++ b/common/config/rush/version-policies.json @@ -2,7 +2,7 @@ { "definitionName": "lockStepVersion", "policyName": "vmindMin", - "version": "1.2.13", + "version": "1.2.14", "mainProject": "@visactor/vmind", "nextBump": "patch" } diff --git a/docs/assets/api/en/VMind_Instance.md b/docs/assets/api/en/VMind_Instance.md index 49407730..c7a414c8 100644 --- a/docs/assets/api/en/VMind_Instance.md +++ b/docs/assets/api/en/VMind_Instance.md @@ -11,34 +11,26 @@ The Create VMind Instance interface is used to create a VMind instance, which ca ```ts export interface ILLMOptions { - url?: string; // URL of the LLM service, default is openAI API - headers?: HeadersInit; // header of the LLM request - method?: 'POST' | 'GET'; // request method, post or get - model?: Model; // model type - max_tokens?: number; // maximum number of tokens for model-generated content - temperature?: number; // temperature of model-generated content - showThoughts?: boolean; // whether to add the model's thinking process to the output results - customRequestFunc?: { - chartAdvisor: RequestFunc; - dataQuery: RequestFunc; - }; // custom method for calling the LLM service - [key: string]: any; + /** URL of your LLM service. For gpt, default is openAI API. */ + url?: string; + /** llm request header, which has higher priority */ + headers?: HeadersInit; + /** post or get */ + method?: 'POST' | 'GET'; + /** LLM Model */ + model?: Model | string; + /** Max token in LLM Chart */ + maxTokens?: number; + /** Temperature of LLM */ + temperature?: number; + /** show llm thoughs or not */ + showThoughts?: boolean; + /** repetition penalty */ + frequencyPenalty?: number; + /** topP */ + topP?: number; } ``` -```ts -type RequestFunc = (prompt: string, userMessage: string, options: ILLMOptions | undefined) => Promise; -``` - -```ts -export type LLMResponse = { - choices: { - index: number; - message: any; - }[]; - usage: any; - [key: string]: any; -}; -``` ### url @@ -54,29 +46,38 @@ The method parameter is used to specify the method type when requesting LLM, usu ### model -The model parameter is used to specify the type of model. This field will be put into the request body of the LLM service. You can import the Model type from VMind and use it as the value of the model field. +The model parameter is used to specify the type of model. This field will be put into the request body of the LLM service. You can import the Model type from VMind and use it as the value of the model field. Any model name other than VMind Model can also be specified. ```ts export enum Model { GPT3_5 = 'gpt-3.5-turbo', + GPT3_5_1106 = 'gpt-3.5-turbo-1106', GPT4 = 'gpt-4', - SKYLARK = 'skylark-pro', - SKYLARK2 = 'skylark2-pro-4k' + GPT_4_0613 = 'gpt-4-0613', + GPT_4o = 'gpt-4o-2024-08-06', + DOUBAO_LITE = 'doubao-lite-32K', + DOUBAO_PRO = 'doubao-pro-128k', + CHART_ADVISOR = 'chart-advisor', + DEEPSEEK_V3 = 'deepseek-chat', + DEEPSEEK_R1 = 'deepseek-reasoner' } ``` ### max_tokens and temperature -The max_tokens and temperature parameters determine the maximum number of tokens and temperature of the model-generated content, respectively. In VMind, the default values of these two parameters are 2000 and 0, respectively. The effects of other values have not been fully tested, so it is not recommended to modify them. +These two parameters respectively determine the maximum token quantity and the randomness of each generated result of the model, see [OpenAI official documentation](https://platform.openai.com/docs/api-reference/chat/create). + +In VMind, the default values of these two parameters are 2048 and 0 respectively. ### showThoughts The showThoughts parameter will affect the prompt that VMind sends to the large language model, determining whether to add the thinking process to the output results when completing tasks such as chart generation, data aggregation, etc. In VMind, showThoughts defaults to true. -### customRequestFunc - -The customRequestFunc parameter allows users to customize the method of calling LLM in each task. For example, you can request your own LLM service in the form of RPC. +### TopP +Used to control the diversity of output tokens. The larger the TopP value, the more diverse the types of output tokens. The range is 0 to 1, and the default in VMind is 0. +### frequencyPenalty +A number between -2.0 and 2.0. Positive values penalize new tokens based on their frequency in the text, reducing the likelihood of the model repeating the same line verbatim. The default in VMind is 0. ## Usage Example @@ -84,9 +85,9 @@ The customRequestFunc parameter allows users to customize the method of calling import VMind, { Model } from '@visactor/vmind' const vmind = new VMind({ - model: Model.GPT3_5, //use gpt-3.5-turbo model - headers: { //specify the header when calling the LLM service - Authorization: `Bearer ${OPENAI_API_KEY}` //Your OPENAI_API_KEY + model: Model.GPT4o, // use gpt-4o model + headers: { // specify the header when calling the LLM service + Authorization: `Bearer ${OPENAI_API_KEY}` // Your OPENAI_API_KEY } }) ``` diff --git a/docs/assets/api/en/dataQuery.md b/docs/assets/api/en/dataQuery.md index 05f08110..13c51637 100644 --- a/docs/assets/api/en/dataQuery.md +++ b/docs/assets/api/en/dataQuery.md @@ -5,28 +5,30 @@ The dataQuery function is a powerful data aggregation tool. It takes three parameters: userPrompt, fieldInfo, and dataset. VMind will write SQL statements according to the user's display intent and execute the query on the dataset. The query results will be stored in the dataset property of the function return value. At the same time, the fields in the query results may change, and the updated field information will also be stored in the fieldInfo property of the return result. ## Supported Models: -- GPT-3.5 -- GPT-4 -- [skylark2-pro](https://www.volcengine.com/product/yunque) +- GPT models +- Doubao models +- DeepSeek models +- Any other models ## Interface Parameters: - -- userPrompt: string -The user's display intent, such as "show the sales of each product". - -- fieldInfo: Array<{fieldName: string, type: string, role: string}> -Information about the dataset fields, including field name, type, and role. - -- dataset: Array<{[key: string]: any}> -The original dataset, which is an array of objects, each object represents a piece of data. +```typescript +/** + * @param userPrompt(string) The user's display intent, such as "show the sales of each product". + * @param dataset(DataTable) The original dataset, which is an array of objects, each object represents a piece of data. + * @param fieldInfo(FieldInfo[]) Optional, information about the dataset fields, including field name, type, and role. If not provided, VMind will automatically parse a fieldInfo configuration based on the dataset. + * @returns new FieldInfo && new DataSet after user's query + */ +``` ## Return Value Type: - -- fieldInfo: Array<{fieldName: string, type: string, role: string}> -Updated field information. - -- dataset: Array<{[key: string]: any}> -Query result dataset. +```typescript +{ + // Updated field information. + fieldInfo: FieldInfo[]; + // Queried data table + dataTable: DataTable; +} +``` ## Usage Example: @@ -70,7 +72,7 @@ const userPrompt=`Show the sales of each product` const vmind = new VMind(options) // Call dataQuery with userPrompt, sourceFieldInfo, and sourceDataset to perform data aggregation -const { fieldInfo, dataset } = vmind.dataQuery(userPrompt, sourceFieldInfo, sourceDataset); +const { fieldInfo, dataset } = vmind.dataQuery(userPrompt, sourceDataset, sourceFieldInfo); ``` ## Notes: diff --git a/docs/assets/api/en/generateChart.md b/docs/assets/api/en/generateChart.md index db3739f2..16e94aba 100644 --- a/docs/assets/api/en/generateChart.md +++ b/docs/assets/api/en/generateChart.md @@ -6,28 +6,41 @@ The generateChart function is used to call LLM to complete intelligent generatio If the passed in dataset is undefined, a spec template will be generated, and fillSpecWithData can be called later to fill data into the spec. ## Supported Models: -- GPT-3.5 -- GPT-4 -- [skylark2-pro](https://www.volcengine.com/product/yunque) +- GPT models +- Doubao models +- DeepSeek models - [chart-advisor](../guide/Basic_Tutorial/Chart_Advisor) +- Any other models ## Chart Type List -VMind supports 13 common chart types: +VMind supports 25 common chart types: ```typescript export enum ChartType { -DynamicBarChart = 'Dynamic Bar Chart', -BarChart = 'Bar Chart', -LineChart = 'Line Chart', -PieChart = 'Pie Chart', -ScatterPlot = 'Scatter Plot', -WordCloud = 'Word Cloud', -RoseChart = 'Rose Chart', -RadarChart = 'Radar Chart', -SankeyChart = 'Sankey Chart', -FunnelChart = 'Funnel Chart', -DualAxisChart = 'Dual Axis Chart', -WaterFallChart = 'Waterfall Chart', -BoxPlot = 'Box Plot' + DynamicBarChart = 'Dynamic Bar Chart', + BarChart = 'Bar Chart', + LineChart = 'Line Chart', + AreaChart = 'Area Chart', + PieChart = 'Pie Chart', + ScatterPlot = 'Scatter Plot', + WordCloud = 'Word Cloud', + RoseChart = 'Rose Chart', + RadarChart = 'Radar Chart', + SankeyChart = 'Sankey Chart', + FunnelChart = 'Funnel Chart', + DualAxisChart = 'Dual Axis Chart', + WaterFallChart = 'Waterfall Chart', + BoxPlot = 'Box Plot', + LinearProgress = 'Linear Progress chart', + CircularProgress = 'Circular Progress chart', + LiquidChart = 'Liquid Chart', + BubbleCirclePacking = 'Bubble Circle Packing', + MapChart = 'Map Chart', + RangeColumnChart = 'Range Column Chart', + SunburstChart = 'Sunburst Chart', + TreemapChart = 'Treemap Chart', + Gauge = 'Gauge Chart', + BasicHeatMap = 'Basic Heat Map', + VennChart = 'Venn Chart' } ``` You can restrict the type of chart generated through the chartTypeList in the options parameter. @@ -49,6 +62,7 @@ interface GenerateChartParams { colorPalette?: string[]; animationDuration?: number; enableDataQuery?: boolean; + theme?: ChartTheme | string; } } ``` @@ -62,29 +76,45 @@ interface GenerateChartParams { - enableDataQuery (boolean, optional): Determines whether to enable data aggregation during chart generation - colorPalette (Array, optional): Used to set the color palette of the chart - animationDuration (number, optional): Used to set the playback duration of the chart animation + - theme (ChartTheme | string, optional): Sets the theme style of the final spec. By default, VMind uses a theme style with gradient colors. You can set VChart's general light or dark theme ('light' | 'dark') or a theme style that suits your usage scenario. ## Return Value Type: ```typescript interface GenerateChartResult { + /** Chart spec */ spec: Record; - chartType: Record; + /** Chart type */ + chartType: ChartType; + /** Final visual channel mapping */ cell: Cell; - chartSource: string; - usage: any; + /** Token consumption */ + usage: Usage; + /* Specific command to generate the current chart, consistent with user prompt in the case of user prompt */ + command: string; + /** Configuration time used for converting to gif/video */ time: { totalTime : number; frameArr: number[]; }; + /** Rule-based chart recommendation results, generated as a fallback when manually setting rules or when the large model generation is incorrect */ + chartAdvistorRes: { + /** Chart spec */ + spec: Record; + /** Chart type */ + chartType: ChartType; + /** Recommendation score */ + score: number + }[] } ``` - spec (Object): The generated VChart chart spec. If the dataset is empty, it is a spec template that does not contain data - chartType (ChartType): The type of the chart generated, see `Chart Type List` section - cell (Record): The field mapping in the chart, describing how the fields in the dataset map to the various visual channels on the chart -- chartSource: string: The source of the chart generation. If the chart is successfully generated using LLM, it is the specific model name; if the final use is [rule-based chart generation](../guide/Basic_Tutorial/Chart_Advisor), then it is chart-advisor - usage (any): Total LLM token consumption - time (number): The duration of the chart animation, which can be used to export GIF and video +- chartAdvistorRes (Array): This result is the chart recommendation result derived based on the current data and field information through VMind's built-in rules, generated as a fallback when the model is set to `Model.CHART_ADVISOR` or the user's large model settings are incorrect and no result can be obtained. For details, see: [Rule-Based Chart Generation](../guide/Basic_Tutorial/Chart_Advisor)- ## Usage Example: diff --git a/docs/assets/api/en/getFieldInfo.md b/docs/assets/api/en/getFieldInfo.md index 45a9db58..8d6effbd 100644 --- a/docs/assets/api/en/getFieldInfo.md +++ b/docs/assets/api/en/getFieldInfo.md @@ -5,19 +5,41 @@ The getFieldInfo interface is used to parse JSON-structured data to obtain field information (fieldInfo). FieldInfo includes field name, type, value range, and other information, and its structure is as follows: ```typescript -export type SimpleFieldInfo = { -fieldName: string; -description?: string; -type: 'int' | 'float' | 'string' | 'date'; -role: 'dimension' | 'measure'; -domain?: (string | number)[]; +export interface FieldInfo = { + /** name of field */ + fieldName: string; + /** field type, eg: time / category / numerical */ + type: DataType; + /** field role */ + role: ROLE; + /** alias of field */ + alias?: string; + /** description of field */ + description?: string; }; + +export enum DataType { + DATE = 'date', + TIME = 'time', + STRING = 'string', + REGION = 'region', + NUMERICAL = 'numerical', + RATIO = 'ratio', + COUNT = 'count', + FLOAT = 'float', + INT = 'int' +} + +export enum ROLE { + DIMENSION = 'dimension', + MEASURE = 'measure' +} ``` ## Interface Parameters ```typescript -getFieldInfo(dataset: Record[]): SimpleFieldInfo[] +getFieldInfo(dataset: Record[]): FieldInfo[] ``` - dataset: JSON-formatted data set, an array, each element of which is an object, with the key being the field name and the value being the corresponding data. diff --git a/docs/assets/api/en/getInsights.md b/docs/assets/api/en/getInsights.md new file mode 100644 index 00000000..a45163ff --- /dev/null +++ b/docs/assets/api/en/getInsights.md @@ -0,0 +1,153 @@ +# getInsights + +## Interface Description + +The getInsights interface generates insights for the current chart based on the VChart Spec configuration and insight options. The final insights are sorted in descending order of confidence scores. + +## Interface Parameters + +```typescript +getInsights(spec: any, options?: DataInsightOptions): { insights: Insights[], usage: Usage }; + +export interface DataInsightOptions { + /** Maximum number of insights to generate */ + maxNum?: number; + /** Maximum number of insights for each specific insight type, which takes precedence over maxNum */ + detailMaxNum?: { + types: InsightType[]; + maxNum: number; + }[]; + /** Algorithms to use */ + algorithms?: AlgorithmType[]; + /** Hyperparameter settings for each algorithm */ + algorithmOptions?: AlgorithmOptions; + /** Whether to consider chart type for insight results, e.g., clustering algorithms are only used in scatter plots */ + isLimitedbyChartType?: boolean; + /** Whether to use a large model for text polishing */ + usePolish?: boolean; + /** answer language */ + language?: 'chinese' | 'english'; +} +``` + +### Insight Types +The specific insight types are as follows, comprising 12 types in total. +```ts +export enum InsightType { + /** Minimum value */ + Min = 'min', + /** Maximum value */ + Max = 'max', + /** Average value */ + Avg = 'avg', + /** Outlier */ + Outlier = 'outlier', + /** Extreme value */ + ExtremeValue = 'extreme_value', + /** Majority value with significant contribution */ + MajorityValue = 'majority_value', + /** Turning point */ + TurningPoint = 'turning_point', + /** Overall trend */ + OverallTrend = 'overall_trend', + /** Abnormal trend */ + AbnormalTrend = 'abnormal_trend', + /** Abnormal band */ + AbnormalBand = 'abnormal_band', + /** Correlation */ + Correlation = 'correlation', + /** Volatility */ + Volatility = 'volatility' +} +``` + +### Built-in Algorithms +All built-in algorithms in VMind are as follows: +```ts +export enum AlgorithmType { + /** Overall/abnormal trend, using Mann-Kendall Test for trend detection */ + OverallTrending = 'overallTrend', + AbnormalTrend = 'abnormalTrend', + /** Pearson Correlation Coefficient / Spearman Correlation for correlation detection */ + PearsonCorrelation = 'pearsonCorrelation', + SpearmanCorrelation = 'spearmanCorrelation', + /** Statistical extreme values and majority values */ + ExtremeValue = 'extremeValue', + MajorityValue = 'majorityValue', + /** zScore global outlier detection and IQR (Interquartile Range) global outlier detection algorithms as the main statistical methods */ + StatisticsAbnormal = 'statisticsAbnormal', + /** Basic indicators, including maximum, minimum, average values */ + StatisticsBase = 'statisticsBase', + /** DBSCAN-based outlier detection algorithm */ + DbscanOutlier = 'dbscanOutlier', + /** LOF (Local Outlier Factor) local outlier factor detection algorithm */ + LOFOutlier = 'lofOutlier', + /** Bayesian Inference turning point detection algorithm */ + TurningPoint = 'turningPoint', + /** Page-Hinkley Test for time series anomaly detection */ + PageHinkley = 'pageHinkley', + /** Coefficient of Variation for periodicity detection based on the coefficient of variation */ + Volatility = 'volatility' +} +``` + +### Default Values +By default, VMind enables `isLimitedbyChartType` and `usePolish`, and all algorithms are enabled by default. + +## Return Value Type +The return value `insight` is an array of insights, with a single insight type as follows: +```ts +export interface Insight { + /** Insight name */ + name: string; + /** Insight type */ + type: InsightType; + /** Specific data corresponding to the insight */ + data: { + /** Index number */ + index: number; + /** Specific data item */ + dataItem: DataItem; + }[]; + /** Data field ID corresponding to the outlier, e.g., sales, growth rate, etc. */ + fieldId?: string; + /** Specific series name, e.g., "Northeast" | "Apple" or other specific category data names */ + seriesName?: DataCell | DataCell[]; + /** Semantic data expression, including placeholders */ + textContent?: { + // Original text content + content: string; + // Plain text after parsing variable placeholders + plainText: string; + // Mapping of variables + variables?: Record; + }; + // Specific value of the insight + value?: number | string; + /** Confidence score of the insight, used for insight sorting, the higher the score, the more important the insight */ + significant: number; + info?: { [key: string]: any }; // Additional information about this insight +} + +export interface InsightTextContent { + /** Parsed value */ + value: DataCell; + /** Formatted value */ + formatValue?: string; // Formatted value + /** Field name */ + fieldName: string; + /** Current color */ + color?: string; + /** Type of value, e.g., ascending trend or descending trend */ + valueType?: 'ascendTrend' | 'descendTrend' | string; + /** Icon type, e.g., ratio, ascending trend, or descending trend */ + icon?: 'ratio' | 'ascendTrend' | 'descendTrend' | string; + /** Whether it is a measure value */ + isMeasure?: boolean; + /** Whether it is a dimension value */ + isDimValue?: boolean; +} +``` + +### Specific Examples and Related Tutorials +[Intelligent Insights](../guide/Basic_Tutorial/Chart_Insight) diff --git a/docs/assets/api/en/parseCSVData.md b/docs/assets/api/en/parseCSVData.md index 38b434cd..0997fec8 100644 --- a/docs/assets/api/en/parseCSVData.md +++ b/docs/assets/api/en/parseCSVData.md @@ -8,7 +8,7 @@ The parseCSVData interface is used to convert CSV strings into the dataset and f ## Interface Parameters ```typescript -parseCSVData(csv: string): { fieldInfo: SimpleFieldInfo[], dataset: any[] } +parseCSVData(csv: string): { fieldInfo: FieldInfo[], dataset: any[] } ``` - csv: A string type, representing the CSV string to be parsed. @@ -17,7 +17,7 @@ parseCSVData(csv: string): { fieldInfo: SimpleFieldInfo[], dataset: any[] } Returns an object containing two properties: -- fieldInfo: Type of SimpleFieldInfo[], representing the parsed field information, each element is an object, containing the following properties: +- fieldInfo: Type of FieldInfo[], representing the parsed field information, each element is an object, containing the following properties: ```bash - fieldName: string type, representing the field name. diff --git a/docs/assets/api/en/text2Chart.md b/docs/assets/api/en/text2Chart.md new file mode 100644 index 00000000..d7baff74 --- /dev/null +++ b/docs/assets/api/en/text2Chart.md @@ -0,0 +1,119 @@ +# text2Chart + +## Interface Description: +The text2Chart function is used to call the LLM to complete two tasks: data extraction and intelligent chart generation. It returns the generated chart spec, chart two-dimensional data table, chart type, and field mapping, etc. This function enables the intelligent process of generating charts from plain text in one step. + +## Supported Models: +- GPT models +- Doubao models +- DeepSeek models +- Any other models + +## Chart Type List +VMind supports 25 common chart types: +```typescript +export enum ChartType { + DynamicBarChart = 'Dynamic Bar Chart', + BarChart = 'Bar Chart', + LineChart = 'Line Chart', + AreaChart = 'Area Chart', + PieChart = 'Pie Chart', + ScatterPlot = 'Scatter Plot', + WordCloud = 'Word Cloud', + RoseChart = 'Rose Chart', + RadarChart = 'Radar Chart', + SankeyChart = 'Sankey Chart', + FunnelChart = 'Funnel Chart', + DualAxisChart = 'Dual Axis Chart', + WaterFallChart = 'Waterfall Chart', + BoxPlot = 'Box Plot', + LinearProgress = 'Linear Progress chart', + CircularProgress = 'Circular Progress chart', + LiquidChart = 'Liquid Chart', + BubbleCirclePacking = 'Bubble Circle Packing', + MapChart = 'Map Chart', + RangeColumnChart = 'Range Column Chart', + SunburstChart = 'Sunburst Chart', + TreemapChart = 'Treemap Chart', + Gauge = 'Gauge Chart', + BasicHeatMap = 'Basic Heat Map', + VennChart = 'Venn Chart' +} +``` +You can restrict the type of chart generated through the chartTypeList in the options parameter. + +## Interface Parameters: + +```typescript +interface GenerateChartParams { + text: string, + userPrompt: string; + dataset?: Array>; + options?: { + fieldInfo?: FieldInfo[]; + chartTypeList?: ChartType[]; + colorPalette?: string[]; + animationDuration?: number; + theme?: ChartTheme | string; + enableDataQuery?: boolean; + } +} +``` + +- text (string): Required, the original text content +- userPrompt (string): Optional, the user's visualization intent (what data you mainly want to extract from the text and how to display it with a chart) +- options: Optional, option parameters, including: + + - fieldInfo (Array): Field information contained in the text type, including field names, types, etc.; in scenarios where fieldInfo is provided, VMind will only extract content related to the passed fieldInfo + - chartTypeList (ChartType[], optional): Supported chart type list. If not undefined, a chart will be generated from the chart types specified in this list. + - enableDataQuery (boolean, optional): Decides whether to enable data aggregation during chart generation + - colorPalette (Array, optional): Used to set the color palette of the chart + - animationDuration (number, optional): Used to set the playback duration of the chart animation + - theme (ChartTheme | string, optional): Sets the theme style of the final spec. By default, VMind uses a theme style with gradient colors. You can set VChart's general light or dark theme ('light' | 'dark') or a theme style that suits your usage scenario + +## Return Value Type: + +```typescript +interface GenerateChartResult { + /** Chart spec */ + spec: Record; + /** Extracted data */ + dataTable: DataTable; + /** Field information */ + fieldInfo: FieldInfo[]; + /** Chart type */ + chartType: ChartType; + /** Final visual channel mapping */ + cell: Cell; + /** Token consumption */ + usage: Usage; + /* Specific command to generate the current chart, consistent with user prompt if provided */ + command: string; + /** Configuration time used for converting to gif/video */ + time: { + totalTime : number; + frameArr: number[]; + }; + /** Rule-based chart recommendation results, generated when manually setting rules or when the large model generation is incorrect */ + chartAdvistorRes: { + /** Chart spec */ + spec: Record; + /** Chart type */ + chartType: ChartType; + /** Recommendation score */ + score: number + }[] +} +``` + +- spec (Object): The generated VChart chart spec. If the dataset is empty, it is a spec template without data +- dataTable (Record[]): The two-dimensional table data extracted from the text +- fieldInfo (FieldInfo): Field information extracted from the text when the user has not provided fieldInfo, i.e., the header information of the two-dimensional table +- chartType (ChartType): The generated chart type, see the "Chart Type List" section +- cell (Record): Field mapping in the chart, describing how fields in the dataset are mapped to various visual channels of the chart +- usage (any): Total LLM token consumption +- time (number): Duration information of the chart animation, can be used for exporting GIFs and videos +- chartAdvistorRes(Array): This result is the chart recommendation result deduced based on the current data and field information through VMind's built-in rules, generated as a fallback when some wrong happens in LLM. See: [Rule-Based Chart Generation](../guide/Basic_Tutorial/Chart_Advisor) + +# Usage Example +[Data Extraction - Generate Chart from Text in One Step](../guide/Basic_Tutorial/Data_Extraction) diff --git a/docs/assets/api/menu.json b/docs/assets/api/menu.json index 78c47981..1b6f0171 100644 --- a/docs/assets/api/menu.json +++ b/docs/assets/api/menu.json @@ -42,6 +42,20 @@ "zh": "generateChart", "en": "generateChart" } + }, + { + "path": "text2Chart", + "title": { + "zh": "text2Chart", + "en": "text2Chart" + } + }, + { + "path": "getInsights", + "title": { + "zh": "getInsights", + "en": "getInsights" + } } ] -} +} \ No newline at end of file diff --git a/docs/assets/api/zh/VMind_Instance.md b/docs/assets/api/zh/VMind_Instance.md index 14b9cf3d..3851f312 100644 --- a/docs/assets/api/zh/VMind_Instance.md +++ b/docs/assets/api/zh/VMind_Instance.md @@ -11,34 +11,26 @@ ```ts export interface ILLMOptions { - url?: string; // LLM服务的URL,默认为openAI API - headers?: HeadersInit; // LLM请求的header - method?: 'POST' | 'GET'; // 请求方法,post或get - model?: Model; // 模型类型 - max_tokens?: number; // 模型生成内容的最大token数量 - temperature?: number; // 模型生成内容的temperature - showThoughts?: boolean; // 是否将模型的思考过程添加到输出结果中 - customRequestFunc?: { - chartAdvisor: RequestFunc; - dataQuery: RequestFunc; - }; // 自定义LLM服务的调用方法 - [key: string]: any; + /** URL of your LLM service. For gpt, default is openAI API. */ + url?: string; + /** llm request header, which has higher priority */ + headers?: HeadersInit; + /** post or get */ + method?: 'POST' | 'GET'; + /** LLM Model */ + model?: Model | string; + /** Max token in LLM Chart */ + maxTokens?: number; + /** Temperature of LLM */ + temperature?: number; + /** show llm thoughs or not */ + showThoughts?: boolean; + /** repetition penalty */ + frequencyPenalty?: number; + /** topP */ + topP?: number; } ``` -```ts -type RequestFunc = (prompt: string, userMessage: string, options: ILLMOptions | undefined) => Promise; -``` - -```ts -export type LLMResponse = { - choices: { - index: number; - message: any; - }[]; - usage: any; - [key: string]: any; -}; -``` ### url @@ -54,28 +46,39 @@ method参数用于指定请求LLM时的方法类型,通常为POST。 ### model -model参数用于指定模型种类。这个字段将被放入LLM服务的请求体中。你可以从VMind中引入Model类型并用作model字段的值。 +model参数用于指定模型种类。这个字段将被放入LLM服务的请求体中。你可以从VMind中引入Model类型并用作model字段的值。也可以指定除VMind Model之外其他任何Model名称 ```ts export enum Model { GPT3_5 = 'gpt-3.5-turbo', + GPT3_5_1106 = 'gpt-3.5-turbo-1106', GPT4 = 'gpt-4', - SKYLARK = 'skylark-pro', - SKYLARK2 = 'skylark2-pro-4k' + GPT_4_0613 = 'gpt-4-0613', + GPT_4o = 'gpt-4o-2024-08-06', + DOUBAO_LITE = 'doubao-lite-32K', + DOUBAO_PRO = 'doubao-pro-128k', + CHART_ADVISOR = 'chart-advisor', + DEEPSEEK_V3 = 'deepseek-chat', + DEEPSEEK_R1 = 'deepseek-reasoner' } ``` ### max_tokens和temperature -max_tokens和temperature参数分别决定模型生成内容的最大token数量和temperature。在VMind中,这两个参数的默认值分别是2000和0,对于其他值的效果未经过充分测试,因此不建议修改。 +这两个参数分别决定模型生成内容的最大token数量和每次生成结果的随机性,详见[OpenAI官方文档](https://platform.openai.com/docs/api-reference/chat/create)。 -### showThoughts +在VMind中,这两个参数的默认值分别是2048和0. -showThoughts参数将影响VMind传给大语言模型的prompt,决定其在完成图表生成、数据聚合等任务时,是否将思考过程添加到输出结果中。在VMind中,showThoughts默认为true。 +### TopP +用于控制输出tokens的多样性,TopP值越大输出的tokens类型越丰富,取值范围0~1,VMind默认为0. + + +### frequencyPenalty +-2.0到2.0之间的数字,正值会根据新token在文本中出现的频率对其进行惩罚,从而降低模型逐字重复同一行的可能性。VMind默认为0. -### customRequestFunc +### showThoughts -customRequestFunc参数允许用户自定义在每种任务中调用LLM的方法。例如,你可以通过RPC的形式请求你自己的LLM服务。 +showThoughts参数将影响VMind传给大语言模型的prompt,决定其在完成图表生成、数据聚合等任务时,是否将思考过程添加到输出结果中。在VMind中,showThoughts默认为true。 ## 使用示例 @@ -84,10 +87,10 @@ customRequestFunc参数允许用户自定义在每种任务中调用LLM的方法 import VMind, { Model } from '@visactor/vmind' const vmind = new VMind({ - model: Model.GPT3_5, //使用gpt-3.5-turbo模型 + model: Model.GPT4o, //使用gpt-4o模型 headers: { //指定调用LLM服务时的header - Autho rization: `Bearer ${OPENAI_API_KEY}` //Your OPENAI_API_KEY -} + Authorization: `Bearer ${OPENAI_API_KEY}` //Your OPENAI_API_KEY + } }) ``` diff --git a/docs/assets/api/zh/dataQuery.md b/docs/assets/api/zh/dataQuery.md index 61952459..51ec9b6c 100644 --- a/docs/assets/api/zh/dataQuery.md +++ b/docs/assets/api/zh/dataQuery.md @@ -4,29 +4,31 @@ dataQuery函数是一个强大的数据聚合工具,它接收三个参数:用户展示意图userPrompt,数据集字段信息fieldInfo和原始数据集dataset。VMind会根据用户的展示意图,编写SQL语句并对dataset执行查询,查询结果会被储存在函数返回值的dataset属性中;同时,查询结果中的字段可能会发生变化,更新后的字段信息也会被储存在返回结果的fieldInfo属性中。 ## 支持模型: -- GPT-3.5 -- GPT-4 -- [skylark2-pro](https://www.volcengine.com/product/yunque) -- Custom +- GPT模型 +- 豆包模型 +- DeepSeek模型 +- 其他任意模型 ## 接口参数: - -- userPrompt: string -用户的展示意图,例如“展示各商品销售额”。 - -- fieldInfo: Array<{fieldName: string, type: string, role: string}> -数据集字段信息,包含字段名称、类型和角色。 - -- dataset: Array<{[key: string]: any}> -原始数据集,是一个对象数组,每个对象代表一条数据。 +``` typescript +/** + * + * @param userPrompt(string) 用户的展示意图,例如“展示各商品销售额”。 + * @param dataset(DataTable) 原始数据集,是一个对象数组,每个对象代表一条数据。 + * @param fieldInfo(FieldInfo[]) 可选,数据集字段信息,包含字段名称、类型和角色。在不传入的情况下,VMind会根据dataset自动解析一份fieldInfo配置 + * @returns new FieldInfo && new DataSet after user's query + */ +``` ## 返回值类型: - -- fieldInfo: Array<{fieldName: string, type: string, role: string}> -更新后的字段信息。 - -- dataset: Array<{[key: string]: any}> -查询结果数据集。 +```typescript +{ + // 更新后的字段信息。 + fieldInfo: FieldInfo[]; + // 查询后的数据表 + dataTable: DataTable; +} +``` ## 使用示例: @@ -70,14 +72,13 @@ const userPrompt=`展示各商品销售额` const vmind = new VMind(options) //调用dataQuery传入userPrompt,sourceFieldInfo和sourceDataset,执行数据聚合 -const { fieldInfo, dataset } = vmind.dataQuery(userPrompt, sourceFieldInfo, sourceDataset); +const { fieldInfo, dataset } = vmind.dataQuery(userPrompt, sourceDataset, sourceFieldInfo); ``` ## 注意事项: - dataQuery方法会将userPrompt和fieldInfo传递给大模型用于生成SQL,dataset中的明细数据并不会被传递。 - dataQuery执行过程中,目前支持的SQL关键词有:SELECT, GROUP BY, WHERE, HAVING, ORDER BY, LIMIT。目前支持的聚合函数有:MAX(), MIN(), SUM(), COUNT(), AVG(),但不支持子查询、JOIN、条件语句等复杂的SQL操作。 -- 在使用 `Custom` 自定义模型时,会调用 `skylark` 模型的流程。 ## 相关教程 [数据聚合](../guide/Basic_Tutorial/Data_Aggregation) diff --git a/docs/assets/api/zh/generateChart.md b/docs/assets/api/zh/generateChart.md index 387152f1..55c3f0b8 100644 --- a/docs/assets/api/zh/generateChart.md +++ b/docs/assets/api/zh/generateChart.md @@ -6,19 +6,20 @@ generateChart函数用于调用LLM完成图表智能生成,返回生成的图 若传入的dataset为undefined,则会生成一个spec模板,后续可调用fillSpecWithData向spec中填入数据。 ## 支持模型: -- GPT-3.5 -- GPT-4 -- [skylark2-pro](https://www.volcengine.com/product/yunque) +- GPT模型 +- 豆包模型 +- DeepSeek模型 - [chart-advisor](../guide/Basic_Tutorial/Chart_Advisor) -- Custom +- 其他任意模型 ## 图表类型列表 -VMind支持13种常见的图表类型: +VMind支持25种常见的图表类型: ```typescript export enum ChartType { DynamicBarChart = 'Dynamic Bar Chart', BarChart = 'Bar Chart', LineChart = 'Line Chart', + AreaChart = 'Area Chart', PieChart = 'Pie Chart', ScatterPlot = 'Scatter Plot', WordCloud = 'Word Cloud', @@ -28,7 +29,18 @@ export enum ChartType { FunnelChart = 'Funnel Chart', DualAxisChart = 'Dual Axis Chart', WaterFallChart = 'Waterfall Chart', - BoxPlot = 'Box Plot' + BoxPlot = 'Box Plot', + LinearProgress = 'Linear Progress chart', + CircularProgress = 'Circular Progress chart', + LiquidChart = 'Liquid Chart', + BubbleCirclePacking = 'Bubble Circle Packing', + MapChart = 'Map Chart', + RangeColumnChart = 'Range Column Chart', + SunburstChart = 'Sunburst Chart', + TreemapChart = 'Treemap Chart', + Gauge = 'Gauge Chart', + BasicHeatMap = 'Basic Heat Map', + VennChart = 'Venn Chart' } ``` 可通过options参数中的chartTypeList限制生成的图表类型。 @@ -49,6 +61,7 @@ interface GenerateChartParams { colorPalette?: string[]; animationDuration?: number; enableDataQuery?: boolean; + theme?: ChartTheme | string; } } ``` @@ -62,30 +75,44 @@ interface GenerateChartParams { - enableDataQuery (boolean, 可选): 决定是否在图表生成过程中开启数据聚合 - colorPalette (Array, 可选): 用于设置图表的调色板 - animationDuration (number, 可选): 用于设置图表动画的播放持续时间 - + - theme (ChartTheme | string, 可选): 设置最终sepc的主题样式,默认为空,VMind会默认使用带渐变颜色的主题样式,可以设置 VChart 通用深浅主题('light' | 'dark')或者符合你使用场景下的主题样式 ## 返回值类型: ```typescript interface GenerateChartResult { + /** 图表spec */ spec: Record; - chartType: Record; + /** 图表类型*/ + chartType: ChartType; + /** 最终的视觉通道映射 */ cell: Cell; - chartSource: string; - usage: any; + /** token 消耗量 */ + usage: Usage; + /* 生成当前图表的具体指令,在user prompt的情况下跟user prompt一致 */ + command: string; + /** 转唯gif/video时所用的配置时间 *// time: { totalTime : number; frameArr: number[]; }; + /** 基于规则的图表推荐结果,在手动设置规则或者大模型生成有误情况下产生 */ + chartAdvistorRes: { + /** 图表spec */ + spec: Record; + /** 图表类型*/ + chartType: ChartType; + /** 推荐得分 */ + score: number + }[] } ``` - spec (Object): 生成的VChart图表spec。若dataset为空,则为不包含数据的spec模板 - chartType (ChartType): 生成的图表类型,参见`图表类型列表`章节 - cell (Record): 图表中的字段映射,描述数据集中的字段如何映射到图表的各个视觉通道上 -- chartSource: string: 图表生成来源。若成功使用LLM生成图表,则为具体的模型名;若最终使用[基于规则的图表生成](../guide/Basic_Tutorial/Chart_Advisor),则为chart-advisor - usage (any): LLM token总消耗 - time (number): 图表动画的时长信息,可用于导出GIF和视频 - +- chartAdvistorRes(Array): 该结果是根据当前数据和字段信息,通过VMind的内置规则推导得到的图表推荐结果,在设置模型为`Model.CHART_ADVISOR`或者用户的大模型设置有误,无法获取结果时兜底产生。详见:[基于规则的图表生成](../guide/Basic_Tutorial/Chart_Advisor) ## 使用示例: ```typescript diff --git a/docs/assets/api/zh/getFieldInfo.md b/docs/assets/api/zh/getFieldInfo.md index a4b894aa..089c571e 100644 --- a/docs/assets/api/zh/getFieldInfo.md +++ b/docs/assets/api/zh/getFieldInfo.md @@ -4,19 +4,41 @@ getFieldInfo接口用于解析JSON结构的数据以获得其中的字段信息(fieldInfo)。fieldInfo包括字段名称、类型、值域等信息,其结构如下: ```typescript -export type SimpleFieldInfo = { +export interface FieldInfo = { + /** name of field */ fieldName: string; + /** field type, eg: time / category / numerical */ + type: DataType; + /** field role */ + role: ROLE; + /** alias of field */ + alias?: string; + /** description of field */ description?: string; - type: 'int' | 'float' | 'string' | 'date'; - role: 'dimension' | 'measure'; - domain?: (string | number)[]; }; + +export enum DataType { + DATE = 'date', + TIME = 'time', + STRING = 'string', + REGION = 'region', + NUMERICAL = 'numerical', + RATIO = 'ratio', + COUNT = 'count', + FLOAT = 'float', + INT = 'int' +} + +export enum ROLE { + DIMENSION = 'dimension', + MEASURE = 'measure' +} ``` ## 接口参数 ```typescript -getFieldInfo(dataset: Record[]): SimpleFieldInfo[] +getFieldInfo(dataset: Record[]): FieldInfo[] ``` - dataset: JSON格式的数据集,是一个数组,每个元素是一个对象,键为字段名称,值为对应的数据。 diff --git a/docs/assets/api/zh/getInsights.md b/docs/assets/api/zh/getInsights.md new file mode 100644 index 00000000..1790fead --- /dev/null +++ b/docs/assets/api/zh/getInsights.md @@ -0,0 +1,153 @@ +# getInsights + +## 接口描述 + +getInsights接口会根据VChart Spec配置和洞察配置,产生当前图表的洞察结果,最终洞察结果会按照洞察置信度得分从高到低排序。 + +## 接口参数 + +```typescript +getInsights(spec: any, options?: DataInsightOptions): { insights: Insights[], usage: Usage}; + +export interface DataInsightOptions { + /** 最多产生的洞察数量 */ + maxNum?: number; + /** 具体每个洞察类型最多产生的洞察数量,优先级高于maxNum */ + detailMaxNum?: { + types: InsightType[]; + maxNum: number; + }[]; + /** 使用哪些算法 */ + algorithms?: AlgorithmType[]; + /** 每个算法的超参数设定 */ + algorithmOptions?: AlgorithmOptions; + /** 洞察结果是否考虑图表类型,例如聚类算法只在散点图中使用 */ + isLimitedbyChartType?: boolean; + /** 是否用大模型进行文本润色 */ + usePolish?: boolean; + /** 生成文本的语言 */ + language?: 'chinese' | 'english'; +} +``` + +### 洞察类型 +具体的洞察类型如下所示,共包含12种洞察类型。 +```ts +export enum InsightType { + /** 最小值 */ + Min = 'min', + /** 最大值 */ + Max = 'max', + /** 平均值 */ + Avg = 'avg', + /** 异常点 */ + Outlier = 'outlier', + /** 极值 */ + ExtremeValue = 'extreme_value', + /** 贡献占比巨大值 */ + MajorityValue = 'majority_value', + /** 转折点 */ + TurningPoint = 'turning_point', + /** 整体趋势 */ + OverallTrend = 'overall_trend', + /** 异常趋势 */ + AbnormalTrend = 'abnormal_trend', + /** 异常区间 */ + AbnormalBand = 'abnormal_band', + /** 相关性 */ + Correlation = 'correlation', + /** 周期性 */ + Volatility = 'volatility' +} +``` + +### 内置算法 +VMind所有内置算法如下: +```ts +export enum AlgorithmType { + /** 整体/异常趋势,使用Mann-Kendall Test 趋势检测算法 */ + OverallTrending = 'overallTrend', + AbnormalTrend = 'abnormalTrend', + /** Pearson Correlation Coefficient / SpearmanCorrelation 相关性检测 */ + PearsonCorrelation = 'pearsonCorrelation', + SpearmanCorrelation = 'spearmanCorrelation', + /** 统计极值和占比贡献巨大值 */ + ExtremeValue = 'extremeValue', + MajorityValue = 'majorityValue', + /** zScore 全局异常点检测和IQR (Interquartile Range) 四分位全局异常检测算法 为主的统计学方法 */ + StatisticsAbnormal = 'statisticsAbnormal', + /** 基础指标,包括最大,最小,平均值 */ + StatisticsBase = 'statisticsBase', + /** 以DBSCAN为主的离群点检测算法 */ + DbscanOutlier = 'dbscanOutlier', + /** LOF(Local Outlier Factor) 局部异常因子检测算法 */ + LOFOutlier = 'lofOutlier', + /** Bayesian Inference 转折点检测算法 */ + TurningPoint = 'turningPoint', + /** Page-Hinkley Test 时序数据异常检测算法 */ + PageHinkley = 'pageHinkley', + /** Coefficient of Variation 基于变异系数的周期性检测 */ + Volatility = 'volatility' +} +``` + +### 默认值 +默认VMind会开启`isLimitedbyChartType`以及`usePolish`,同时默认开启所有算法 + +## 返回值类型 +返回值`insight`为洞察数组,单个洞察类型如下所示: +```ts +export interface Insight { + /** 洞察名称 */ + name: string; + /** 洞察类型 */ + type: InsightType; + /** 洞察对应的具体数据 */ + data: { + /** index编号 */ + index: number; + /** 具体数据项 */ + dataItem: DataItem; + }[]; + /** 异常点对应的数据字段id,例如为销售额。增长率等 */ + fieldId?: string; + /** 具体的图元系列名称,例如可能是"东北" | "苹果"等具体的分类数据名称 */ + seriesName?: DataCell | DataCell[]; + /** 语义化数据表达,包含占位符 */ + textContent?: { + // 原始文本内容 + content: string; + // 将变量占位符解析为文本后的纯文本 + plainText: string; + // 变量的映射 + variables?: Record; + }; + // 洞察的具体值 + value?: number | string; + /** 洞察的置信度的粉,用于洞察排序,分数越高代表洞察越重要 */ + significant: number; + info?: { [key: string]: any }; // 关于此洞察的附加信息 +} + +export interface InsightTextContent { + /** 解析值 */ + value: DataCell; + /** 格式化后的值 */ + formatValue?: string; // 格式化后的值 + /** 字段名称 */ + fieldName: string; + /** 当前颜色 */ + color?: string; + /** 值的类型,例如上升趋势或下降趋势 */ + valueType?: 'ascendTrend' | 'descendTrend' | string; + /** 图标类型,例如比率、上升趋势或下降趋势 */ + icon?: 'ratio' | 'ascendTrend' | 'descendTrend' | string; + /** 是否为度量值 */ + isMeasure?: boolean; + /** 是否为维度值 */ + isDimValue?: boolean; +} +``` + +### 具体案例和相关教程 +[智能洞察](../guide/Basic_Tutorial/Chart_Insight) diff --git a/docs/assets/api/zh/parseCSVData.md b/docs/assets/api/zh/parseCSVData.md index a5b5690b..7b4585a0 100644 --- a/docs/assets/api/zh/parseCSVData.md +++ b/docs/assets/api/zh/parseCSVData.md @@ -7,7 +7,7 @@ parseCSVData接口用于将CSV字符串转换为VMind所需的数据集(datase ## 接口参数 ```typescript -parseCSVData(csv: string): { fieldInfo: SimpleFieldInfo[], dataset: any[] } +parseCSVData(csv: string): { fieldInfo: FieldInfo[], dataset: any[] } ``` - csv: string类型,表示需要解析的CSV字符串。 @@ -16,7 +16,7 @@ parseCSVData(csv: string): { fieldInfo: SimpleFieldInfo[], dataset: any[] } 返回一个对象,包含两个属性: -- fieldInfo: SimpleFieldInfo[]类型,表示解析后的字段信息,每个元素是一个对象,包含以下属性: +- fieldInfo: FieldInfo[]类型,表示解析后的字段信息,每个元素是一个对象,包含以下属性: ```bash - fieldName: string类型,表示字段名称。 diff --git a/docs/assets/api/zh/text2Chart.md b/docs/assets/api/zh/text2Chart.md new file mode 100644 index 00000000..756e1ff0 --- /dev/null +++ b/docs/assets/api/zh/text2Chart.md @@ -0,0 +1,119 @@ +# text2Chart + +## 接口描述: +text2Chart函数用于调用LLM完成数据提取,图表智能生成两个任务,返回生成的图表spec、图表二维数据表,图表类型和字段映射等。实现一步从普通文本生成图表的智能化过程。 + +## 支持模型: +- GPT模型 +- 豆包模型 +- DeepSeek模型 +- 其他任意模型 + +## 图表类型列表 +VMind支持25种常见的图表类型: +```typescript +export enum ChartType { + DynamicBarChart = 'Dynamic Bar Chart', + BarChart = 'Bar Chart', + LineChart = 'Line Chart', + AreaChart = 'Area Chart', + PieChart = 'Pie Chart', + ScatterPlot = 'Scatter Plot', + WordCloud = 'Word Cloud', + RoseChart = 'Rose Chart', + RadarChart = 'Radar Chart', + SankeyChart = 'Sankey Chart', + FunnelChart = 'Funnel Chart', + DualAxisChart = 'Dual Axis Chart', + WaterFallChart = 'Waterfall Chart', + BoxPlot = 'Box Plot', + LinearProgress = 'Linear Progress chart', + CircularProgress = 'Circular Progress chart', + LiquidChart = 'Liquid Chart', + BubbleCirclePacking = 'Bubble Circle Packing', + MapChart = 'Map Chart', + RangeColumnChart = 'Range Column Chart', + SunburstChart = 'Sunburst Chart', + TreemapChart = 'Treemap Chart', + Gauge = 'Gauge Chart', + BasicHeatMap = 'Basic Heat Map', + VennChart = 'Venn Chart' +} +``` +可通过options参数中的chartTypeList限制生成的图表类型。 + +## 接口参数: + +```typescript +interface GenerateChartParams { + text: string, + userPrompt: string; + dataset?: Array>; + options?: { + fieldInfo?: FieldInfo[]; + chartTypeList?: ChartType[]; + colorPalette?: string[]; + animationDuration?: number; + theme?: ChartTheme | string; + enableDataQuery?: boolean; + } +} +``` + +- text (string): 必选,原始文本内容 +- userPrompt (string): 可选,用户的可视化意图(你想从文本中主要提取哪些数据,如何用图表进行展示) +- options: 可选,选项参数,包括以下内容: + + - fieldInfo (Array): 文本类型中包含的字段信息,包括字段名称,类型等;传递了fieldInfo的场景,VMind会只提取跟传入fieldInfo相关联的内容 + - chartTypeList (ChartType[],可选): 支持的图表类型列表。若不为undefined,则会从该列表指定的图表类型中选择生成。 + - enableDataQuery (boolean, 可选): 决定是否在图表生成过程中开启数据聚合 + - colorPalette (Array, 可选): 用于设置图表的调色板 + - animationDuration (number, 可选): 用于设置图表动画的播放持续时间 + - theme (ChartTheme | string, 可选): 设置最终sepc的主题样式,默认为空,VMind会默认使用带渐变颜色的主题样式,可以设置 VChart 通用深浅主题('light' | 'dark')或者符合你使用场景下的主题样式 + +## 返回值类型: + +```typescript +interface GenerateChartResult { + /** 图表spec */ + spec: Record; + /** 提取出来的数据 */ + dataTable: DataTable; + /** 字段信息 */ + fieldInfo: FieldInfo[]; + /** 图表类型*/ + chartType: ChartType; + /** 最终的视觉通道映射 */ + cell: Cell; + /** token 消耗量 */ + usage: Usage; + /* 生成当前图表的具体指令,在user prompt的情况下跟user prompt一致 */ + command: string; + /** 转唯gif/video时所用的配置时间 *// + time: { + totalTime : number; + frameArr: number[]; + }; + /** 基于规则的图表推荐结果,在手动设置规则或者大模型生成有误情况下产生 */ + chartAdvistorRes: { + /** 图表spec */ + spec: Record; + /** 图表类型*/ + chartType: ChartType; + /** 推荐得分 */ + score: number + }[] +} +``` + +- spec (Object): 生成的VChart图表spec。若dataset为空,则为不包含数据的spec模板 +- dataTable (Record[]): 从文本中提取到的二维表数据 +- fieldInfo (FieldInfo): 在用户没有传入fieldInfo的情况下,从文本中提取到到字段信息,即二维表的表头信息 +- chartType (ChartType): 生成的图表类型,参见`图表类型列表`章节 +- cell (Record): 图表中的字段映射,描述数据集中的字段如何映射到图表的各个视觉通道上 +- usage (any): LLM token总消耗 +- time (number): 图表动画的时长信息,可用于导出GIF和视频 +- chartAdvistorRes(Array): 该结果是根据当前数据和字段信息,通过VMind的内置规则推导得到的图表推荐结果,在大模型生成图表过程有误时兜底产生。详见:[基于规则的图表生成](../guide/Basic_Tutorial/Chart_Advisor) + +# 使用实例 +[数据提取——从文本一步生成图表](../guide/Basic_Tutorial/Data_Extraction) \ No newline at end of file diff --git a/docs/assets/guide/en/Basic_Tutorial/Chart_Generation.md b/docs/assets/guide/en/Basic_Tutorial/Chart_Generation.md index 599f2210..8148921e 100644 --- a/docs/assets/guide/en/Basic_Tutorial/Chart_Generation.md +++ b/docs/assets/guide/en/Basic_Tutorial/Chart_Generation.md @@ -1,6 +1,4 @@ # Chart Generation -📢 Note: The chart generation feature currently supports OpenAI GPT-3.5, GPT-4 series models, and Volcano Engine [Skylark-pro](https://www.volcengine.com/product/yunque) series models. We will continue to expand the range of supported models. If you have any requirements, feel free to propose them on our [Github page](https://github.com/VisActor/VMind/issues/new/choose). - This tutorial will provide you with a detailed introduction to the intelligent chart generation feature in VMind and provide some examples. There are many ways to generate charts, such as using professional BI visualization tools like PowerBI, Tableau, etc., to create visual charts using the fields of datasets; or you can directly use chart libraries like VChart, ECharts, MatPlotlib, etc., to draw charts by writing code. In addition, chart libraries like VChart, Echarts also provide simple and easy-to-use chart editors, where users can upload data and create charts. @@ -29,6 +27,8 @@ The generateChart function of VMind is a powerful tool that helps you intelligen - enableDataQuery (boolean, optional): Decides whether to enable data aggregation during chart generation - colorPalette (Array, optional): Used to set the color palette of the chart - animationDuration (number, optional): Used to set the duration of the chart animation + - theme (ChartTheme | string, optional): Sets the theme style of the final spec. By default, VMind uses a theme style with gradient colors. You can set VChart's general light or dark theme ('light' | 'dark') or a theme style that suits your usage scenario. + This method will return a [VChart chart spec](https://www.visactor.io/vchart/guide/tutorial_docs/Basic/A_Basic_Spec). @@ -241,6 +241,13 @@ If `userPrompt` is `Show me the change of the GDP rankings of each country`, the To make VMind generate a chart that meets your expectations, you need to describe your display intention and purpose as clearly as possible in `userPrompt`. In addition, you need to ensure that the field names in the dataset have certain semantics, or add field descriptions in the field information, please refer to the [Data Format and Data Processing](./Data_Process) chapter for details. +### With Empty User Prompt +If I have a chart, can I get a good chart generation result without manual input of intent, that is, without the input of `userPrompt`? +**The answer is yes!** +Currently, VMind supports generating a chart that the user is most likely to want to present on this data based on public domain knowledge and the content of the fields, even without user intent. Similarly, as mentioned earlier, this requires the data information and field information in the data to be as detailed and complete as possible. Imagine if the name and description of each field in my data are like `'a' | 'b' | 'c'`, it is obviously impossible to produce a high-quality chart, and this data itself has no special meaning because we do not understand what the fields represent. + +Similarly, using the previous mobile phone brand sales dataset as a test, when we do not pass in `userPrompt`, the result is as follows: +![](https://lf9-dp-fe-cms-tos.byteorg.com/obj/bit-cloud/vmind_en_text2Chart_default.jpeg) ### options #### enableDataQuery: Whether to enable intelligent data aggregation @@ -257,9 +264,10 @@ const { spec, time } = await vmind.generateChart(userPrompt, fieldInfo, dataset, This can reduce the process of calling the LLM once, reduce token consumption, and improve chart generation speed. For more information about VMind data aggregation, please refer to the [Data Aggregation](./Data_Aggregation) chapter. #### chartTypeList: Limits the type of charts generated by VMind -VMind currently supports 13 common chart types in VChart: +VMind currently supports 25 common chart types in VChart: - [Bar Chart](https://www.visactor.io/vchart/demo/bar-chart/basic-column) -- [Line Chart](hhttps://www.visactor.io/vchart/demo/line-chart/basic-line) +- [Line Chart](https://www.visactor.io/vchart/demo/line-chart/basic-line) +- [Area Chart](https://www.visactor.io/vchart/demo/area-chart/basic-area) - [Pie Chart](https://www.visactor.io/vchart/demo/pie-chart/basic-pie) - [Scatter Chart](https://www.visactor.io/vchart/demo/scatter-chart/basic-scatter) - [Dual Axis Chart](https://www.visactor.io/vchart/demo/combination/dual-axis) @@ -271,6 +279,17 @@ VMind currently supports 13 common chart types in VChart: - [Sankey Chart](https://www.visactor.io/vchart/demo/sankey-chart/basic-sankey) - [Waterfall Chart](https://www.visactor.io/vchart/demo/waterfall/basic-waterfall) - [Dynamic Bar Chart (ranking bar)](https://www.visactor.io/vchart/demo/storytelling/ranking-bar) +- [Range Bar Chart](https://www.visactor.io/vchart/demo/range-column-chart/range-bar) +- [Liquid Chart](https://www.visactor.io/vchart/demo/liquid-chart/liquid-chart) +- [Linear Progress Bar](https://www.visactor.io/vchart/demo/progress/linear-progress) +- [Circular Progress Bar](https://www.visactor.io/vchart/demo/progress/circular-progress) +- [Circle Packing Chart](https://www.visactor.io/vchart/demo/circle-packing-chart/basic-circle-packing) +- [Sunburst Chart](https://www.visactor.io/vchart/demo/sunburst-chart/basic-sunburst) +- [Gauge Chart](https://www.visactor.io/vchart/demo/gauge-chart/basic-gauge) +- [Treemap Chart](https://www.visactor.io/vchart/demo/treemap-chart/basic-treemap) +- [Heatmap Chart](https://www.visactor.io/vchart/demo/heatmap-chart/basic-heatmap) +- [Venn Chart](https://www.visactor.io/vchart/demo/venn-chart/venn-chart) +- [Map](https://www.visactor.io/vchart/demo/map-chart/basic-map) Depending on the `userPrompt` and `fieldInfo`, these chart types may all be recommended by the large language model. @@ -328,14 +347,19 @@ The type definition of the return value of the vmind.generateChart method is as ```typescript interface GenerateChartResult { spec: Record; -chartType: Record; +chartType: ChartType; cell: Cell; -chartSource: string; -usage: any; +usage: Usage; +command: string; time: { totalTime : number; frameArr: number[]; }; +chartAdvistorRes: { +spec: Record; +chartType: ChartType; +score: number +}[] } ``` @@ -431,8 +455,8 @@ Its cell is as follows: This indicates that VMind maps the product name field to the x-axis of the chart, the sales field to the y-axis, and the region field to the color of the column. -### chartSource -The source of the chart generation. If the chart is successfully generated using LLM, it is the specific model name; if it finally uses [rule-based chart generation](./Chart_Advisor), it is chart-advisor +### chartAdvistorRes +This result is the chart recommendation result derived based on the current data and field information through VMind's built-in rules. It is generated as a fallback when the model is set to `Model.CHART_ADVISOR` or the user's large model settings are incorrect and cannot obtain results. See: [Rule-based Chart Generation](./Chart_Advisor) ## Generate spec template Even without a specific dataset and with only data fields, we may need to generate a chart. For example, we can generate a chart based on the fields in the dataset before querying, and then execute related queries based on the type of chart and the fields it contains. In this case, when calling the generateChart method, there is no need to pass in a specific dataset, but to first generate a spec template, and then obtain the final spec used for chart rendering through the fillSpecWithData method later. diff --git a/docs/assets/guide/en/Basic_Tutorial/Chart_Insight.md b/docs/assets/guide/en/Basic_Tutorial/Chart_Insight.md new file mode 100644 index 00000000..368db1e6 --- /dev/null +++ b/docs/assets/guide/en/Basic_Tutorial/Chart_Insight.md @@ -0,0 +1,183 @@ +# Intelligent Insights + +In the era of data-driven decision-making, charts serve as a core tool for data visualization, providing an intuitive way to present complex data relationships. However, relying solely on human observation and analysis of charts often makes it difficult to quickly and comprehensively uncover the hidden insights behind the data. + +This tutorial will introduce you to the intelligent insights feature in VMind, demonstrating how to quickly obtain various types of insights from charts using the `getInsights` function, along with some examples. + +## getInsights + +The `getInsights` function in VMind is a powerful tool that helps you extract chart insights and generate semantic explanations. This function requires the following two parameters: +- spec: The specific spec configuration of the current VChart chart +- options (DataInsightOptions): Insight-related configurations that control the number of specific insights, the algorithms used, and the specific configurations of the corresponding algorithms + +During the process of generating intelligent insights, VMind primarily performs two tasks: +- First, it uses built-in statistical algorithms to extract data insights contained in the current chart; +- Then, these identified insights are passed to a large model, which polishes and semantically explains these insights. During the polishing process, VMind passes field information and insight types to the large model but **does not pass any data details to the large model**. + +The second step of polishing by the large model is not mandatory and can be disabled through `options.usePolish`, in which case you will receive data insights and templated semantic content. + +### Built-in Algorithms + +Currently, VMind's built-in algorithms are primarily related to statistics, as listed below: +- LOF (Local Outlier Factor) for local outlier detection +- zScore for global outlier detection +- IQR (Interquartile Range) for global outlier detection +- Page-Hinkley Test for time series anomaly detection +- Bayesian Inference for change point detection +- Mann-Kendall Test for trend detection +- Pearson Correlation Coefficient / Spearman Correlation for correlation detection +- DBSCAN (Density-Based Spatial Clustering of Applications with Noise) algorithm +- Coefficient of Variation for periodicity detection based on the coefficient of variation +- Basic statistical indicators, such as maximum/minimum/average value/proportion anomalies, etc. + +### Large Model Polishing + +In intelligent insights, the large model serves only as a text polishing function, enhancing the readability of the final results, and is an optional configuration. + +## Insight Types + +Based on the existing built-in algorithms, VMind can identify the following 9 types of insights: +- Outliers +- Time series outliers +- Change points +- Points with significant contribution to proportion +- Anomalous intervals +- Overall trends +- Anomalous trends +- Correlations +- Basic statistical indicators + +Depending on different insight results, users can choose different annotation/highlighting methods to present them in charts. + +## Usage Example + +Below is an example of using `getInsights`: +```ts +import VMind from '@visactor/vmind'; + +const specJson = { + type: 'line', + xField: ['Year'], + yField: ['College Admission Rate'], + data: [ + { + id: 'data', + values: [ + {"Year": 1977, "College Admission Rate": 0.05}, + {"Year": 1978, "College Admission Rate": 0.07}, + {"Year": 1979, "College Admission Rate": 0.06}, + {"Year": 1980, "College Admission Rate": 0.08}, + {"Year": 1981, "College Admission Rate": 0.11}, + {"Year": 1982, "College Admission Rate": 0.17}, + {"Year": 1983, "College Admission Rate": 0.23}, + {"Year": 1984, "College Admission Rate": 0.29}, + {"Year": 1985, "College Admission Rate": 0.96}, + {"Year": 1986, "College Admission Rate": 0.3}, + {"Year": 1987, "College Admission Rate": 0.27}, + {"Year": 1988, "College Admission Rate": 0.25}, + {"Year": 1989, "College Admission Rate": 0.23}, + {"Year": 1990, "College Admission Rate": 0.22}, + {"Year": 1991, "College Admission Rate": 0.21}, + {"Year": 1992, "College Admission Rate": 0.25}, + {"Year": 1993, "College Admission Rate": 0.34}, + {"Year": 1994, "College Admission Rate": 0.36}, + {"Year": 1995, "College Admission Rate": 0.37}, + {"Year": 1996, "College Admission Rate": 0.4}, + {"Year": 1997, "College Admission Rate": 0.36}, + {"Year": 1998, "College Admission Rate": 0.34}, + {"Year": 1999, "College Admission Rate": 0.56}, + {"Year": 2000, "College Admission Rate": 0.59}, + {"Year": 2001, "College Admission Rate": 0.59}, + {"Year": 2002, "College Admission Rate": 0.63}, + {"Year": 2003, "College Admission Rate": 0.62}, + {"Year": 2004, "College Admission Rate": 0.61}, + {"Year": 2005, "College Admission Rate": 0.57}, + {"Year": 2006, "College Admission Rate": 0.57}, + {"Year": 2007, "College Admission Rate": 0.56}, + {"Year": 2008, "College Admission Rate": 0.57}, + {"Year": 2009, "College Admission Rate": 0.62}, + {"Year": 2010, "College Admission Rate": 0.69}, + {"Year": 2011, "College Admission Rate": 0.72}, + {"Year": 2012, "College Admission Rate": 0.75}, + {"Year": 2013, "College Admission Rate": 0.75}, + {"Year": 2014, "College Admission Rate": 0.74}, + {"Year": 2015, "College Admission Rate": 0.74}, + {"Year": 2016, "College Admission Rate": 0.75}, + {"Year": 2017, "College Admission Rate": 0.74}, + {"Year": 2018, "College Admission Rate": 0.81}, + {"Year": 2019, "College Admission Rate": 0.8}, + {"Year": 2020, "College Admission Rate": 0.8}, + {"Year": 2021, "College Admission Rate": 0.93}, + {"Year": 2022, "College Admission Rate": 0.96} + ] + } + ] + }; +const vmind = new VMind(options) +const { insights } = await vmind.getInsights(specJson, { + /** Generate up to maxNum insights */ + maxNum: numLimits, +}); +``` + +The final result accurately identifies the overall trend and the significantly anomalous college admission rate in 1985. + +![](https://lf9-dp-fe-cms-tos.byteorg.com/obj/bit-cloud/vmind_insight_en_1.jpeg) +### Return Structure + +Taking the overall trend as an example, the structured content returned is as follows: +```ts +const outlierInsight = { + /** Type is outlier Insight */ + type: 'outlier', + /** Specific outlier data */ + data: [ + { + index: 8, + dataItem: { + Year: 1985, + College Admission Rate: 0.96, + } + } + ], + /** Numerical field */ + fieldId: 'College Admission Rate', + /** Current outlier value */ + value: 0.96, + /** Insight confidence score */ + significant: 1, + /** Current series name, since the current chart does not have a seriesField configuration, it only contains one series, so it is the default value of vmind */ + seriesName: 'vmind_default_series', + /** Detected by the pageHinkley algorithm */ + name: 'pageHinkley', + /** Specific textual meaning */ + textContent: { + /** Specific text template */ + content: '${b} period shows a significant anomaly, with a value of ${c}.', + /** Variable parsing in the template */ + variables: { + b: { + isDimValue: true, + value: 1985, + fieldName: 'Year' + }, + c: { + value: 0.96, + isMeasure: true, + fieldName: 'College Admission Rate' + } + }, + /** Result of directly replacing template variables with values */ + plainText: '1985 period shows a significant anomaly, with a value of 0.96.' + } +} +``` + +### Adding Insights + +After identifying chart insights, we can use VChart's powerful annotation capabilities to add these contents to the chart, as shown in the final effect below: +![](https://lf9-dp-fe-cms-tos.byteorg.com/obj/bit-cloud/vmind_insight_en_2.jpeg) + +## Parameter Details + +For detailed parameter explanations, see: [getInsights](../../api/getInsights) \ No newline at end of file diff --git a/docs/assets/guide/en/Basic_Tutorial/Create_VMind_Instance.md b/docs/assets/guide/en/Basic_Tutorial/Create_VMind_Instance.md index 358d17de..2e1338d9 100644 --- a/docs/assets/guide/en/Basic_Tutorial/Create_VMind_Instance.md +++ b/docs/assets/guide/en/Basic_Tutorial/Create_VMind_Instance.md @@ -11,36 +11,75 @@ The complete type definition of options is as follows: ```ts export interface ILLMOptions { - url?: string; //URL of your LLM service. For gpt, default is openAI API. + /** URL of your LLM service. For gpt, default is openAI API. */ + url?: string; /** llm request header, which has higher priority */ - headers?: HeadersInit; // this will be used directly as the header of the LLM request. - method?: 'POST' | 'GET'; //post or get - model?: Model; - max_tokens?: number; + headers?: HeadersInit; + /** post or get */ + method?: 'POST' | 'GET'; + /** LLM Model */ + model?: Model | string; + /** Max token in LLM Chart */ + maxTokens?: number; + /** Temperature of LLM */ temperature?: number; + /** show llm thoughts or not */ showThoughts?: boolean; - customRequestFunc?: { - chartAdvisor: RequestFunc; - dataQuery: RequestFunc; - }; - [key: string]: any; + /** repetition penalty */ + frequencyPenalty?: number; + /** topP */ + topP?: number; } - ``` In ILLMOptions, most parameters will be passed directly to the LLM service. -If you plan to use the LLM service provided by OpenAI official and authenticate through the OpenAI api key in headers, you can simply initialize VMind like this: +## Example with GPT + +If you plan to use the LLM service provided by OpenAI official and authenticate through the OpenAI API key in headers, you can simply initialize VMind like this: + +```ts +import VMind, { Model } from '@visactor/vmind' + +const vmind = new VMind({ + model: Model.GPT4o, // use gpt-4o model + headers: { // specify the header when calling the LLM service + Authorization: `Bearer ${OPENAI_API_KEY}` // Your OPENAI_API_KEY + } +}) +``` + +## Example with DeepSeek + +If you plan to use DeepSeek as the LLM service, you can register your own API key on the [DeepSeek official website](https://platform.deepseek.com/api_keys). After registration, you can register and use VMind as follows. For more details, please refer to the [DeepSeek official API documentation](https://api-docs.deepseek.com/zh-cn/). + + +```ts +import VMind, { Model } from '@visactor/vmind' + +const vmind = new VMind({ + url: 'https://api.deepseek.com/chat/completions', // DeepSeek official URL + model: Model.DEEPSEEK_V3, // use DeepSeek-V3 model + headers: { + Authorization: `Bearer ${DEEPSEEK_KEY}` // Your DEEPSEEK_KEY + } +}) +``` + +## Custom Model + +If you want to use any other large model as the LLM service for VMind, similar to the previous examples, you only need to change the `url` and `model` to your model service address and add `headers` content for authentication verification. As follows: + ```ts import VMind, { Model } from '@visactor/vmind' const vmind = new VMind({ - model: Model.GPT3_5, //use gpt-3.5-turbo model - headers: { //specify the header when calling the LLM service - Authorization: `Bearer ${OPENAI_API_KEY}` //Your OPENAI_API_KEY + url: 'Your LLM URL', + model: 'Your Model Name', + headers: { + Authorization: `Bearer ${Your Key}` } }) ``` -In the following sections, we will explain the parameters in ILLMOptions in detail. ## url The url parameter is used to specify the address of your LLM service api. The default value is https://api.openai.com/v1/chat/completions @@ -55,28 +94,34 @@ The method parameter is used to specify the method type when requesting the LLM, ## model You can specify the model type through the model parameter. This field will be put into the request body of the LLM service. You can import the Model type from VMind and use it as the value of the model field. + ```ts import { Model } from '@visactor/vmind' ``` The currently supported model types are: + ```ts -//models that VMind support -//more models is under developing export enum Model { GPT3_5 = 'gpt-3.5-turbo', + GPT3_5_1106 = 'gpt-3.5-turbo-1106', GPT4 = 'gpt-4', - SKYLARK = 'skylark-pro', - SKYLARK2 = 'skylark2-pro-4k' + GPT_4_0613 = 'gpt-4-0613', + GPT_4o = 'gpt-4o-2024-08-06', + DOUBAO_LITE = 'doubao-lite-32K', + DOUBAO_PRO = 'doubao-pro-128k', + CHART_ADVISOR = 'chart-advisor', + DEEPSEEK_V3 = 'deepseek-chat', + DEEPSEEK_R1 = 'deepseek-reasoner' } ``` -For different model types, VMind will use different technical implementations to complete tasks such as chart generation. +Currently, VMind uses the same technology and prompts for all large models to complete various intelligent tasks. ## max_tokens and temperature -These two parameters respectively determine the maximum token quantity and temperature of the model-generated content, see [OpenAI official documentation](https://platform.openai.com/docs/api-reference/chat/create). +These two parameters respectively determine the maximum token quantity and the randomness of each generated result of the model, see [OpenAI official documentation](https://platform.openai.com/docs/api-reference/chat/create). -In VMind, the default values of these two parameters are 2000 and 0 respectively. The effects of other values have not been fully tested, so it is not recommended to modify them. +In VMind, the default values of these two parameters are 2048 and 0 respectively. ## showThoughts [Related research](https://arxiv.org/abs/2201.11903) shows that the Chain-of-Thought can enhance the thinking reasoning ability of large language models and make the output results more in line with expectations. The showThoughts parameter will affect the prompt that VMind sends to the large language model, determining whether to add the thinking process to the output results when completing tasks such as chart generation and data aggregation. `showThoughts = true` will make the model explicitly output its thinking process, improving the accuracy of the generated results. However, this will increase the length of the model-generated results, bringing more token consumption. When performing tasks such as chart generation, VMind must wait for the model output to end before proceeding to the next step, which will also slow down the execution speed of various VMind methods. @@ -85,64 +130,8 @@ Therefore, if you expect better execution results, you can set showThoughts to t In VMind, showThoughts defaults to true. -## Customizing the method of calling the LLM service through customRequestFunc - -VMind calls the LLM service through the requestGPT method by HTTP request. However, you can customize the method of calling the LLM in each task through the customRequestFunc parameter. For example, you can request your own LLM service in the form of RPC. -This parameter has three RequestFunc type values, the complete type definition is as follows: -```ts -type customRequestFunc= { - chartAdvisor: RequestFunc; - dataQuery: RequestFunc; -}; - -type RequestFunc = (prompt: string, userMessage: string, options: ILLMOptions | undefined) => Promise; - -export type LLMResponse = { - choices: { - index: number; - message: any; - }[]; - usage: any; - [key: string]: any; -}; -``` - -chartAdvisor and dataQuery correspond to the methods of calling the LLM during chart generation, data processing, and data aggregation, respectively. Each method needs to receive the model prompt, user input, and VMind options as parameters, and ensure that the returned object is the same as the OpenAI completions API structure (see [The chat completion object](https://platform.openai.com/docs/api-reference/chat/object)). -Here is an example of using RPC for intelligent chart generation: -```ts -import VMind, { Model } from '@visactor/vmind' - -const vmind = new VMind({ - model: Model.GPT3_5, - customRequestFunc: { - chartAdvisor: async (_prompt: string, - userMessage: string, - _options: ILLMOptions | undefined) => { - const resp = await call_RPC_LLM_Service(_prompt, userMessage, _options) - - const { result } = resp - const content = result.content.content - const gptResponse = { - usage: {}, //token usage information - choices: [{ - index: 0, - message: { - role: 'assistant', - content //Put the model's generated results into content - } - }] - } - return gptResponse //return chat completion object, see https://platform.openai.com/docs/api-reference/chat/object - } - } -}) - -const { spec } = await vmind.generateChart(userInput, fieldInfo, dataset); //Call generateChart for chart generation - -``` - # Conclusion -This tutorial details how to create a VMind instance and how to set various parameters to meet different needs. We learned how to specify the url of the model service, how to set headers for authentication, how to choose the model type, and how to set the maximum token quantity and temperature of the model-generated content. We also learned how to control whether the model adds the thinking process to the output results through the showThoughts parameter, and how to customize the method of calling the LLM service through the customRequestFunc parameter. +This tutorial details how to create a VMind instance and how to set various parameters to meet different needs. We learned how to specify the URL of the model service, how to set headers for authentication, how to choose the model type, and how to set the maximum token quantity and temperature of the model-generated content. We also learned how to control whether the model adds the thinking process to the output results through the showThoughts parameter. Through this tutorial, you can not only learn how to create and configure VMind instances, but also understand how to adjust and optimize the use of VMind according to your own needs and environment, so as to more effectively use VMind to complete various tasks, including chart generation, data processing, and data aggregation, etc. diff --git a/docs/assets/guide/en/Basic_Tutorial/Custom_Request.md b/docs/assets/guide/en/Basic_Tutorial/Custom_Request.md deleted file mode 100644 index 16a6fe60..00000000 --- a/docs/assets/guide/en/Basic_Tutorial/Custom_Request.md +++ /dev/null @@ -1,66 +0,0 @@ - -# Customizing Large Language Model (LLM) Invocation Method -In previous chapters, we have mentioned that VMind calls the Large Language Model (LLM) during the processes of [data processing](./Data_Process), [data aggregation](./Data_Aggregation), and [chart generation](./Chart_Generation). By default, we call the LLM via HTTP requests. You can specify the URL of the LLM service and set the header for authentication when [initializing the VMind instance](./Create_VMind_Instance). - -However, in some special cases, you may need to customize the way the LLM service is called. For example, you may want to request the service via RPC, or you may want to do some extra processing after the model returns the results, and then return the processed results to VMind. To meet these needs, we provide an option to set the `customRequestFunc` object when initializing the VMind object. You can use this option to customize the way the LLM service is called at different stages. - -The type definition of `customRequestFunc` is as follows: - -```ts -type customRequestFunc= { - chartAdvisor: RequestFunc; // Chart generation stage - dataQuery: RequestFunc; // Data aggregation stage -}; - -type RequestFunc = (prompt: string, userPrompt: string, options: ILLMOptions | undefined) => Promise; - -type LLMResponse = { - choices: { - index: number; - message: any; - }[]; - usage: any; - [key: string]: any; -}; - -``` - -The `customRequestFunc` object has two properties: `chartAdvisor` and `dataQuery`, which correspond to the three functions of chart generation (`vmind.generateChart`) and data aggregation (`vmind.dataQuery`) in VMind. Each property is a function of type `RequestFunc`, the parameters of which are the prompt information `prompt`, the user input display intention `userPrompt`, and the `options` object when the model executes the task. When VMind requests the LLM service, it will call your custom function and pass these three parameters. You need to use `prompt` and `userPrompt` to request the LLM service in your custom function and return the model's generated results in the format of `LLMResponse`. The structure of `LLMResponse` is the same as that of the OpenAI completions API (for details, see [The chat completion object](https://platform.openai.com/docs/api-reference/chat/object)). - -Note that the functions in `customRequestFunc` are asynchronous, and VMind will use `await` to wait for the end of the model request. - -Below is an example of using RPC to call the LLM service during the chart generation process: - -```ts -import VMind, { Model } from '@visactor/vmind' - -// Custom a RequestFunc type function -const ChartGenerationRequestFunc = async (prompt: string, userMessage: string, options: ILLMOptions | undefined) => { -// Use prompt, userMessage, and options to call the LLM service via RPC -const resp = await call_RPC_LLM_Service(prompt, userMessage, options) - -const { result } = resp -const content = result.content // Get the results generated by the model -const gptResponse = { - usage: {}, // Token usage information - choices: [{ - index: 0, - message: { - role: 'assistant', - content // Put the results generated by the model into content -} -}] -} -return gptResponse // Return chat completion object, see https://platform.openai.com/docs/api-reference/chat/object -} - -const vmind = new VMind({ - model: Model.GPT3_5, - customRequestFunc: { - chartAdvisor: ChartGenerationRequestFunc // Pass the custom function to chartAdvisor -} -}) - -const { spec } = await vmind.generateChart(userInput, fieldInfo, dataset); // Call generateChart for chart generation - -``` diff --git a/docs/assets/guide/en/Basic_Tutorial/Data_Extraction.md b/docs/assets/guide/en/Basic_Tutorial/Data_Extraction.md new file mode 100644 index 00000000..eded026e --- /dev/null +++ b/docs/assets/guide/en/Basic_Tutorial/Data_Extraction.md @@ -0,0 +1,61 @@ +# Data Extraction - Generate Chart from Text in One Step + +In the previous section [Chart Generation](./Chart_Generation), we learned how to intelligently generate charts from existing structured data. However, in some scenarios, we may not have a dataset available and might only have more raw data, such as text data. In this tutorial, we will introduce how to use VMind to directly generate charts from a piece of text. + +## text2Chart +The `text2Chart` function in VMind is similar to `generateChart`, with the main difference being that the input changes from a data table and field information to plain text content, as follows: +- text (string): Required, the original text content +- userPrompt (string): Optional, the user's visualization intent (what data you mainly want to extract from the text and how to display it with a chart) +- options: Optional, option parameters, including: + - fieldInfo (Array): Field information contained in the text type, including field names, types, etc. + - chartTypeList (ChartType[], optional): Supported chart type list. If not undefined, a chart will be generated from the chart types specified in this list. + - enableDataQuery (boolean, optional): Decides whether to enable data aggregation during chart generation + - colorPalette (Array, optional): Used to set the color palette of the chart + - animationDuration (number, optional): Used to set the playback duration of the chart animation + - theme (ChartTheme | string, optional): Sets the theme style of the final spec. By default, VMind uses a theme style with gradient colors. You can set VChart's general light or dark theme ('light' | 'dark') or a theme style that suits your usage scenario + +This method will return a [VChart chart spec](https://www.visactor.io/vchart/guide/tutorial_docs/Basic/A_Basic_Spec) and a two-dimensional data table. For more details, see [Data Format and Data Processing](./Data_Process). + +Throughout the process, VMind first uses a large model to extract structured table data from the original text and automatically cleans the table data. Then, similar to intelligent chart generation, it uses the large model to obtain the recommended chart type and specific mapping method. Finally, VMind assembles the results to generate the final VChart spec. + +VMind will add an entrance animation to the generated chart by default, so it will also return the duration of the chart animation time. If you don't want the chart animation, you can set spec.animation to false. + +You can learn more about chart animations in the [VChart Animation Tutorial](https://www.visactor.io/vchart/guide/tutorial_docs/Animation/Animation_Types). + +## Usage Example +Below is an example of using text2Chart to generate a chart: + +```ts +import VMind from '@visactor/vmind'; + +const vmind = new VMind(options); +const text = 'Among the national population[2], the number of people with a college (including junior college and above) education level is 218,360,767; the number of people with a high school (including technical secondary school) education level is 213,005,258; the number of people with a junior high school education level is 487,163,489; the number of people with a primary school education level is 349,658,828 (the above-mentioned education levels include graduates, students who have completed some courses, and students currently enrolled in various schools).'; +const userPrompt = 'Compare the proportion of the population with different education levels in this census'; +const { spec, time, dataTable } = await vmind.generateChart(text, userPrompt); + +console.log(dataTable); +// The data table result is as follows +dataTable = [ + { + "education_level": "college", + "number_of_people": 218360767 + }, + { + "education_level": "high school", + "number_of_people": 213005258 + }, + { + "education_level": "junior high school", + "number_of_people": 487163489 + }, + { + "education_level": "primary school", + "number_of_people": 349658828 + } +] +``` +The result of the chart spec is shown below: +![](https://lf9-dp-fe-cms-tos.byteorg.com/obj/bit-cloud/vmind_text2Chart_en_1.jpeg) + +## Parameter Details +The parameters of this function are almost the same as `generateChart`. For more details, see the parameter details section in [Chart Generation](./Chart_Generation). diff --git a/docs/assets/guide/en/Basic_Tutorial/Data_Process.md b/docs/assets/guide/en/Basic_Tutorial/Data_Process.md index a3a52a2d..3da445fe 100644 --- a/docs/assets/guide/en/Basic_Tutorial/Data_Process.md +++ b/docs/assets/guide/en/Basic_Tutorial/Data_Process.md @@ -101,12 +101,19 @@ In VMind, you need to use the fieldInfo object to describe the field information The following is the type definition of the fieldInfo object: ```ts -export type SimpleFieldInfo = { -fieldName: string; -description?: string; //additional description of the field. This will help the model have a more comprehensive understanding of this field, improving the quality of chart generation. -type: DataType; -role: ROLE; -}; +/** field information Of Data Table */ +export interface FieldInfo { + /** name of field */ + fieldName: string; + /** field type, eg: time / category / numerical */ + type: DataType; + /** field role */ + role: ROLE; + /** alias of field */ + alias?: string; + /** additional description of the field. This will help the model have a more comprehensive understanding of this field, improving the quality of chart generation. */ + description?: string; +} ``` For the dataset shown in the previous section, the corresponding fieldInfo is as follows: ```json diff --git a/docs/assets/guide/en/Getting_Started.md b/docs/assets/guide/en/Getting_Started.md index 2752f088..40380a5b 100644 --- a/docs/assets/guide/en/Getting_Started.md +++ b/docs/assets/guide/en/Getting_Started.md @@ -32,18 +32,18 @@ import VMind from '@visactor/vmind'; ## Initialize VMind Instance -First, we need to initialize a VMind instance and use it to complete subsequent operations. VMind currently supports OpenAI GPT-3.5, GPT-4 series models and Volcano Engine [Skylark (skylark-pro)](https://www.volcengine.com/product/yunque) series models. In the future, we will support more large language models. Welcome to visit [Github page](https://github.com/VisActor/VMind/issues/new/choose) to propose your needs. +The complete type definition of options is as follows: +First, we need to initialize a VMind instance and use it to complete subsequent operations. VMind currently supports all mainstream models, including OpenAI GPT series, Byte Doubao series, and DeepSeek models. As long as the corresponding model API interface is provided, all models can be directly invoked. Use the following code to initialize a VMind instance: ```js import VMind, { Model } from '@visactor/vmind' const vmind = new VMind({ -url, //Specify your LLM service url. The default is https://api.openai.com/v1/chat/completions -model: Model.GPT3_5, //Specify the model you specify -headers: { //Specify the header when calling the LLM service -'api-key': apiKey //Your LLM API Key -} + model: Model.GPT4o, // use gpt-4o model + headers: { // specify the header when calling the LLM service + Authorization: `Bearer ${OPENAI_API_KEY}` // Your OPENAI_API_KEY + } }) ``` diff --git a/docs/assets/guide/menu.json b/docs/assets/guide/menu.json index 8036ef9b..c329691b 100644 --- a/docs/assets/guide/menu.json +++ b/docs/assets/guide/menu.json @@ -86,10 +86,17 @@ } }, { - "path": "Custom_Request", + "path": "Data_Extraction", "title": { - "zh": "自定义LLM调用", - "en": "Custom LLM Access Function" + "zh": "数据提取——从文本一步生成图表", + "en": "Text to Chart" + } + }, + { + "path": "Chart_Insight", + "title": { + "zh": "智能洞察", + "en": "Auto Insight" } } ] diff --git a/docs/assets/guide/zh/Basic_Tutorial/Chart_Generation.md b/docs/assets/guide/zh/Basic_Tutorial/Chart_Generation.md index e09448b8..309fa323 100644 --- a/docs/assets/guide/zh/Basic_Tutorial/Chart_Generation.md +++ b/docs/assets/guide/zh/Basic_Tutorial/Chart_Generation.md @@ -1,6 +1,4 @@ # 图表生成 -📢 提示:图表生成功能目前支持OpenAI GPT-3.5,GPT-4 系列模型和火山引擎[云雀(skylark-pro)](https://www.volcengine.com/product/yunque)系列模型。我们将不断扩大支持的模型范围,如果你有任何需求,欢迎在我们的[Github页面](https://github.com/VisActor/VMind/issues/new/choose)提出。 - 本教程将向你详细介绍VMind中的图表智能生成功能,并提供一些示例。 生成图表的方式有很多,比如你可以在PowerBI、Tableau等专业的BI可视化工具中,利用数据集的字段来制作可视化图表;或者你也可以直接使用VChart、ECharts、MatPlotlib等图表库,通过编写代码来绘制图表。此外,VChart、Echarts等图表库还提供了简单易用的图表编辑器,用户可以上传数据并进行图表制作。 @@ -28,6 +26,7 @@ VMind的generateChart函数是一个强大的工具,它可以帮助你智能 - enableDataQuery (boolean, 可选): 决定是否在图表生成过程中开启数据聚合 - colorPalette (Array, 可选): 用于设置图表的调色板 - animationDuration (number, 可选): 用于设置图表动画的播放持续时间 + - theme (ChartTheme | string, 可选): 设置最终sepc的主题样式,默认为空,VMind会默认使用带渐变颜色的主题样式,可以设置 VChart 通用深浅主题('light' | 'dark')或者符合你使用场景下的主题样式 这个方法会返回一个[VChart图表spec](https://www.visactor.io/vchart/guide/tutorial_docs/Basic/A_Basic_Spec)。 @@ -238,9 +237,16 @@ VMind还支持[动态条形图(ranking bar)](https://www.visactor.io/vchart/ 如果`userPrompt`为`Show me the change of the GDP rankings of each country`,那么就会生成一个动态条形图: ![](https://lf9-dp-fe-cms-tos.byteorg.com/obj/bit-cloud/vmind/tutorials/VMind_dynamic_bar.gif) - 为了让VMind生成符合预期的图表,你需要在`userPrompt`中尽可能清晰地描述你的展示意图和目的。此外,你还需要确保数据集的字段名称具有一定的语义,或者在字段信息中添加字段描述,具体请参见[数据格式与数据处理](./Data_Process)章节。 +### User Prompt 为空 +如果我有一个图表,在不进行人工意图的输入下,即没有`userPrompt`的输入情况下,我可以得到一个较好的图表生成结果吗? +**答案是,yes!** +目前 VMind 支持在没有用户意图的情况下,根据公域知识以及字段的信息内容,去产生一个用户最可能想要在这个数据上进行呈现的图表内容。同样与前文,这需要数据中的数据信息和字段信息尽可能的详细和完整,设想如果我的数据每个字段的名称和描述都为`'a' | 'b' | 'c'`这样的内容,显然无法产生一个高质量的图表,这个数据本身也没有特别的意义,因为我们并不了解其中的字段到底代表了什么含义。 + +同样以前文的手机品牌销售额数据集作为测试,当我们不传入`userPrompt`时,结果如下所示 +![](https://lf9-dp-fe-cms-tos.byteorg.com/obj/bit-cloud/vmind_1.jpeg) + ### options #### enableDataQuery: 是否开启智能数据聚合 在[数据聚合](./Data_Aggregation)章节中,我们已经介绍过,为了满足`展示销售额最多的10个部门`或`展示北方区域各商品的销售额`等图表展示需求,我们需要先对数据进行聚合,然后再生成图表。在默认情况下,`generateChart`函数会在执行过程中调用一次`dataQuery`,使用相同的`userPrompt`,`fieldInfo`和`dataset`对数据进行聚合,然后使用聚合后的数据完成后续的图表生成步骤。 @@ -256,9 +262,10 @@ const { spec, time } = await vmind.generateChart(userPrompt, fieldInfo, dataset, 这样做可以减少一次调用大模型的过程,降低token消耗,提高图表生成速度。关于VMind数据聚合的更多信息,请参考[数据聚合](./Data_Aggregation)章节。 #### chartTypeList: 限制VMind生成的图表类型 -VMind目前支持VChart中常见的13种图表类型: +VMind目前支持VChart中常见的25种图表类型: - [柱状图](https://www.visactor.io/vchart/demo/bar-chart/basic-column) -- [折线图](hhttps://www.visactor.io/vchart/demo/line-chart/basic-line) +- [折线图](https://www.visactor.io/vchart/demo/line-chart/basic-line) +- [面积图](https://www.visactor.io/vchart/demo/area-chart/basic-area) - [饼图](https://www.visactor.io/vchart/demo/pie-chart/basic-pie) - [散点图](https://www.visactor.io/vchart/demo/scatter-chart/basic-scatter) - [双轴图](https://www.visactor.io/vchart/demo/combination/dual-axis) @@ -270,6 +277,17 @@ VMind目前支持VChart中常见的13种图表类型: - [桑基图](https://www.visactor.io/vchart/demo/sankey-chart/basic-sankey) - [瀑布图](https://www.visactor.io/vchart/demo/waterfall/basic-waterfall) - [动态条形图(ranking bar)](https://www.visactor.io/vchart/demo/storytelling/ranking-bar) +- [区间条形图](https://www.visactor.io/vchart/demo/range-column-chart/range-bar) +- [水波图](https://www.visactor.io/vchart/demo/liquid-chart/liquid-chart) +- [条形进度条](https://www.visactor.io/vchart/demo/progress/linear-progress) +- [环形进度条](https://www.visactor.io/vchart/demo/progress/circular-progress) +- [嵌套圆图](https://www.visactor.io/vchart/demo/circle-packing-chart/basic-circle-packing) +- [旭日图](https://www.visactor.io/vchart/demo/sunburst-chart/basic-sunburst) +- [仪表盘图](https://www.visactor.io/vchart/demo/gauge-chart/basic-gauge) +- [矩形树图](https://www.visactor.io/vchart/demo/treemap-chart/basic-treemap) +- [热力图](https://www.visactor.io/vchart/demo/heatmap-chart/basic-heatmap) +- [韦恩图](https://www.visactor.io/vchart/demo/venn-chart/venn-chart) +- [地图](https://www.visactor.io/vchart/demo/map-chart/basic-map) 根据`userPrompt`和`fieldInfo`的不同,这些图表类型都有可能被大语言模型推荐。 如果你有新的图表类型需求,欢迎在我们的[Github页面](https://github.com/VisActor/VMind/issues/new/choose)提出。 @@ -325,15 +343,30 @@ vmind.generateChart方法返回值类型定义如下: ```typescript interface GenerateChartResult { + /** 图表spec */ spec: Record; - chartType: Record; + /** 图表类型*/ + chartType: ChartType; + /** 最终的视觉通道映射 */ cell: Cell; - chartSource: string; - usage: any; + /** token 消耗量 */ + usage: Usage; + /* 生成当前图表的具体指令,在user prompt的情况下跟user prompt一致 */ + command: string; + /** 转唯gif/video时所用的配置时间 *// time: { totalTime : number; frameArr: number[]; }; + /** 基于规则的图表推荐结果,在手动设置规则或者大模型生成有误情况下产生 */ + chartAdvistorRes: { + /** 图表spec */ + spec: Record; + /** 图表类型*/ + chartType: ChartType; + /** 推荐得分 */ + score: number + }[] } ``` @@ -429,8 +462,8 @@ console.log(cell) 这表示VMind将商品名称字段映射到图表的x轴,销售额字段映射到y轴,region字段映射到柱子的颜色上。 -### chartSource -图表生成来源。若成功使用LLM生成图表,则为具体的模型名;若最终使用[基于规则的图表生成](./Chart_Advisor),则为chart-advisor +### chartAdvistorRes +该结果是根据当前数据和字段信息,通过VMind的内置规则推导得到的图表推荐结果,在设置模型为`Model.CHART_ADVISOR`或者用户的大模型设置有误,无法获取结果时兜底产生。详见:[基于规则的图表生成](./Chart_Advisor) ## 生成spec模板 在没有具体数据集、仅有数据字段的情况下,我们也可能需要生成图表。比如,在进行查询之前,我们可以根据数据集中的字段先生成一个图表,之后依据图表的类型和含有的字段执行相关查询。在这种情况下,调用generateChart方法时无需传入具体的数据集,而是先产生一个spec模板,后续再通过fillSpecWithData方法获取最终用于图表渲染的spec。 diff --git a/docs/assets/guide/zh/Basic_Tutorial/Chart_Insight.md b/docs/assets/guide/zh/Basic_Tutorial/Chart_Insight.md new file mode 100644 index 00000000..06243243 --- /dev/null +++ b/docs/assets/guide/zh/Basic_Tutorial/Chart_Insight.md @@ -0,0 +1,179 @@ +# 智能洞察 + +在数据驱动决策的时代,图表作为数据可视化的核心工具,能够直观地呈现复杂的数据关系。然而,单纯依赖人眼观察和分析图表,往往难以快速、全面地挖掘出数据背后隐藏的洞察。 + +本教程将向你介绍VMind中智能洞察功能,如何通过`getInsights`快速从图表中获取各种类型的洞察,并提供一些示例。 + +## getInsights +VMind的`getInsights`函数是一个强大的工具,它可以帮你从图表中获取图表洞察,并产生语义化的解释。这个函数只需要如下两个参数: +- spec: 当前VChart图表的具体spec配置 +- options (DataInsightOptions): 洞察相关配置,控制了具体洞察的数量,使用的算法和对应算法的具体配置 + +在产生智能洞察的过程中,VMind主要做了两件事情, +- 先通过内置的统计学算法,获取当前图表中蕴含的数据洞察; +- 再这些识别出来的洞察传递给大模型;让大模型对这些洞察进行润色和语义化解释,在润色过程中,VMind会将字段信息和洞察类型传递给大模型,**并不会把任何数据细节传递给大模型**; + +其中第二部大模型润色并不是必须的,可以通过`options.usePolish`对其进行关闭,此时会得到数据洞察和模版化的语义内容。 + +### 内置算法 +目前VMind内置的算法主要为统计学相关算法,具体如下所示: +- LOF(Local Outlier Factor) 局部异常因子检测算法 +- zScore 全局异常点检测 +- IQR (Interquartile Range) 四分位全局异常检测算法 +- Page-Hinkley Test 时序数据异常检测算法 +- Bayesian Inference 转折点检测算法 +- Mann-Kendall Test 趋势检测算法 +- Pearson Correlation Coefficient / SpearmanCorrelation 相关性检测 +- DBSCAN (Density-Based Spatial Clustering of Applications with Noise) 算法 +- Coefficient of Variation 基于变异系数的周期性检测 +- 基础的统计指标,例如最大/最小/平均值/占比异常等等 + +### 大模型润色 +大模型在智能洞察中,只是起到了一个文本润色功能,使得最终的结果有着较强的可读性,是个可选配置。 + +## 洞察类型 +目前根据已有的内置算法,VMind可以识别出以下9类不同的洞察类型: + - 异常点 + - 时序异常点 + - 转折点 + - 占比贡献巨大点 + - 异常区间 + - 整体趋势 + - 异常趋势 + - 相关性 + - 基础统计指标 + +根据不同的洞察结果,用户可以选取不同的标注/高亮方式在图表中进行呈现。 + +## 使用案例 +下面是一个使用`getInsights`的例子: +```ts +import VMind from '@visactor/vmind'; + +const specJson = { + type: 'line', + xField: ['年份'], + yField: ['高考录取率'], + data: [ + { + id: 'data', + values: [ + {"年份": 1977, "高考录取率": 0.05}, + {"年份": 1978, "高考录取率": 0.07}, + {"年份": 1979, "高考录取率": 0.06}, + {"年份": 1980, "高考录取率": 0.08}, + {"年份": 1981, "高考录取率": 0.11}, + {"年份": 1982, "高考录取率": 0.17}, + {"年份": 1983, "高考录取率": 0.23}, + {"年份": 1984, "高考录取率": 0.29}, + {"年份": 1985, "高考录取率": 0.96}, + {"年份": 1986, "高考录取率": 0.3}, + {"年份": 1987, "高考录取率": 0.27}, + {"年份": 1988, "高考录取率": 0.25}, + {"年份": 1989, "高考录取率": 0.23}, + {"年份": 1990, "高考录取率": 0.22}, + {"年份": 1991, "高考录取率": 0.21}, + {"年份": 1992, "高考录取率": 0.25}, + {"年份": 1993, "高考录取率": 0.34}, + {"年份": 1994, "高考录取率": 0.36}, + {"年份": 1995, "高考录取率": 0.37}, + {"年份": 1996, "高考录取率": 0.4}, + {"年份": 1997, "高考录取率": 0.36}, + {"年份": 1998, "高考录取率": 0.34}, + {"年份": 1999, "高考录取率": 0.56}, + {"年份": 2000, "高考录取率": 0.59}, + {"年份": 2001, "高考录取率": 0.59}, + {"年份": 2002, "高考录取率": 0.63}, + {"年份": 2003, "高考录取率": 0.62}, + {"年份": 2004, "高考录取率": 0.61}, + {"年份": 2005, "高考录取率": 0.57}, + {"年份": 2006, "高考录取率": 0.57}, + {"年份": 2007, "高考录取率": 0.56}, + {"年份": 2008, "高考录取率": 0.57}, + {"年份": 2009, "高考录取率": 0.62}, + {"年份": 2010, "高考录取率": 0.69}, + {"年份": 2011, "高考录取率": 0.72}, + {"年份": 2012, "高考录取率": 0.75}, + {"年份": 2013, "高考录取率": 0.75}, + {"年份": 2014, "高考录取率": 0.74}, + {"年份": 2015, "高考录取率": 0.74}, + {"年份": 2016, "高考录取率": 0.75}, + {"年份": 2017, "高考录取率": 0.74}, + {"年份": 2018, "高考录取率": 0.81}, + {"年份": 2019, "高考录取率": 0.8}, + {"年份": 2020, "高考录取率": 0.8}, + {"年份": 2021, "高考录取率": 0.93}, + {"年份": 2022, "高考录取率": 0.96} + ] + } + ] + }; +const vmind = new VMind(options) +const { insights } = await vmind.getInsights(specJson, { + /** 最多产生 maxNum个洞察内容 */ + maxNum: numLimits, +}); +``` + +最终产生的结果如下: + +![](https://lf9-dp-fe-cms-tos.byteorg.com/obj/bit-cloud/vmind_insight_1.jpeg) + +可以准确识别出整体的趋势以及1985年明显异常的高考录取率 + +### 返回结构 +以整体趋势为例,返回的结构化内容如下: +```ts +const outlierInsight = { + /** 类型为异常点Insight */ + type: 'outlier', + /** 具体的异常点数据 */ + data: [ + { + index: 8, + dataItem: { + 年份: 1985, + 高考录取率: 0.96, + } + } + ], + /** 数值字段 */ + fieldId: '高考录取率', + /** 当前异常点数值 */ + value: 0.96, + /** 洞察置信度得分 */ + significant: 1, + /** 当前系列名称,因为当前图表没有进行seriesField配置,只包含一个系列,因此为vmind的默认值 */ + seriesName: 'vmind_default_series', + /** 通过pageHinkley算法检测得到 */ + name: 'pageHinkley', + /** 具体的文本话含义 */ + textContent: { + /** 具体的文本模版 */ + content: '${b}期间出现显著异常,值为${c}。', + /** 模版中的变量解析 */ + variables: { + b: { + isDimValue: true, + value: 1985, + fieldName: '年份' + }, + c: { + value: 0.96, + isMeasure: true, + fieldName: '高考录取率' + } + }, + /** 直接将模版变量进行数值替换的结果 */ + plainText: '1985期间出现显著异常,值为0.96。' + } +} +``` + +### 洞察添加 + +识别出图表洞察后,我们可以借助VChart强大的标注能力,将这些内容添加到图表中,最终效果可以如下图所示: +![](https://lf9-dp-fe-cms-tos.byteorg.com/obj/bit-cloud/vmind_insight_2.jpeg) + +## 参数详解 +具体参数详解可见:[getInsights](../../api/getInsights) \ No newline at end of file diff --git a/docs/assets/guide/zh/Basic_Tutorial/Create_VMind_Instance.md b/docs/assets/guide/zh/Basic_Tutorial/Create_VMind_Instance.md index 276efc54..94b80f22 100644 --- a/docs/assets/guide/zh/Basic_Tutorial/Create_VMind_Instance.md +++ b/docs/assets/guide/zh/Basic_Tutorial/Create_VMind_Instance.md @@ -10,35 +10,69 @@ options的完整类型定义如下: ```ts export interface ILLMOptions { - url?: string; //URL of your LLM service. For gpt, default is openAI API. + /** URL of your LLM service. For gpt, default is openAI API. */ + url?: string; /** llm request header, which has higher priority */ - headers?: HeadersInit; // this will be used directly as the header of the LLM request. - method?: 'POST' | 'GET'; //post or get - model?: Model; - max_tokens?: number; + headers?: HeadersInit; + /** post or get */ + method?: 'POST' | 'GET'; + /** LLM Model */ + model?: Model | string; + /** Max token in LLM Chart */ + maxTokens?: number; + /** Temperature of LLM */ temperature?: number; + /** show llm thoughs or not */ showThoughts?: boolean; - customRequestFunc?: { - chartAdvisor: RequestFunc; - dataQuery: RequestFunc; - }; - [key: string]: any; + /** repetition penalty */ + frequencyPenalty?: number; + /** topP */ + topP?: number; } ``` 在ILLMOptions中,大部分参数都会直接传递给LLM服务。 +## GPT为例 如果你打算使用openAI官方提供的LLM服务,并通过headers中的openAI api key进行鉴权,你可以这样简单地初始化VMind: ```ts import VMind, { Model } from '@visactor/vmind' const vmind = new VMind({ - model: Model.GPT3_5, //使用gpt-3.5-turbo模型 + model: Model.GPT4o, //使用gpt-4o模型 headers: { //指定调用LLM服务时的header Authorization: `Bearer ${OPENAI_API_KEY}` //Your OPENAI_API_KEY } }) ``` + +## DeepSeek为例 +如果你打算使用deepSeek作为 LLM 服务,可以前往[DeepSeek官网](https://platform.deepseek.com/api_keys)注册属于你自己的 API key,注册完成后可以按照以下方式进行 VMind 的注册和使用,更详细内容可以参考[DeepSeek官方 API 文档](https://api-docs.deepseek.com/zh-cn/) +```ts +import VMind, { Model } from '@visactor/vmind' + +const vmind = new VMind({ + url: 'https://api.deepseek.com/chat/completions' // DeepSeek 官方 url + model: Model.DEEPSEEK_V3, // 使用DeepSeek-V3模型 + headers: { + Authorization: `Bearer ${DEEPSEEK_KEY}` //Your DEEPSEEK_KEY + } +}) +``` + +## 任意自定义模型 +如果你想要使用其他任何大模型作为VMind的 LLM 服务,与前面例子相同,只需要将`url`和`model`改为你的模型服务地址,同步添加`headers`内容作为鉴权校验。具体如下: +```ts +import VMind, { Model } from '@visactor/vmind' + +const vmind = new VMind({ + url: 'Your LLM URL', + model: 'Your Model Name', + headers: { + Authorization: `Bearer ${Your Key}` + } +}) +``` 在接下来的章节,我们将对ILLMOptions中的参数进行详细的解释。 ## url @@ -60,22 +94,26 @@ import { Model } from '@visactor/vmind' 目前支持的模型种类有: ```ts -//models that VMind support -//more models is under developing export enum Model { GPT3_5 = 'gpt-3.5-turbo', + GPT3_5_1106 = 'gpt-3.5-turbo-1106', GPT4 = 'gpt-4', - SKYLARK = 'skylark-pro', - SKYLARK2 = 'skylark2-pro-4k' + GPT_4_0613 = 'gpt-4-0613', + GPT_4o = 'gpt-4o-2024-08-06', + DOUBAO_LITE = 'doubao-lite-32K', + DOUBAO_PRO = 'doubao-pro-128k', + CHART_ADVISOR = 'chart-advisor', + DEEPSEEK_V3 = 'deepseek-chat', + DEEPSEEK_R1 = 'deepseek-reasoner' } ``` -对于不同的模型类型,VMind将采用不同的技术实现来完成图表生成等任务。 +目前,VMind 对于所有的大模型都会使用相同的技术和prompt来完成各种智能任务. -## max_tokens和temperature -这两个参数分别决定模型生成内容的最大token数量和temperature,详见[OpenAI官方文档](https://platform.openai.com/docs/api-reference/chat/create)。 +## maxTokens和temperature +这两个参数分别决定模型生成内容的最大token数量和每次生成结果的随机性,详见[OpenAI官方文档](https://platform.openai.com/docs/api-reference/chat/create)。 -在VMind中,这两个参数的默认值分别是2000和0,对于其他值的效果未经过充分测试,因此不建议修改。 +在VMind中,这两个参数的默认值分别是2048和0。 ## showThoughts [相关研究](https://arxiv.org/abs/2201.11903)表明,思维链(Chain-of-Thought)可以增强大语言模型的思维推理能力,使输出的结果更加符合预期。showThoughts参数将影响VMind传给大语言模型的prompt,决定其在完成图表生成、数据聚合等任务时,是否将思考过程添加到输出结果中。`showThoughts = true`会使模型将其思考过程显式地输出,提高生成结果的准确性。然而,这会增加模型生成结果的长度,带来更多的token消耗。在执行图表生成等任务时,VMind必须等待模型输出结束后才能进行后续步骤,这也将减慢VMind各项方法的执行速度。 @@ -84,63 +122,7 @@ export enum Model { 在VMind中,showThoughts默认为true。 -## 通过customRequestFunc自定义LLM服务调用方法 - -VMind通过requestGPT方法,通过HTTP请求进行LLM服务的调用。然而,你可以通过customRequestFunc参数,自定义在每种任务中调用LLM的方法。例如,你可以通过RPC的形式请求你自己的LLM服务。 -该参数有三个requestFunc类型的值,完整的类型定义如下: -```ts -type customRequestFunc= { - chartAdvisor: RequestFunc; - dataQuery: RequestFunc; -}; - -type RequestFunc = (prompt: string, userMessage: string, options: ILLMOptions | undefined) => Promise; - -export type LLMResponse = { - choices: { - index: number; - message: any; - }[]; - usage: any; - [key: string]: any; -}; -``` - -chartAdvisor和dataQuery分别对应图表生成,数据处理和数据聚合时调用LLM的方法。每个方法需要接收模型prompt,用户输入和VMind options作为参数,并确保返回的对象与OpenAI completions API结构相同(详情请见[The chat completion object](https://platform.openai.com/docs/api-reference/chat/object))。 -下面展示一个使用RPC进行图表智能生成的例子: -```ts -import VMind, { Model } from '@visactor/vmind' - -const vmind = new VMind({ - model: Model.GPT3_5, - customRequestFunc: { - chartAdvisor: async (_prompt: string, - userMessage: string, - _options: ILLMOptions | undefined) => { - const resp = await call_RPC_LLM_Service(_prompt, userMessage, _options) - - const { result } = resp - const content = result.content.content - const gptResponse = { - usage: {}, //token用量信息 - choices: [{ - index: 0, - message: { - role: 'assistant', - content //将模型的生成结果放入content中 - } - }] - } - return gptResponse //返回chat completion object,见https://platform.openai.com/docs/api-reference/chat/object - } - } -}) - -const { spec } = await vmind.generateChart(userInput, fieldInfo, dataset); //调用generateChart进行图表生成 - -``` - # 总结 -本教程详细介绍了如何创建VMind实例,以及如何设置各种参数以满足不同的需求。我们学习了如何指定模型服务的url,如何设置headers以进行鉴权,如何选择模型类型,以及如何设置模型生成内容的最大token数量和temperature。我们还了解了如何通过showThoughts参数来控制模型是否将思考过程添加到输出结果中,以及如何通过customRequestFunc参数来自定义LLM服务的调用方法。 +本教程详细介绍了如何创建VMind实例,以及如何设置各种参数以满足不同的需求。我们学习了如何指定模型服务的url,如何设置headers以进行鉴权,如何选择模型类型,以及如何设置模型生成内容的最大token数量和temperature。我们还了解了如何通过showThoughts参数来控制模型是否将思考过程添加到输出结果中。 通过本教程,你不仅可以学会如何创建和配置VMind实例,更了解了如何根据自己的需求和环境来调整和优化VMind的使用,从而更有效地利用VMind来完成各种任务,包括图表生成、数据处理和数据聚合等。 diff --git a/docs/assets/guide/zh/Basic_Tutorial/Custom_Request.md b/docs/assets/guide/zh/Basic_Tutorial/Custom_Request.md deleted file mode 100644 index 09f140a8..00000000 --- a/docs/assets/guide/zh/Basic_Tutorial/Custom_Request.md +++ /dev/null @@ -1,65 +0,0 @@ -# 自定义大语言模型(LLM)调用方式 -在前面的章节中,我们已经提到,VMind在进行[数据处理](./Data_Process)、[数据聚合](./Data_Aggregation)和[图表生成](./Chart_Generation)的过程中,都会调用大语言模型(LLM)。默认情况下,我们是通过HTTP请求的方式来调用LLM的,你可以在[初始化VMind实例](./Create_VMind_Instance)时,通过指定LLM服务的url和设置header来完成鉴权。 - -然而,在某些特殊情况下,你可能需要自定义LLM服务的调用方式。比如,你可能想通过RPC方式来请求服务,或者你可能想在模型返回结果后进行一些额外的处理,然后再将处理后的结果返回给VMind。为了满足这些需求,我们提供了一个在初始化VMind对象时设置`customRequestFunc`对象的选项,你可以通过这个选项来自定义LLM服务在不同阶段的调用方式。 - -`customRequestFunc`的类型定义如下: - -```ts -type customRequestFunc= { -chartAdvisor: RequestFunc; //图表生成阶段 -dataQuery: RequestFunc; //数据聚合阶段 -}; - -type RequestFunc = (prompt: string, userPrompt: string, options: ILLMOptions | undefined) => Promise; - -type LLMResponse = { - choices: { - index: number; - message: any; - }[]; - usage: any; - [key: string]: any; -}; - -``` - -`customRequestFunc`对象有两个属性:`chartAdvisor`和`dataQuery`,它们分别对应VMind中的图表生成(`vmind.generateChart`)和数据聚合(`vmind.dataQuery`)三个功能。每个属性都是一个`RequestFunc`类型的函数,这个函数的参数分别是模型执行任务时的提示信息`prompt`,用户输入的展示意图`userPrompt`和`options`对象。当VMind在请求LLM服务时,会调用你自定义的函数,并将这三个参数传入。你需要在自定义的函数中使用`prompt`和`userPrompt`来请求LLM服务,并按照`LLMResponse`的格式返回模型的生成结果。`LLMResponse`的结构与OpenAI completions API的结构相同(详情请见[The chat completion object](https://platform.openai.com/docs/api-reference/chat/object))。 - -需要注意的是,`customRequestFunc`中的函数都是异步函数,VMind会使用`await`来等待模型请求的结束。 - -下面是一个在图表生成过程中使用RPC调用LLM服务的示例: - -```ts -import VMind, { Model } from '@visactor/vmind' - -//自定义一个RequestFunc类型的函数 -const ChartGenerationRequestFunc = async (prompt: string, userMessage: string, options: ILLMOptions | undefined) => { - //使用prompt,userMessage和options, 通过RPC调用LLM服务 - const resp = await call_RPC_LLM_Service(prompt, userMessage, options) - - const { result } = resp - const content = result.content //获取模型生成的结果 - const gptResponse = { - usage: {}, //token使用信息 - choices: [{ - index: 0, - message: { - role: 'assistant', - content //将模型的生成结果放入content中 - } - }] - } - return gptResponse //返回chat completion object,见https://platform.openai.com/docs/api-reference/chat/object - } - -const vmind = new VMind({ - model: Model.GPT3_5, - customRequestFunc: { - chartAdvisor: ChartGenerationRequestFunc //将自定义函数传递给chartAdvisor - } -}) - -const { spec } = await vmind.generateChart(userInput, fieldInfo, dataset); //调用generateChart进行图表生成 - -``` diff --git a/docs/assets/guide/zh/Basic_Tutorial/Data_Extraction.md b/docs/assets/guide/zh/Basic_Tutorial/Data_Extraction.md new file mode 100644 index 00000000..f1bfa018 --- /dev/null +++ b/docs/assets/guide/zh/Basic_Tutorial/Data_Extraction.md @@ -0,0 +1,62 @@ +# 数据提取——从文本一步生成图表 + +在前文[图表生成](./Chart_Generation)中,我们已经了解了如何从已有的结构化数据中智能生成图表。然而在部分场景中,我们并不一定已有数据集,可能有的事更为原始的数据,例如:文本数据。 +在本篇教程中,我们将介绍如果通过 VMind , 直接从一段文本中直接生成图表。 + +## text2Chart +VMind的`text2Chart`函数与`generateChart`类似,主要不同在于,此时的入参从数据表和字段信息变成了纯文本内容,具体如下: +- text (string): 必选,原始文本内容 +- userPrompt (string): 可选,用户的可视化意图(你想从文本中主要提取哪些数据,如何用图表进行展示) +- options: 可选,选项参数,包括以下内容: + - fieldInfo (Array): 文本类型中包含的字段信息,包括字段名称,类型等 + - chartTypeList (ChartType[],可选): 支持的图表类型列表。若不为undefined,则会从该列表指定的图表类型中选择生成。 + - enableDataQuery (boolean, 可选): 决定是否在图表生成过程中开启数据聚合 + - colorPalette (Array, 可选): 用于设置图表的调色板 + - animationDuration (number, 可选): 用于设置图表动画的播放持续时间 + - theme (ChartTheme | string, 可选): 设置最终sepc的主题样式,默认为空,VMind会默认使用带渐变颜色的主题样式,可以设置 VChart 通用深浅主题('light' | 'dark')或者符合你使用场景下的主题样式 + +这个方法会返回一个[VChart图表spec](https://www.visactor.io/vchart/guide/tutorial_docs/Basic/A_Basic_Spec)和一个二维数据表,详见[数据格式与数据处理](./Data_Process)。 + +在整个过程中,VMind首先会用大模型从原始文本中提取结构化的表格数据,并且自动对表格数据进行数据清理,之后就跟智能生成图表一样,再利用大模型得到推荐的图表类型和具体映射方式,最终VMind根据结果生成拼装产生最终的VChart spec. + +VMind默认会为生成的图表添加入场动画,因此它还会返回图表动画的时长time。如果你不想要图表动画,可以将spec.animation设为false。 + +你可以在[VChart动画教程](https://www.visactor.io/vchart/guide/tutorial_docs/Animation/Animation_Types)中了解更多关于图表动画的信息。 + +## 使用案例 +下面是一个使用text2Chart生成图表的例子: + +```ts +import VMind from '@visactor/vmind'; + +const vmind = new VMind(options); +const text = '全国人口[2]中,拥有大学(指大专及以上)文化程度的人口为218360767人;拥有高中(含中专)文化程度的人口为213005258人;拥有初中文化程度的人口为487163489人;拥有小学文化程度的人口为349658828人(以上各种受教育程度的人包括各类学校的毕业生、肄业生和在校生)。'; +const userPrompt = '对比本次人口普查各文化程度的人口比重'; +const { spec, time, dataTable } = await vmind.generateChart(text, userPrompt); + +console.log(dataTable); +// 数据表结果如下所示 +dataTable = [ + { + "文化程度": "大学", + "人口数量": 218360767 + }, + { + "文化程度": "高中", + "人口数量": 213005258 + }, + { + "文化程度": "初中", + "人口数量": 487163489 + }, + { + "文化程度": "小学", + "人口数量": 349658828 + } +] +``` +其中图表spec的结果如下图所示: +![](https://lf9-dp-fe-cms-tos.byteorg.com/obj/bit-cloud/vmind_text_2_chart_1.jpeg) + +## 参数详解 +该函数的参数几乎与`generateChart`相同,详见:[图表生成](./Chart_Generation)参数详解部分 \ No newline at end of file diff --git a/docs/assets/guide/zh/Basic_Tutorial/Data_Process.md b/docs/assets/guide/zh/Basic_Tutorial/Data_Process.md index d62ef77e..795602d9 100644 --- a/docs/assets/guide/zh/Basic_Tutorial/Data_Process.md +++ b/docs/assets/guide/zh/Basic_Tutorial/Data_Process.md @@ -98,14 +98,21 @@ ## 字段信息fieldInfo 在VMind中,你需要使用fieldInfo对象来描述数据集中的字段信息。fieldInfo描述了数据中每个字段的名称、类型、字段描述等信息。这些信息将被传给LLM用于图表生成、数据聚合等任务中。 -下面是fieldInfo对象的类型定义: +下面是fieldInfo对象的类型定义,其中必选信息为上述提到的`fieldName | type | role ` ```ts -export type SimpleFieldInfo = { +/** field information Of Data Table */ +export interface FieldInfo { + /** name of field */ fieldName: string; - description?: string; //additional description of the field. This will help the model have a more comprehensive understanding of this field, improving the quality of chart generation. + /** field type, eg: time / category / numerical */ type: DataType; + /** field role */ role: ROLE; -}; + /** alias of field */ + alias?: string; + /** description of field */ + description?: string; +} ``` 对于上一个章节中展示的数据集,其对应的fieldInfo如下: ```json diff --git a/docs/assets/guide/zh/Getting_Started.md b/docs/assets/guide/zh/Getting_Started.md index bf16d9b2..32e7fd23 100644 --- a/docs/assets/guide/zh/Getting_Started.md +++ b/docs/assets/guide/zh/Getting_Started.md @@ -32,7 +32,7 @@ import VMind from '@visactor/vmind'; ## 初始化 VMind 实例 -首先我们需要初始化一个 VMind 实例,并用它完成后续操作。VMind 目前支持 OpenAI GPT-3.5,GPT-4 系列模型和火山引擎[云雀(skylark-pro)](https://www.volcengine.com/product/yunque)系列模型,未来我们将支持更多的大语言模型,欢迎访问[Github页面](https://github.com/VisActor/VMind/issues/new/choose)提出你的需求。 +首先我们需要初始化一个 VMind 实例,并用它完成后续操作。VMind 目前支持所有主流模型,包括 OpenAI GPT系列,字节豆包系列以及 DeepSeek 等模型,只要提供对应的模型API接口,所有模型均可以直接调用。 使用以下代码初始化一个 VMind 实例: ```js @@ -40,7 +40,7 @@ import VMind, { Model } from '@visactor/vmind' const vmind = new VMind({ url, //指定你的大模型服务url。default is https://api.openai.com/v1/chat/completions - model: Model.GPT3_5, //指定你指定的模型 + model: Model.GPT4o, //指定你指定的模型 headers: { //指定调用大模型服务时的header 'api-key': apiKey //Your LLM API Key } diff --git a/packages/calculator/package.json b/packages/calculator/package.json index 23b8a9a3..c894cdfb 100644 --- a/packages/calculator/package.json +++ b/packages/calculator/package.json @@ -1,6 +1,6 @@ { "name": "@visactor/calculator", - "version": "1.2.13", + "version": "2.0.1", "description": "SQL-like query executor with DSL", "main": "lib", "module": "es", diff --git a/packages/chart-advisor/package.json b/packages/chart-advisor/package.json index 1dcd088f..802f4b24 100644 --- a/packages/chart-advisor/package.json +++ b/packages/chart-advisor/package.json @@ -1,6 +1,6 @@ { "name": "@visactor/chart-advisor", - "version": "1.2.13", + "version": "2.0.1", "description": "图表推荐模块", "main": "lib", "module": "es", diff --git a/packages/vmind/.eslintrc.cjs b/packages/vmind/.eslintrc.cjs index 1ef89e06..c2bc18dc 100644 --- a/packages/vmind/.eslintrc.cjs +++ b/packages/vmind/.eslintrc.cjs @@ -53,6 +53,8 @@ module.exports = { allow: ['warn', 'error'] } ], + 'semi': 1, + 'comma-dangle': 1, // 如果一个变量不会被重新赋值,最好使用const进行声明 'prefer-const': 2, // 禁止在条件中使用常量表达式 diff --git a/packages/vmind/CHANGELOG.json b/packages/vmind/CHANGELOG.json index df3d4451..e5ad7dec 100644 --- a/packages/vmind/CHANGELOG.json +++ b/packages/vmind/CHANGELOG.json @@ -1,6 +1,30 @@ { "name": "@visactor/vmind", "entries": [ + { + "version": "2.0.1", + "tag": "@visactor/vmind_v2.0.1", + "date": "Fri, 21 Feb 2025 07:38:30 GMT", + "comments": { + "none": [ + { + "comment": "Overall architecture upgrade" + }, + { + "comment": "Support DeepSeek and other custom model with api-key" + }, + { + "comment": "12 new chart types added for chart generation" + }, + { + "comment": "Add Text2Chart capability" + }, + { + "comment": "Add Chart Insight capability" + } + ] + } + }, { "version": "1.2.13", "tag": "@visactor/vmind_v1.2.13", @@ -128,4 +152,4 @@ "comments": {} } ] -} +} \ No newline at end of file diff --git a/packages/vmind/CHANGELOG.md b/packages/vmind/CHANGELOG.md index 80eb755e..3f8947fa 100644 --- a/packages/vmind/CHANGELOG.md +++ b/packages/vmind/CHANGELOG.md @@ -1,6 +1,28 @@ # Change Log - @visactor/vmind -This log was last generated on Thu, 11 Jul 2024 08:20:22 GMT and should not be manually modified. +This log was last generated on Fri, 21 Feb 2025 07:38:30 GMT and should not be manually modified. + +## 2.0.1 +Fri, 21 Feb 2025 07:38:30 GMT + +### Updates + +- Overall architecture upgrade +- Support DeepSeek and other custom model with api-key +- 12 new chart types added for chart generation + - [Range Bar Chart](https://www.visactor.io/vchart/demo/range-column-chart/range-bar) + - [Liquid Chart](https://www.visactor.io/vchart/demo/liquid-chart/liquid-chart) + - [Linear Progress Bar](https://www.visactor.io/vchart/demo/progress/linear-progress) + - [Circular Progress Bar](https://www.visactor.io/vchart/demo/progress/circular-progress) + - [Circle Packing Chart](https://www.visactor.io/vchart/demo/circle-packing-chart/basic-circle-packing) + - [Sunburst Chart](https://www.visactor.io/vchart/demo/sunburst-chart/basic-sunburst) + - [Gauge Chart](https://www.visactor.io/vchart/demo/gauge-chart/basic-gauge) + - [Treemap Chart](https://www.visactor.io/vchart/demo/treemap-chart/basic-treemap) + - [Heatmap Chart](https://www.visactor.io/vchart/demo/heatmap-chart/basic-heatmap) + - [Venn Chart](https://www.visactor.io/vchart/demo/venn-chart/venn-chart) + - [Map](https://www.visactor.io/vchart/demo/map-chart/basic-map) +- Add Text2Chart capability +- Add Chart Insight capability ## 1.2.13 Thu, 11 Jul 2024 08:20:22 GMT diff --git a/packages/vmind/README.md b/packages/vmind/README.md index 87788f53..58f8bdaf 100644 --- a/packages/vmind/README.md +++ b/packages/vmind/README.md @@ -54,9 +54,9 @@ The main features of `@visactor/vmind` include: ## Development Guide -### Demo Page +### Docs Page -Enter the VChart repository and execute: +Enter the VMind repository and execute: ```bash # Install dependencies @@ -65,11 +65,10 @@ $ rush update $ rush docs ``` -Select VMind from the top navigation bar, enter your OpenAI Key, click generate chart, and you can experience VMind. ### Start the Development Page -Enter the VChart repository and execute: +Enter the VMind repository and execute: ```bash # Install dependencies @@ -83,23 +82,18 @@ You need to set your LLM service URL and API key to use it normally. You can mod You can create a new .env.local file in the packages/vmind folder and write in it: ```bash -VITE_SKYLARK_URL="Your service url of skylark model" VITE_GPT_URL="Your service url of gpt model" -VITE_SKYLARK_KEY="Your api-key of skylark model" VITE_GPT_KEY="Your api-key of gpt model" +VITE_DEEPSEEK_URL="https://api.deepseek.com/chat/completions" +VITE_DEEPSEEK_KEY="Your api-key of deepseek model" +VITE_CUSTOM_URL="Your service url of custom model" +VITE_CUSTOM_KEY="Your api-key of custom model" +VITE_CUSTOM_MODEL="Your Custom Model Name" VITE_PROXY_CONFIG="Your Vite proxy config for forwarding requests. Must be in JSON string format and is optional. Example: {"proxy": {"/v1": {"target": "https://api.openai.com/","changeOrigin": true},"/openapi": {"target": "https://api.openai.com/","changeOrigin": true}}}" ``` These configurations will be automatically loaded when starting the development environment. -### Project Structure - -- \_\_tests\_\_: Playground for development -- src/common: Common data processing, chart recommendation methods, chart generation pipelines -- src/gpt: Code related to gpt intelligent chart generation -- src/skylark: Code related to skylark intelligent chart generation -- src/chart-to-video: Code related to exporting videos, GIFs - ## Instructions for use ### 📦 Installation @@ -134,14 +128,14 @@ Next, import VMind at the top of the JavaScript file import VMind from '@visactor/vmind'; ``` -VMind currently supports OpenAI GPT-3.5, GPT-4 models and skylark-pro series models. Users can specify the model type to be called when initializing the VMind object, and pass in the URL of the LLM service. Next, we initialize a VMind instance and pass in the model type and model url: +VMind currently supports GPT, deepseek, doubao and any other models with API Keys. Users can specify the model type to be called when initializing the VMind object, and pass in the URL of the LLM service. Next, we initialize a VMind instance and pass in the model type and model url: ```typescript import { Model } from '@visactor/vmind'; const vmind = new VMind({ - url: LLM_SERVICE_URL, //URL of the LLM service - model: Model.SKYLARK, //Currently supports gpt-3.5, gpt-4, skylark pro models. The specified model will be called in subsequent chart generation + url: LLM_SERVICE_URL, // URL of the LLM service + model: Model.GPT4o, // Model to use headers: { 'api-key': LLM_API_KEY } //headers will be used directly as the request header in the LLM request. You can put the model api key in the header @@ -152,16 +146,35 @@ Here is a list of supported models: ```typescript //models that VMind support -//more models are under development export enum Model { GPT3_5 = 'gpt-3.5-turbo', + GPT3_5_1106 = 'gpt-3.5-turbo-1106', GPT4 = 'gpt-4', - SKYLARK = 'skylark-pro', - SKYLARK2 = 'skylark2-pro-4k' + GPT_4_0613 = 'gpt-4-0613', + GPT_4o = 'gpt-4o-2024-08-06', + DOUBAO_LITE = 'doubao-lite-32K', + DOUBAO_PRO = 'doubao-pro-128k', + CHART_ADVISOR = 'chart-advisor', + DEEPSEEK_V3 = 'deepseek-chat', + DEEPSEEK_R1 = 'deepseek-reasoner' } ``` +And also you can use other model you like: +```typescript +import { Model } from '@visactor/vmind'; + +const vmind = new VMind({ + url: LLM_SERVICE_URL, + model: LLM_MODEL_NAME, // Model You Choose + headers: { + 'api-key': LLM_API_KEY + } +}); +``` + +VMind supports datasets in both CSV and JSON formats. -VMind supports datasets in both CSV and JSON formats. To use CSV data in subsequent processes, you need to call the data processing method to extract field information and convert it into a structured dataset. VMind provides a rule-based method `parseCSVData` to obtain field information: +To use CSV data in subsequent processes, you need to call the data processing method to extract field information and convert it into a structured dataset. VMind provides a rule-based method `parseCSVData` to obtain field information: ```typescript // Pass in the CSV string to obtain the fieldInfo and the JSON-structured dataset @@ -240,31 +253,7 @@ const userPrompt = const { spec, time } = await vmind.generateChart(userPrompt, fieldInfo, dataset); ``` -#### Customizing LLM Request Method - -Pass parameters when initializing the VMind object: - -```typescript -import VMind from '@visactor/vmind'; -const vmind = new VMind(openAIKey:string, params:{ -url?: string;//URL of the LLM service -/** gpt request header, which has higher priority */ -headers?: Record ;//request headers -method?: string;//request method POST GET -model?: string;//model name -max_tokens?: number; -temperature?: number;//recommended to set to 0 -}) -``` - -Specify your LLM service url in url (default is https://api.openai.com/v1/chat/completions) -In subsequent calls, VMind will use the parameters in params to request the LLM service url. - - - #### Data Aggregation -📢 Note: The data aggregation function only supports GPT series models, more models will come soon. - When using the chart library to draw bar charts, line charts, etc., if the data is not aggregated, it will affect the visualization effect. At the same time, because no filtering and sorting of fields has been done, some visualization intentions cannot be met, for example: show me the top 10 departments with the most cost, show me the sales of various products in the north, etc. VMind supports intelligent data aggregation since version 1.2.2. This function uses the data input by the user as a data table, uses a LLM to generate SQL queries according to the user's command, queries data from the data table, and uses GROUP BY and SQL aggregation methods to group, aggregate, sort, and filter data. Supported SQL statements include: SELECT, GROUP BY, WHERE, HAVING, ORDER BY, LIMIT. Supported aggregation methods are: MAX(), MIN(), SUM(), COUNT(), AVG(). Complex SQL operations such as subqueries, JOIN, and conditional statements are not supported. @@ -275,7 +264,6 @@ Use the `dataQuery` function of the VMind object to aggregate data. This method - fieldInfo: Dataset field information. The same as generateChart, it can be obtained by parseCSVData, or built by the user. - dataset: Dataset. The same as generateChart, it can be obtained by parseCSVData, or built by the user. - ```typescript const { fieldInfo, dataset } = await vmind?.dataQuery(userInput, fieldInfo, dataset); ``` @@ -288,6 +276,11 @@ const userInput = 'show me the changes in sales rankings of various car brand'; const { spec, time } = await vmind.generateChart(userInput, fieldInfo, dataset, false); //pass false as the forth parameter to disable data aggregation before generating a chart. ``` +#### Data Insight +[Tutorial](https://visactor.io/vmind/guide/Basic_Tutorial/Chart_Insight) + +#### Data Extraction: Text to Chart +[Tutorial](https://visactor.io/vmind/guide/Basic_Tutorial/Data_Extraction) #### Dialog-based editing diff --git a/packages/vmind/__tests__/browser/src/App.tsx b/packages/vmind/__tests__/browser/src/App.tsx index 6edf6cc5..5e1b168c 100644 --- a/packages/vmind/__tests__/browser/src/App.tsx +++ b/packages/vmind/__tests__/browser/src/App.tsx @@ -1,6 +1,7 @@ import * as React from 'react'; import { Home } from './pages/Home'; import { LayoutWrap } from './Layout'; +import './index.scss'; export default function App() { return ( diff --git a/packages/vmind/__tests__/browser/src/constants/capcutData.ts b/packages/vmind/__tests__/browser/src/constants/capcutData.ts new file mode 100644 index 00000000..d531e793 --- /dev/null +++ b/packages/vmind/__tests__/browser/src/constants/capcutData.ts @@ -0,0 +1,672 @@ +/* eslint-disable max-len */ +export const capcutMockData: any[] = [ + { + text: '地图带你看懂法国大选。 2024 年法国议会选举结果揭示了法国社会的撕裂,没有任何党派能获得 577 个议题中的绝对多数。左翼联盟、新人民战线执政党中间派联盟和极右翼国民联盟分别占据 182 席、 168 席、 143 席。除了这三家以外,其余党派席位最多的也只有右翼共和党的 48 席,因此左翼联盟、执政党和极右翼算是形成了三分天下的格局。今天我们便结合地图和数据,聊一聊法国大选。本期视频的所有分析均为个人观点,仅供参考。在开始之前,我先快速的放一下各党派在几个主要政治议题上的立场,有需要的朋友可以截图保存一下。', + fieldInfo: ['党派', '席位数'] + }, + { + text: '现在我们进入正题,首先需要说明法国的选区制度,全国共有 577 个选区,每个选区包括 10- 12 万的人口密集的地方选区就小,人口稀少的区域选区域就大。因此地图上各个政党所占的面积并不能与其票数划等号,而是要看具体的选区分布在人口密集的大城市,譬如巴黎、里昂、马赛,虽然看起来面积小,实际上选区数量很多,占的比重很大。', + fieldInfo: ['选区数量', '选区人口范围', '城市'] + }, + { + text: '尽管如此,马克龙强调市场自由化,支持创新和创业,对欧盟一体化和国际合作的开放还是得到了许多大城市选民的支持。大城市仍然是马克龙的重要支持来源。除了大城市外,我们刚才提到过法国东北地区工业的衰落,其实在法国的西北地区又是另一番景象。之前那张关于中小工业城市分布的途中,我们可以清晰的看到西北地区的工业对于当代法国的重要性,当然工业只是一个缩影。我们再来看失业率地图,黄色代表 2022 年失业率最低的 20 个省,橙色是 21- 40 低的省份,可以看出西北部地区的失业率明显低于东北部。再看移民分布地图,西北部地区因为大城市少,而且离地中海更远,接受的移民也比较少。综上,西北地区的经济较为稳定,而且不受移民带来的社会问题困扰,日子过得比较舒服,这些选民对于未来持乐观态度,也成为了马克龙的另一主要票仓。除了以上三大势力外,浅蓝色代表的右翼共和党也获得了 48 个席位。他们的支持者主要位于经济同样比较富足,但是政治观点更为保守的地区。这里我就不展开讲总结。本期视频我们从法国官方的报告与数据出发,从经济与人口地理的角度分析了法国的大选结果。左翼联盟新人民战线以大城市为根基拿下最多的 182 席,马克龙的执政党中间派联盟则凭借大城市和西北地区的支持者取得了 168 席。乐旁的极右翼国民联盟则主要扎根于东北与东南地区,以 143 起居于第三这样的三分割据局面使得法国议会缺乏绝对多数,并且三方势力相差不大。可以预见在未来法案的通过上会面临极大的阻碍。举例来说,左翼和极右翼甚至存在联手撤回延迟退休法案的理论可能。虽然实际操作起来也面临很多困难,双方都不太愿意和对方合作,但即便是理论,可能也已经能表明未来的不确定性。', + fieldInfo: ['政党', '席位数', '地区'] + }, + { + text: '住手,你们住手,不要再砸了,你们不要再砸了。万万没想到,瑞幸和库迪的九块九大战,快把星巴克给卷死了。前段时间,星巴克公布了第二季度财报,营业收入 85.6 亿美元,同比下降了2%,净利润大跌15%,股票市值一天内蒸发了 1, 150 亿人民币。另一方面,星巴克的咖啡也在悄悄降价。如果你手机上有星巴克的APP,几乎每天都会收到 5 张以上的优惠券,比如满60.10、满75.15、任意新冰乐 7 折等等,部分单品的团购价优惠下来低至 9 元。终于, 9.9 的风还是卷到了星巴克。在过去很长一段时间里,星巴克是小资生活的代表,一杯咖啡动辄几十块钱,也只有电视剧里那些白领们和云淡风轻的走进去,熟练地点一杯拿铁,找个位置坐下,悠闲地打开电脑喝咖啡。岁月静好人间,值得有人点一杯星巴克,朋友圈能发十几条动态,有人为了抢星巴克限量版的猫爪杯,能通宵排队,甚至大打出手。', + fieldInfo: ['营业收入', '营业收入同比', '净利润变化'] + }, + { + text: '星巴克在中国国内的定位一直都是高端咖啡品牌,但是很多人不知道的是,它在国外的定位其实是平民咖啡,在美国一杯星巴克大杯美式咖啡大概是 2.95 美元,而根据美国劳工部的统计,美国平均月工资是 6, 228 美元,最低时薪是 7.25 美元,这是啥意思呢? 1002.65 美元的星巴克还不到美国人平均月收入的 2, 000 份之一,也就是平常坐一趟地铁的价格吧。而在中国市场,星巴克的饮品价格普遍要超过 30 元一杯。如果按照美国的对应消费力,它的主力消费人群应该是月薪至少6万元的人。', + fieldInfo: ['咖啡价格', '平均工资', '最低时薪'] + }, + { + text: '2019 年2月,星巴克就发售了一款粉爪杯,那它长这样?售价 199 元,但是在网上最高炒到了 1, 800 元。有人寒冬腊月在星巴克门口通宵排队,就是为了买到这么一个杯子。还有人因为排队顺序大打出手,最后喜提免费食宿。靠着这些营销方法,在很长一段时间里,普通人对于星巴克是仰望的,觉得去星巴克消费是很有品的,再往前推十年,你甚至可以看到有人去星巴克点一杯咖啡就可以发十几条朋友圈的各种角度各种场景,还要配文低调有实力,天天喝都喝腻了好像呢?甚至有人专门发帖认真的提问,第一次去星巴克主要注意什么?怎么装的像老手呢?我一开始还以为是来搞笑和反讽的,没想到点开帖子此还真的是教大家怎么去星巴克抓老手的,包括但不限于怎么下载APP,问店员这周用的是啥肚子萃取时间是多少?张度和烘焙度怎么样?要不要加糖和加奶?这唬得我一愣一愣的,但是时过境迁,如今星巴克已经支棱不起来了,一边是疯狂降价买三送一搞促销,一边是继续下沉到四五线城市。', + fieldInfo: ['商品', '售价', '最高价'] + }, + { + text: '星巴克近期发布的 2025 中国战略愿景当中,中国总部直言不讳地表示,星巴克看中的不仅仅是全国 300 多个 d 级市场,也包括近 3, 000 个县域市场。星巴克的愿景也体现在它的选址变化上,它在中国的门店已经突破了 7, 000 家,但是这开店位置却让人越来越看不懂了。', + fieldInfo: ['市场级别', '市场数量'] + }, + { + text: '一家卖咖啡的店。星巴克没落的第二个原因是当代年轻人更偏向实用消费主义。坦白讲,大部分人喝咖啡其实就是为了遮住那点咖啡因,好让自己在一天的工作中保持清醒。你跟不懂咖啡的人聊什么豆子产地、风味,他只会回你一句,冰美式和中药有什么区别啊?如果你面前有三杯咖啡,第一杯是星巴克的 30 元美式,后面两杯是瑞幸库里的 9 块 9 咖啡也让你买单,大部分人都会选择后面两个,当然也有人会吹星巴克的豆子有多么多么的好,所以它买的这么贵也是值得的。', + fieldInfo: ['品牌', '价格'] + }, + { + text: '咱聊一下最新的重磅数据,反正挺复杂的,国内6月 M2 同比增长6.2%,预期6.8%。 M1 同比下滑5%,预期下滑5.4%。 M M 一剪刀差走扩至 11.2% 再创新高。6月人民币存款增加 2.46 万亿,其中居民存款增加 2.14 万亿,增量几乎全都是老百姓存的。与 M1 的下滑相对,上半年人民币存款总共增加了 11.46 万亿,其中居民存款增加 9.27 万亿。大头也是老百姓,但增速逐月放缓。', + fieldInfo: ['指标', '同比增长', '预期增长'] + }, + { + text: '7月 11 日晚上,由于美国公布的 CPI 数据超预期回落,让市场对美联储降息预期大幅升温。从这场所的美联储观察工具看,虽然7月 30 一日的美联储议息会议,市场预期不降息的概率仍然是达到93%,但9月 18 日的美联储议息会议,市场预期降息一次的概率是达到90%,这比起上个月概率是上升很多。不过我还是得强调一下,这个美联储观察工具将来只能反映市场当前的预期态度,不能拿来预测美联储货币政策,因为这个概率是会不断随着最新经济数据变化而变化。比如要是下个月美国 CPI 出现较大反弹,那9月降息的概率就会大幅下降。而这次市场预期美联储9月降息的概率大幅上升,主要有两个原因,一、美联储鲍威尔在7月 10 日的国会听证会上整体态度偏戈。鲍威尔称,劳动力市场降温意味着持续高通胀的潜在源头已经减弱。他还表示,就业市场的进一步疲软可能是不必要的,也是不受欢迎的。鲍威尔说,通胀方面的工作还没有完成,我们还有更多工作要做,但与此同时,我们需要注意劳动力市场现况,我们已经观察到劳动力市场出现相当明显的疲软,有着新美联储通讯社之称的知名记者尼奇默尔斯认为,鲍威尔本周其实已暗示美联储的利率政策即将开始改变方向。', + fieldInfo: ['时间', '预计降息概率'] + }, + { + text: '第二个原因是7月 11 日晚上 8 点半美国劳工部公布的通胀数据,6月 CPI 是同比上涨3%,市场预期值3.1%,前值3.3%。这次美联储 CPI 回落,更关键是 CPI 环比是负增长0.1%,这是美国 2020 年5月以来 CPI 环比首次出现下降,而且美国 2020 年5月还是因为疫情导致的 CPI 骤降,是比较特殊时期,所以美国 CPI 环比负增长确实不太常见。但仔细看美国 VI 月 CPI 的具体构成,感觉猫腻还是不少的。', + fieldInfo: ['经济指标', '同比', '环比', '市场预期值', '前值'] + }, + { + text: '美国 VI 月 CPI 下降的主要贡献是汽油价格下跌。美国 VI 月汽油价格下跌了3.8%,抑制了当月通胀,抵消了食品和住房价格 0.2% 的上涨。比较诡异的是,美国原油期货价格6月是明明出现大幅上涨,这是因为原油期货价格传导到汽油价格有一些迟滞效应,但那样的话,下个月公布的 CPI 数据,汽油价格可能就得反弹了。要是下个月公布的 CPI 数据,汽油价格还继续下降,那就实在说不过去了。美国刨除能源和食品价格的核心通胀率6月是3.3%,但整体降幅还是低于CPI。', + fieldInfo: ['价格类别', '价格变动比例'] + }, + { + text: '美国通胀目前最顽固的就是服务业通胀,美国 VI 月服务业通胀仍然是同比上涨5%。美国毕竟是服务业为主的国家,服务业通胀还高居5%,美国要说自己已经控制住通胀,完全就是忽悠人。不过虽然美国大选临近,美国现在经济数据基本是为选型服务,比如已经假的不能再假的美国非农就业数据,美国 VI 月非农就业人口增加20.6万人,高于市场预期的 19 万人。然而美国同时把5月数据从 27.2 万人大幅下修至 21.8 万人,4月从 16.5 万人修正至10.8万人,修正后两个月合计较修正前减少 11.1 万人。', + fieldInfo: ['月份', '修正前就业人口增加', '修正后就业人口增加'] + }, + { + text: '我注意到虽然这次市场大幅提高了美联储9月降息概率,但美股和日股反而不涨反跌,纳斯达克在7月 11 日是下跌了2%,日股在7月 12 日也跟随下跌了2.45%。这是市场反身性效应的某种预演,股市炒的是预期,之前美股和日股是基于美联储降息预期,已经提前涨了一年多了,那么当美联储真正降息之后,市场是可能出现反身性效应,也就是所谓利好落地势利空的说法。当然股市走势千变万化,这也只是其中一种可能性。历史的参考例子,比如 2004 年美联储降息, 2006 年停止加息, 2007 年开始降息,但股市是一直涨到 2007 年底,随后自带危机爆发,股市开始大跌。我之前也梳理过,从 1980 年以来,美联储每次加息超过 5% 的幅度,首次加息后的 2- 4 年内都会爆发金融危机,这次美联储是 2022 年开始加息,所以按照历史路径, 2024 年到 2026 年是有可能爆发世界金融危机,这个结合当前国际局势和地缘形势,还是有挺大的可能性。', + fieldInfo: ['股市', '时间', '涨跌幅度'] + }, + { + text: '以前的小学空荡荡的,老年人养起了鸡鸭鹅狗,彻底荒废了整个黑龙江省, 10 年时间荒废了近六成,小学加起来有 1, 900 余所,整个东北十年荒废了 6, 800 余所小学,少了一半。', + fieldInfo: ['地区', '荒废比例', '荒废数量'] + }, + { + text: '而小学缺孩子这个趋势早已经蔓延至全国各地了。东部的兹西县,有的小学一个班只有一个学生。华南的徐文县,去年某小学开学,一年级也只有一个学生。中部人口大省河南,据测算, 2023- 2027 年小学学龄人口预计下降 200 多万人,缩水超两成,出现了基数的坍塌。从全国来看,基于学龄人口的预测显示,全国超 1, 400 个县域中,近九成县域小学学龄人口预计下滑,小学鹤岗化以谁也没想到的方式在扩散,从东北开始到大江南北,下一步可能是上海最新的总和生育率只有 0.6 了,该来的总是要来,从民政局冷冷清清到妇产科缺孩子,再到幼儿园关停潮,现在轮到了小学关停潮,这个传播链条还在扩散。', + fieldInfo: ['地区', '时间', '小学学龄人口变化'] + }, + { + text: '实际上,如果鹤岗化只是局限于教育领域,那还好说,但不是实际情况复杂的多楼市,像鹤岗那样房子白菜价的城市越来越多了,据不完全统计,至少有 10 个省 24 个城市陷入几万元买房的讨论。不是每平方米单价几万,而是一套房总价几万。网传广东惠州6万,广西南宁5万,山东东营4万,江苏南京3万,黑龙江大靶1万,这个传播势头在这轮楼市调整的加持下,现在已经来到了北京的外围,在京津两市的交界处,抹楼盘从 160 万元降到了 39 万,而且打了骨折还卖不出去。', + fieldInfo: ['城市', '房价'] + }, + { + text: '地方财力,之前鹤岗是全国第一个财政重整的地级市,甚至传出来停招公务员,现在过紧日子的城市也越来越多了。秦岭深处某县人口只有3万,编制人员却有 2, 194 名,一年的行政管理支出 1, 800 万,排在支出的首位。乌蒙山区某县一般公共预算收入 7 个亿,但工资预算总支出 26.3 亿,其中在职人员 20 亿,离退休人员 1.7 亿,零聘人员 4.6 亿。注意一个细节,在职人员数量 1.5 万,临聘人员数量 2.8 万。', + fieldInfo: ['地区', '人员数量', '人员类别', '公共预算收入', '工资预算支出'] + }, + { + text: '中国房价一度被视为坚不可摧的资产堡垒,更一度有京沪永远涨的口号。然而,自 2021 年以来,包括一线城市在内,房价持续低迷,深圳全市二手房均价距离 2021 年初的最高点跌幅已接近40%,而且还没有停下来的意思。各热点城市二手房每成交一套就要多出好几套,新增的房源和房价表现几乎完全正相关的是飞天茅台的价格, 53 度。', + fieldInfo: ['城市', '年份', '房价变化'] + }, + { + text: '飞天茅台在 2021 年巅峰时期,一瓶售价超过 3, 500 元,如今已经快跌破 2, 000 元,是巧合吗?过去一线城市房价和飞天茅台价格可以说是最硬的人民币计价资产了,甚至比现金还要优质。一线房产和飞天茅台在相当长的一段时间内有两个相同属性,一他们可以长期增值。二他们易于套现。然而现在情况出现了前所未有的变化,房价和飞天茅台两者双双在 2012 一年见顶。', + fieldInfo: ['年份', '价格'] + }, + { + text: '这不是巧合,其他很多数据也都在 2021 年见顶,比如另一个在 2021 年见顶并开始走下神坛的保时捷。保时捷销量的恶化还在加速,过去一年多,中国市场上保时捷的落地价可以说是惨不忍睹。近期,保时捷只卖 44 万的话题也引发了热议,其华南区域一家终端门店称, Macan 正在进行优惠促销,最高优惠 16 万,该车优惠后最低售价为 44.8 万。另外,在山东、湖北、江西、福建、浙江、江苏等多省份,该车均出现了 50 万元以下的裸车价,而报价达到 103.8 万的泰肯,现在 70 多万就可以拿下。目前,保时捷几乎所有的车型都可以打 7- 8 折。', + fieldInfo: ['车型', '落地价', '优惠金额', '报价'] + }, + { + text: '不只是保时捷,包括奔驰、宝马、奥迪在内的豪华汽车品牌今年以来都在大幅降价,但仍然止不住销量断崖式下降。 2024 年一季度,保时捷中国卖出 16, 340 辆,同比大幅下降24%。保时捷在今年 5 月份仅卖出 4, 633 辆,同比去年5月下滑高达40.61%。这说明保时捷在中国的销量正在加速减少。', + fieldInfo: ['时间范围', '销量', '同比'] + }, + { + text: '从两年前开始,特斯拉的 3 和 y 中国售价就是世界最低的, 7.98 万可以买到原本指导价 13.18 万的油电混动的卡罗拉。做一个对比,美国的油电混动卡罗拉的起售价是 2.35 万美元,有时甚至还要加价。按照美元人民币汇率计算,这款车的中国售价居然只有美国的一半水平,尽管配置存在差异,但不影响价格差异巨大的这个结论。除了卡罗拉外,汉兰达和凯美瑞也都大幅降价,即使是两年前,我们也很难想象只要 14.98 万人民币就可以买到最新款的混动版凯美瑞。', + fieldInfo: ['车型', '售价', '指导价', '美元起售价'] + }, + { + text: '中国物价的下降不仅仅体现在商品上,服务价格也是类似的趋势。举个例子,十多年前我常驻北京,当时经常在晚上十一二点从首都机场打车到西直门这样一段单程大约需要 110- 120 元,而现在滴滴大概只要 60- 70 元。如果是现在的出租车,价格和十多年前还是一样的。', + fieldInfo: ['交通方式', '时间', '价格区间'] + }, + { + text: '以工行、农行、建行发布的数据来看,其 2023 年个人住房贷款不良率分别由 2022 年的0.39%、0.51%、 0.37% 增长至了0.44%、 0.55% 和0.42%,基本都实现了两位数的增幅。大家别觉得这些小数字没啥大不了的,要知道这三家银行每一家的个人住房贷款余额都超过了5万亿,而且按揭贷款往年基本上都是银行稳赚不赔的买卖。供建农三家银行之所以每年能够包揽中国最赚钱企业的前三名,按揭贷款所带来的收益贡献巨大。现在这个优质资产的不良率正在以每年两位数的增幅增加。', + fieldInfo: ['银行', '年份', '不良率'] + }, + { + text: '你是银行,你慌不慌?而另一项作为佐证的数据则是法拍房,大家知道现在法拍房的数据有多夸张吗?根据瀚海研究院发布的数据显示, 2022 年全国共挂牌法拍房 98 万套,去年这个数字变成了 141 万套,增长了43.9%。而今年光是一季度的挂牌数量就已飙升至 60.44 万套通,同比上涨192%。这种局势下,银行要是再不改变断供处置策略,那今年的法拍数量估计有望达到 200 万。', + fieldInfo: ['对应时间', '法拍房数量', '同比'] + }, + { + text: '事实上,对银行来说,现在的行情即使他收了房也难以处置。我们以北京为例, 2023 年北京挂牌法拍房 8, 153 套,最终成交仅 2, 771 套,处置率为33%,这还是房价波动相对较小的北京,换到其他已经跌穿首付的地区,处置率恐怕只会更低。而在法拍流程里,流拍和拍品二次上拍都会在此前的价格上更进一步降低,这也导致了银行回款难度的进一步提高。虽然按照现在的规则,这部分差价是由贷款人承担的,但对方既然已经到了选择断供的地步,可想而知最终也执行不了多少。', + fieldInfo: ['地区', '法拍房数量', '成交量', '处置率'] + }, + { + text: '另一项推动银行改变策略的原因,则是今年4月 30 号的一场会议,这场会议确定了房地产行业未来一年的发展方向,统筹消化存量房产和优化增量住房,用大家都熟悉的话来说就是去库存。根据国家统计局的官方数据显示,截至 2024 年5月,我国未出售商品房为 7.46 亿平米,远超 5.9 亿平米的正常库存水平。而整个上半年,根据 CRS 的统计,全国 222 个城市总计出台了 341 项宽松政策,但带来的效果均不理想,无论是销售面积还是投资金额,仍然在持续走低。', + fieldInfo: ['时间', '商品房面积', '面积类别'] + }, + { + text: '大家好,我拍拍一名做过财经记者,大学老师和滴滴司届 up 主。 2023 年,我国汽车出口量达到了 491 万辆,超越日本成为世界第一汽车出口国。要知道,日本在这个位置坐了 8 年之久,而中国仅在过去三年时间里接连赶超韩国、德国、日本。中国汽车出口, 2021 年 202 万辆, 2022 年 311 万辆, 2023 年 491 万辆。', + fieldInfo: ['年份', '国家', '出口量'] + }, + { + text: '中国汽车转眼间为何变得这么受欢迎呢?又到底是哪些国家在购买中国汽车?中国卖给老外汽车又是些什么品牌和价位车型?本期视频就为大家打开中国汽车出口全球第一背后的真实数据。首先,中国出口的 491 万辆汽车都是些什么车呢?根据乘联会统计,中国乘用车出口量前十车型分别为名爵ZS、特斯拉 model y、奇瑞瑞虎7、特斯拉 model 3、名爵 4 EV、奇瑞虎5X、欧盟达名爵5、缤越元plus。除了特斯拉的 model y 和 model 3,其他车型国内指导价基本都在 10 万元左右,比如排名第一的名爵ZS,指导价 8- 9万元,最便宜的名爵 5 和缤越低到6万元就能拿下,可见中国汽车出海主打的还是一个性价比。', + fieldInfo: ['车型', '指导价'] + }, + { + text: '如果按燃油车、新能源车的分类来看, 2013 年中国出口燃油车 371 万辆,出口新能源汽车 120 万辆,新能源车占到出口总量的25%,虽然这个占比目前只有 1/ 4,但去年新能源出口增速是77.6%,势头不可谓不猛。', + fieldInfo: ['车辆类型', '年份', '出口量', '出口占比', '出口增速'] + }, + { + text: '那中国汽车出口都卖到了哪些国家呢? 2013 年中国汽车出口量前十的国家分别是,俄罗斯90.9万辆,墨西哥 41.5 万辆,比利时 21.7 万辆,澳大利亚 21.4 万辆,英国 21.4 万辆,沙特阿拉伯 21.3 万辆,菲律宾 17.2 万辆,泰国 16.9 万辆,阿联酋 15.9 万辆,西班牙 13.9 万辆。按地区来看的话,欧洲市场占中国汽车对外出口的38%,远超其他任何单一大洲,可见中国汽车正在得到全世界更多人的认可。', + fieldInfo: ['出口国家', '出口量'] + }, + { + text: '当然了,中国汽车出口世界第一,又不得不提议俄罗斯和墨西哥这两个国家可以说去年是把中国车买爆了。 203 年,中国对俄罗斯的汽车出口量从上一年度的 16 万辆暴增到了90.9万辆,增加了468%。在俄罗斯的新车市场中,第一名是俄罗斯品牌拉达,第二至第七名则全都是中国品牌,比如第二名是奇瑞金车,市场占有率11.2%。第三名是哈弗,新车,市场占有率10.6%。俄罗斯卖最好的新能源车也是来自中国的极客。目前中国汽车已经占据俄罗斯新车市场的51%,可以说是拿下了半壁江山。而对于中国而言,仅俄罗斯一个国家 203 年就贡献了中国汽车出口增量的42%,甚至有俄罗斯本土汽车经销商预测, 2024 年中国汽车可能占据俄罗斯新车份额的80%。', + fieldInfo: ['年份', '出口量', '占有率'] + }, + { + text: '有人说俄罗斯满爆中国汽车是因为欧美的贸易封锁,这也步无道理。 2013 年在俄罗斯的新车市场中,欧洲的市场份额从 18% 降到了4%,韩国从 16% 降到了6%,日本从 12% 降到了5%,和欧日韩都是对俄罗斯实行了限制出口国家,其中就包括了部分汽车,可以说中国汽车吃下的正是欧日韩在俄罗斯丢掉市场。', + fieldInfo: ['国家', '新市场份额', '旧市场份额'] + }, + { + text: '当然了,除了俄罗斯之外,其他国家也在买中国汽车,比如墨西哥。 2013 年,墨西哥所有销售汽车中有 25% 来自中国,而在 6 年前这个数字为0。澳大利亚也在不断买中国汽车,最受澳大利亚欢迎的中国汽车品牌是名爵,去年卖了 5.8 万辆。在新能源车市场,比亚迪则占据了澳大利亚的新能源汽车 14% 份额,位于第二名。', + fieldInfo: ['国家', '年份', '中国汽车占比'] + }, + { + text: '当然,这里也不得不提一下第一名,那就是特斯拉市场份额高达53%,在东南亚市场,中国车企业销量在 2013 年同样实现小幅上升,最典型的就是泰国,在泰国的新能源车市场,中国品牌占据了 80% 的份额,比如比亚迪的原 plus 就是泰国的新能源车爆款,那到底是什么原因让中国汽车爆卖呢?基本还可以总结为三方面原因,首先是全球疫情爆发,由于中国汽车的供应链完善,疫情期间仍能维持稳定生产,而日韩这些过去的出口大户受疫情影响,芯片、钢材、橡胶等关键原材料短缺,不仅汽车产能下降,而且成本升高,这就让中国汽车更具性价比。而随着中国国内新能源汽车市场越来越卷出海,成为不少中国车企的选择,比如比亚迪 2023 年进入全球 58 个国家和地区,出口汽车 24 万辆,是上一年度的 3.34 倍。在泰国新能源车市场,比亚迪单独占到了 40% 的市场份额,是名副其实的泰国新能源汽车销冠。而且中国新能源汽车并非只是具备成本优势,汽车与 AI 互联网融合的智能化更是中国车企的拿手好戏。从豪华配置到智能大屏,从外观设计到内饰比拼,这让中国新能源汽车的溢价能力明显变高。2019 年中国新能源汽车平均出口价格每量只有 5, 000 美元, 2022 年涨到了 2.2 万美元。比如比亚迪汉在欧洲发布时价格接近 50 万人民币,是国内售价的两倍多。在泰国、以色列、新西兰等多个国家,比亚迪也已经是新能源汽车的销售冠军。不过,中国汽车征服海外虽然是一部励志爽门,但其实有不少挑战。', + fieldInfo: ['品牌', '市场份额'] + }, + { + text: '其实中国汽车出海不禁让人想起曾经的中国摩托车出海。 2000 年前后,中国摩托车进军越南,一度占据了 80% 的越南市场份额,但不到三四年时间,却被日本摩托车打得片甲不留。如今日本摩托车在越南占据 95% 的份额,而中国摩托车百分之一都不到。曾经也有大量中国摩托车车企在越南建厂,但却形成了恶性竞争的关系,疯狂打价格战,导致服务和质量越来越差,越南的中国摩托车车企仿佛是飘在越南的。', + fieldInfo: ['时间', '摩托车品牌', '市场份额'] + }, + { + text: '每个中国制造品牌的背后都有一批优秀的零部件供应商,像汇川技术、恒力液压、先导智能、顺域光学、军胜电子这样的零部件企业也是中国制造的骄傲,只不过知名度无法媲美消费者直接接触的终端品牌。按照官方的口径,中国规模以上也就是年销售收入 2, 000 万以上的制造企业有 44.5 万家。至于中国一共有多少家制造业企业存在各种口径,从 300 多万家到近千万家不等。万德资讯给我的数据是,中国大约有 622 万家存续的制造业企业。海之在线是一家总部在上海,聚焦中间品贸易的数字化平台,连接着 70 万家工厂,他们给我的数据是,中国规模以下的中小微工厂大致有 400 万家。这期节目标题中的 400 万家沉默工厂处处记载于此。海志在线的创始人、 CEO 佘莹对我说,从平台看, 40% 的工厂规模不到 50 人,近 90% 的工厂不到 500 人,大部分工厂的年产值在数百万元到数千万元。如果和大企业比,你可以说他们就是一个个的小做法。如果走进去可能会看到老旧的机器上油漆斑驳,可以看到生产计划就用记号笔写在车间墙上挂着的白板上,甚至会发现用破洞的木板随意围搭起来的厕所,待客的茶水里则混杂着浓浓的机油味。但他们就是中国制造业毛细血管层面的供应链小节点,勤勤恳恳的维护设备、搞生产,他们最在意的是生存,是接到订单以及在满足客户之后能够完整的收到货款。', + fieldInfo: ['企业类型', '企业规模', '企业数量'] + }, + { + text: '有报道称,一些地方政府面临收入短缺,要求企业缴纳可追溯到 1990 年代的税单。这种紧缩政策在房地产市场寻找几步的时刻,会损害上信心和经济。高盛认为,中国中央政府可以通过加大对西方政府的财政支持来切断机房政府无紧缩所出现的负面溢出效应,那如同美国监管机构在次贷危机期间通过成为最后贷款人来切断金融危机的传播一样。关于出口和机产之间的分化,可以同中国的金属生产中得到证实啊。铝和其他废且金属的产量相比疫情之前上升了 20% 以上,而钢铁的产量下降了 5% 到10%。在房产方面,开发商越来越依赖银行融资, 5 月份对开发商的银行贷款同比增长了19%。而随着房地产销售的下滑,房贷和存款跟预付款的比例同比下降了 30% 到40%。高盛银行股票团队预计从 2024 年到 2026 年,房地产贷款将增加 4.5 万亿人民币,以完全期待收缩的房地产债券和设防的影子银行贷款。', + fieldInfo: ['时间', '金属种类', '产量变化'] + }, + { + text: '中国经济分化并不止于出口和房地产基础设施的固定资产投资。细分项显示,建立燃气和水的生产投资已同疫情前水平翻倍,远远超过了整体的基建的投资增长。因为中国政府首先优先考虑农源供用安全和脱碳。在零售销售当中, 5 月份代线销售商品同比增长13%,而餐饮销售仅增长5%,线下商品的销售保持在去年同期的水平。', + fieldInfo: ['经济领域', '同比增长'] + }, + { + text: '7月中旬将举行两场重要的政策会议,前者将专注于评估当前的经济状况,并为今年剩余时间制定周期性的政策安排。后者将专注于至少未来五年解决经济结构当中的重大改革议程。鉴于一季度的实际, g GPT 同比增长5.3%,而且去年基数较低,那么 G2 季度增长可能高于5%,政府的全年增长目标仍然在轨道上。', + fieldInfo: ['季度', '同比'] + }, + { + text: '高盛认为,政策执行者不会在 7 月份的首场会议上释放任何重大的刺激措施,宏观政策的证件可能大于维持当前立场和执行现有的政策。另一方面,鉴于 5 月份宣布的最后一批措施不及预期,可能存在引入更多期产宽松政策的可能性。在货币政策方面,资本外流的担忧和银行利润率的下降限制了央行降息的能力。高盛预计三季度将降息 25 个基减,以适应大量政府债券发行,并预计季四季度9月首次降息后会再降息 10 个期减。在财政政策方面,高盛预计政府债券的发行将在下半年显著增加,以完成年初发行缓慢的全年配额。除非增长急剧放缓,否则基建的投资不会加速太多。对于政府 3 月份公布的预算计划,高盛虽然预测中国的增强型的弹盛赤字从去年的 gdp 11.2% 会适度扩大到今年的11.9%,但由于今年出口强计可能会存在财政扩张不及预期的风险。信贷政策方面,正如央行行长6月 19 号陆家嘴论坛上所说,由于金融套利的虚假贷款和监管机构随后对金融系统中这种资金空转的打击,信贷增长与 GDP 增长之间的联系已经减弱。预计摄容总量的增长将同去年的 9.5% 放缓到今年的9%。在住房政策方面,4月的政治局会议表明,决策者希望严防房地产市场的尾部风险。由于地产价格和活动的持续下行,以及机房国企通过央行的贷款计划购买空池公寓的速度缓慢,高盛预计进一步削减房贷利率以刺激需求,同时为去库存提供更多的资金和效率的支持。在外汇政策方面,鉴于美元持续强势和资本外流的压力,高盛认为央行将在短期内保持美元对人民币汇率的稳定,三个月的高盛预测是7.3,因为外汇市决策者可以迎来抵消关税对出口负面影响的工具。 2018- 19 年的经验表明,如果特朗普赢得美国大选,而且正如他最近几个月所宣称的,会对中国实施正大的关税,那美元兑人民币可能会显著贬值。', + fieldInfo: ['降息时间', '降息基点', '原因'] + }, + { + text: 'Because Japan is one of the most import dependent countries in the world, importing over 90% of its energy and over 60% of its food, a weak yen means inflation has returned to Japan for the first time in decades. ', + fieldInfo: ['import ratio', 'import type'] + }, + { + text: ' For context, in the post war years, Japan experienced many decades of rapid economic growth in a period dubbed the Japanese Miracle. From 1955 to 1990, Japanese growth averaged 6.8% per year, and GDP multiplied eight times, with growth falling below 3% only once during the 1974 oil shock.', + fieldInfo: ['year', 'gdp growth rate'] + }, + { + text: `Anyway, this anxiety subsided in the 90s when Japan experienced an enormous financial crisis after a rapid appreciation in Japanese stock and real estate prices during the 80s. In 1990, the bubble burst and continue to burst for a while. In the decade after 1990, residential house prices fell by more than 50%, commercial property prices fell by something like 85%. And Japan's main stock index, the Nike 2,2,5 fell by about 75%. Japan's economy never really recovered and growth and inflation both remained close to zero until very recently.`, + fieldInfo: ['rate value', 'rate type'] + }, + { + text: `From 2016 until late last year. The Bank of Japan even began what's called yield curve control, which essentially involved buying up enough debt to guarantee that government borrowing costs wouldn't go above a certain level. Japan's ultra loose monetary policy came under pressure in 2022 when inflation started rising across the world. Usually, central banks raise interest rates, but the bank of Japan decided not to, both because inflation was relatively low in Japan, but also because thanks to its enormous debt burden, even a slight raise in interest rates would translate to a massive increase in debt servicing costs, especially for the Japanese government. Unfortunately, things have become more difficult as other central banks have raised rates, making their currencies relatively more attractive and sparking a decline in the yen. In the last year, the yen has fallen from about 130 to the dollar to a 34 year low of 160 to the dollar on Monday. Now the speed and severity of this decline presents a difficult dilemma for the bank of Japan because thanks to Japan's reliance on imports, it sparked significant inflation in essential items like food and energy. But they still don't want to raise rates for the reasons we've just mentioned earlier. This is why on Monday evening, instead of raising rates, the bank of Japan used billions of dollars worth of Japan's foreign exchange reserves to buy up the yen on the international market, artificially inflating its value. While this seems to have worked in the short term, as of Tuesday morning, the yen is now trading at nearer 155 to the dollar. It's both expensive and fundamentally unsustainable. Even if the bank of Japan has some of the largest foreign exchange reserves in the world. All in all, assuming the bank of Japan won't engage in significant rate hikes, this means that the yen is very much dependent on what goes on in the rest of the world. If inflation comes down and other central banks start cutting rates, then this will reduce some of the pressure on the yen. But if inflation turns out to be stickier than we'd like, which seems to be the case, then the divergence between the bank of Japan and other central banks will persist, which means more downward pressure on the yen. If this happens, then the bank of Japan won't be able to stave off the yen's decline with exchange reserves forever. And eventually, they'll have to choose a horn of their uncomfortable dilemma, either to just accept the yen's decline and all the inflation related political turmoil that comes with it all, raise rates and just hope that the world's most debt burdened economy can somehow deal with it.`, + fieldInfo: ['date', 'yen to dollar'] + }, + { + text: `Blanket is all over the news. Linkage is now more valuable than Zomato. Linkage reported over 2,300 for rupees and revenue. And then now speak about Zomato, they speak about blinking bigger than tomato right now with the valuation of roughly $13 million and a market share of 46%, it has disrupted India's 23,000 crore quick commerce industry, a company that Zomato acquired in 2022 to enter into quick commerce, but now has become more valuable, the Zomato's own food delivery business. In fact, the company 3 x its revenue from 800 crores to 23 crores and is expected to break even in the first quarter of Fi 2025.`, + fieldInfo: ['company', 'marker share', 'valuation'] + }, + { + text: `By the way, this is going to be detailed, so feel free to pause the video wherever you feel confused. First of all, let's take a realistic average order value of 600 rupees, which is very close to what most people usually order on blink it. If you look at the revenue side, which is the money that bind it earns here for themselves from each order is divided into three sources. The first one is warehousing services and marketplace commissions. This is basically the amount that suppliers are paying to blanket for showing and selling their products. And see on every order of 600 rupees, 11 to 13% is coming from suppliers, which is roughly 72 rupees.`, + fieldInfo: ['revenue source', 'revenue value', 'revenue ratio'] + }, + { + text: `Now the second part of the income of this order is the ads that come companies show on blanket. This is the price that brands pay to show their products above other products as you scroll the app. For example, brew might pay to show its coffee first when someone searches for a keyword like coffee, it's roughly 2.3 to 3.5%. In our case, let's take 3.5% and it will come down to 21 rupees.`, + fieldInfo: ['keyword', 'ad rate', 'cost'] + }, + { + text: `The next is customer fees, which includes your delivery fees, handling fees for packaging and delivering the food to your doorstep, and even additional fees like fees they charge you for having a small cut. This percentage comes at around three portion of the average order value and is roughly 18 rupees in our case. By the way, there are also other levers like membership plans or free delivery plans that these plan platforms try to sell you often like Zepto does it with their offering of zeptopass. But if we don't over complicate and dive much deeper into this, we see that in a nutshell, on an average order of 600 rupees, blanket owns roughly 110 rupees. This 110 rupees is known as a take rate, the share that blanket keeps for itself from an order.`, + fieldInfo: ['take rate', 'customer fees ratio'] + }, + { + text: `Now let's come down to the cost side. Even here you have four elements. The first one is the biggest one, which is the last mile delivery cost, which is the last step when the riders deliver the orders to you and cost about roughly 7% to blanket. And in our case, it would come down to 42 rupees. The next one is dark store mid mile and warehousing cost. This entire combination of cost comes down to about 6.5%. And in our case, it would be 39 rupees. The other variable cost, which includes packaging, washes, support, communication and payment charges are roughly 2%, which comes down to 12 rupees. And now the fourth and the last one is customer acquisition cost, which is the discount, the incentives and the offers they try to give you to make tempting these for you. This comes at about 0.2 to 0.3% at about 1.8 rupees. So if you subtract these two amounts, blink it on roughly 15 rupees from entire transaction. This 15 rupees is not the net profit, by the way, but the contributing profit. Now what is that? See, contributing profit is the profit that the company is earning by serving each order. And company considers only the variable expenses in this case, which is the expense that we have already discussed. And it does not mean net profit because there are so many fixed expenses that are not considered like expensive salary of tech folks, rent, insurance, depreciation, and all similar big sums of money.`, + fieldInfo: ['cost element', 'cost ratio', 'cost value'] + }, + { + text: `The answer to this is the dark stores, the 2,500 to 4,000 square feet big stores that are located in 1.5 to 3 kilometer radius near your homes to ensure super quick delivery. And by the way, these stores are super big. For example, if your nearest kirana shop has about 1,500 SKUs, these stores can have 4 x a number of excuse. In fact, a highly efficient dark store can do a better gross merchandise value per square foot than a highly organized supermarket like Dmart. So while a dark store or blanket can do a GMV of 90,000 rupees per square fit, Mart can only do a GMV of 47,000 rupees per square fit. But how does this work? See, these stores are like supermarkets, but have no Hawkins, which means that only rider can go and collect stuff from there. These stores have a lot of inventory that comes from Mother Warehouse store, which is located in the outskirts. So to give you context, for every 40 dark stores located in the city, there is always a mother warehouse, which is located at the outskirts or city. And that is more than 10 times big as a dark store, which is about 20,000 to 1 lax, 75,000 square feet big. It is super huge. And companies don't set dark stores everywhere, by the way. They are smartly set based on multiple parameters like average household income of the area, peak time traffic of the area, infrastructure structure of the area, and also the population density. Also, there's usually about a staff of 25 to 30 people who are working in three shifts in these dark stores who would take care of the packaging. And as we've discussed earlier as well in the video, that the operating cost for a dark store comes at about rupees 22 for each order. And if you want to understand this calculation better, we have put it here. So you can pause the video and look at this table.`, + fieldInfo: ['store type', 'store size', 'SKU', 'GMV', 'staff count'] + }, + { + text: `Now blanket has done a really solid job here as they have, right now, the highest number of dark stores with 451 stores in 27 cities compared to 450 stores of Insta margin, 25 cities, 30 of Zepto intensities and 350 stores of Big Basket in 35 cities. By the way, this is not something they built in a day because it was the first grocery app in the country, which started in 2014 as growers. So their team and their execution is way more experienced if you compare them with other competitors, and now they're just building on this and increasing their penetration throughout the country. By the way, they're mostly penetrated in north and east India, and 90% of the GMV comes from top paid cities. But as they enter south and other cities, this can be a huge opportunity for them as they already have an experience DNA running in the organization.`, + fieldInfo: ['company', 'stores number', 'cities number'] + }, + { + text: `Now coming down to the second insight, which is cracking high average order value. But why are we talking about AOVs? Average order value plays a big role in quick commerce because bigger the average order value, bigger is the contribution margin for the company, which means that delivering just a set of bananas or apples is less profitable for blanket. Then delivering a set of bananas, apples, onions, tomatoes and a packet of bread together. And blanket has the highest average order value if you compare it with all the comparators. And just look at the stark difference by yourself. For big Basket, the AOV is about 400 to 500 rupees. For Zepto and Instamar, it is around 450+. And for blanket Au UV is about staggering 6,35 rupees. This is something that is definitely giving them an edge in pulling one of the most important levers in the ecosystem. In fact, in the last quarter, this number was 523 rupees at the start of Q1 fi 23. It just shows the speed at which they are growing really fast, and they have done this really well through their amazing SKU strategy.`, + fieldInfo: ['company', 'AOV'] + }, + { + text: `Not talking about the third insight, new customer acquisition. See, blinkits market share has not been the highest forever. It was 32%2082. And in the same period, Instama's market share has fallen from 52%, while Zeptos has increased from 15 to 28%. And we had to talk about the elephant in the room, the Zomato Effect. See, Zomato is the biggest food delivery app that has more than hundred million active users every month on its app and a market share of more than 56%. When it comes to food delivery, these users are more than three ties what blanket has at the moment. So even getting 5% of Zomato's monthly active users as new customers could bring more than 33% rise to their current Mau base.`, + fieldInfo: ['company', 'marker share'] + }, + { + text: `Want to show you something cute little condo in Toronto's Harbor Front neighborhood, bustling part of the city. It goes on the market in the summer of 2022. The sellers put it up for $480,000. It didn't sell early. 2023, it's back on the market for 460 k. No luck later that year, posted again at 4,50 k. Still nothing. And a few months ago, the sellers tried again. At $430,000, no takers. This condo was sitting on the market for more than 400 days without a sale. Right now in Canada's biggest cities, there's a ton of condos like this struggling to sell. A condo sales in Toronto, for example, haven't been this low since the financial crisis in 2009.`, + fieldInfo: ['year', 'price'] + }, + { + text: `Let's compare what a condo investment in Toronto looked like in 2016 to today. So according to the Toronto Real Estate Board, the average price of a one bedroom condo back then in 2016 was about three hundred thousand dollars and with 2016 interest rates about 2.7%, that worked out to a mortgage payment of about eleven hundred dollars a month. Rent for the average one bedroom apartment at that time was about sixteen hundred and sixty dollars. Not bad from an investor point of view, even with, you know, maintenance fees, property taxes, that condo is essentially paying for itself while you build equity.`, + fieldInfo: ['average price', 'inerset rate', 'mortgage_payment', 'rent'] + }, + { + text: `Now what if you were to buy a one bedroom condo today in Toronto? That could cost you about 550 grand. So prices have very clearly gone up, but so have interest rates. The carrying costs on a property are far higher than they ever used to be. Well, not ever, but in recent memory. At current rates, 6.8%, maybe now you're paying more than $3,000 a month for your mortgage payment alone. Then you've got, you know, property taxes, maintenance fees and the average rent per unit like that, about 24 hundred dollars a month you're now paying out of.`, + fieldInfo: ['price', 'inerset rate', 'mortgage_payment', 'average rent'] + }, + { + text: `Now the renewals come in and you're losing a lot of money, but you've actually come to realize in the last 12 months the price of that condo has probably dropped about $40,000. So you're starting to enter into a state of actual fear.`, + fieldInfo: ['time period', 'price change'] + }, + { + text: `According to stats Cam, the average size of a new condo in Toronto has shrunk significantly over time. From 1981 to 1990, new condos were on average about 1,000 square feet. From 2016 to 2020, they were around 650 square feet or about 40% smaller. And if you ask anyone who lives in the downtown core right now, 650 square feet actually feels pretty big.`, + fieldInfo: ['time period', 'average size'] + }, + { + text: `Right now, for example, in Toronto and Vancouver, three quarters of larger condos, the ones, you know, maybe more suitable for a family built decades ago, those are being lived in by the people who own them. But for those much smaller condos built after 2016 with investors in mind, only about half are being lived in by owners. Remember that cute little studio that we showed you at the start that took 400 some days to sell. It was 330 square feet. Here's a two bedroom, 700 square foot unit in that same building. It's sold earlier this month on the first try in just 13 days. If we.`, + fieldInfo: ['days to cell', 'unit size', ''] + }, + { + text: `Back then in 2020,2021, even into the beginning of 2022, we saw these historic low interest rates and people were taking out loans then and taking out bigger loans, right? They go and buy a house that they wouldn't have been able to afford. 3% or 4%, but they could afford at 1.25%. They called.`, + fieldInfo: ['year', 'interest rate'] + }, + { + text: `No. So let's say there's a young couple in Ontario that bought an average priced house in 2019,$631,990. They put pretty standard down payments, down 20 percents, which leaves you with a mortgage size of about $500,000. Amortize the loan over 25 years, they take a five year fixed rate of 2.9%, which was also kind of standard at the time. That means they've been paying about, and I'm rounding to the nearest dollar here, 2,367 bucks for the past few years. But now that mortgage is up for renewal. Welcome to 2024. And the couple signs on to another fixed rate mortgage, but they have to do it at the bank's current rate, which is around 6%. That means their new monthly payment is, again, I'm rounding here, $3,075 a month or an extra 700 bucks a month. Right.`, + fieldInfo: ['year', 'fixed rate', 'monthly payment'] + }, + { + text: `Think of it this way. This circle is your $2,200 a month mortgage payment at a relatively low interest rate pending on the overall size of your mortgage, that might mean $900 of that payment is just servicing interest with the other 13 actually paying your loan back as the interest rate rises. Maybe now instead of 900 dollars a month, it's 20. One hundred dollars a month in interest. But your contract says your total payments stay the same, so you're still paying 22 dollars a month, meaning only 100 of those 22 hundred dollars are actually paying down your loan at that point. I have news for you. You're very close to being underwater, stuck in a perpetual state of paying down a loan where you're only barely paying down that loan. Welcome to lifelong debt, the time it will take to pay off his mortgage nearly doubled from.`, + fieldInfo: ['monthly payment', 'interset payment', 'principal payment'] + }, + { + text: `Collectively, we're just starting to approach the edge of this cliff. RBC estimates about $186 billion worth of mortgages are up for renewal in 2024. Next year, it'll be 350,15 billion. That's a ton of mortgage debt that was taken on at historically low interest rates by people who may or may not have been able to afford getting into the housing market otherwise.`, + fieldInfo: ['year', 'mortgage_debt'] + }, + { + text: `What would you do if one day your neighbor, who you've known for years, you see him building a bomb shelter? Would you think that guy's crazy or would you wonder what does he know that I don't? Turns out banks right now are building a bombshelter. Just this quarter, Canada's big six banks have set $4.3 billion aside to cover bad loans. That's almost double what they set aside in the first quarter of last year and more than 11 times what they set aside in the first quarter before that.`, + fieldInfo: ['quater', 'year', 'amount_set_aside'] + }, + { + text: `This is important. About 65% of them, 70% of them have not noticed any radical increase in their payment because their mortgage company sold a product where the payment did not go up when prime went up. Their payment did not go up when prime went up. That's the important part to understand, because it means you might have people ultimately paying more without even realizing it.`, + fieldInfo: ['percentage'] + }, + { + text: `Now, luckily, most economists do expect rates to keep dropping. According to that same RBC report, it still might not be enough to, quote, save this cohort to get them down to a more manageable monthly increase like 20%. They argue the bank of Canada would have to lower its prime rate way down to around point two five % by July 2026, something they admit is an unreasonable expectation.`, + fieldInfo: ['date', 'rate change', 'monthly_increase'] + }, + { + text: `The old rule of thumb in my day was you spend about a third of your income on housing. Now you'll hear anecdotal evidence, particularly in places like Vancouver, Toronto, where you'll hear 70 to 75% of income is being spent on housing. So in those cases, then if they have to reset at a higher interest rate, it's the house that's gonna go down first. So.`, + fieldInfo: ['location', 'income_spent_on_housing'] + }, + { + text: `In order to get the most accurate reading on the US housing market inventory situation, we need to consider both supply and demand. Supply in this case is the level of inventory for sale and demand is the current case of sales volume. If we start with sales volume, we can see the existing home market has a sales pace of roughly 3.7 million homes per year, while the new home market has a sales pace of 619,000 homes per year. Right off the bat, we can see how the existing home market is almost six times larger than the new construction market in terms of sales volume. Both of these markets, existing and new, have seen a huge reduction in sales volume or buyer demand since interest rates have increased, as affordability is out of reach for most people. If we take this annual sales pace and divided by 12, we can get an idea of the average sales pace per month. Of course, there are seasonal patterns, but if we normalize for those effects, we can see that the current monthly sales pace in the existing home market is roughly 309,000, and the new construction market is selling about 51,000 homes per month. At the peak of the housing boom during the pandemic, the existing hallmark had a sales pace of 500,000 units per month and the new construction market was selling nearly 90,000 units per month. Now that we have an idea of the current level of demand, we have to look at supply or the level of inventory for sale in the existing home market. There are currently 1.1 million homes for sale, one of the lowest on record. If we just look at inventory alone. In the new construction market, there are 479,000 units for sale, one of the highest levels on record, only surpassed by the housing bubble of 2007.`, + fieldInfo: ['market type', 'sale pace annual', 'sale pace monthly', 'sales_pace_peak_monthly', 'inventory'] + }, + { + text: `You can clearly see how there is nuance to the situation of US housing inventory, the best measure of US housing inventory takes into account both supply and demand and is called the month supply. In other words, how many months of inventory are available for the current pace of sales value. If we take the current level of inventory for both the existing hall market and the new hall market, and we divide it by the current monthly pace of sales. We can see how many months it would take to sell all the inventory at the current pace of sales in the existing home market, that month's supply figure or the inventory level divided by the sales volume, 3.7. In the new construction market, it is 9.3.`, + fieldInfo: ['market_type', 'month supply'] + }, + { + text: `Generally speaking, the 5.5 to 6.0 level is considered a balanced market where there is no significant upward or downward pressure on prices. When the month's supply level is below 5.5, that means there is very little inventory available for today's market conditions and prices generally rise. On the flip side, a high level of month's supply means there's too much inventory and prices must fall. The existing home market has a month supply of 3.7, which is very low, but it's been increasing since the absolute historic level of one point six in January 2022. Never in the history of the US housing market has the month's supply of existing homes been that low. This created a very unhealthy situation in the existing home market. The inventory situation in the existing hall market is still very tight, but it's now at the highest level since before for the pandemic. The new construction market is a completely different ballgame with a month supply at 9.3, super high and way above the balanced 6.0 level. There is way more detail to the situation in the new construction market that we'll uncover in just a moment. If we look at the total US housing market situation, both existing and new construction, the aggregate month supply figure has increased to 4.5. So yes, the total inventory situation is still very tight on a national level, but the level is rising and at the highest point since 2,015. The monthly numbers are volatile, so let's look at a yearly average to make things more clear. This shows the month's supply for the total US housing market by year. 2024 is a partial year, and the current level as of May 2024 is also noted in the chart. As of May 2024, the total month supply situation is 4.5, which it hasn't been since 2015. You can also see the four years where the total month supply was below 4.0, which is extremely tight. And you can also see the 2021 situation at 2.6, which was crazy unhealthy. One major point is that this current 4.5 level is the national average. But as we know, real estate is very regional. So this means that there are some markets that are near a month supply of 6 and feeling downward price pressure, while some markets are still down at 3 and seeing prices rise with multiple offers. The new home market with a month supply of 9.3 is way above the balance level of six point zero, and there are price cuts and discounts in that market.`, + fieldInfo: ['date', 'markey type', 'month supply'] + }, + { + text: `In June, the National Association of homebuilders reported that 29% of builders cut home prices with an average price reduction of 6%. And 61% of builders use sales incentives like mortgage rate ByteDance to boost sales. But we need to talk about the new hall market and the 9.3 month supply level in a bit more detail, because there is more than what meets BI in the new construction market. Currently, there are 479,000 units for sale in the new construction market and a current pace of sales of about 50 thousand per month. In the new home market, a home could be listed for sale when it's completed, under construction or not yet started. If we look at the percentage of inventory that is completed, we can see that of those 479,000 new home units for sale, Only 20% are completed, which means 80% are either under construction or not yet started.`, + fieldInfo: [ + 'builders cut prices percentage', + 'average price reduction', + 'builders use incentives percentage', + 'units for sale', + 'completed inventory percentage' + ] + }, + { + text: `The level of completed new home inventory for sale fell below 10% during the most acute part of the US housing shortage. Normally, in between 20% and 30% of new construction inventory is completed. During really bad downturns like 2008, builders were sitting on almost 50% completed inventory, which is what led to dramatic price cuts and big layoffs of construction crews. The level of completed inventory is now back into the normal range at 20%, and it's rising, which means that if we move towards 30%, price cuts will get more intense and construction crews will be at high risk of job losses. If we take the current 50,000 new home sales pace and divide that by the amount of completed new home inventory for sale. We can see that there's currently about 1.9 months of completed inventory for sale, which is getting past the average level and into the range consistent with recessions and job losses for construction crews. If the home builders have a lot of completed new home inventory for sale, they aren't going to apply for new building permits and build even more homes. And that's exactly what we're starting to see.`, + fieldInfo: ['period', 'completed_inventory_ratio'] + }, + { + text: `Homelessness has been rare since the reemergence of homelessness in the mid 1980s. Usually it's been people in their 20s and 30s and 40s, but now we're approaching close to 30% of the adult homeless population are people 55 and over.`, + fieldInfo: ['age group', 'percentage'] + }, + { + text: `Exports from China are rising fast and US officials are nervous about this gap. We're not gonna let China flood our market. Sound familiar? There has to be a level playing field for American companies competing in China. In the early 2 Chinese factories like this one pumped out clothes and flags and cars. The sticker prices were cheap. But there was another price to be paid, American jobs. Every single employee of this plant, we'll be out of work by January. 15 years and almost 6 million jobs later, economists are debating what price another wave of imports could exact from American workers. But two key differences between then and now may have a new effect on the US economy. Look at this line. Before 2001, American manufacturing employed over 17 million people, making toys, furniture, paper goods and much more. Then word began to circulate that China was joining the World Trade Organization. And here's what it did. Joining the WTO meant China faced fewer tariffs and restrictions from its trading partners, and the result was dubbed the China.`, + fieldInfo: ['year', 'jobs number'] + }, + { + text: `2.5 million Americans lost their jobs from 2000 to 2007. They're represented by the blue on this map. Look at this dark blue area here. That's Silicon Valley, where companies like Apple, HP and Cisco used to manufacture goods. After 2001, they moved most of their production to China, causing a 50+ percent drop in manufacturing jobs in the county, this other dark blue county, Cedar Rapids, Iowa, lost 46% of their manufacturing jobs, primarily in furniture and machinery. But this lighter blue region here was largely spared. It's called Auto Alley. The main reason it succeeded where, say, Silicon Valley's manufacturing failed, is due to investment from competitors like Japan.`, + fieldInfo: ['region', 'job_loss_percentage'] + }, + { + isEnglish: true, + text: 'Snap’s latest AR glasses aren’t its first hardware product. The company has a history of experimenting with hardware and has launched smart glasses under the brand name Spectacles. However, the company has struggled to make money from selling hardware. It first debuted a pair of smart glasses in 2016; the $130 device made it easy for users to capture short, first-person videos that they could post on Snapchat. However, the product failed, and the company had to write down $40 million due to losses from unsold Spectacles. Snap once again tried to sell new Spectacles smart glasses in 2019—this time a more premium version for $380—but that too didn’t take off. In 2021, it unveiled new glasses with advanced AR capabilities, but instead of selling them to consumers, the company sold the device to developers, hinting that the glasses were more of a prototype than an actual consumer product. Beyond glasses, Snap also tried to sell a flying drone for $230, but that device was abruptly discontinued after just a few months', + dataTable: [ + { + year: 2016, + product: 'Spectacles', + price: 130 + }, + { + year: 2019, + product: 'Spectacles (premium version)', + price: 380 + }, + { + year: 2021, + product: 'new glasses with AR', + price: null + }, + { + year: null, + product: 'flying drone', + price: 230 + } + ], + fieldInfo: [ + { + fieldName: 'year', + description: 'The year when the product was launched', + type: 'date', + dateGranularity: 'year' + }, + { + fieldName: 'product', + description: 'the name of product', + type: 'string' + }, + { + fieldName: 'price', + description: 'The price of the product', + type: 'numerical' + } + ] + } +]; + +export const capcutMockV2Data: any[] = [ + { + text: `富士康为什么突然被查?这对全国120万的富士康员工 有何影响?最近, 富士康在广东、江苏等地被税务稽查。与此同时呢, 自然资源部门 对富士康在河南、湖北等省市的用地 进行现场勘查。别小看这短短的一句话啊, 释放了两个信息, 一、是税务部门调查有没有偷税漏税。二是自然资源部门 调查土地的使用情况。要知道, 当年全国各地为了吸引富士康 使出浑身解数, 不仅帮富士康招人, 还有各种减免税, 甚至有些地方啊, 还给富士康 不能多说了啊, 按理说, 咱们给了富士康这么多优惠政策, 富士康应该感激才是啊! +可谁能想到, 老郭这是吃尽红利 翻脸不认人呐!他居然说这是在给大陆赏饭吃!富士康为啥敢如此傲慢呢? +先来看一组数据, 富士康位居财富世界500强第20位, 在中国企业中 仅次于国家电网、中石油、中石化 以及中国建筑集团。 +就连咱们熟知的宇宙第一大行 工商银行啊, 都排在富士康后面。 +富士康不仅财大气粗, 还跟全国各地啊深度绑定。 +目前 富士康在全国的工厂达到40多个, 总员工数超过了100万。 +所以很多人说 不能碰富士康啊, 万一富士康跑了该咋办? +富士康真的是大到不能碰了吗? +并不是。过去40年 我们之所以给富士康各种政策优惠, 不是因为富士康有多强, 而是因为富士康背后的苹果公司呀, 太过强大。 +没有苹果的订单, 富士康啊 连一毛钱都不值。 +过去我们扶持富士康, 那是希望打入苹果供应 链,希望苹果的零部件啊, 可以在中国生产, 在中国组装, 最后出口到全世界, 构建起一条啊 完整的电子信息产业链。 +可谁能想到, 从2019年开始, 苹果供应链开始大规模的去中国化, 中国大陆的供应占比 从巅峰时期的26%下降到如今的2.5%。 +按照苹果的如意算盘, 要想完成去中国化, 第一步呀, 就是先在越南和印度 建设一两座富士康工厂。 +第二步呢, 就是把中国供应商一点点踢出去, 换成海外的供应商。 +第三步,逐渐增加越南、 印度这些海外供应商的订单。 +第四步,也是最后的一步, 就是把中国大陆的富士康啊, 全部迁出去, 彻底完成去中国化。 +如今的苹果已经走完第二步了, 马上就要进行第三步了。 +可让他万万没想到的是, 华为啊,居然在今年9月起死回生了。 +华为的崛起 彻底打乱了苹果去中国化的节奏。 +还记得今年国庆黄金周吗? +华为上市仅仅一个月啊, 就把苹果在中国的市场份额 干到只剩17.4%。 +吓得哭客呀, 赶紧来中国亲自下场带货! +顾客为啥荒凉? +如今的中国是苹果全球第一大市场, 也是苹果全球最大的食物来源。 +吃着中国人的饭, 砸着中国人的碗, 只想在中国赚钱, 不想为中国做贡献。 +不仅不做贡献啊, 还一门心思向外转移产链, 这样的企业以及背后的代工厂, 你说凭啥还要给他特殊优待呢? +现在你明白 国家为啥要坚定支持华为了吗? +支持华为,就是在支持中国产业链, 只有华为链才能对抗苹果链。 +华为链呀, 就是中国链。关注4G实务分析,收。 +` + }, + { + text: `俄罗斯这个国家 真的是个非常神奇的存在啊, 说到政治军事, 没有人敢小瞧他, 他拥有全世界最大的国土面积 和最多的核弹头。 +但是同时呢, 一提到经济啊, 那似乎就没有俄罗斯什么事了。 +你看这俄罗斯哈, 在短短的半个世纪里面 就经历了什么政治动荡啊、 恶性通胀、 寡头黑帮、 高速发展、 战争、政府违约、 经济危机、 激进的改革等等等等。 +所以今天呢, 小林就来给大家一起梳理一下啊 这个错综复杂而又独一无二的 俄罗斯的经济。 +它到底是怎么回事? +我先声明一下啊, 一个国家的经济 确实是太错综复杂了, 所以呢,我只能挑我觉得比较重要 又有意思的地方来跟大家分享一下, 但是我觉得 重点应该基本上也都是重点。 +大家如果有什么自己的观点 或者想法, 也欢迎在评论区留言讨论。 +但是哈,咱话说好了, 留言区我们好好说话, 别动不动就打起来。 +还有就是最后啊, 我会有一个对俄罗斯经济的 一个简要 橄榄, 你要是也不感兴趣,都发生了什么, 就想看那个最经典的橄榄, 你可以直接划到最后, 但是我还是非常建议哈, 把前面这些东西都看一看, 毕竟能像小林这种 把这些复杂的东西又讲的清楚直白 又很有意思的人, 在这个世界上也不多了啊! +你也可以点个赞表示一下。 +说到俄罗斯经济啊, 咱必须得从前苏联说起。 +所以这块呢, 我就一丢丢带到历史, 帮大家刷新一下记忆。 +沙俄爆发民主革命, 迫使沙皇退位。 +之后,以 列宁为首的社会民主工党 推翻了临时政府。 +经过了5年的内战, 1922年苏联诞生。 +两年之后, 1924年这个人上台, 成为了前苏联的最高领导人, 他就是约瑟夫维萨里亚的诺维奇 斯大林。从此啊, 苏联就真正的开始 全面推行计划经济。 +计划经济哈, 就是说所有的经济资源 从分配、生产 甚至到一部分的消费 都是按照计划走。 +就比如说哈, 这点物资急缺了, 上面只要一指命令,哗, 所有的物资就都调过来。 +再比如说哈, 我们现在要开始发展重工业, 需要大家一起来建工厂, 然后上面一指命令, 这工人全就都过去, 他也不需要时间 等市场经济进行自我调节。 +其实这种模式哈, 在你方向非常明确 或者 要进行整体的大规模改革的情况下 是非常高效的。 +而当时的苏联呢, 就处于工业化和现代化 都严重不足的情况, 他就非常适合计划经济。 +于是1928年之后, 斯大林的前三个五年计划, 那可谓是效果拔群, 前苏联就迅速摇身一变, 从一个落后的农业国家 变成了一个工业大国。 +你看啊, 这使前苏联的人均GDP从20年到40年 翻了三倍多。 +而你想啊, 那时候1929年的美国 正在经历着大萧条, 整个西方哈都跟着遭殃。 +所以说啊, 这20年真的是在斯大林的带领下, 把前苏联的经济带上了一个新高度。 +虽然说哈,也有各种什么政治迫害、 大清洗,但是呢, 光从经济的角度上来说, 还是效果罢群的。 +这边呢,尝到了计划经济的甜头。 +另一边呢, 二战啊,苏联的国际地位又 得到了极大的提升, 可谓形势是一片大好, 又经历了一段时期的高速增长。 +不过慢慢的啊, 从60年代开始, 这个前苏联的经济结构 也越来越复杂, 经济发展也逐渐稳定, 那计划就不是那么好计划的了。 +你说 要没有市场这个无形的手在那调控 他,再厉害的政府 也不可能说 哪哪的经济 都给你计划的那么井井有条, 更何况啊高度集权的这种计划经济。 +他还有一个问题, 就他一般情况下都是领导指哪打哪, 这就导致了前苏联政府的贪腐呀 也日益严重, 企业的创新就会严重受损。 +前苏联就陷入了停滞时期。 +` + }, + { + text: `除非是一场巨大的危机, 不然的话 你根本没有办法去解释 此刻的股神巴菲特, 他到底在等待些什么。 +美国银行, 这是一家在西方世界, 甚至说全球金融行业里 都非常有声望、 位高权重的超级巨头。 +巴菲特则是从2011年开始 对这家公司进行了大手笔的投资。 +13年时间过去, 他一路买入, 从不卖出, 甚至说一口气把自己1/10的仓位 都压在了美国银行的身上。 +几乎所有人都觉得 美国的标志性金融大佬 买入美国标志性的金融巨头 这笔买卖天作之合。 +但是94岁的巴菲特 却把所有人都打了一个措手不及, 此时此刻, 他在狂卖美银。 +根据美国SEC官方披露啊, 光是在9月的4号、5号 还有6号这三天, 他就卖出了1870 是4万股的美国银行。 +而如果要把时间拉得更长一些的话, 那么从今年的7月份开始, 巴菲特就已经从美银的身上 套现了将近70亿的美元。 +什么概念? +500亿的人民币。 +这笔钱对于巴菲特巴老爷子来说 也许不算太多, 但你要知道, 上个月 他不计成本的抛售苹果公司, 就已经把全球金融市场吓死 魂飞魄散。 +当时啊,他在毫无征兆 没有任何预告的情况下, 直接把苹果的仓位砍掉了50%。 +说真的,在我们金融行业当中啊, 甭管你干了多久, 也没有人见过这样的场。 +甚至就连美国的华尔街 现在也纷纷开始了议论, 说抛售苹果 还有美英这样的常见股票, 根本就不是巴菲特的风格。 +看到这你肯定会以为啊, 这是他年事已高退出江湖的 前兆。就像是曾经的地主一样, 每到过年就要颗粒归仓, 清算一波自己的家底。 +但你知道吗? +在过去的2023年, 巴菲特依靠投资定数了6900个亿, 而且还在年初正式的宣布了接班人, 规划之清晰, 战略之稳定, 看不见任何散场的。 +而同时呢, 全世界的金融机构、 各大投行的交易员 又眼睁睁的啊 看着他手里的现金累的跟山一样高。 +截止到目前 已经有差不多3000亿的。 +哪怕你再不关心经济, 也应该思考了, 巴菲特现在到底在等待什么? +上一次 他手里持有如此高比例的现金, 还得回忆到2005年。 +而在之后的没多久, 美国就爆发了次贷危机, 他顺势抄了一波大底。 +夕阳之所以耀眼, 是因为牺牲了整个白天 所有的光芒。 +而94岁的巴菲特, 此刻完全有可能啊, 正在屏息等待, 准备挥出他光荣山崖里最后一棒! +` + }, + { + text: `这个菲律宾怎么回事啊? +双倍差战,五渣, 回回碰瓷, 次次灰头土脸, 这有完没完啊, 这人啊,那么好了, 这货到底是个什么样的国家? +这么做图什么? +谁在背后给他撑腰? +今天我们从经济的角度 来给大家讲讲菲律宾, 三个词来概括一下菲律宾, 那就是美国舔狗、 寡头经济和菲佣帝国 对美国爱的深沉。 +一度甘当美国殖民地, 不想独立, 甚至想加入美国成为人家一个州, 奈何美上百个门阀家族轮流坐庄, 把持政权, 断经济, 把曾经的亚洲第二富国祸祸 成了亚洲最穷的国家之一。 +而另外支棱起菲律宾经济的 不是什么高科技、工业、 金融业, 而是遍布全球的雇佣和劳工。 +总之横看竖看就是有点挫呀, 人是怎么变成今天这个样子呢? +简单来说呢, 就是先天条件一般, 还总想走捷径 哈哈哈。这个国家,从地图上来看啊, 挺有意思的, 由7000多个岛来组成 七零八落, 很难大规模连成片的发展, 于是很长时间呢, 人家都没有建成统一的国家, 而是各个岛上的家族部落啊, 各管各的。 +直到16世纪啊,迈之伦转悠到这了, 带着西班牙殖民者 征服了这,菲律宾呢, 才正式建了国。 +接着人又相继被美国殖民 日本占领, 再被美国收回, 而那些岛上的大家族啊, 也成了殖民代理人。 +那这个过程啊, 美国的影响是最大的。 +人,一边在这搞建设、 搞教育,让菲律宾 成了亚洲最早 走上工业化道路的国家之一。 +一边呢, 又残酷的镇压菲律宾的民族主义, 扶持清美势力。 +那结果 就是,菲律宾的经济是发展起来了, 可是完全依赖美国。 +而看似有了国家政权, 其实硬骨头几乎都被打没了。 +那情况有多夸张啊? +1929年美国经济大萧条, 没精力管菲律宾了, 想甩手啊, 让人独立得了, 这菲律宾人反而不干了, 说怎么的, 霍霍够我了, 翻脸不认人了是吧? +想分手啊, 没那么容易。 +于是两边各种谈条件 扯皮,直到1934年才谈妥了。 +美国接着扶持菲律宾, 10年之后再让菲律宾独立。 +后来呢, 人民意义上确实也是独立了, 但是加入美国的心啊, 他一直没死。 +上世纪60年代, 就有菲律宾的国会议员呢, 就发起入美运动, 要让菲律宾加入美国, 甚至呢,还说可以靠人多优势啊, 选菲律宾人当美国总统。 +而这类运动啊, 断断续续到现在都还有, 那场面 大概就是美国,我叫你一声爸爸, 你敢应吗? +可美国呢? +大家看到了啊, 看到了是他主动啊, 跟我没关系啊。 +其实1946年独立之后的菲律宾啊, 经济情况一度非常好, 工业基础 是完全继承美国殖民时期的遗产, 经济贸易呢 也几乎完全适合美国的单边贸易。 +而50年代之后, 朝鲜战争和越南战争先后爆发, 菲律宾凭借地理优势啊, 拿下了大量的美军订单, 这生意红火呀, 这也让菲律宾的经济坐上了火箭。 +1960年,菲律宾GDP啊,是排全球第20。 +>而放眼亚洲, 除了日本几乎没有对手, 而人均GDP 甚至一度都是我们的3倍之多。 +人家首都马尼拉 人送外号是亚洲小纽约, 甚至一度有机构预测说, 50年之后, 菲律宾将会成为世界第十大强国。 +换句话来说, 人能跟法国、 意大利这种老牌资本主义国家 坐在一张桌子上吃饭, 好家伙呀! +啊!那现在我们听起来 感觉跟科幻故事一样, 因为不用50年, 你看看现在 人已经凉透了。 +全亚洲最穷的国家之一, 泰国、马来西亚都能甩他几条街。 +为什么会变成这样呢? +就是因为菲律宾大家族门阀遍地, 菲律宾从被殖民到老大 不乐意的独立, 这就相当于什么呀, 殖民的走了, 世家大族们呢, 继续接力统治。 +比如在1987年的菲律宾国会, 总共200个众议员, 其中有130个是来自于大家族的, 另外还有39个呢, 跟大家族还是沾亲带故的。 +这些家族门阀呀, 各种资源在手, 那还不利用特许经营权、 垄断权、 免税权等等这种各种特权大捞特捞, 奉旨发财呀。 +而一马当先呢, 就是菲律宾现任总统 小马克斯的老爸 老马克斯, 这也是菲律宾的前总统。 +这位老马的形式风格 就是从政界到商界 都塞满了自己人。 +在菲律宾的任何生意 都要先给老马家族10%的好, 而所以人送外号10%先生。 +最终 这个老马因为做的实在太过分的, 吃相太难堪了, 把其他大家族都得罪光了, 不得不带着上百亿美元资产 逃到了美国。 +而留下的菲律宾呢, 已经成了 外债高达265亿美元的穷光蛋国家。 +为什么会这样? +因为相比贪腐家族门法,垄断经济 最要命的问题是让菲律宾走上了趣 工业化的, 把美国留的家底都给败光了。 +毕竟啊,你想啊, 只要垄断必需品 他就能躺着赚, 干嘛还要搞什么苦哈哈的 什么制造业高科技啊。 +所以你就会发现, 菲律宾的工业化进程 在上世纪60年代之后就卡死不动了。 +同样是和美国经济关系密切的日韩, 累死累活先从做衣服、做鞋子干起, 积累资本, 然后产业升级 发展高精尖的时候, 菲律宾反而从亚洲第二大工业国, 慢慢 先是被新马泰这样的邻居给超越, 接着又倒退成了农业国。 +然后呢,又随着全球贸易自由化, 叠加了拉美危机、 亚洲金融危机 等等几波全球经济动荡的冲击, 菲律宾那是全面溃败啊。 +低端制造业丧失竞争力, 高端制造完全没升级。 +看来看去, 最后 人家只能搞搞轻松好赚钱的服务业。 +2015年的菲律宾的农业和工业 占GDP的份额 分别从1980年代超过20%和40, 掉到了只有10%和33%。 +而由于去工业化太早了, 就算是人家搞服务业, 也搞不出什么高附加值的服务业, 基本上只能搞搞旅游啊、 休闲等等低端服务。 +这就是今天我们看到菲律宾的样子。 +2022年菲律宾的GDP总量是4000亿美元出头, 什么概念呢? +还没咱们中国的一个零头高, 而人均收入是在1200-1800人民币左右, 这是亚洲最穷的国家之一, 同时呢,贫富差距特别巨大。 +如果说你站在今天的菲律宾首都 马尼拉的市中心里面, 就会觉得,哎, 跟咱们北上广好像没什么两样, 高楼林立, 车水马龙, 房价也得四五万一平往上走, 而一街之隔的是一座座垃圾山 以及上百万人居住的贫民窟。 +这贫民窟啊, 几千块钱 就可以买走一个女孩做老婆。 +大家把从垃圾堆里面 捡来的吃的东西 洗一洗,重新加热 就成了。菲律宾的特产 叫派派。这叫什么呀? +富者田连阡陌, 贫者无立锥之地。 +而因为工业、农业拉垮人, 服务业又没有办法提供大量的就业, 大量普通菲律宾人呢, 想混口饭吃就只能出国打工。 +这又诞生了菲律宾的另一个奇观。 +因为早年美国人的介入管理啊, 菲律宾人的英语都不错啊, 服务意识也很强, 直接就把菲佣 干成了菲律宾的支柱产业之一。 +光去年菲律宾的海外劳工 就赚了372亿美元的外汇, 这占到了人家经济总量的8.5%, 这个比例什么概念? +去年中国汽车超越了房地产, 成了中国经济第一支柱, 占的比例也就差不多10%啊, 这就是目前菲律宾的经济现状。 +所以你就能够理解, 为什么每当全球经济环境下,行 人不会去努力奋斗扭转国运, 而是习惯性靠走捷径来解决问题。 +比如频频碰瓷东方大国, 试图向自己精神上的父亲那投名状。 +那为什么 人连像样的大船都造不出来, 每次碰瓷还都是小破渔船出卖。 +用今天的话说, 这纯纯的又菜又爱闹。 +可用2000年前的韩非的总结 则是,国小而不储卑, 利少而不畏强, 无礼而武大林, 贪鄙而拙骄。` + }, + { + text: `娃哈哈又一次站上风口浪尖了。 +这次是接班人发生变化了。 +刚刚去世没多久, 也就是娃哈哈创始人钟老的女儿 宋富丽 突然公开提交了一份辞职信。 +信的内容。大概我们总结一下啊, 就是我爸去世以后, 娃哈哈部分股东就质疑, 由我来接班掌管娃哈哈是不合理的, 这活我干不下去了, 所以 我要辞去副董事长和总经理的职。 +这事一出, 问题很多的小明就表示说,哎呦, 有那味了, 先帝驾崩, 老臣和新王 有些能相辅相成, 有些却是有你陪我呀。 +哈哈哈,假人呐。 +不光是这样, 娃哈哈 远远没有女神副业这么简单呢。 +你得知道这公司的真正老板是谁? +股东都是谁啊? +娃哈哈 它并不是一家纯粹的民营企业, 它是一家国企改制而来的 混合所有制企业。 +简单来讲, 那就是既是有国有股东 也有民营股。 +怎么回事呢? +这公司 不是宗老个人直接创立的企业, 当年前身 是 浙江杭州上城区的一家校办企业 的经销部, 算是地方国资企业吧。 +宗老当时是那公司里面的员工啊。 +在1987年,42岁的宗庆后呢, 是以职工的身份 承包了这家校办企业, 获得了完全独立的经营权。 +后来呢,给这企业再取名为娃哈哈。 +接着,大家都知道了, 做大做强, 再创辉煌, 一步一步 把这家曾经经营困难的校办企业 办成了全国V百强。 +对娃哈哈有再造之功的宗老啊, 他的身份既不是娃哈哈的老板, 其当年手上也没有一丁点的股份, 毕竟啊,只是承包嘛, 说白了这公司又不是你的。 +而这个转变呢, 就是在2000年, 在那一年, 娃哈哈完成了改制, 也就是这家国资企业决定啊, 让出一部分股东给员工, 大家伙,哥几个量力掏钱买股份, 为的就是什么, 大家都当股东, 那可不就更能激发干劲了吗? +宗庆后自然是首当其冲。 +而之后 哇哈哈的股权就一分为三了, 国资占一部分, 中金后自己占一部分, 然后员工又占一部分。 +那现在最新的股东结构是什么呀? +杭州国资委占股百分之46, 宗亲后占股29.4%, 员工占股24.6%。 +这看上去好像这终老股份不多 还不到30%, 可是员工们跟他几乎是一条心啊啊, 几十年风雨同舟, 那是一致行动人, 这两边加一块 占股有54%。 +所以说 当年宗庆后虽然不是大股东, 但却始终是哇哈的实际控制, 看上去一切是不是都挺完美的呀? +啊,但实际上也有隐患, 创一代的强人治理跟人格魅力 在去世之后往往会留下真空。 +说白了,对于那老员工来说, 当年我认你, 宗庆后,我跟你, 我服你,但是你走了, 你家孩子那就另错了。 +一方面呢, 是啊,宗老去世之后, 这宗复利 还没有正式继承 宗老在娃哈哈的股份, 他的身份也一直是副董事长、总经理。 +接管娃哈哈 暂时从法律上来讲 还没有依据, 而且哪怕他后面继承了, 还得获得员工持股会的认可 以及国资股东的批准, 但这不重要啊。 +另一方面, 东富力进入到这, 哇哈哈,仿佛感觉跟这家公司啊, 他有代沟啊, 而且在处理跟老员工的关系上呢, 似乎也一直是他的短板。 +你看这小 宗什么学历啊, 海外留学归来, 性格跟作风呢, 相对来讲更加直接。 +而宗老是什么? +为人更加传统, 更加讲究人情。 +我举几个例子啊, 比如宗老曾经就表态说, 咱们娃哈哈呀, 不缺钱,没有上市的必要。 +而宗富利呢, 却公开唱反调 说娃哈哈要上市很正常, 只有跟资本市场结合才能走的更远。 +再比如啊, 宗富利对内是铁腕管理啊, 如果说你没有完成任务, 可以直接开除, 丝毫不讲情面, 我管你是不是老员工, 而宗老呢, 讲究的是用人质、 聚人心,甚至呢, 还会再偷偷的把这些老员工啊 再请回来。 +但是你要是从商业 或者说管理层面单独来讲, 你很难就说 这小宗做的就一定有问题, 老宗就做的一定没毛病, 而这问题的核心其实是什么呀? +娃哈哈,如果说是你宗馥利创立的, 那就是你宗馥利做的对。 +而更重要的一点, 那就是在经营的业绩层。 +这小宗早年呢, 做了一系列的尝试, 效果只能说是一般般。 +21年底,这小宗宗富力 升任娃哈哈的副董事长兼总经理, 同时宣布推出了20多款新品。 +可结果呢? +整个22年呢, 娃哈哈的总营收是512亿, 比21年还下跌了7个亿。 +这是什么呀? +一顿操作猛于虎, 一看还在原地杵啊! +你不能说综合力不努力, 抬头看看全球这几年大环境, 你说他真的是有点生不逢时吧? +虽然不算准确, 但也有点影响, 但只不过出了问题 就一定需要有人去负责。 +老宗在的时候, 也许可以给小宗不断试错的机会, 而那些开朝老臣们呢, 就算有点想法,也不方便明着撕破脸, 而现在 谁还能站在小宗身后来给他善后? +>当然了,无论如何啊, 都希望娃哈哈这个民族品牌 能够好好的, 毕竟啊,那是包括我在内 几代人童年的回忆啊!` + }, + { + text: `你敢信吗? +特朗普给国货来了一波实力带货。 +上个月啊, 特朗普跟马斯克 可以说是俩全球顶流的男人 连线直播, 结果有眼见的网友就发现说,哎, 特朗普手机下面垫的这个充电宝 好像是中国品牌安克的, 你看看,工作归工作, 这个MADE in China才是生活。 +就这么个小小的细节啊, 让安克的股价在被发现的一瞬间 就跳涨了3%。 +安克的客服都说了, 好多人都来咨询这个充电宝, 安克也非常机智的 在这个产品描述里 加上了一个懂王同款。 +>不得不说啊, 特朗普这个带货实力确实不一般。 +安克这个品牌啊, 可以说是一个隐藏的巨头, 别看它就是卖卖充电宝啊、 充电线这些小配件, 但它 在中国全球化品牌50强的榜单里边 能排到第16, 仅次于亚迪, 绝对属于那种低调的行业隐形冠军。 +安克是2011年 由一个前谷歌工程师杨萌成立的, 那时候 深圳华强北正好有一波出海潮, 国内市场太卷, 加上阳萌又有海外背景, 所以他第一步就另辟蹊径, 选择跳过国内市场, 直接冲击海外。 +想利用中国的供应链去打海外市场, 这个思路 我们现在可能感觉习以为常了, 但放在当时 还是挺大胆的。 +而这招专攻海外, 也直接让安克抱上了两条大腿, 这第一条大腿就是苹果。 +2011年左右, 正好是智能手机加速普及, 但这个官方的配件吧, 大家都懂, 太贵了。它大部分平替的配件呢, 倒是便宜, 但质量就一般般。 +哎,安克他就瞄准了这个市场, 专门给苹果做高质量的 配件。 +他很聪明的一点哈, 就是他会盯着iPhone去宣传, 紧跟着苹果蹭流量。 +iPhone在哪打广告, 或者有人在哪搜iPhone相关的关键词, 哎,安克就把广告打在哪, 你前脚刚看完iPhone, 后脚安克就弹出来了。 +感兴趣iPhone手机, 我这有配件, 还物美价廉。 +当然哈,安克这产品确实不错, 颜值也很高, 慢慢呢就拿下了一批苹果用户, 而他的第二条大腿就是亚马逊。 +安克在非常早期就入驻了亚马逊, 当时亚马逊的排序机制 主要就是看销量和评价。 +安克呢, 就把广告都导到亚马逊去成交, 积累了非常好的销售数据, 同时用户也很满意, 很快就成为了亚马逊 消费电子里的王牌卖家。 +同类产品里, 它的市场份额可以达到30%。 +而后来到2020年的时候, 又吹来两股风, 让安克直接起飞。 +一个就是 疫情,让美国人也开始习惯网购了, 线上购物的需求大大增加, 这就让非常擅长线上营销的安克销量跟着大涨。 +而另一股风呢? +哎,还是苹果, 苹果不是从iPhone 12开始 就不送充电器了吗? +这就让他把一部分业务 拱手又让给了安克, 这也让安克即使这两年 还能实现百分之三四十的增长, 成为了 可以说是配件品牌出海的标杆。 +所以你看最近这几年 品牌出海已经不光是汽车啊、手机啊、 家电这些大品牌的趋势, 类似安克这种细分领域的自主品牌、 新兴品牌 也掀起了国货出海的一股浪潮。 +前两天我去上海,那外滩大会 就看到了非常多新奇的中国 出海好货, 有那种自主设计师设计的鞋呀、 衣服呀、椅子这种日常消费品, 还有很多非常新颖的, 像智能猫砂盆啊, 纸牌屋同款的划船机啊, 超轻钛合金的伊拜克 三防固态硬盘等等, 这些 其实都是比较细分领域的行业冠军, 不管是从技术质量 还是那个设计的精致度, 你看完感觉还真挺震撼。 +到现在啊, 在亚马逊的美、英、日、法等等站点, 中国卖家的比例都已经超过了50%。 +同时呢, 这些出海的品牌也更注重本土化、 多元化和品牌化。 +比如像安克 最开始是靠着亚马逊, 但慢慢也延伸到了阿里express、 ebay等等, 现在也开始有了自己的独立站, 同时在线下拓展渠道。 +根据万里汇2024年上半年的数据啊, 在平台上改走品牌化道路的卖家 同比暴涨了138%, 他们也更注重 在本地区设立主体运营, 打通供应链等等。 +你像这些品牌卖家, 他在出海的过程当中 经常会遇到一个问题, 其实就是金融上的, 比如说跨境支付啊, 外汇的收付啊等等, 所以就会有一些 这样的跨境金融管理工具, 比如蚂蚁旗下的万里汇, 假设你想把货卖到欧美、 东南亚等等等很多国家, 那你可能会需要,哎, 我亚马逊开一个,户 Lazada开一个, TikTok shop开一个, 然后每个平台都得单独认证, 什么美元、欧元、 印度卢比都得单独管理 是吧?当时就头大, 所以呢, 他们就会用万里汇这样一个账户, 链接130多个 涵盖了几乎所有 主流的跨境电商平台, 就可以在像亚马逊、shein、沃尔玛 TikTok等等的这些平台收付款, 还能一键完成平台的认证啊、 合规啊等等, 包括很多品牌独立站, 它也能支持全球200多个国家地区 30多个币种的收款, 还有近百种币种的付款。 +而且哈,这个万里汇账户 它还是一个出海的资金管理中心。 +怎么讲呢, 你像理财贷款, 还有一些外汇的避险工具, 包括应急的资金周转等等, 这些金融功能也有。 +就好像有一个非常懂出海的CFO 给你提供金融支持, 包括资源对接, 这样卖家就可以专注在把货给做好、 卖好, 让这些出海的国货可以走的更稳。` + }, + { + text: `哪个国家 印出了这张100万亿元的钞票? +我跟你说, 他的通货膨胀可以说是世界闻名, 从2000年开始 通胀就没下过三位数, 而伴随着这个恶性通胀的 其实就是金元对美元的急速贬值。 +98年的时候, 一美元还能兑24津巴布韦元, 到06年就贬值到1美元兑10万金元。 +这津巴布韦政府一看, 对吧?这0也太多了, 干脆咱就抹掉3个0, 定义一个新的津巴布韦元 叫ZWN啊, 他原来那个货币叫ZWD, 这样一美元就兑100金元了, 对吧?你看 多聪明。结果 津巴布韦这边 没止住恶性的通货膨胀, 这金元贬值的速度就越来越快。 +一年后,07年4月的时候 又跌到了一美元兑3万津巴布韦元, 年底的时候 又变成一美元兑200万金元, 之后每个月都在狂泻, 半年之后 就出现了那张5000亿金元的钞票。 +津巴布韦政府一看, 这0又太多了 对吧?老办法 再抹0,这次直接抹掉10个0, 就是除以100亿, 然后这新的货币呢, 就叫做DWR。 +好吧,这个时候啊, 津巴布韦通过膨胀 据估算已经飙升到了 百分之九乘以10的22次方, 那外汇市场可想而知。 +到半年之后, 就09年初的时候, 它又印出来那张举世闻名的 100万亿金元的钞票。 +不过你看着这么多万亿, 最后其实也就值不到0.4美元, 那央行说好 咱再去要12个0 再除以1万亿啊, 这个新的货币就叫ZWL。 +你看,短短三年里, 津巴布韦政府已经砍掉了25个零, 到最后这金元已经完全没有信用了。 +你想你这政府整天这么砍零,然 后推出新货币, 到最后可能这26个字母都不够你用。 +无奈之下, 政府被迫放弃金鱼,哎, 用欧元美元, 这才止住了国内的恶性膨胀。 +不过最近哈,刚缓过来, 1.19年的时候, 津巴布韦又火奋起来, 推出了自己的货币, 通胀又飙到三位数。 +然后今年4月份, 他就又又又推出自己新货币, 叫ZWG津巴布韦金, 这回号称是有贵金属倍数, 你就说这津巴布韦它乱不乱? +通过这个极端的例子啊, 你其实非常容易看出来, 通货膨胀跟外汇之间的关系。 +物价,它对汇率的影响最底层, 但同时 也可能会非常的缓慢的隐形。 +所以你如果一般看 那种比较主流的货币啊, 就比如说美元 过去50年通过膨胀跟汇率的对比, 只有80年代美国高速通胀的时期, 你才能非常明显的看到富相关。 +从90年代之后 就没有什么特别明显的相关性, 这为什么啊? +就是因为像美元、欧元、日元, 包括人民币, 他大部分的时间通胀都是在10%以下, 这个区间叫轻微的波动。 +你要不是放到像什么津巴布韦、 委内瑞拉、 土耳其这种 通胀一下就飙到超过50%的 这些国家, 一般看起来啊 可能都不会那么明显。` + }, + { + text: `国产芯片终于迎来重大突破了。 +说两个好消息, 第一, 国产光刻机已经开始量产推广了。 +这是工信部公开的数据, 差不多相当于阿斯麦公司的1460K, 可以生产65纳米级别的芯片。 +虽然制程不是很先进, 但是它的重要意义 在于核心零部件国产化 被西方卡脖子。 +用官方的话术来说, 这是事关综合国力 和国家安全的国之重器。 +到今天,全国上下 其实都已经达成了一项共识, 就是 我们不能再对外资抱有任何幻想。 +芯片产业链国产化势在必行。 +当然,要实现这么宏大的目标, 不仅需要国家支持, 更需要企业参与。 +这里就要讲到第二个好消息了, 2024年9月20日, 由长城汽车牵头 联合开发的车规级MCU芯片紫金M100 已经全部完成并成功点亮。 +光看这条消息, 很多人可能体会不到 这颗芯片的重要意义。 +说几个数据吧, 2023年,中国新能源汽车产量 达到了958.7万辆, 然而 我们的汽车芯片自给率却不到10%。 +这其中像IGBT这类功率芯片 国产率大概有35%, 但像紫金M100这种 难度更大的MCU芯片 自给率却只有10%。 +这就意味着 中国的汽车芯片市场 绝大部分营收和利润 都被外国企业拿走了。 +而且我们的汽车产业发展 也会随时受到外人的限制。 +比如2021年 西方国家的供应链危机 引发了一轮芯片荒, 导致中国汽车减产了198.2万辆。 +所以长城这颗国产自研的紫荆M100 不仅是国内芯片产业链的重大突破, 也是中国汽车产业打破垄断、 实现芯片自由 的关键一步。 +更重要的是, 这颗芯片的国产化程度非常高, 从硅知识产权的获取 到精源制造、封装测试 各个核心环节都在国内完成, 这样就能大幅度降低 被国外卡脖子的风险。 +而且这还只是个开始。 +这次公布的紫荆M100 会首先应用在X55大灯控制器平台, 计划5年上车量不低于250万辆, 今后 还会拓展到空调抬头显示等等模块。 +未来还会推出紫荆M200和M300系列, 主要应用在动力、底盘系统, 甚至 还包括汽车最核心的中央处理器 紫荆S300等。 +到长城汽车完成了这套芯片矩阵, 再加上智能驾驶方面 开启全国体验的长城全场景。NOA, 在智能座舱领域相当亮眼 的coffee OS3的全新升级, 这足以让它在智能化时代的竞争中 立于不败之地。 +事实上,长城在这些技术上的投入 已经获得了非常不错的回报。 +比如说今年9月上旬, 全新魏牌阑珊在6座7座SUV排行榜中 以1741辆的销量拿下周榜。 +还有长城汽车 今年的季度盈利和营收 双双超过预期, 直接带动最近的长城股价大幅上涨。 +这就告诉我们一个道理, 国内车企必须死磕技术, 为消费者带来好产品, 才能获得更好的业绩 和更长远的发展。 +这次推出的芯片和光刻机 可能不是行业里最先进的, 也不能一步到位完全取代西方技术。 +我们需要正视差距, 尊重事实。 +我们也需要更多的企业像长城一样, 勇于踏出自主研发的第一步。` + }, + { + text: `当然了,除了俄罗斯之外,其他国家也在买中国汽车,比如墨西哥。 2013 年,墨西哥所有销售汽车中有 25% 来自中国,而在 6 年前这个数字为0。澳大利亚也在不断买中国汽车,最受澳大利亚欢迎的中国汽车品牌是名爵,去年卖了 5.8 万辆。在新能源车市场,比亚迪则占据了澳大利亚的新能源汽车 14% 份额,位于第二名。当然,这里也不得不提一下第一名,那就是特斯拉市场份额高达53%,在东南亚市场,中国车企业销量在 2013 年同样实现小幅上升,最典型的就是泰国,在泰国的新能源车市场,中国品牌占据了 80% 的份额,比如比亚迪的原 plus 就是泰国的新能源车爆款,那到底是什么原因让中国汽车爆卖呢?基本还可以总结为三方面原因,首先是全球疫情爆发,由于中国汽车的供应链完善,疫情期间仍能维持稳定生产,而日韩这些过去的出口大户受疫情影响,芯片、钢材、橡胶等关键原材料短缺,不仅汽车产能下降,而且成本升高,这就让中国汽车更具性价比。而随着中国国内新能源汽车市场越来越卷出海,成为不少中国车企的选择,比如比亚迪 2023 年进入全球 58 个国家和地区,出口汽车 24 万辆,是上一年度的 3.34 倍。在泰国新能源车市场,比亚迪单独占到了 40% 的市场份额,是名副其实的泰国新能源汽车销冠。而且中国新能源汽车并非只是具备成本优势,汽车与 AI 互联网融合的智能化更是中国车企的拿手好戏。从豪华配置到智能大屏,从外观设计到内饰比拼,这让中国新能源汽车的溢价能力明显变高。2019 年中国新能源汽车平均出口价格每量只有 5, 000 美元, 2022 年涨到了 2.2 万美元。比如比亚迪汉在欧洲发布时价格接近 50 万人民币,是国内售价的两倍多。在泰国、以色列、新西兰等多个国家,比亚迪也已经是新能源汽车的销售冠军。不过,中国汽车征服海外虽然是一部励志爽门,但其实有不少挑战。` + } +]; diff --git a/packages/vmind/__tests__/browser/src/constants/chartGeneratorData.ts b/packages/vmind/__tests__/browser/src/constants/chartGeneratorData.ts new file mode 100644 index 00000000..ced33c14 --- /dev/null +++ b/packages/vmind/__tests__/browser/src/constants/chartGeneratorData.ts @@ -0,0 +1,6196 @@ +/* eslint-disable max-len */ +export const chartGenerationMockData = [ + { + llm: 'gpt-4o-2024-05-13', + result: [ + { + context: { + dataTable: [ + { + 年份: 2024, + 党派: '左翼联盟', + 席位数: 182 + }, + { + 年份: 2024, + 党派: '新人民战线', + 席位数: 168 + }, + { + 年份: 2024, + 党派: '极右翼国民联盟', + 席位数: 143 + }, + { + 年份: 2024, + 党派: '右翼共和党', + 席位数: 48 + } + ], + fieldInfo: [ + { + fieldName: '年份', + description: '选举年份', + type: 'date', + dateGranularity: 'year', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '党派', + description: '党派名称', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '席位数', + description: '党派获得的席位数', + type: 'count', + role: 'measure', + location: 'measure' + } + ], + text: '地图带你看懂法国大选。 2024 年法国议会选举结果揭示了法国社会的撕裂,没有任何党派能获得 577 个议题中的绝对多数。左翼联盟、新人民战线执政党中间派联盟和极右翼国民联盟分别占据 182 席、 168 席、 143 席。除了这三家以外,其余党派席位最多的也只有右翼共和党的 48 席,因此左翼联盟、执政党和极右翼算是形成了三分天下的格局。今天我们便结合地图和数据,聊一聊法国大选。本期视频的所有分析均为个人观点,仅供参考。在开始之前,我先快速的放一下各党派在几个主要政治议题上的立场,有需要的朋友可以截图保存一下。' + }, + timeCost: '3.9' + }, + { + context: { + dataTable: [ + { + 国家: '法国', + 选区数量: 577, + 选区人口范围: [100000, 120000], + 城市: '巴黎' + }, + { + 国家: '法国', + 选区数量: 577, + 选区人口范围: [100000, 120000], + 城市: '里昂' + }, + { + 国家: '法国', + 选区数量: 577, + 选区人口范围: [100000, 120000], + 城市: '马赛' + } + ], + fieldInfo: [ + { + fieldName: '国家', + description: '国家名称', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '选区数量', + description: '全国选区的总数量', + type: 'count', + role: 'measure', + location: 'measure' + }, + { + fieldName: '选区人口范围', + description: '每个选区的人口范围', + type: 'numerical', + role: 'measure', + location: 'measure' + }, + { + fieldName: '城市', + description: '人口密集的大城市', + type: 'string', + role: 'dimension', + location: 'dimension' + } + ], + text: '现在我们进入正题,首先需要说明法国的选区制度,全国共有 577 个选区,每个选区包括 10- 12 万的人口密集的地方选区就小,人口稀少的区域选区域就大。因此地图上各个政党所占的面积并不能与其票数划等号,而是要看具体的选区分布在人口密集的大城市,譬如巴黎、里昂、马赛,虽然看起来面积小,实际上选区数量很多,占的比重很大。' + }, + timeCost: '3.0' + }, + { + context: { + dataTable: [ + { + 地区: '西北部', + 失业率年份: '2022', + 失业率排名: '最低的20个省' + }, + { + 地区: '西北部', + 失业率年份: '2022', + 失业率排名: '21-40低的省份' + }, + { + 政党: '右翼共和党', + 席位数: 48 + }, + { + 政党: '左翼联盟新人民战线', + 席位数: 182 + }, + { + 政党: '马克龙的执政党中间派联盟', + 席位数: 168 + }, + { + 政党: '乐旁的极右翼国民联盟', + 席位数: 143 + } + ], + fieldInfo: [ + { + fieldName: '地区', + description: '法国的不同地区', + type: 'region', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '失业率年份', + description: '失业率数据对应的年份', + type: 'date', + dateGranularity: 'year', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '失业率排名', + description: '失业率排名', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '政党', + description: '政党名称', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '席位数', + description: '政党获得的席位数', + type: 'count', + role: 'measure', + location: 'measure' + } + ], + text: '尽管如此,马克龙强调市场自由化,支持创新和创业,对欧盟一体化和国际合作的开放还是得到了许多大城市选民的支持。大城市仍然是马克龙的重要支持来源。除了大城市外,我们刚才提到过法国东北地区工业的衰落,其实在法国的西北地区又是另一番景象。之前那张关于中小工业城市分布的途中,我们可以清晰的看到西北地区的工业对于当代法国的重要性,当然工业只是一个缩影。我们再来看失业率地图,黄色代表 2022 年失业率最低的 20 个省,橙色是 21- 40 低的省份,可以看出西北部地区的失业率明显低于东北部。再看移民分布地图,西北部地区因为大城市少,而且离地中海更远,接受的移民也比较少。综上,西北地区的经济较为稳定,而且不受移民带来的社会问题困扰,日子过得比较舒服,这些选民对于未来持乐观态度,也成为了马克龙的另一主要票仓。除了以上三大势力外,浅蓝色代表的右翼共和党也获得了 48 个席位。他们的支持者主要位于经济同样比较富足,但是政治观点更为保守的地区。这里我就不展开讲总结。本期视频我们从法国官方的报告与数据出发,从经济与人口地理的角度分析了法国的大选结果。左翼联盟新人民战线以大城市为根基拿下最多的 182 席,马克龙的执政党中间派联盟则凭借大城市和西北地区的支持者取得了 168 席。乐旁的极右翼国民联盟则主要扎根于东北与东南地区,以 143 起居于第三这样的三分割据局面使得法国议会缺乏绝对多数,并且三方势力相差不大。可以预见在未来法案的通过上会面临极大的阻碍。举例来说,左翼和极右翼甚至存在联手撤回延迟退休法案的理论可能。虽然实际操作起来也面临很多困难,双方都不太愿意和对方合作,但即便是理论,可能也已经能表明未来的不确定性。' + }, + timeCost: '0.1' + }, + { + context: { + dataTable: [ + { + 公司: '星巴克', + 季度: '第二季度', + 营业收入: 8560000000, + 同比变化: -2, + 净利润变化: -15, + 股票市值变化: -115000000000 + } + ], + fieldInfo: [ + { + fieldName: '公司', + description: '公司名称', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '季度', + description: '财报季度', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '营业收入', + description: '营业收入金额', + type: 'numerical', + role: 'measure', + location: 'measure' + }, + { + fieldName: '同比变化', + description: '同比变化百分比', + type: 'ratio', + role: 'measure', + location: 'measure' + }, + { + fieldName: '净利润变化', + description: '净利润变化百分比', + type: 'ratio', + role: 'measure', + location: 'measure' + }, + { + fieldName: '股票市值变化', + description: '股票市值变化金额', + type: 'numerical', + role: 'measure', + location: 'measure' + } + ], + text: '住手,你们住手,不要再砸了,你们不要再砸了。万万没想到,瑞幸和库迪的九块九大战,快把星巴克给卷死了。前段时间,星巴克公布了第二季度财报,营业收入 85.6 亿美元,同比下降了2%,净利润大跌15%,股票市值一天内蒸发了 1, 150 亿人民币。另一方面,星巴克的咖啡也在悄悄降价。如果你手机上有星巴克的APP,几乎每天都会收到 5 张以上的优惠券,比如满60.10、满75.15、任意新冰乐 7 折等等,部分单品的团购价优惠下来低至 9 元。终于, 9.9 的风还是卷到了星巴克。在过去很长一段时间里,星巴克是小资生活的代表,一杯咖啡动辄几十块钱,也只有电视剧里那些白领们和云淡风轻的走进去,熟练地点一杯拿铁,找个位置坐下,悠闲地打开电脑喝咖啡。岁月静好人间,值得有人点一杯星巴克,朋友圈能发十几条动态,有人为了抢星巴克限量版的猫爪杯,能通宵排队,甚至大打出手。' + }, + timeCost: '3.8' + }, + { + context: { + dataTable: [ + { + 国家: '美国', + 品牌: '星巴克', + 饮品: '大杯美式咖啡', + 价格: 2.95, + 平均月工资: 6228, + 最低时薪: 7.25, + 主力消费人群月薪: null + }, + { + 国家: '中国', + 品牌: '星巴克', + 饮品: '饮品', + 价格: 30, + 平均月工资: null, + 最低时薪: null, + 主力消费人群月薪: 60000 + } + ], + fieldInfo: [ + { + fieldName: '国家', + description: '国家名称', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '品牌', + description: '咖啡品牌', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '饮品', + description: '饮品名称', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '价格', + description: '饮品价格', + type: 'numerical', + role: 'measure', + location: 'measure' + }, + { + fieldName: '平均月工资', + description: '国家的平均月工资', + type: 'numerical', + role: 'measure', + location: 'measure' + }, + { + fieldName: '最低时薪', + description: '国家的最低时薪', + type: 'numerical', + role: 'measure', + location: 'measure' + }, + { + fieldName: '主力消费人群月薪', + description: '主力消费人群的月薪', + type: 'numerical', + role: 'measure', + location: 'measure' + } + ], + text: '星巴克在中国国内的定位一直都是高端咖啡品牌,但是很多人不知道的是,它在国外的定位其实是平民咖啡,在美国一杯星巴克大杯美式咖啡大概是 2.95 美元,而根据美国劳工部的统计,美国平均月工资是 6, 228 美元,最低时薪是 7.25 美元,这是啥意思呢? 1002.65 美元的星巴克还不到美国人平均月收入的 2, 000 份之一,也就是平常坐一趟地铁的价格吧。而在中国市场,星巴克的饮品价格普遍要超过 30 元一杯。如果按照美国的对应消费力,它的主力消费人群应该是月薪至少6万元的人。' + }, + timeCost: '5.6' + }, + { + context: { + dataTable: [ + { + 日期: '2019-02', + 产品: '粉爪杯', + 原价: 199, + 最高价格: 1800 + } + ], + fieldInfo: [ + { + fieldName: '日期', + description: '具体日期', + type: 'date', + dateGranularity: 'month', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '产品', + description: '产品名称', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '原价', + description: '产品原始售价', + type: 'numerical', + role: 'measure', + location: 'measure' + }, + { + fieldName: '最高价格', + description: '产品在网上的最高价格', + type: 'numerical', + role: 'measure', + location: 'measure' + } + ], + text: '2019 年2月,星巴克就发售了一款粉爪杯,那它长这样?售价 199 元,但是在网上最高炒到了 1, 800 元。有人寒冬腊月在星巴克门口通宵排队,就是为了买到这么一个杯子。还有人因为排队顺序大打出手,最后喜提免费食宿。靠着这些营销方法,在很长一段时间里,普通人对于星巴克是仰望的,觉得去星巴克消费是很有品的,再往前推十年,你甚至可以看到有人去星巴克点一杯咖啡就可以发十几条朋友圈的各种角度各种场景,还要配文低调有实力,天天喝都喝腻了好像呢?甚至有人专门发帖认真的提问,第一次去星巴克主要注意什么?怎么装的像老手呢?我一开始还以为是来搞笑和反讽的,没想到点开帖子此还真的是教大家怎么去星巴克抓老手的,包括但不限于怎么下载APP,问店员这周用的是啥肚子萃取时间是多少?张度和烘焙度怎么样?要不要加糖和加奶?这唬得我一愣一愣的,但是时过境迁,如今星巴克已经支棱不起来了,一边是疯狂降价买三送一搞促销,一边是继续下沉到四五线城市。' + }, + timeCost: '3.9' + }, + { + context: { + dataTable: [ + { + 公司: '星巴克', + 战略愿景年份: '2025', + d级市场数量: 300, + 县域市场数量: 3000, + 门店数量: 7000 + } + ], + fieldInfo: [ + { + fieldName: '公司', + description: '公司名称', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '战略愿景年份', + description: '战略愿景发布的年份', + type: 'date', + dateGranularity: 'year', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: 'd级市场数量', + description: 'd级市场的数量', + type: 'count', + role: 'measure', + location: 'measure' + }, + { + fieldName: '县域市场数量', + description: '县域市场的数量', + type: 'count', + role: 'measure', + location: 'measure' + }, + { + fieldName: '门店数量', + description: '公司在中国的门店数量', + type: 'count', + role: 'measure', + location: 'measure' + } + ], + text: '星巴克近期发布的 2025 中国战略愿景当中,中国总部直言不讳地表示,星巴克看中的不仅仅是全国 300 多个 d 级市场,也包括近 3, 000 个县域市场。星巴克的愿景也体现在它的选址变化上,它在中国的门店已经突破了 7, 000 家,但是这开店位置却让人越来越看不懂了。' + }, + timeCost: '3.0' + }, + { + context: { + dataTable: [ + { + 咖啡品牌: '星巴克', + 咖啡类型: '美式', + 价格: 30 + }, + { + 咖啡品牌: '瑞幸', + 咖啡类型: '库里', + 价格: 9.9 + } + ], + fieldInfo: [ + { + fieldName: '咖啡品牌', + description: '咖啡的品牌名称', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '咖啡类型', + description: '咖啡的类型', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '价格', + description: '咖啡的价格', + type: 'numerical', + role: 'measure', + location: 'measure' + } + ], + text: '一家卖咖啡的店。星巴克没落的第二个原因是当代年轻人更偏向实用消费主义。坦白讲,大部分人喝咖啡其实就是为了遮住那点咖啡因,好让自己在一天的工作中保持清醒。你跟不懂咖啡的人聊什么豆子产地、风味,他只会回你一句,冰美式和中药有什么区别啊?如果你面前有三杯咖啡,第一杯是星巴克的 30 元美式,后面两杯是瑞幸库里的 9 块 9 咖啡也让你买单,大部分人都会选择后面两个,当然也有人会吹星巴克的豆子有多么多么的好,所以它买的这么贵也是值得的。' + }, + timeCost: '1.4' + }, + { + context: { + dataTable: [ + { + 月份: '6月', + 指标: 'M2', + 同比增长率: 6.2, + 预期增长率: 6.8, + 剪刀差: null, + 人民币存款增加: null, + 居民存款增加: null, + 时间范围: null + }, + { + 月份: '6月', + 指标: 'M1', + 同比增长率: -5, + 预期增长率: -5.4, + 剪刀差: null, + 人民币存款增加: null, + 居民存款增加: null, + 时间范围: null + }, + { + 月份: '6月', + 指标: 'M2-M1', + 同比增长率: null, + 预期增长率: null, + 剪刀差: 11.2, + 人民币存款增加: null, + 居民存款增加: null, + 时间范围: null + }, + { + 月份: '6月', + 指标: '人民币存款', + 同比增长率: null, + 预期增长率: null, + 剪刀差: null, + 人民币存款增加: 2460000000000, + 居民存款增加: 2140000000000, + 时间范围: null + }, + { + 月份: null, + 指标: '人民币存款', + 同比增长率: null, + 预期增长率: null, + 剪刀差: null, + 人民币存款增加: 11460000000000, + 居民存款增加: 9270000000000, + 时间范围: '上半年' + } + ], + fieldInfo: [ + { + fieldName: '月份', + description: '具体月份', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '指标', + description: '经济指标', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '同比增长率', + description: '同比增长率', + type: 'ratio', + role: 'measure', + location: 'measure' + }, + { + fieldName: '预期增长率', + description: '预期增长率', + type: 'ratio', + role: 'measure', + location: 'measure' + }, + { + fieldName: '剪刀差', + description: 'M2与M1的剪刀差', + type: 'ratio', + role: 'measure', + location: 'measure' + }, + { + fieldName: '人民币存款增加', + description: '人民币存款增加量', + type: 'numerical', + role: 'measure', + location: 'measure' + }, + { + fieldName: '居民存款增加', + description: '居民存款增加量', + type: 'numerical', + role: 'measure', + location: 'measure' + }, + { + fieldName: '时间范围', + description: '数据对应的时间范围', + type: 'string', + role: 'dimension', + location: 'dimension' + } + ], + text: '咱聊一下最新的重磅数据,反正挺复杂的,国内6月 M2 同比增长6.2%,预期6.8%。 M1 同比下滑5%,预期下滑5.4%。 M M 一剪刀差走扩至 11.2% 再创新高。6月人民币存款增加 2.46 万亿,其中居民存款增加 2.14 万亿,增量几乎全都是老百姓存的。与 M1 的下滑相对,上半年人民币存款总共增加了 11.46 万亿,其中居民存款增加 9.27 万亿。大头也是老百姓,但增速逐月放缓。' + }, + timeCost: '10.9' + }, + { + context: { + dataTable: [ + { + 日期: '7月11日', + 事件: '美国公布CPI数据超预期回落', + 降息预期概率: null + }, + { + 日期: '7月30日', + 事件: '美联储议息会议', + 降息预期概率: 7 + }, + { + 日期: '9月18日', + 事件: '美联储议息会议', + 降息预期概率: 90 + }, + { + 日期: '7月10日', + 事件: '美联储鲍威尔国会听证会', + 降息预期概率: null + } + ], + fieldInfo: [ + { + fieldName: '日期', + description: '具体日期', + type: 'date', + dateGranularity: 'day', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '事件', + description: '事件描述', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '降息预期概率', + description: '市场对美联储降息的预期概率', + type: 'ratio', + role: 'measure', + location: 'measure' + } + ], + text: '7月 11 日晚上,由于美国公布的 CPI 数据超预期回落,让市场对美联储降息预期大幅升温。从这场所的美联储观察工具看,虽然7月 30 一日的美联储议息会议,市场预期不降息的概率仍然是达到93%,但9月 18 日的美联储议息会议,市场预期降息一次的概率是达到90%,这比起上个月概率是上升很多。不过我还是得强调一下,这个美联储观察工具将来只能反映市场当前的预期态度,不能拿来预测美联储货币政策,因为这个概率是会不断随着最新经济数据变化而变化。比如要是下个月美国 CPI 出现较大反弹,那9月降息的概率就会大幅下降。而这次市场预期美联储9月降息的概率大幅上升,主要有两个原因,一、美联储鲍威尔在7月 10 日的国会听证会上整体态度偏戈。鲍威尔称,劳动力市场降温意味着持续高通胀的潜在源头已经减弱。他还表示,就业市场的进一步疲软可能是不必要的,也是不受欢迎的。鲍威尔说,通胀方面的工作还没有完成,我们还有更多工作要做,但与此同时,我们需要注意劳动力市场现况,我们已经观察到劳动力市场出现相当明显的疲软,有着新美联储通讯社之称的知名记者尼奇默尔斯认为,鲍威尔本周其实已暗示美联储的利率政策即将开始改变方向。' + }, + timeCost: '4.1' + }, + { + context: { + dataTable: [ + { + 日期: '2024-07-11', + 月份: '6月', + CPI同比: 3, + 市场预期CPI同比: 3.1, + 前值CPI同比: 3.3, + CPI环比: -0.1 + }, + { + 日期: '2020-05', + 月份: '5月', + CPI同比: null, + 市场预期CPI同比: null, + 前值CPI同比: null, + CPI环比: null + } + ], + fieldInfo: [ + { + fieldName: '日期', + description: '数据公布的日期', + type: 'date', + dateGranularity: 'day', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '月份', + description: '具体月份', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: 'CPI同比', + description: 'CPI同比增长率', + type: 'ratio', + role: 'measure', + location: 'measure' + }, + { + fieldName: '市场预期CPI同比', + description: '市场预期的CPI同比增长率', + type: 'ratio', + role: 'measure', + location: 'measure' + }, + { + fieldName: '前值CPI同比', + description: '前值的CPI同比增长率', + type: 'ratio', + role: 'measure', + location: 'measure' + }, + { + fieldName: 'CPI环比', + description: 'CPI环比增长率', + type: 'ratio', + role: 'measure', + location: 'measure' + } + ], + text: '第二个原因是7月 11 日晚上 8 点半美国劳工部公布的通胀数据,6月 CPI 是同比上涨3%,市场预期值3.1%,前值3.3%。这次美联储 CPI 回落,更关键是 CPI 环比是负增长0.1%,这是美国 2020 年5月以来 CPI 环比首次出现下降,而且美国 2020 年5月还是因为疫情导致的 CPI 骤降,是比较特殊时期,所以美国 CPI 环比负增长确实不太常见。但仔细看美国 VI 月 CPI 的具体构成,感觉猫腻还是不少的。' + }, + timeCost: '5.2' + }, + { + context: { + dataTable: [ + { + 国家: '美国', + 月份: '6月', + 指标: '汽油价格', + 变化率: -3.8 + }, + { + 国家: '美国', + 月份: '6月', + 指标: '食品和住房价格', + 变化率: 0.2 + }, + { + 国家: '美国', + 月份: '6月', + 指标: '核心通胀率', + 变化率: 3.3 + } + ], + fieldInfo: [ + { + fieldName: '国家', + description: '国家名称', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '月份', + description: '具体月份', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '指标', + description: '经济指标', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '变化率', + description: '变化的百分比', + type: 'ratio', + role: 'measure', + location: 'measure' + } + ], + text: '美国 VI 月 CPI 下降的主要贡献是汽油价格下跌。美国 VI 月汽油价格下跌了3.8%,抑制了当月通胀,抵消了食品和住房价格 0.2% 的上涨。比较诡异的是,美国原油期货价格6月是明明出现大幅上涨,这是因为原油期货价格传导到汽油价格有一些迟滞效应,但那样的话,下个月公布的 CPI 数据,汽油价格可能就得反弹了。要是下个月公布的 CPI 数据,汽油价格还继续下降,那就实在说不过去了。美国刨除能源和食品价格的核心通胀率6月是3.3%,但整体降幅还是低于CPI。' + }, + timeCost: '8.2' + }, + { + context: { + dataTable: [ + { + 国家: '美国', + 月份: '6月', + 服务业通胀同比: 5, + 非农就业人口: 206000, + 市场预期非农就业人口: 190000, + 修正前非农就业人口: null, + 修正后非农就业人口: null + }, + { + 国家: '美国', + 月份: '5月', + 服务业通胀同比: null, + 非农就业人口: null, + 市场预期非农就业人口: null, + 修正前非农就业人口: 272000, + 修正后非农就业人口: 218000 + }, + { + 国家: '美国', + 月份: '4月', + 服务业通胀同比: null, + 非农就业人口: null, + 市场预期非农就业人口: null, + 修正前非农就业人口: 165000, + 修正后非农就业人口: 108000 + } + ], + fieldInfo: [ + { + fieldName: '国家', + description: '国家名称', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '月份', + description: '具体月份', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '服务业通胀同比', + description: '服务业通胀同比增长率', + type: 'ratio', + role: 'measure', + location: 'measure' + }, + { + fieldName: '非农就业人口', + description: '非农就业人口数量', + type: 'count', + role: 'measure', + location: 'measure' + }, + { + fieldName: '市场预期非农就业人口', + description: '市场预期的非农就业人口数量', + type: 'count', + role: 'measure', + location: 'measure' + }, + { + fieldName: '修正前非农就业人口', + description: '修正前的非农就业人口数量', + type: 'count', + role: 'measure', + location: 'measure' + }, + { + fieldName: '修正后非农就业人口', + description: '修正后的非农就业人口数量', + type: 'count', + role: 'measure', + location: 'measure' + } + ], + text: '美国通胀目前最顽固的就是服务业通胀,美国 VI 月服务业通胀仍然是同比上涨5%。美国毕竟是服务业为主的国家,服务业通胀还高居5%,美国要说自己已经控制住通胀,完全就是忽悠人。不过虽然美国大选临近,美国现在经济数据基本是为选型服务,比如已经假的不能再假的美国非农就业数据,美国 VI 月非农就业人口增加20.6万人,高于市场预期的 19 万人。然而美国同时把5月数据从 27.2 万人大幅下修至 21.8 万人,4月从 16.5 万人修正至10.8万人,修正后两个月合计较修正前减少 11.1 万人。' + }, + timeCost: '9.4' + }, + { + context: { + dataTable: [ + { + 日期: '2023-07-11', + 股市: '纳斯达克', + 涨跌幅: -2 + }, + { + 日期: '2023-07-12', + 股市: '日股', + 涨跌幅: -2.45 + }, + { + 年份: '2004', + 事件: '美联储降息' + }, + { + 年份: '2006', + 事件: '美联储停止加息' + }, + { + 年份: '2007', + 事件: '美联储开始降息' + }, + { + 年份: '2007', + 事件: '股市大涨' + }, + { + 年份: '2008', + 事件: '金融危机爆发,股市大跌' + }, + { + 年份: '2022', + 事件: '美联储开始加息' + }, + { + 年份: '2024-2026', + 事件: '可能爆发世界金融危机' + } + ], + fieldInfo: [ + { + fieldName: '日期', + description: '具体日期', + type: 'date', + dateGranularity: 'day', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '股市', + description: '股市名称', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '涨跌幅', + description: '股市涨跌幅度', + type: 'ratio', + role: 'measure', + location: 'measure' + }, + { + fieldName: '年份', + description: '年份', + type: 'year', + dateGranularity: 'year', + role: 'measure', + location: 'measure' + }, + { + fieldName: '事件', + description: '事件描述', + type: 'string', + role: 'dimension', + location: 'dimension' + } + ], + text: '我注意到虽然这次市场大幅提高了美联储9月降息概率,但美股和日股反而不涨反跌,纳斯达克在7月 11 日是下跌了2%,日股在7月 12 日也跟随下跌了2.45%。这是市场反身性效应的某种预演,股市炒的是预期,之前美股和日股是基于美联储降息预期,已经提前涨了一年多了,那么当美联储真正降息之后,市场是可能出现反身性效应,也就是所谓利好落地势利空的说法。当然股市走势千变万化,这也只是其中一种可能性。历史的参考例子,比如 2004 年美联储降息, 2006 年停止加息, 2007 年开始降息,但股市是一直涨到 2007 年底,随后自带危机爆发,股市开始大跌。我之前也梳理过,从 1980 年以来,美联储每次加息超过 5% 的幅度,首次加息后的 2- 4 年内都会爆发金融危机,这次美联储是 2022 年开始加息,所以按照历史路径, 2024 年到 2026 年是有可能爆发世界金融危机,这个结合当前国际局势和地缘形势,还是有挺大的可能性。' + }, + timeCost: '8.2' + }, + { + context: { + dataTable: [ + { + 地区: '黑龙江省', + 时间范围: '10年', + 荒废比例: 60, + 荒废小学数量: 1900, + 小学总数: null + }, + { + 地区: '东北', + 时间范围: '10年', + 荒废比例: 50, + 荒废小学数量: 6800, + 小学总数: null + } + ], + fieldInfo: [ + { + fieldName: '地区', + description: '地理区域', + type: 'region', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '时间范围', + description: '时间范围', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '荒废比例', + description: '荒废的小学比例', + type: 'ratio', + role: 'measure', + location: 'measure' + }, + { + fieldName: '荒废小学数量', + description: '荒废的小学数量', + type: 'count', + role: 'measure', + location: 'measure' + }, + { + fieldName: '小学总数', + description: '小学总数', + type: 'count', + role: 'measure', + location: 'measure' + } + ], + text: '以前的小学空荡荡的,老年人养起了鸡鸭鹅狗,彻底荒废了整个黑龙江省, 10 年时间荒废了近六成,小学加起来有 1, 900 余所,整个东北十年荒废了 6, 800 余所小学,少了一半。' + }, + timeCost: '3.6' + }, + { + context: { + dataTable: [ + { + 地区: '河南', + 年份: '2023-2027', + 小学学龄人口下降: 2000000, + 小学学龄人口下降比例: 20 + }, + { + 地区: '全国', + 年份: null, + 小学学龄人口下降: null, + 小学学龄人口下降比例: 90 + }, + { + 地区: '上海', + 年份: null, + 小学学龄人口下降: null, + 小学学龄人口下降比例: null, + 总和生育率: 60 + } + ], + fieldInfo: [ + { + fieldName: '地区', + description: '具体地区', + type: 'region', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '年份', + description: '数据对应时间', + type: 'date', + dateGranularity: 'year', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '小学学龄人口下降', + description: '小学学龄人口预计下降人数', + type: 'numerical', + role: 'measure', + location: 'measure' + }, + { + fieldName: '小学学龄人口下降比例', + description: '小学学龄人口预计下降比例', + type: 'ratio', + role: 'measure', + location: 'measure' + }, + { + fieldName: '总和生育率', + description: '总和生育率', + type: 'ratio', + role: 'measure', + location: 'measure' + } + ], + text: '而小学缺孩子这个趋势早已经蔓延至全国各地了。东部的兹西县,有的小学一个班只有一个学生。华南的徐文县,去年某小学开学,一年级也只有一个学生。中部人口大省河南,据测算, 2023- 2027 年小学学龄人口预计下降 200 多万人,缩水超两成,出现了基数的坍塌。从全国来看,基于学龄人口的预测显示,全国超 1, 400 个县域中,近九成县域小学学龄人口预计下滑,小学鹤岗化以谁也没想到的方式在扩散,从东北开始到大江南北,下一步可能是上海最新的总和生育率只有 0.6 了,该来的总是要来,从民政局冷冷清清到妇产科缺孩子,再到幼儿园关停潮,现在轮到了小学关停潮,这个传播链条还在扩散。' + }, + timeCost: '7.0' + }, + { + context: { + dataTable: [ + { + 省份: '广东', + 城市: '惠州', + 房价: 60000 + }, + { + 省份: '广西', + 城市: '南宁', + 房价: 50000 + }, + { + 省份: '山东', + 城市: '东营', + 房价: 40000 + }, + { + 省份: '江苏', + 城市: '南京', + 房价: 30000 + }, + { + 省份: '黑龙江', + 城市: '大靶', + 房价: 10000 + }, + { + 省份: '北京', + 城市: '京津交界处', + 楼盘: '某楼盘', + 原价: 1600000, + 现价: 390000 + } + ], + fieldInfo: [ + { + fieldName: '省份', + description: '省份名称', + type: 'region', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '城市', + description: '城市名称', + type: 'region', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '房价', + description: '一套房的总价', + type: 'numerical', + role: 'measure', + location: 'measure' + }, + { + fieldName: '楼盘', + description: '楼盘名称', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '原价', + description: '楼盘的原价', + type: 'numerical', + role: 'measure', + location: 'measure' + }, + { + fieldName: '现价', + description: '楼盘的现价', + type: 'numerical', + role: 'measure', + location: 'measure' + } + ], + text: '实际上,如果鹤岗化只是局限于教育领域,那还好说,但不是实际情况复杂的多楼市,像鹤岗那样房子白菜价的城市越来越多了,据不完全统计,至少有 10 个省 24 个城市陷入几万元买房的讨论。不是每平方米单价几万,而是一套房总价几万。网传广东惠州6万,广西南宁5万,山东东营4万,江苏南京3万,黑龙江大靶1万,这个传播势头在这轮楼市调整的加持下,现在已经来到了北京的外围,在京津两市的交界处,抹楼盘从 160 万元降到了 39 万,而且打了骨折还卖不出去。' + }, + timeCost: '5.8' + }, + { + context: { + dataTable: [ + { + 地区: '秦岭深处某县', + 人口: 30000, + 编制人员数量: 2194, + 行政管理支出: 18000000, + 一般公共预算收入: null, + 工资预算总支出: null, + 在职人员工资支出: null, + 离退休人员工资支出: null, + 零聘人员工资支出: null, + 在职人员数量: null, + 临聘人员数量: null + }, + { + 地区: '乌蒙山区某县', + 人口: null, + 编制人员数量: null, + 行政管理支出: null, + 一般公共预算收入: 700000000, + 工资预算总支出: 2630000000, + 在职人员工资支出: 2000000000, + 离退休人员工资支出: 170000000, + 零聘人员工资支出: 460000000, + 在职人员数量: 15000, + 临聘人员数量: 28000 + } + ], + fieldInfo: [ + { + fieldName: '地区', + description: '具体的地理区域', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '人口', + description: '地区人口数量', + type: 'numerical', + role: 'measure', + location: 'measure' + }, + { + fieldName: '编制人员数量', + description: '编制内的工作人员数量', + type: 'numerical', + role: 'measure', + location: 'measure' + }, + { + fieldName: '行政管理支出', + description: '一年的行政管理支出', + type: 'numerical', + role: 'measure', + location: 'measure' + }, + { + fieldName: '一般公共预算收入', + description: '一般公共预算收入', + type: 'numerical', + role: 'measure', + location: 'measure' + }, + { + fieldName: '工资预算总支出', + description: '工资预算总支出', + type: 'numerical', + role: 'measure', + location: 'measure' + }, + { + fieldName: '在职人员工资支出', + description: '在职人员的工资支出', + type: 'numerical', + role: 'measure', + location: 'measure' + }, + { + fieldName: '离退休人员工资支出', + description: '离退休人员的工资支出', + type: 'numerical', + role: 'measure', + location: 'measure' + }, + { + fieldName: '零聘人员工资支出', + description: '零聘人员的工资支出', + type: 'numerical', + role: 'measure', + location: 'measure' + }, + { + fieldName: '在职人员数量', + description: '在职人员的数量', + type: 'numerical', + role: 'measure', + location: 'measure' + }, + { + fieldName: '临聘人员数量', + description: '临时聘用人员的数量', + type: 'numerical', + role: 'measure', + location: 'measure' + } + ], + text: '地方财力,之前鹤岗是全国第一个财政重整的地级市,甚至传出来停招公务员,现在过紧日子的城市也越来越多了。秦岭深处某县人口只有3万,编制人员却有 2, 194 名,一年的行政管理支出 1, 800 万,排在支出的首位。乌蒙山区某县一般公共预算收入 7 个亿,但工资预算总支出 26.3 亿,其中在职人员 20 亿,离退休人员 1.7 亿,零聘人员 4.6 亿。注意一个细节,在职人员数量 1.5 万,临聘人员数量 2.8 万。' + }, + timeCost: '11.6' + }, + { + context: { + dataTable: [ + { + 城市: '深圳', + 年份: '2021', + 房价跌幅: -40 + } + ], + fieldInfo: [ + { + fieldName: '城市', + description: '城市名称', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '年份', + description: '数据对应时间', + type: 'date', + dateGranularity: 'year', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '房价跌幅', + description: '房价跌幅百分比', + type: 'ratio', + role: 'measure', + location: 'measure' + } + ], + text: '中国房价一度被视为坚不可摧的资产堡垒,更一度有京沪永远涨的口号。然而,自 2021 年以来,包括一线城市在内,房价持续低迷,深圳全市二手房均价距离 2021 年初的最高点跌幅已接近40%,而且还没有停下来的意思。各热点城市二手房每成交一套就要多出好几套,新增的房源和房价表现几乎完全正相关的是飞天茅台的价格, 53 度。' + }, + timeCost: '3.9' + }, + { + context: { + dataTable: [ + { + 商品: '飞天茅台', + 年份: '2021', + 价格: 3500 + }, + { + 商品: '飞天茅台', + 年份: '2024', + 价格: 2000 + }, + { + 商品: '一线房产', + 年份: '2012', + 价格: null + }, + { + 商品: '飞天茅台', + 年份: '2012', + 价格: null + } + ], + fieldInfo: [ + { + fieldName: '商品', + description: '商品名称', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '年份', + description: '数据对应时间', + type: 'date', + dateGranularity: 'year', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '价格', + description: '商品价格', + type: 'numerical', + role: 'measure', + location: 'measure' + } + ], + text: '飞天茅台在 2021 年巅峰时期,一瓶售价超过 3, 500 元,如今已经快跌破 2, 000 元,是巧合吗?过去一线城市房价和飞天茅台价格可以说是最硬的人民币计价资产了,甚至比现金还要优质。一线房产和飞天茅台在相当长的一段时间内有两个相同属性,一他们可以长期增值。二他们易于套现。然而现在情况出现了前所未有的变化,房价和飞天茅台两者双双在 2012 一年见顶。' + }, + timeCost: '12.2' + }, + { + context: { + dataTable: [ + { + 年份: '2021', + 品牌: '保时捷', + 车型: null, + 区域: null, + 优惠金额: null, + 最低售价: null, + 裸车价: null, + 报价: null, + 折扣: null + }, + { + 年份: '2024', + 品牌: '保时捷', + 车型: 'Macan', + 区域: '华南', + 优惠金额: 160000, + 最低售价: 448000, + 裸车价: null, + 报价: null, + 折扣: null + }, + { + 年份: '2024', + 品牌: '保时捷', + 车型: 'Macan', + 区域: '山东', + 优惠金额: null, + 最低售价: null, + 裸车价: 500000, + 报价: null, + 折扣: null + }, + { + 年份: '2024', + 品牌: '保时捷', + 车型: 'Macan', + 区域: '湖北', + 优惠金额: null, + 最低售价: null, + 裸车价: 500000, + 报价: null, + 折扣: null + }, + { + 年份: '2024', + 品牌: '保时捷', + 车型: 'Macan', + 区域: '江西', + 优惠金额: null, + 最低售价: null, + 裸车价: 500000, + 报价: null, + 折扣: null + }, + { + 年份: '2024', + 品牌: '保时捷', + 车型: 'Macan', + 区域: '福建', + 优惠金额: null, + 最低售价: null, + 裸车价: 500000, + 报价: null, + 折扣: null + }, + { + 年份: '2024', + 品牌: '保时捷', + 车型: 'Macan', + 区域: '浙江', + 优惠金额: null, + 最低售价: null, + 裸车价: 500000, + 报价: null, + 折扣: null + }, + { + 年份: '2024', + 品牌: '保时捷', + 车型: 'Macan', + 区域: '江苏', + 优惠金额: null, + 最低售价: null, + 裸车价: 500000, + 报价: null, + 折扣: null + }, + { + 年份: '2024', + 品牌: '保时捷', + 车型: '泰肯', + 区域: null, + 优惠金额: null, + 最低售价: null, + 裸车价: null, + 报价: 1038000, + 折扣: null + }, + { + 年份: '2024', + 品牌: '保时捷', + 车型: '泰肯', + 区域: null, + 优惠金额: null, + 最低售价: null, + 裸车价: 700000, + 报价: null, + 折扣: null + }, + { + 年份: '2024', + 品牌: '保时捷', + 车型: null, + 区域: null, + 优惠金额: null, + 最低售价: null, + 裸车价: null, + 报价: null, + 折扣: [70, 80] + } + ], + fieldInfo: [ + { + fieldName: '年份', + description: '数据对应时间', + type: 'date', + dateGranularity: 'year', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '品牌', + description: '汽车品牌', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '车型', + description: '具体车型', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '区域', + description: '销售区域', + type: 'region', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '优惠金额', + description: '优惠金额', + type: 'numerical', + role: 'measure', + location: 'measure' + }, + { + fieldName: '最低售价', + description: '优惠后的最低售价', + type: 'numerical', + role: 'measure', + location: 'measure' + }, + { + fieldName: '裸车价', + description: '裸车价', + type: 'numerical', + role: 'measure', + location: 'measure' + }, + { + fieldName: '报价', + description: '原始报价', + type: 'numerical', + role: 'measure', + location: 'measure' + }, + { + fieldName: '折扣', + description: '折扣比例', + type: 'ratio', + role: 'measure', + location: 'measure' + } + ], + text: '这不是巧合,其他很多数据也都在 2021 年见顶,比如另一个在 2021 年见顶并开始走下神坛的保时捷。保时捷销量的恶化还在加速,过去一年多,中国市场上保时捷的落地价可以说是惨不忍睹。近期,保时捷只卖 44 万的话题也引发了热议,其华南区域一家终端门店称, Macan 正在进行优惠促销,最高优惠 16 万,该车优惠后最低售价为 44.8 万。另外,在山东、湖北、江西、福建、浙江、江苏等多省份,该车均出现了 50 万元以下的裸车价,而报价达到 103.8 万的泰肯,现在 70 多万就可以拿下。目前,保时捷几乎所有的车型都可以打 7- 8 折。' + }, + timeCost: '20.5' + }, + { + context: { + dataTable: [ + { + 品牌: '保时捷', + 时间: '2024年一季度', + 销量: 16340, + 同比变化: -24 + }, + { + 品牌: '保时捷', + 时间: '2024年5月', + 销量: 4633, + 同比变化: -40.61 + } + ], + fieldInfo: [ + { + fieldName: '品牌', + description: '汽车品牌', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '时间', + description: '具体时间', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '销量', + description: '汽车销量', + type: 'count', + role: 'measure', + location: 'measure' + }, + { + fieldName: '同比变化', + description: '同比变化率', + type: 'ratio', + role: 'measure', + location: 'measure' + } + ], + text: '不只是保时捷,包括奔驰、宝马、奥迪在内的豪华汽车品牌今年以来都在大幅降价,但仍然止不住销量断崖式下降。 2024 年一季度,保时捷中国卖出 16, 340 辆,同比大幅下降24%。保时捷在今年 5 月份仅卖出 4, 633 辆,同比去年5月下滑高达40.61%。这说明保时捷在中国的销量正在加速减少。' + }, + timeCost: '3.2' + }, + { + context: { + dataTable: [ + { + 车型: '卡罗拉油电混动', + 国家: '中国', + 售价: 79800, + 时间: '2024' + }, + { + 车型: '卡罗拉油电混动', + 国家: '中国', + 售价: 131800, + 时间: '2022' + }, + { + 车型: '卡罗拉油电混动', + 国家: '美国', + 售价: 23500, + 时间: '2024' + }, + { + 车型: '凯美瑞混动版', + 国家: '中国', + 售价: 149800, + 时间: '2022' + } + ], + fieldInfo: [ + { + fieldName: '车型', + description: '汽车的型号', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '国家', + description: '汽车售价所在的国家', + type: 'region', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '售价', + description: '汽车的售价', + type: 'numerical', + role: 'measure', + location: 'measure' + }, + { + fieldName: '时间', + description: '数据对应的时间', + type: 'date', + dateGranularity: 'year', + role: 'dimension', + location: 'dimension' + } + ], + text: '从两年前开始,特斯拉的 3 和 y 中国售价就是世界最低的, 7.98 万可以买到原本指导价 13.18 万的油电混动的卡罗拉。做一个对比,美国的油电混动卡罗拉的起售价是 2.35 万美元,有时甚至还要加价。按照美元人民币汇率计算,这款车的中国售价居然只有美国的一半水平,尽管配置存在差异,但不影响价格差异巨大的这个结论。除了卡罗拉外,汉兰达和凯美瑞也都大幅降价,即使是两年前,我们也很难想象只要 14.98 万人民币就可以买到最新款的混动版凯美瑞。' + }, + timeCost: '3.3' + }, + { + context: { + dataTable: [ + { + 时间: '十多年前', + 交通工具: '出租车', + 价格区间: [110, 120] + }, + { + 时间: '现在', + 交通工具: '滴滴', + 价格区间: [60, 70] + }, + { + 时间: '现在', + 交通工具: '出租车', + 价格区间: [110, 120] + } + ], + fieldInfo: [ + { + fieldName: '时间', + description: '具体时间', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '交通工具', + description: '使用的交通工具', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '价格区间', + description: '单程价格区间', + type: 'numerical', + role: 'measure', + location: 'measure' + } + ], + text: '中国物价的下降不仅仅体现在商品上,服务价格也是类似的趋势。举个例子,十多年前我常驻北京,当时经常在晚上十一二点从首都机场打车到西直门这样一段单程大约需要 110- 120 元,而现在滴滴大概只要 60- 70 元。如果是现在的出租车,价格和十多年前还是一样的。' + }, + timeCost: '6.5' + }, + { + context: { + dataTable: [ + { + 银行: '工行', + 年份: '2022', + 不良率: 0.39 + }, + { + 银行: '工行', + 年份: '2023', + 不良率: 0.44 + }, + { + 银行: '农行', + 年份: '2022', + 不良率: 0.51 + }, + { + 银行: '农行', + 年份: '2023', + 不良率: 0.55 + }, + { + 银行: '建行', + 年份: '2022', + 不良率: 0.37 + }, + { + 银行: '建行', + 年份: '2023', + 不良率: 0.42 + } + ], + fieldInfo: [ + { + fieldName: '银行', + description: '银行名称', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '年份', + description: '数据对应年份', + type: 'date', + dateGranularity: 'year', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '不良率', + description: '个人住房贷款不良率', + type: 'ratio', + role: 'measure', + location: 'measure' + } + ], + text: '以工行、农行、建行发布的数据来看,其 2023 年个人住房贷款不良率分别由 2022 年的0.39%、0.51%、 0.37% 增长至了0.44%、 0.55% 和0.42%,基本都实现了两位数的增幅。大家别觉得这些小数字没啥大不了的,要知道这三家银行每一家的个人住房贷款余额都超过了5万亿,而且按揭贷款往年基本上都是银行稳赚不赔的买卖。供建农三家银行之所以每年能够包揽中国最赚钱企业的前三名,按揭贷款所带来的收益贡献巨大。现在这个优质资产的不良率正在以每年两位数的增幅增加。' + }, + timeCost: '11.6' + }, + { + context: { + dataTable: [ + { + 年份: '2022', + 季度: null, + 法拍房挂牌数量: 980000, + 同比增长率: null + }, + { + 年份: '2023', + 季度: null, + 法拍房挂牌数量: 1410000, + 同比增长率: 43.9 + }, + { + 年份: '2024', + 季度: '一季度', + 法拍房挂牌数量: 604400, + 同比增长率: 192 + }, + { + 年份: '2024', + 季度: null, + 法拍房挂牌数量: 2000000, + 同比增长率: null + } + ], + fieldInfo: [ + { + fieldName: '年份', + description: '数据对应的年份', + type: 'date', + dateGranularity: 'year', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '季度', + description: '数据对应的季度', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '法拍房挂牌数量', + description: '法拍房挂牌的数量', + type: 'count', + role: 'measure', + location: 'measure' + }, + { + fieldName: '同比增长率', + description: '法拍房挂牌数量同比增长率', + type: 'ratio', + role: 'measure', + location: 'measure' + } + ], + text: '你是银行,你慌不慌?而另一项作为佐证的数据则是法拍房,大家知道现在法拍房的数据有多夸张吗?根据瀚海研究院发布的数据显示, 2022 年全国共挂牌法拍房 98 万套,去年这个数字变成了 141 万套,增长了43.9%。而今年光是一季度的挂牌数量就已飙升至 60.44 万套通,同比上涨192%。这种局势下,银行要是再不改变断供处置策略,那今年的法拍数量估计有望达到 200 万。' + }, + timeCost: '5.7' + }, + { + context: { + dataTable: [ + { + 城市: '北京', + 年份: '2023', + 挂牌法拍房数量: 8153, + 成交法拍房数量: 2771, + 处置率: 33 + } + ], + fieldInfo: [ + { + fieldName: '城市', + description: '城市名称', + type: 'region', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '年份', + description: '数据对应时间', + type: 'date', + dateGranularity: 'year', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '挂牌法拍房数量', + description: '挂牌法拍房的数量', + type: 'count', + role: 'measure', + location: 'measure' + }, + { + fieldName: '成交法拍房数量', + description: '最终成交的法拍房数量', + type: 'count', + role: 'measure', + location: 'measure' + }, + { + fieldName: '处置率', + description: '法拍房的处置率', + type: 'ratio', + role: 'measure', + location: 'measure' + } + ], + text: '事实上,对银行来说,现在的行情即使他收了房也难以处置。我们以北京为例, 2023 年北京挂牌法拍房 8, 153 套,最终成交仅 2, 771 套,处置率为33%,这还是房价波动相对较小的北京,换到其他已经跌穿首付的地区,处置率恐怕只会更低。而在法拍流程里,流拍和拍品二次上拍都会在此前的价格上更进一步降低,这也导致了银行回款难度的进一步提高。虽然按照现在的规则,这部分差价是由贷款人承担的,但对方既然已经到了选择断供的地步,可想而知最终也执行不了多少。' + }, + timeCost: '5.1' + }, + { + context: { + dataTable: [ + { + 日期: '2024-05', + 未出售商品房面积: 746000000, + 正常库存水平: 590000000 + }, + { + 统计时间段: '上半年', + 城市数量: 222, + 宽松政策数量: 341 + } + ], + fieldInfo: [ + { + fieldName: '日期', + description: '具体日期', + type: 'date', + dateGranularity: 'day', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '未出售商品房面积', + description: '未出售商品房的总面积', + type: 'numerical', + role: 'measure', + location: 'measure' + }, + { + fieldName: '正常库存水平', + description: '正常情况下的库存水平', + type: 'numerical', + role: 'measure', + location: 'measure' + }, + { + fieldName: '统计时间段', + description: '统计数据的时间段', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '城市数量', + description: '参与统计的城市数量', + type: 'count', + role: 'measure', + location: 'measure' + }, + { + fieldName: '宽松政策数量', + description: '出台的宽松政策数量', + type: 'count', + role: 'measure', + location: 'measure' + } + ], + text: '另一项推动银行改变策略的原因,则是今年4月 30 号的一场会议,这场会议确定了房地产行业未来一年的发展方向,统筹消化存量房产和优化增量住房,用大家都熟悉的话来说就是去库存。根据国家统计局的官方数据显示,截至 2024 年5月,我国未出售商品房为 7.46 亿平米,远超 5.9 亿平米的正常库存水平。而整个上半年,根据 CRS 的统计,全国 222 个城市总计出台了 341 项宽松政策,但带来的效果均不理想,无论是销售面积还是投资金额,仍然在持续走低。' + }, + timeCost: '8.0' + }, + { + context: { + dataTable: [ + { + 年份: '2021', + 汽车出口量: 2020000 + }, + { + 年份: '2022', + 汽车出口量: 3110000 + }, + { + 年份: '2023', + 汽车出口量: 4910000 + } + ], + fieldInfo: [ + { + fieldName: '年份', + description: '数据对应的年份', + type: 'date', + dateGranularity: 'year', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '汽车出口量', + description: '中国汽车出口的数量', + type: 'count', + role: 'measure', + location: 'measure' + } + ], + text: '大家好,我拍拍一名做过财经记者,大学老师和滴滴司届 up 主。 2023 年,我国汽车出口量达到了 491 万辆,超越日本成为世界第一汽车出口国。要知道,日本在这个位置坐了 8 年之久,而中国仅在过去三年时间里接连赶超韩国、德国、日本。中国汽车出口, 2021 年 202 万辆, 2022 年 311 万辆, 2023 年 491 万辆。' + }, + timeCost: '3.0' + }, + { + context: { + dataTable: [ + { + 车型: '名爵ZS', + 排名: 1, + 指导价: [80000, 90000] + }, + { + 车型: '特斯拉 model y', + 排名: 2, + 指导价: null + }, + { + 车型: '奇瑞瑞虎7', + 排名: 3, + 指导价: null + }, + { + 车型: '特斯拉 model 3', + 排名: 4, + 指导价: null + }, + { + 车型: '名爵 4 EV', + 排名: 5, + 指导价: null + }, + { + 车型: '奇瑞虎5X', + 排名: 6, + 指导价: null + }, + { + 车型: '欧盟达名爵5', + 排名: 7, + 指导价: null + }, + { + 车型: '缤越元plus', + 排名: 8, + 指导价: null + }, + { + 车型: '名爵 5', + 排名: null, + 指导价: 60000 + }, + { + 车型: '缤越', + 排名: null, + 指导价: 60000 + } + ], + fieldInfo: [ + { + fieldName: '车型', + description: '中国出口的乘用车车型', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '排名', + description: '车型在出口量中的排名', + type: 'count', + role: 'measure', + location: 'measure' + }, + { + fieldName: '指导价', + description: '车型的国内指导价', + type: 'numerical', + role: 'measure', + location: 'measure' + } + ], + text: '中国汽车转眼间为何变得这么受欢迎呢?又到底是哪些国家在购买中国汽车?中国卖给老外汽车又是些什么品牌和价位车型?本期视频就为大家打开中国汽车出口全球第一背后的真实数据。首先,中国出口的 491 万辆汽车都是些什么车呢?根据乘联会统计,中国乘用车出口量前十车型分别为名爵ZS、特斯拉 model y、奇瑞瑞虎7、特斯拉 model 3、名爵 4 EV、奇瑞虎5X、欧盟达名爵5、缤越元plus。除了特斯拉的 model y 和 model 3,其他车型国内指导价基本都在 10 万元左右,比如排名第一的名爵ZS,指导价 8- 9万元,最便宜的名爵 5 和缤越低到6万元就能拿下,可见中国汽车出海主打的还是一个性价比。' + }, + timeCost: '10.8' + }, + { + context: { + dataTable: [ + { + 年份: '2013', + 汽车类型: '燃油车', + 出口数量: 3710000, + 新能源车出口占比: null, + 新能源车出口增速: null + }, + { + 年份: '2013', + 汽车类型: '新能源汽车', + 出口数量: 1200000, + 新能源车出口占比: 25, + 新能源车出口增速: null + }, + { + 年份: '2023', + 汽车类型: '新能源汽车', + 出口数量: null, + 新能源车出口占比: null, + 新能源车出口增速: 77.6 + } + ], + fieldInfo: [ + { + fieldName: '年份', + description: '数据对应的年份', + type: 'date', + dateGranularity: 'year', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '汽车类型', + description: '燃油车或新能源汽车', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '出口数量', + description: '汽车出口数量', + type: 'count', + role: 'measure', + location: 'measure' + }, + { + fieldName: '新能源车出口占比', + description: '新能源汽车占出口总量的比例', + type: 'ratio', + role: 'measure', + location: 'measure' + }, + { + fieldName: '新能源车出口增速', + description: '新能源汽车出口的增长速度', + type: 'ratio', + role: 'measure', + location: 'measure' + } + ], + text: '如果按燃油车、新能源车的分类来看, 2013 年中国出口燃油车 371 万辆,出口新能源汽车 120 万辆,新能源车占到出口总量的25%,虽然这个占比目前只有 1/ 4,但去年新能源出口增速是77.6%,势头不可谓不猛。' + }, + timeCost: '6.6' + }, + { + context: { + dataTable: [ + { + 国家: '俄罗斯', + 年份: 2013, + 出口量: 909000 + }, + { + 国家: '墨西哥', + 年份: 2013, + 出口量: 415000 + }, + { + 国家: '比利时', + 年份: 2013, + 出口量: 217000 + }, + { + 国家: '澳大利亚', + 年份: 2013, + 出口量: 214000 + }, + { + 国家: '英国', + 年份: 2013, + 出口量: 214000 + }, + { + 国家: '沙特阿拉伯', + 年份: 2013, + 出口量: 213000 + }, + { + 国家: '菲律宾', + 年份: 2013, + 出口量: 172000 + }, + { + 国家: '泰国', + 年份: 2013, + 出口量: 169000 + }, + { + 国家: '阿联酋', + 年份: 2013, + 出口量: 159000 + }, + { + 国家: '西班牙', + 年份: 2013, + 出口量: 139000 + }, + { + 地区: '欧洲', + 年份: 2013, + 占比: 38 + } + ], + fieldInfo: [ + { + fieldName: '国家', + description: '汽车出口的国家', + type: 'region', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '年份', + description: '数据对应的年份', + type: 'date', + dateGranularity: 'year', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '出口量', + description: '汽车出口量', + type: 'count', + role: 'measure', + location: 'measure' + }, + { + fieldName: '地区', + description: '按地区划分的市场', + type: 'region', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '占比', + description: '地区占中国汽车对外出口的比例', + type: 'ratio', + role: 'measure', + location: 'measure' + } + ], + text: '那中国汽车出口都卖到了哪些国家呢? 2013 年中国汽车出口量前十的国家分别是,俄罗斯90.9万辆,墨西哥 41.5 万辆,比利时 21.7 万辆,澳大利亚 21.4 万辆,英国 21.4 万辆,沙特阿拉伯 21.3 万辆,菲律宾 17.2 万辆,泰国 16.9 万辆,阿联酋 15.9 万辆,西班牙 13.9 万辆。按地区来看的话,欧洲市场占中国汽车对外出口的38%,远超其他任何单一大洲,可见中国汽车正在得到全世界更多人的认可。' + }, + timeCost: '8.2' + }, + { + context: { + dataTable: [ + { + 年份: '2023', + 国家: '俄罗斯', + 汽车出口量: 909000, + 出口量增长率: 468 + }, + { + 年份: '2023', + 国家: '俄罗斯', + 品牌: '奇瑞金车', + 市场占有率: 11.2 + }, + { + 年份: '2023', + 国家: '俄罗斯', + 品牌: '哈弗', + 市场占有率: 10.6 + }, + { + 年份: '2023', + 国家: '俄罗斯', + 新车市场占比: 51 + }, + { + 年份: '2023', + 国家: '俄罗斯', + 出口增量贡献率: 42 + }, + { + 年份: '2024', + 国家: '俄罗斯', + 预测新车市场占比: 80 + } + ], + fieldInfo: [ + { + fieldName: '年份', + description: '数据对应的年份', + type: 'date', + dateGranularity: 'year', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '国家', + description: '国家名称', + type: 'region', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '汽车出口量', + description: '中国对该国的汽车出口量', + type: 'count', + role: 'measure', + location: 'measure' + }, + { + fieldName: '出口量增长率', + description: '中国对该国的汽车出口量增长率', + type: 'ratio', + role: 'measure', + location: 'measure' + }, + { + fieldName: '品牌', + description: '汽车品牌', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '市场占有率', + description: '品牌在市场中的占有率', + type: 'ratio', + role: 'measure', + location: 'measure' + }, + { + fieldName: '新车市场占比', + description: '中国汽车在俄罗斯新车市场的占比', + type: 'ratio', + role: 'measure', + location: 'measure' + }, + { + fieldName: '出口增量贡献率', + description: '俄罗斯对中国汽车出口增量的贡献率', + type: 'ratio', + role: 'measure', + location: 'measure' + }, + { + fieldName: '预测新车市场占比', + description: '预测中国汽车在俄罗斯新车市场的占比', + type: 'ratio', + role: 'measure', + location: 'measure' + } + ], + text: '当然了,中国汽车出口世界第一,又不得不提议俄罗斯和墨西哥这两个国家可以说去年是把中国车买爆了。 203 年,中国对俄罗斯的汽车出口量从上一年度的 16 万辆暴增到了90.9万辆,增加了468%。在俄罗斯的新车市场中,第一名是俄罗斯品牌拉达,第二至第七名则全都是中国品牌,比如第二名是奇瑞金车,市场占有率11.2%。第三名是哈弗,新车,市场占有率10.6%。俄罗斯卖最好的新能源车也是来自中国的极客。目前中国汽车已经占据俄罗斯新车市场的51%,可以说是拿下了半壁江山。而对于中国而言,仅俄罗斯一个国家 203 年就贡献了中国汽车出口增量的42%,甚至有俄罗斯本土汽车经销商预测, 2024 年中国汽车可能占据俄罗斯新车份额的80%。' + }, + timeCost: '14.4' + }, + { + context: { + dataTable: [ + { + 年份: '2013', + 国家: '欧洲', + 市场份额: 18 + }, + { + 年份: '2013', + 国家: '欧洲', + 市场份额: 4 + }, + { + 年份: '2013', + 国家: '韩国', + 市场份额: 16 + }, + { + 年份: '2013', + 国家: '韩国', + 市场份额: 6 + }, + { + 年份: '2013', + 国家: '日本', + 市场份额: 12 + }, + { + 年份: '2013', + 国家: '日本', + 市场份额: 5 + } + ], + fieldInfo: [ + { + fieldName: '年份', + description: '数据对应的年份', + type: 'date', + dateGranularity: 'year', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '国家', + description: '国家名称', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '市场份额', + description: '国家在俄罗斯新车市场的份额', + type: 'ratio', + role: 'measure', + location: 'measure' + } + ], + text: '有人说俄罗斯满爆中国汽车是因为欧美的贸易封锁,这也步无道理。 2013 年在俄罗斯的新车市场中,欧洲的市场份额从 18% 降到了4%,韩国从 16% 降到了6%,日本从 12% 降到了5%,和欧日韩都是对俄罗斯实行了限制出口国家,其中就包括了部分汽车,可以说中国汽车吃下的正是欧日韩在俄罗斯丢掉市场。' + }, + timeCost: '3.8' + }, + { + context: { + dataTable: [ + { + 国家: '墨西哥', + 年份: '2013', + 中国汽车占比: 25, + 品牌: null, + 销量: null, + 新能源汽车占比: null + }, + { + 国家: '墨西哥', + 年份: '2007', + 中国汽车占比: 0, + 品牌: null, + 销量: null, + 新能源汽车占比: null + }, + { + 国家: '澳大利亚', + 年份: '2023', + 中国汽车占比: null, + 品牌: '名爵', + 销量: 58000, + 新能源汽车占比: null + }, + { + 国家: '澳大利亚', + 年份: '2023', + 中国汽车占比: null, + 品牌: '比亚迪', + 销量: null, + 新能源汽车占比: 14 + } + ], + fieldInfo: [ + { + fieldName: '国家', + description: '国家名称', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '年份', + description: '数据对应时间', + type: 'date', + dateGranularity: 'year', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '中国汽车占比', + description: '中国汽车在该国销售汽车中的占比', + type: 'ratio', + role: 'measure', + location: 'measure' + }, + { + fieldName: '品牌', + description: '汽车品牌', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '销量', + description: '汽车销量', + type: 'numerical', + role: 'measure', + location: 'measure' + }, + { + fieldName: '新能源汽车占比', + description: '中国新能源汽车在该国市场中的占比', + type: 'ratio', + role: 'measure', + location: 'measure' + } + ], + text: '当然了,除了俄罗斯之外,其他国家也在买中国汽车,比如墨西哥。 2013 年,墨西哥所有销售汽车中有 25% 来自中国,而在 6 年前这个数字为0。澳大利亚也在不断买中国汽车,最受澳大利亚欢迎的中国汽车品牌是名爵,去年卖了 5.8 万辆。在新能源车市场,比亚迪则占据了澳大利亚的新能源汽车 14% 份额,位于第二名。' + }, + timeCost: '7.1' + }, + { + context: { + dataTable: [ + { + 公司: '特斯拉', + 市场: '全球', + 年份: null, + 市场份额: 53, + 销量: null, + 出口国家和地区数量: null, + 出口汽车数量: null, + 出口汽车数量同比: null, + 平均出口价格: null + }, + { + 公司: '中国车企', + 市场: '东南亚', + 年份: 2013, + 市场份额: null, + 销量: null, + 出口国家和地区数量: null, + 出口汽车数量: null, + 出口汽车数量同比: null, + 平均出口价格: null + }, + { + 公司: '中国品牌', + 市场: '泰国', + 年份: null, + 市场份额: 80, + 销量: null, + 出口国家和地区数量: null, + 出口汽车数量: null, + 出口汽车数量同比: null, + 平均出口价格: null + }, + { + 公司: '比亚迪', + 市场: '泰国', + 年份: null, + 市场份额: 40, + 销量: null, + 出口国家和地区数量: null, + 出口汽车数量: null, + 出口汽车数量同比: null, + 平均出口价格: null + }, + { + 公司: '比亚迪', + 市场: '全球', + 年份: 2023, + 市场份额: null, + 销量: null, + 出口国家和地区数量: 58, + 出口汽车数量: 240000, + 出口汽车数量同比: 234, + 平均出口价格: null + }, + { + 公司: '中国新能源汽车', + 市场: '全球', + 年份: 2019, + 市场份额: null, + 销量: null, + 出口国家和地区数量: null, + 出口汽车数量: null, + 出口汽车数量同比: null, + 平均出口价格: 5000 + }, + { + 公司: '中国新能源汽车', + 市场: '全球', + 年份: 2022, + 市场份额: null, + 销量: null, + 出口国家和地区数量: null, + 出口汽车数量: null, + 出口汽车数量同比: null, + 平均出口价格: 22000 + }, + { + 公司: '比亚迪', + 市场: '欧洲', + 年份: null, + 市场份额: null, + 销量: null, + 出口国家和地区数量: null, + 出口汽车数量: null, + 出口汽车数量同比: null, + 平均出口价格: 500000 + } + ], + fieldInfo: [ + { + fieldName: '公司', + description: '公司名称', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '市场', + description: '市场区域', + type: 'region', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '年份', + description: '数据对应时间', + type: 'date', + dateGranularity: 'year', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '市场份额', + description: '市场份额占比', + type: 'ratio', + role: 'measure', + location: 'measure' + }, + { + fieldName: '销量', + description: '销量', + type: 'count', + role: 'measure', + location: 'measure' + }, + { + fieldName: '出口国家和地区数量', + description: '出口国家和地区数量', + type: 'count', + role: 'measure', + location: 'measure' + }, + { + fieldName: '出口汽车数量', + description: '出口汽车数量', + type: 'count', + role: 'measure', + location: 'measure' + }, + { + fieldName: '出口汽车数量同比', + description: '出口汽车数量同比', + type: 'ratio', + role: 'measure', + location: 'measure' + }, + { + fieldName: '平均出口价格', + description: '平均出口价格', + type: 'numerical', + role: 'measure', + location: 'measure' + } + ], + text: '当然,这里也不得不提一下第一名,那就是特斯拉市场份额高达53%,在东南亚市场,中国车企业销量在 2013 年同样实现小幅上升,最典型的就是泰国,在泰国的新能源车市场,中国品牌占据了 80% 的份额,比如比亚迪的原 plus 就是泰国的新能源车爆款,那到底是什么原因让中国汽车爆卖呢?基本还可以总结为三方面原因,首先是全球疫情爆发,由于中国汽车的供应链完善,疫情期间仍能维持稳定生产,而日韩这些过去的出口大户受疫情影响,芯片、钢材、橡胶等关键原材料短缺,不仅汽车产能下降,而且成本升高,这就让中国汽车更具性价比。而随着中国国内新能源汽车市场越来越卷出海,成为不少中国车企的选择,比如比亚迪 2023 年进入全球 58 个国家和地区,出口汽车 24 万辆,是上一年度的 3.34 倍。在泰国新能源车市场,比亚迪单独占到了 40% 的市场份额,是名副其实的泰国新能源汽车销冠。而且中国新能源汽车并非只是具备成本优势,汽车与 AI 互联网融合的智能化更是中国车企的拿手好戏。从豪华配置到智能大屏,从外观设计到内饰比拼,这让中国新能源汽车的溢价能力明显变高。2019 年中国新能源汽车平均出口价格每量只有 5, 000 美元, 2022 年涨到了 2.2 万美元。比如比亚迪汉在欧洲发布时价格接近 50 万人民币,是国内售价的两倍多。在泰国、以色列、新西兰等多个国家,比亚迪也已经是新能源汽车的销售冠军。不过,中国汽车征服海外虽然是一部励志爽门,但其实有不少挑战。' + }, + timeCost: '12.4' + }, + { + context: { + dataTable: [ + { + 年份: '2000', + 国家: '越南', + 摩托车品牌: '中国', + 市场份额: 80 + }, + { + 年份: '2024', + 国家: '越南', + 摩托车品牌: '日本', + 市场份额: 95 + }, + { + 年份: '2024', + 国家: '越南', + 摩托车品牌: '中国', + 市场份额: 1 + } + ], + fieldInfo: [ + { + fieldName: '年份', + description: '数据对应时间', + type: 'date', + dateGranularity: 'year', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '国家', + description: '市场所在国家', + type: 'region', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '摩托车品牌', + description: '摩托车品牌', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '市场份额', + description: '摩托车品牌在市场中的占比', + type: 'ratio', + role: 'measure', + location: 'measure' + } + ], + text: '其实中国汽车出海不禁让人想起曾经的中国摩托车出海。 2000 年前后,中国摩托车进军越南,一度占据了 80% 的越南市场份额,但不到三四年时间,却被日本摩托车打得片甲不留。如今日本摩托车在越南占据 95% 的份额,而中国摩托车百分之一都不到。曾经也有大量中国摩托车车企在越南建厂,但却形成了恶性竞争的关系,疯狂打价格战,导致服务和质量越来越差,越南的中国摩托车车企仿佛是飘在越南的。' + }, + timeCost: '4.5' + }, + { + context: { + dataTable: [ + { + 企业名称: '汇川技术', + 企业规模: null, + 企业数量: null, + 工厂规模: null, + 工厂占比: null, + 工厂人数: null, + 年产值: null + }, + { + 企业名称: '恒力液压', + 企业规模: null, + 企业数量: null, + 工厂规模: null, + 工厂占比: null, + 工厂人数: null, + 年产值: null + }, + { + 企业名称: '先导智能', + 企业规模: null, + 企业数量: null, + 工厂规模: null, + 工厂占比: null, + 工厂人数: null, + 年产值: null + }, + { + 企业名称: '顺域光学', + 企业规模: null, + 企业数量: null, + 工厂规模: null, + 工厂占比: null, + 工厂人数: null, + 年产值: null + }, + { + 企业名称: '军胜电子', + 企业规模: null, + 企业数量: null, + 工厂规模: null, + 工厂占比: null, + 工厂人数: null, + 年产值: null + }, + { + 企业名称: null, + 企业规模: '规模以上', + 企业数量: 445000, + 工厂规模: null, + 工厂占比: null, + 工厂人数: null, + 年产值: null + }, + { + 企业名称: null, + 企业规模: '存续', + 企业数量: 6220000, + 工厂规模: null, + 工厂占比: null, + 工厂人数: null, + 年产值: null + }, + { + 企业名称: null, + 企业规模: '规模以下', + 企业数量: 4000000, + 工厂规模: null, + 工厂占比: null, + 工厂人数: null, + 年产值: null + }, + { + 企业名称: null, + 企业规模: null, + 企业数量: null, + 工厂规模: '不到50人', + 工厂占比: 40, + 工厂人数: [0, 50], + 年产值: null + }, + { + 企业名称: null, + 企业规模: null, + 企业数量: null, + 工厂规模: '不到500人', + 工厂占比: 90, + 工厂人数: [0, 500], + 年产值: null + }, + { + 企业名称: null, + 企业规模: null, + 企业数量: null, + 工厂规模: null, + 工厂占比: null, + 工厂人数: null, + 年产值: [1000000, 10000000] + } + ], + fieldInfo: [ + { + fieldName: '企业名称', + description: '零部件供应商企业名称', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '企业规模', + description: '企业规模分类', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '企业数量', + description: '企业数量', + type: 'count', + role: 'measure', + location: 'measure' + }, + { + fieldName: '工厂规模', + description: '工厂规模分类', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '工厂占比', + description: '工厂规模占比', + type: 'ratio', + role: 'measure', + location: 'measure' + }, + { + fieldName: '工厂人数', + description: '工厂人数范围', + type: 'numerical', + role: 'measure', + location: 'measure' + }, + { + fieldName: '年产值', + description: '工厂年产值范围', + type: 'numerical', + role: 'measure', + location: 'measure' + } + ], + text: '每个中国制造品牌的背后都有一批优秀的零部件供应商,像汇川技术、恒力液压、先导智能、顺域光学、军胜电子这样的零部件企业也是中国制造的骄傲,只不过知名度无法媲美消费者直接接触的终端品牌。按照官方的口径,中国规模以上也就是年销售收入 2, 000 万以上的制造企业有 44.5 万家。至于中国一共有多少家制造业企业存在各种口径,从 300 多万家到近千万家不等。万德资讯给我的数据是,中国大约有 622 万家存续的制造业企业。海之在线是一家总部在上海,聚焦中间品贸易的数字化平台,连接着 70 万家工厂,他们给我的数据是,中国规模以下的中小微工厂大致有 400 万家。这期节目标题中的 400 万家沉默工厂处处记载于此。海志在线的创始人、 CEO 佘莹对我说,从平台看, 40% 的工厂规模不到 50 人,近 90% 的工厂不到 500 人,大部分工厂的年产值在数百万元到数千万元。如果和大企业比,你可以说他们就是一个个的小做法。如果走进去可能会看到老旧的机器上油漆斑驳,可以看到生产计划就用记号笔写在车间墙上挂着的白板上,甚至会发现用破洞的木板随意围搭起来的厕所,待客的茶水里则混杂着浓浓的机油味。但他们就是中国制造业毛细血管层面的供应链小节点,勤勤恳恳的维护设备、搞生产,他们最在意的是生存,是接到订单以及在满足客户之后能够完整的收到货款。' + }, + timeCost: '9.7' + }, + { + context: { + dataTable: [ + { + 年份: '2024', + 金属类型: '铝和其他废金属', + 产量变化: 20 + }, + { + 年份: '2024', + 金属类型: '钢铁', + 产量变化: [-10, -5] + }, + { + 月份: '5月', + 指标: '开发商银行贷款', + 同比变化: 19 + }, + { + 月份: '5月', + 指标: '房贷和存款跟预付款的比例', + 同比变化: [-40, -30] + }, + { + 预测年份: '2024', + 贷款增加: 4500000000000 + }, + { + 预测年份: '2025', + 贷款增加: 4500000000000 + }, + { + 预测年份: '2026', + 贷款增加: 4500000000000 + } + ], + fieldInfo: [ + { + fieldName: '年份', + description: '数据对应时间', + type: 'date', + dateGranularity: 'year', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '金属类型', + description: '金属的种类', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '产量变化', + description: '金属产量的变化', + type: 'ratio', + role: 'measure', + location: 'measure' + }, + { + fieldName: '月份', + description: '具体月份', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '指标', + description: '具体指标', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '同比变化', + description: '同比变化的比例', + type: 'ratio', + role: 'measure', + location: 'measure' + }, + { + fieldName: '预测年份', + description: '预测的年份', + type: 'date', + dateGranularity: 'year', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '贷款增加', + description: '贷款增加的金额', + type: 'numerical', + role: 'measure', + location: 'measure' + } + ], + text: '有报道称,一些地方政府面临收入短缺,要求企业缴纳可追溯到 1990 年代的税单。这种紧缩政策在房地产市场寻找几步的时刻,会损害上信心和经济。高盛认为,中国中央政府可以通过加大对西方政府的财政支持来切断机房政府无紧缩所出现的负面溢出效应,那如同美国监管机构在次贷危机期间通过成为最后贷款人来切断金融危机的传播一样。关于出口和机产之间的分化,可以同中国的金属生产中得到证实啊。铝和其他废且金属的产量相比疫情之前上升了 20% 以上,而钢铁的产量下降了 5% 到10%。在房产方面,开发商越来越依赖银行融资, 5 月份对开发商的银行贷款同比增长了19%。而随着房地产销售的下滑,房贷和存款跟预付款的比例同比下降了 30% 到40%。高盛银行股票团队预计从 2024 年到 2026 年,房地产贷款将增加 4.5 万亿人民币,以完全期待收缩的房地产债券和设防的影子银行贷款。' + }, + timeCost: '6.4' + }, + { + context: { + dataTable: [ + { + 投资类型: '燃气和水的生产投资', + 增长情况: 100 + }, + { + 投资类型: '整体基建投资', + 增长情况: null + }, + { + 销售类型: '代线销售商品', + 月份: '5月', + 同比增长: 13 + }, + { + 销售类型: '餐饮销售', + 月份: '5月', + 同比增长: 5 + }, + { + 销售类型: '线下商品销售', + 月份: '5月', + 同比增长: 0 + } + ], + fieldInfo: [ + { + fieldName: '投资类型', + description: '具体的投资类型', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '增长情况', + description: '投资增长情况', + type: 'ratio', + role: 'measure', + location: 'measure' + }, + { + fieldName: '销售类型', + description: '具体的销售类型', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '月份', + description: '具体月份', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '同比增长', + description: '销售同比增长情况', + type: 'ratio', + role: 'measure', + location: 'measure' + } + ], + text: '中国经济分化并不止于出口和房地产基础设施的固定资产投资。细分项显示,建立燃气和水的生产投资已同疫情前水平翻倍,远远超过了整体的基建的投资增长。因为中国政府首先优先考虑农源供用安全和脱碳。在零售销售当中, 5 月份代线销售商品同比增长13%,而餐饮销售仅增长5%,线下商品的销售保持在去年同期的水平。' + }, + timeCost: '4.5' + }, + { + context: { + dataTable: [ + { + 季度: '一季度', + 同比增长率: 5.3 + }, + { + 季度: 'G2 季度', + 同比增长率: 5 + } + ], + fieldInfo: [ + { + fieldName: '季度', + description: '具体季度', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '同比增长率', + description: '同比增长率', + type: 'ratio', + role: 'measure', + location: 'measure' + } + ], + text: '7月中旬将举行两场重要的政策会议,前者将专注于评估当前的经济状况,并为今年剩余时间制定周期性的政策安排。后者将专注于至少未来五年解决经济结构当中的重大改革议程。鉴于一季度的实际, g GPT 同比增长5.3%,而且去年基数较低,那么 G2 季度增长可能高于5%,政府的全年增长目标仍然在轨道上。' + }, + timeCost: '1.8' + }, + { + context: { + dataTable: [ + { + 月份: '5月', + 季度: null, + 降息幅度: null, + 财政赤字占GDP比例: null, + 信贷增长率: null, + 美元兑人民币汇率: null + }, + { + 月份: '6月19号', + 季度: null, + 降息幅度: null, + 财政赤字占GDP比例: null, + 信贷增长率: null, + 美元兑人民币汇率: null + }, + { + 月份: '7月', + 季度: null, + 降息幅度: null, + 财政赤字占GDP比例: null, + 信贷增长率: null, + 美元兑人民币汇率: null + }, + { + 月份: '3月', + 季度: null, + 降息幅度: null, + 财政赤字占GDP比例: null, + 信贷增长率: null, + 美元兑人民币汇率: null + }, + { + 月份: '4月', + 季度: null, + 降息幅度: null, + 财政赤字占GDP比例: null, + 信贷增长率: null, + 美元兑人民币汇率: null + }, + { + 月份: null, + 季度: '三季度', + 降息幅度: 25, + 财政赤字占GDP比例: null, + 信贷增长率: null, + 美元兑人民币汇率: null + }, + { + 月份: '9月', + 季度: '四季度', + 降息幅度: 10, + 财政赤字占GDP比例: null, + 信贷增长率: null, + 美元兑人民币汇率: null + }, + { + 月份: null, + 季度: null, + 降息幅度: null, + 财政赤字占GDP比例: 11.9, + 信贷增长率: null, + 美元兑人民币汇率: null + }, + { + 月份: null, + 季度: null, + 降息幅度: null, + 财政赤字占GDP比例: 11.2, + 信贷增长率: null, + 美元兑人民币汇率: null + }, + { + 月份: null, + 季度: null, + 降息幅度: null, + 财政赤字占GDP比例: null, + 信贷增长率: 9, + 美元兑人民币汇率: null + }, + { + 月份: null, + 季度: null, + 降息幅度: null, + 财政赤字占GDP比例: null, + 信贷增长率: 9.5, + 美元兑人民币汇率: null + }, + { + 月份: null, + 季度: null, + 降息幅度: null, + 财政赤字占GDP比例: null, + 信贷增长率: null, + 美元兑人民币汇率: 7.3 + } + ], + fieldInfo: [ + { + fieldName: '月份', + description: '具体月份', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '季度', + description: '具体季度', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '降息幅度', + description: '降息的基点数', + type: 'numerical', + role: 'measure', + location: 'measure' + }, + { + fieldName: '财政赤字占GDP比例', + description: '财政赤字占GDP的比例', + type: 'ratio', + role: 'measure', + location: 'measure' + }, + { + fieldName: '信贷增长率', + description: '信贷增长率', + type: 'ratio', + role: 'measure', + location: 'measure' + }, + { + fieldName: '美元兑人民币汇率', + description: '美元兑人民币汇率', + type: 'numerical', + role: 'measure', + location: 'measure' + } + ], + text: '高盛认为,政策执行者不会在 7 月份的首场会议上释放任何重大的刺激措施,宏观政策的证件可能大于维持当前立场和执行现有的政策。另一方面,鉴于 5 月份宣布的最后一批措施不及预期,可能存在引入更多期产宽松政策的可能性。在货币政策方面,资本外流的担忧和银行利润率的下降限制了央行降息的能力。高盛预计三季度将降息 25 个基减,以适应大量政府债券发行,并预计季四季度9月首次降息后会再降息 10 个期减。在财政政策方面,高盛预计政府债券的发行将在下半年显著增加,以完成年初发行缓慢的全年配额。除非增长急剧放缓,否则基建的投资不会加速太多。对于政府 3 月份公布的预算计划,高盛虽然预测中国的增强型的弹盛赤字从去年的 gdp 11.2% 会适度扩大到今年的11.9%,但由于今年出口强计可能会存在财政扩张不及预期的风险。信贷政策方面,正如央行行长6月 19 号陆家嘴论坛上所说,由于金融套利的虚假贷款和监管机构随后对金融系统中这种资金空转的打击,信贷增长与 GDP 增长之间的联系已经减弱。预计摄容总量的增长将同去年的 9.5% 放缓到今年的9%。在住房政策方面,4月的政治局会议表明,决策者希望严防房地产市场的尾部风险。由于地产价格和活动的持续下行,以及机房国企通过央行的贷款计划购买空池公寓的速度缓慢,高盛预计进一步削减房贷利率以刺激需求,同时为去库存提供更多的资金和效率的支持。在外汇政策方面,鉴于美元持续强势和资本外流的压力,高盛认为央行将在短期内保持美元对人民币汇率的稳定,三个月的高盛预测是7.3,因为外汇市决策者可以迎来抵消关税对出口负面影响的工具。 2018- 19 年的经验表明,如果特朗普赢得美国大选,而且正如他最近几个月所宣称的,会对中国实施正大的关税,那美元兑人民币可能会显著贬值。' + }, + timeCost: '11.6' + } + ] + }, + { + llm: 'doubao-pro-128k', + result: [ + { + context: { + dataTable: [ + { + 党派: '左翼联盟', + 席位: 182 + }, + { + 党派: '新人民战线执政党中间派联盟', + 席位: 168 + }, + { + 党派: '极右翼国民联盟', + 席位: 143 + }, + { + 党派: '右翼共和党', + 席位: 48 + } + ], + fieldInfo: [ + { + fieldName: '党派', + description: '参与法国议会选举的党派', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '席位', + description: '该党派在法国议会选举中获得的席位数', + type: 'numerical', + role: 'measure', + location: 'measure' + }, + { + fieldName: '议题', + description: '法国议会选举中的相关议题', + type: 'string', + role: 'dimension', + location: 'dimension' + } + ], + text: '地图带你看懂法国大选。 2024 年法国议会选举结果揭示了法国社会的撕裂,没有任何党派能获得 577 个议题中的绝对多数。左翼联盟、新人民战线执政党中间派联盟和极右翼国民联盟分别占据 182 席、 168 席、 143 席。除了这三家以外,其余党派席位最多的也只有右翼共和党的 48 席,因此左翼联盟、执政党和极右翼算是形成了三分天下的格局。今天我们便结合地图和数据,聊一聊法国大选。本期视频的所有分析均为个人观点,仅供参考。在开始之前,我先快速的放一下各党派在几个主要政治议题上的立场,有需要的朋友可以截图保存一下。' + }, + timeCost: '5.3' + }, + { + context: { + dataTable: [ + { + 国家: '法国', + 选区数量: 577, + 每个选区人口数量范围: '10 - 12 万', + 城市: '巴黎、里昂、马赛', + 选区分布情况: '人口密集的大城市选区数量多,占比大' + } + ], + fieldInfo: [ + { + fieldName: '国家', + description: '涉及的国家', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '选区数量', + description: '该国的选区总数', + type: 'numerical', + role: 'measure', + location: 'measure' + }, + { + fieldName: '每个选区人口数量范围', + description: '每个选区包含的人口数量范围', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '城市', + description: '人口密集的大城市', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '选区分布情况', + description: '选区在不同城市的分布情况', + type: 'string', + role: 'dimension', + location: 'dimension' + } + ], + text: '现在我们进入正题,首先需要说明法国的选区制度,全国共有 577 个选区,每个选区包括 10- 12 万的人口密集的地方选区就小,人口稀少的区域选区域就大。因此地图上各个政党所占的面积并不能与其票数划等号,而是要看具体的选区分布在人口密集的大城市,譬如巴黎、里昂、马赛,虽然看起来面积小,实际上选区数量很多,占的比重很大。' + }, + timeCost: '7.4' + }, + { + context: { + dataTable: [ + { + 势力: '左翼联盟新人民战线', + 席位数量: 182, + 地区: '大城市', + 年份: 2024, + 失业率省份排名范围: null, + 移民情况: null + }, + { + 势力: '马克龙的执政党中间派联盟', + 席位数量: 168, + 地区: '大城市和西北地区', + 年份: 2024, + 失业率省份排名范围: null, + 移民情况: null + }, + { + 势力: '极右翼国民联盟', + 席位数量: 143, + 地区: '东北与东南地区', + 年份: 2024, + 失业率省份排名范围: null, + 移民情况: null + }, + { + 势力: '右翼共和党', + 席位数量: 48, + 地区: '经济富足且政治观点保守的地区', + 年份: 2024, + 失业率省份排名范围: null, + 移民情况: null + }, + { + 势力: '法国西北地区', + 席位数量: null, + 地区: '西北地区', + 年份: 2024, + 失业率省份排名范围: '20个省失业率最低,21 - 40低的省份', + 移民情况: '大城市少,离地中海远,接受移民少' + } + ], + fieldInfo: [ + { + fieldName: '势力', + description: '政治势力名称', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '席位数量', + description: '获得的席位数量', + type: 'numerical', + role: 'measure', + location: 'measure' + }, + { + fieldName: '地区', + description: '势力的主要分布地区', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '年份', + description: '数据对应时间', + type: 'date', + dateGranularity: 'year', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '失业率省份排名范围', + description: '失业率在省份中的排名范围', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '移民情况', + description: '该地区的移民情况', + type: 'string', + role: 'dimension', + location: 'dimension' + } + ], + text: '尽管如此,马克龙强调市场自由化,支持创新和创业,对欧盟一体化和国际合作的开放还是得到了许多大城市选民的支持。大城市仍然是马克龙的重要支持来源。除了大城市外,我们刚才提到过法国东北地区工业的衰落,其实在法国的西北地区又是另一番景象。之前那张关于中小工业城市分布的途中,我们可以清晰的看到西北地区的工业对于当代法国的重要性,当然工业只是一个缩影。我们再来看失业率地图,黄色代表 2022 年失业率最低的 20 个省,橙色是 21- 40 低的省份,可以看出西北部地区的失业率明显低于东北部。再看移民分布地图,西北部地区因为大城市少,而且离地中海更远,接受的移民也比较少。综上,西北地区的经济较为稳定,而且不受移民带来的社会问题困扰,日子过得比较舒服,这些选民对于未来持乐观态度,也成为了马克龙的另一主要票仓。除了以上三大势力外,浅蓝色代表的右翼共和党也获得了 48 个席位。他们的支持者主要位于经济同样比较富足,但是政治观点更为保守的地区。这里我就不展开讲总结。本期视频我们从法国官方的报告与数据出发,从经济与人口地理的角度分析了法国的大选结果。左翼联盟新人民战线以大城市为根基拿下最多的 182 席,马克龙的执政党中间派联盟则凭借大城市和西北地区的支持者取得了 168 席。乐旁的极右翼国民联盟则主要扎根于东北与东南地区,以 143 起居于第三这样的三分割据局面使得法国议会缺乏绝对多数,并且三方势力相差不大。可以预见在未来法案的通过上会面临极大的阻碍。举例来说,左翼和极右翼甚至存在联手撤回延迟退休法案的理论可能。虽然实际操作起来也面临很多困难,双方都不太愿意和对方合作,但即便是理论,可能也已经能表明未来的不确定性。' + }, + timeCost: '11.0' + }, + { + context: { + dataTable: [ + { + 品牌: '星巴克', + 财报季度: '第二季度', + 营业收入: 8560000000, + 营业收入同比变化: -2, + 净利润变化: -15, + 股票市值蒸发金额: 11500000000, + 优惠券数量: 5, + 咖啡单品团购价: 9 + } + ], + fieldInfo: [ + { + fieldName: '品牌', + description: '咖啡品牌名称', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '财报季度', + description: '公布财报的季度', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '营业收入', + description: '公司的营业总收入', + type: 'numerical', + role: 'measure', + location: 'measure' + }, + { + fieldName: '营业收入同比变化', + description: '营业收入与上年同期相比的变化情况', + type: 'ratio', + role: 'measure', + location: 'measure' + }, + { + fieldName: '净利润变化', + description: '净利润的变化情况', + type: 'ratio', + role: 'measure', + location: 'measure' + }, + { + fieldName: '股票市值蒸发金额', + description: '股票市值减少的金额', + type: 'numerical', + role: 'measure', + location: 'measure' + }, + { + fieldName: '优惠券数量', + description: '手机APP收到的优惠券数量', + type: 'count', + role: 'measure', + location: 'measure' + }, + { + fieldName: '咖啡单品团购价', + description: '部分咖啡单品的团购价格', + type: 'numerical', + role: 'measure', + location: 'measure' + } + ], + text: '住手,你们住手,不要再砸了,你们不要再砸了。万万没想到,瑞幸和库迪的九块九大战,快把星巴克给卷死了。前段时间,星巴克公布了第二季度财报,营业收入 85.6 亿美元,同比下降了2%,净利润大跌15%,股票市值一天内蒸发了 1, 150 亿人民币。另一方面,星巴克的咖啡也在悄悄降价。如果你手机上有星巴克的APP,几乎每天都会收到 5 张以上的优惠券,比如满60.10、满75.15、任意新冰乐 7 折等等,部分单品的团购价优惠下来低至 9 元。终于, 9.9 的风还是卷到了星巴克。在过去很长一段时间里,星巴克是小资生活的代表,一杯咖啡动辄几十块钱,也只有电视剧里那些白领们和云淡风轻的走进去,熟练地点一杯拿铁,找个位置坐下,悠闲地打开电脑喝咖啡。岁月静好人间,值得有人点一杯星巴克,朋友圈能发十几条动态,有人为了抢星巴克限量版的猫爪杯,能通宵排队,甚至大打出手。' + }, + timeCost: '22.3' + }, + { + context: { + dataTable: [ + { + 地区: '美国', + 咖啡价格: 2.95, + 平均月工资: 6228, + 最低时薪: 7.25, + 主力消费人群月薪: null + }, + { + 地区: '中国', + 咖啡价格: 30, + 平均月工资: null, + 最低时薪: null, + 主力消费人群月薪: 60000 + } + ], + fieldInfo: [ + { + fieldName: '地区', + description: '咖啡品牌所在地区', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '咖啡价格', + description: '一杯咖啡的价格', + type: 'numerical', + role: 'measure', + location: 'measure' + }, + { + fieldName: '平均月工资', + description: '该地区的平均月工资', + type: 'numerical', + role: 'measure', + location: 'measure' + }, + { + fieldName: '最低时薪', + description: '该地区的最低时薪', + type: 'numerical', + role: 'measure', + location: 'measure' + }, + { + fieldName: '主力消费人群月薪', + description: '该地区该品牌主力消费人群的月薪', + type: 'numerical', + role: 'measure', + location: 'measure' + } + ], + text: '星巴克在中国国内的定位一直都是高端咖啡品牌,但是很多人不知道的是,它在国外的定位其实是平民咖啡,在美国一杯星巴克大杯美式咖啡大概是 2.95 美元,而根据美国劳工部的统计,美国平均月工资是 6, 228 美元,最低时薪是 7.25 美元,这是啥意思呢? 1002.65 美元的星巴克还不到美国人平均月收入的 2, 000 份之一,也就是平常坐一趟地铁的价格吧。而在中国市场,星巴克的饮品价格普遍要超过 30 元一杯。如果按照美国的对应消费力,它的主力消费人群应该是月薪至少6万元的人。' + }, + timeCost: '8.3' + }, + { + context: { + dataTable: [ + { + 时间: '2019-02', + 产品: '粉爪杯', + 售价: 199, + 网上炒价: 1800 + } + ], + fieldInfo: [ + { + fieldName: '时间', + description: '事件发生的时间', + type: 'date', + dateGranularity: 'year-month', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '产品', + description: '发售的物品', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '售价', + description: '产品的销售价格', + type: 'numerical', + role: 'measure', + location: 'measure' + }, + { + fieldName: '网上炒价', + description: '产品在网上被炒作的价格', + type: 'numerical', + role: 'measure', + location: 'measure' + } + ], + text: '2019 年2月,星巴克就发售了一款粉爪杯,那它长这样?售价 199 元,但是在网上最高炒到了 1, 800 元。有人寒冬腊月在星巴克门口通宵排队,就是为了买到这么一个杯子。还有人因为排队顺序大打出手,最后喜提免费食宿。靠着这些营销方法,在很长一段时间里,普通人对于星巴克是仰望的,觉得去星巴克消费是很有品的,再往前推十年,你甚至可以看到有人去星巴克点一杯咖啡就可以发十几条朋友圈的各种角度各种场景,还要配文低调有实力,天天喝都喝腻了好像呢?甚至有人专门发帖认真的提问,第一次去星巴克主要注意什么?怎么装的像老手呢?我一开始还以为是来搞笑和反讽的,没想到点开帖子此还真的是教大家怎么去星巴克抓老手的,包括但不限于怎么下载APP,问店员这周用的是啥肚子萃取时间是多少?张度和烘焙度怎么样?要不要加糖和加奶?这唬得我一愣一愣的,但是时过境迁,如今星巴克已经支棱不起来了,一边是疯狂降价买三送一搞促销,一边是继续下沉到四五线城市。' + }, + timeCost: '5.0' + }, + { + context: { + dataTable: [ + { + 公司: '星巴克', + 年份: '2025', + 市场级别: 'd 级', + 市场数量: 300 + }, + { + 公司: '星巴克', + 年份: '2025', + 市场级别: '县域', + 市场数量: 3000 + }, + { + 公司: '星巴克', + 年份: '2025', + 门店数量: 7000 + } + ], + fieldInfo: [ + { + fieldName: '公司', + description: '发布战略愿景的公司名称', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '年份', + description: '战略愿景发布的年份', + type: 'date', + dateGranularity: 'year', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '市场级别', + description: '市场的等级划分', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '市场数量', + description: '对应市场级别的数量', + type: 'numerical', + role: 'measure', + location: 'measure' + }, + { + fieldName: '门店数量', + description: '公司在中国的门店总数', + type: 'numerical', + role: 'measure', + location: 'measure' + } + ], + text: '星巴克近期发布的 2025 中国战略愿景当中,中国总部直言不讳地表示,星巴克看中的不仅仅是全国 300 多个 d 级市场,也包括近 3, 000 个县域市场。星巴克的愿景也体现在它的选址变化上,它在中国的门店已经突破了 7, 000 家,但是这开店位置却让人越来越看不懂了。' + }, + timeCost: '6.4' + }, + { + context: { + dataTable: [ + { + 咖啡店: '星巴克', + 咖啡价格: 30 + }, + { + 咖啡店: '瑞幸库里', + 咖啡价格: 9.9 + }, + { + 咖啡店: '瑞幸库里', + 咖啡价格: 9.9 + } + ], + fieldInfo: [ + { + fieldName: '咖啡店', + description: '咖啡品牌名称', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '咖啡价格', + description: '咖啡的售价', + type: 'numerical', + role: 'measure', + location: 'measure' + } + ], + text: '一家卖咖啡的店。星巴克没落的第二个原因是当代年轻人更偏向实用消费主义。坦白讲,大部分人喝咖啡其实就是为了遮住那点咖啡因,好让自己在一天的工作中保持清醒。你跟不懂咖啡的人聊什么豆子产地、风味,他只会回你一句,冰美式和中药有什么区别啊?如果你面前有三杯咖啡,第一杯是星巴克的 30 元美式,后面两杯是瑞幸库里的 9 块 9 咖啡也让你买单,大部分人都会选择后面两个,当然也有人会吹星巴克的豆子有多么多么的好,所以它买的这么贵也是值得的。' + }, + timeCost: '3.7' + }, + { + context: { + dataTable: [ + { + 时间: '6月', + 指标: 'M2', + '同比增长/下滑': 6.2 + }, + { + 时间: '6月', + 指标: 'M1', + '同比增长/下滑': -5 + }, + { + 时间: '6月', + 指标: 'M2-M1 剪刀差', + '同比增长/下滑': 11.2 + }, + { + 时间: '6月', + 人民币存款增加额: 2460000000000 + }, + { + 时间: '6月', + 居民存款增加额: 2140000000000 + }, + { + 时间: '上半年', + 指标: '人民币存款', + '同比增长/下滑': null, + 人民币存款增加额: 11460000000000, + 居民存款增加额: 9270000000000 + } + ], + fieldInfo: [ + { + fieldName: '时间', + description: '数据对应的月份', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '指标', + description: '货币相关指标', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '同比增长/下滑', + description: '同比增长或下滑的数值', + type: 'ratio', + role: 'measure', + location: 'measure' + }, + { + fieldName: '人民币存款增加额', + description: '人民币存款增加的金额', + type: 'numerical', + role: 'measure', + location: 'measure' + }, + { + fieldName: '居民存款增加额', + description: '居民存款增加的金额', + type: 'numerical', + role: 'measure', + location: 'measure' + } + ], + text: '咱聊一下最新的重磅数据,反正挺复杂的,国内6月 M2 同比增长6.2%,预期6.8%。 M1 同比下滑5%,预期下滑5.4%。 M M 一剪刀差走扩至 11.2% 再创新高。6月人民币存款增加 2.46 万亿,其中居民存款增加 2.14 万亿,增量几乎全都是老百姓存的。与 M1 的下滑相对,上半年人民币存款总共增加了 11.46 万亿,其中居民存款增加 9.27 万亿。大头也是老百姓,但增速逐月放缓。' + }, + timeCost: '8.9' + }, + { + context: { + dataTable: [ + { + 日期: '2024-07-11', + 事件: '美国公布CPI数据超预期回落,市场对美联储降息预期大幅升温', + 议息会议时间: '2024-07-31', + 市场预期降息概率: 0.07 + }, + { + 日期: '2024-07-11', + 事件: '美国公布CPI数据超预期回落,市场对美联储降息预期大幅升温', + 议息会议时间: '2024-09-18', + 市场预期降息概率: 0.9 + }, + { + 日期: '2024-07-10', + 事件: '鲍威尔在国会听证会上发表讲话', + 议息会议时间: null, + 市场预期降息概率: null + } + ], + fieldInfo: [ + { + fieldName: '日期', + description: '事件发生的具体日期', + type: 'date', + dateGranularity: 'day', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '事件', + description: '与美联储相关的事件描述', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '议息会议时间', + description: '美联储议息会议的时间', + type: 'date', + dateGranularity: 'day', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '市场预期降息概率', + description: '市场对美联储降息的预期概率', + type: 'ratio', + role: 'measure', + location: 'measure' + } + ], + text: '7月 11 日晚上,由于美国公布的 CPI 数据超预期回落,让市场对美联储降息预期大幅升温。从这场所的美联储观察工具看,虽然7月 30 一日的美联储议息会议,市场预期不降息的概率仍然是达到93%,但9月 18 日的美联储议息会议,市场预期降息一次的概率是达到90%,这比起上个月概率是上升很多。不过我还是得强调一下,这个美联储观察工具将来只能反映市场当前的预期态度,不能拿来预测美联储货币政策,因为这个概率是会不断随着最新经济数据变化而变化。比如要是下个月美国 CPI 出现较大反弹,那9月降息的概率就会大幅下降。而这次市场预期美联储9月降息的概率大幅上升,主要有两个原因,一、美联储鲍威尔在7月 10 日的国会听证会上整体态度偏戈。鲍威尔称,劳动力市场降温意味着持续高通胀的潜在源头已经减弱。他还表示,就业市场的进一步疲软可能是不必要的,也是不受欢迎的。鲍威尔说,通胀方面的工作还没有完成,我们还有更多工作要做,但与此同时,我们需要注意劳动力市场现况,我们已经观察到劳动力市场出现相当明显的疲软,有着新美联储通讯社之称的知名记者尼奇默尔斯认为,鲍威尔本周其实已暗示美联储的利率政策即将开始改变方向。' + }, + timeCost: '7.9' + }, + { + context: { + dataTable: [ + { + 时间: '7 月 11 日晚上 8 点半', + 数据类型: '6 月 CPI 同比上涨率', + 数值: 3, + 市场预期值: 3.1, + 前值: 3.3, + 年份: '2023', + 月份: '6' + }, + { + 时间: '7 月 11 日晚上 8 点半', + 数据类型: '6 月 CPI 环比增长率', + 数值: -0.1, + 市场预期值: null, + 前值: null, + 年份: '2023', + 月份: '6' + } + ], + fieldInfo: [ + { + fieldName: '时间', + description: '数据公布的时间', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '数据类型', + description: '通胀数据的类型', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '数值', + description: '具体的数值', + type: 'numerical', + role: 'measure', + location: 'measure' + }, + { + fieldName: '市场预期值', + description: '市场对数据的预期值', + type: 'numerical', + role: 'measure', + location: 'measure' + }, + { + fieldName: '前值', + description: '上一次的数据值', + type: 'numerical', + role: 'measure', + location: 'measure' + }, + { + fieldName: '年份', + description: '数据对应时间', + type: 'date', + dateGranularity: 'year', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '月份', + description: '数据对应月份', + type: 'string', + role: 'dimension', + location: 'dimension' + } + ], + text: '第二个原因是7月 11 日晚上 8 点半美国劳工部公布的通胀数据,6月 CPI 是同比上涨3%,市场预期值3.1%,前值3.3%。这次美联储 CPI 回落,更关键是 CPI 环比是负增长0.1%,这是美国 2020 年5月以来 CPI 环比首次出现下降,而且美国 2020 年5月还是因为疫情导致的 CPI 骤降,是比较特殊时期,所以美国 CPI 环比负增长确实不太常见。但仔细看美国 VI 月 CPI 的具体构成,感觉猫腻还是不少的。' + }, + timeCost: '9.3' + }, + { + context: { + dataTable: [ + { + 地区: '美国', + 月份: '6月', + 商品: '汽油', + 价格变化: -3.8 + }, + { + 地区: '美国', + 月份: '6月', + 商品: '食品和住房', + 价格变化: 0.2 + }, + { + 地区: '美国', + 月份: '6月', + 商品: '原油期货', + 价格变化: '未提及' + }, + { + 地区: '美国', + 月份: '6月', + 商品: '核心通胀(刨除能源和食品价格)', + 通胀率: 3.3 + } + ], + fieldInfo: [ + { + fieldName: '地区', + description: '数据所涉及的地区', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '月份', + description: '具体月份', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '商品', + description: '涉及的商品种类', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '价格变化', + description: '价格的涨跌幅度', + type: 'ratio', + role: 'measure', + location: 'measure' + }, + { + fieldName: '通胀率', + description: '通货膨胀率', + type: 'ratio', + role: 'measure', + location: 'measure' + } + ], + text: '美国 VI 月 CPI 下降的主要贡献是汽油价格下跌。美国 VI 月汽油价格下跌了3.8%,抑制了当月通胀,抵消了食品和住房价格 0.2% 的上涨。比较诡异的是,美国原油期货价格6月是明明出现大幅上涨,这是因为原油期货价格传导到汽油价格有一些迟滞效应,但那样的话,下个月公布的 CPI 数据,汽油价格可能就得反弹了。要是下个月公布的 CPI 数据,汽油价格还继续下降,那就实在说不过去了。美国刨除能源和食品价格的核心通胀率6月是3.3%,但整体降幅还是低于CPI。' + }, + timeCost: '6.7' + }, + { + context: { + dataTable: [ + { + 国家: '美国', + 月份: '6月', + 通胀类型: '服务业通胀', + 通胀同比涨幅: 5, + 就业数据类型: '非农就业', + 就业人口增加数量: 206000, + 市场预期就业人口增加数量: 190000 + }, + { + 国家: '美国', + 月份: '5月', + 就业数据类型: '非农就业', + 就业人口增加数量: 218000 + }, + { + 国家: '美国', + 月份: '4月', + 就业数据类型: '非农就业', + 就业人口增加数量: 108000 + } + ], + fieldInfo: [ + { + fieldName: '国家', + description: '涉及的国家', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '月份', + description: '具体月份', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '通胀类型', + description: '通胀的类型', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '通胀同比涨幅', + description: '通胀同比上涨的比例', + type: 'ratio', + role: 'measure', + location: 'measure' + }, + { + fieldName: '就业数据类型', + description: '就业数据的类型', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '就业人口增加数量', + description: '非农就业人口增加的人数', + type: 'numerical', + role: 'measure', + location: 'measure' + }, + { + fieldName: '市场预期就业人口增加数量', + description: '市场预期非农就业人口增加的人数', + type: 'numerical', + role: 'measure', + location: 'measure' + } + ], + text: '美国通胀目前最顽固的就是服务业通胀,美国 VI 月服务业通胀仍然是同比上涨5%。美国毕竟是服务业为主的国家,服务业通胀还高居5%,美国要说自己已经控制住通胀,完全就是忽悠人。不过虽然美国大选临近,美国现在经济数据基本是为选型服务,比如已经假的不能再假的美国非农就业数据,美国 VI 月非农就业人口增加20.6万人,高于市场预期的 19 万人。然而美国同时把5月数据从 27.2 万人大幅下修至 21.8 万人,4月从 16.5 万人修正至10.8万人,修正后两个月合计较修正前减少 11.1 万人。' + }, + timeCost: '11.4' + }, + { + context: { + dataTable: [ + { + 市场: '美股', + 日期: '2023-07-11', + 股市走势: '下跌', + 涨跌幅度: -2 + }, + { + 市场: '日股', + 日期: '2023-07-12', + 股市走势: '下跌', + 涨跌幅度: -2.45 + } + ], + fieldInfo: [ + { + fieldName: '市场', + description: '涉及的市场', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '日期', + description: '事件发生的日期', + type: 'date', + dateGranularity: 'day', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '股市走势', + description: '股市的涨跌情况', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '涨跌幅度', + description: '股市涨跌的百分比', + type: 'ratio', + role: 'measure', + location: 'measure' + } + ], + text: '我注意到虽然这次市场大幅提高了美联储9月降息概率,但美股和日股反而不涨反跌,纳斯达克在7月 11 日是下跌了2%,日股在7月 12 日也跟随下跌了2.45%。这是市场反身性效应的某种预演,股市炒的是预期,之前美股和日股是基于美联储降息预期,已经提前涨了一年多了,那么当美联储真正降息之后,市场是可能出现反身性效应,也就是所谓利好落地势利空的说法。当然股市走势千变万化,这也只是其中一种可能性。历史的参考例子,比如 2004 年美联储降息, 2006 年停止加息, 2007 年开始降息,但股市是一直涨到 2007 年底,随后自带危机爆发,股市开始大跌。我之前也梳理过,从 1980 年以来,美联储每次加息超过 5% 的幅度,首次加息后的 2- 4 年内都会爆发金融危机,这次美联储是 2022 年开始加息,所以按照历史路径, 2024 年到 2026 年是有可能爆发世界金融危机,这个结合当前国际局势和地缘形势,还是有挺大的可能性。' + }, + timeCost: '5.4' + }, + { + context: { + dataTable: [ + { + 地区: '黑龙江省', + 时间范围: '10年前至今', + 荒废比例: 60, + 荒废小学数量: 1900 + }, + { + 地区: '东北', + 时间范围: '10年前至今', + 荒废比例: 50, + 荒废小学数量: 6800 + } + ], + fieldInfo: [ + { + fieldName: '地区', + description: '涉及的地区', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '时间范围', + description: '荒废的时间范围', + type: 'date', + dateGranularity: 'year', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '荒废比例', + description: '荒废的比例', + type: 'ratio', + role: 'measure', + location: 'measure' + }, + { + fieldName: '荒废小学数量', + description: '荒废的小学数量', + type: 'count', + role: 'measure', + location: 'measure' + } + ], + text: '以前的小学空荡荡的,老年人养起了鸡鸭鹅狗,彻底荒废了整个黑龙江省, 10 年时间荒废了近六成,小学加起来有 1, 900 余所,整个东北十年荒废了 6, 800 余所小学,少了一半。' + }, + timeCost: '6.6' + }, + { + context: { + dataTable: [ + { + 地区: '兹西县', + 时间: '2024', + 学龄人口变化情况: null, + 生育率: null + }, + { + 地区: '徐文县', + 时间: '2023', + 学龄人口变化情况: null, + 生育率: null + }, + { + 地区: '河南', + 时间: '2023', + 学龄人口变化情况: -2000000, + 生育率: null + }, + { + 地区: '上海', + 时间: '2024', + 学龄人口变化情况: null, + 生育率: 0.6 + } + ], + fieldInfo: [ + { + fieldName: '地区', + description: '具体的地理位置', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '时间', + description: '相关事件发生的时间', + type: 'date', + dateGranularity: 'year', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '学龄人口变化情况', + description: '小学学龄人口的数量变化', + type: 'numerical', + role: 'measure', + location: 'measure' + }, + { + fieldName: '生育率', + description: '总和生育率', + type: 'ratio', + role: 'measure', + location: 'measure' + } + ], + text: '而小学缺孩子这个趋势早已经蔓延至全国各地了。东部的兹西县,有的小学一个班只有一个学生。华南的徐文县,去年某小学开学,一年级也只有一个学生。中部人口大省河南,据测算, 2023- 2027 年小学学龄人口预计下降 200 多万人,缩水超两成,出现了基数的坍塌。从全国来看,基于学龄人口的预测显示,全国超 1, 400 个县域中,近九成县域小学学龄人口预计下滑,小学鹤岗化以谁也没想到的方式在扩散,从东北开始到大江南北,下一步可能是上海最新的总和生育率只有 0.6 了,该来的总是要来,从民政局冷冷清清到妇产科缺孩子,再到幼儿园关停潮,现在轮到了小学关停潮,这个传播链条还在扩散。' + }, + timeCost: '6.9' + }, + { + context: { + dataTable: [ + { + 省份数量: 10, + 城市数量: 24, + 城市: '广东惠州', + 房价: 60000 + }, + { + 省份数量: 10, + 城市数量: 24, + 城市: '广西南宁', + 房价: 50000 + }, + { + 省份数量: 10, + 城市数量: 24, + 城市: '山东东营', + 房价: 40000 + }, + { + 省份数量: 10, + 城市数量: 24, + 城市: '江苏南京', + 房价: 30000 + }, + { + 省份数量: 10, + 城市数量: 24, + 城市: '黑龙江大靶', + 房价: 10000 + }, + { + 省份数量: 10, + 城市数量: 24, + 城市: '京津两市交界处某楼盘', + 房价: 390000 + } + ], + fieldInfo: [ + { + fieldName: '省份数量', + description: '出现房子白菜价情况的省份数量', + type: 'numerical', + role: 'measure', + location: 'measure' + }, + { + fieldName: '城市数量', + description: '出现房子白菜价情况的城市数量', + type: 'numerical', + role: 'measure', + location: 'measure' + }, + { + fieldName: '城市', + description: '出现房子白菜价的具体城市', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '房价', + description: '房子的价格', + type: 'numerical', + role: 'measure', + location: 'measure' + } + ], + text: '实际上,如果鹤岗化只是局限于教育领域,那还好说,但不是实际情况复杂的多楼市,像鹤岗那样房子白菜价的城市越来越多了,据不完全统计,至少有 10 个省 24 个城市陷入几万元买房的讨论。不是每平方米单价几万,而是一套房总价几万。网传广东惠州6万,广西南宁5万,山东东营4万,江苏南京3万,黑龙江大靶1万,这个传播势头在这轮楼市调整的加持下,现在已经来到了北京的外围,在京津两市的交界处,抹楼盘从 160 万元降到了 39 万,而且打了骨折还卖不出去。' + }, + timeCost: '7.7' + }, + { + context: { + dataTable: [ + { + 地区: '鹤岗', + 事件: '全国第一个财政重整的地级市,传出来停招公务员', + 人口数量: null, + 编制人员数量: null, + 行政管理支出: null, + 一般公共预算收入: null, + 工资预算总支出: null, + 在职人员工资支出: null, + 离退休人员工资支出: null, + 零聘人员工资支出: null, + 在职人员数量: null, + 临聘人员数量: null + }, + { + 地区: '秦岭深处某县', + 事件: '过紧日子的城市之一', + 人口数量: 30000, + 编制人员数量: 2194, + 行政管理支出: 18000000, + 一般公共预算收入: null, + 工资预算总支出: null, + 在职人员工资支出: null, + 离退休人员工资支出: null, + 零聘人员工资支出: null, + 在职人员数量: null, + 临聘人员数量: null + }, + { + 地区: '乌蒙山区某县', + 事件: '过紧日子的城市之一', + 人口数量: null, + 编制人员数量: null, + 行政管理支出: null, + 一般公共预算收入: 700000000, + 工资预算总支出: 2630000000, + 在职人员工资支出: 2000000000, + 离退休人员工资支出: 170000000, + 零聘人员工资支出: 460000000, + 在职人员数量: 15000, + 临聘人员数量: 28000 + } + ], + fieldInfo: [ + { + fieldName: '地区', + description: '具体的地方', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '事件', + description: '地方相关的情况', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '人口数量', + description: '地区的人口数', + type: 'numerical', + role: 'measure', + location: 'measure' + }, + { + fieldName: '编制人员数量', + description: '地区的编制人员数', + type: 'numerical', + role: 'measure', + location: 'measure' + }, + { + fieldName: '行政管理支出', + description: '一年的行政管理费用', + type: 'numerical', + role: 'measure', + location: 'measure' + }, + { + fieldName: '一般公共预算收入', + description: '地区的一般公共预算收入金额', + type: 'numerical', + role: 'measure', + location: 'measure' + }, + { + fieldName: '工资预算总支出', + description: '工资方面的预算总支出金额', + type: 'numerical', + role: 'measure', + location: 'measure' + }, + { + fieldName: '在职人员工资支出', + description: '在职人员的工资支出金额', + type: 'numerical', + role: 'measure', + location: 'measure' + }, + { + fieldName: '离退休人员工资支出', + description: '离退休人员的工资支出金额', + type: 'numerical', + role: 'measure', + location: 'measure' + }, + { + fieldName: '零聘人员工资支出', + description: '零聘人员的工资支出金额', + type: 'numerical', + role: 'measure', + location: 'measure' + }, + { + fieldName: '在职人员数量', + description: '地区的在职人员数量', + type: 'numerical', + role: 'measure', + location: 'measure' + }, + { + fieldName: '临聘人员数量', + description: '地区的临聘人员数量', + type: 'numerical', + role: 'measure', + location: 'measure' + } + ], + text: '地方财力,之前鹤岗是全国第一个财政重整的地级市,甚至传出来停招公务员,现在过紧日子的城市也越来越多了。秦岭深处某县人口只有3万,编制人员却有 2, 194 名,一年的行政管理支出 1, 800 万,排在支出的首位。乌蒙山区某县一般公共预算收入 7 个亿,但工资预算总支出 26.3 亿,其中在职人员 20 亿,离退休人员 1.7 亿,零聘人员 4.6 亿。注意一个细节,在职人员数量 1.5 万,临聘人员数量 2.8 万。' + }, + timeCost: '21.9' + }, + { + context: { + dataTable: [ + { + 城市: '深圳', + 年份: '2021', + 房价走势: '持续低迷', + 二手房均价跌幅: -40, + 房源情况: '各热点城市二手房每成交一套就要多出好几套', + 飞天茅台价格相关: '新增的房源和房价表现几乎完全正相关的是53度飞天茅台的价格' + } + ], + fieldInfo: [ + { + fieldName: '城市', + description: '涉及的城市名称', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '年份', + description: '数据对应时间', + type: 'date', + dateGranularity: 'year', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '房价走势', + description: '房价的变化情况', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '二手房均价跌幅', + description: '二手房均价相比最高点的下跌比例', + type: 'ratio', + role: 'measure', + location: 'measure' + }, + { + fieldName: '房源情况', + description: '各热点城市二手房的成交与新增房源情况', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '飞天茅台价格相关', + description: '与房价表现相关的飞天茅台价格情况', + type: 'string', + role: 'dimension', + location: 'dimension' + } + ], + text: '中国房价一度被视为坚不可摧的资产堡垒,更一度有京沪永远涨的口号。然而,自 2021 年以来,包括一线城市在内,房价持续低迷,深圳全市二手房均价距离 2021 年初的最高点跌幅已接近40%,而且还没有停下来的意思。各热点城市二手房每成交一套就要多出好几套,新增的房源和房价表现几乎完全正相关的是飞天茅台的价格, 53 度。' + }, + timeCost: '6.5' + }, + { + context: { + dataTable: [ + { + 商品: '飞天茅台', + 年份: '2021', + 价格: 3500 + }, + { + 商品: '飞天茅台', + 年份: '2024', + 价格: 2000 + }, + { + 商品: '一线房产', + 年份: '2012', + 价格: null + }, + { + 商品: '飞天茅台', + 年份: '2012', + 价格: null + } + ], + fieldInfo: [ + { + fieldName: '商品', + description: '所涉及的商品名称', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '年份', + description: '数据对应时间', + type: 'date', + dateGranularity: 'year', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '价格', + description: '商品的价格', + type: 'numerical', + role: 'measure', + location: 'measure' + } + ], + text: '飞天茅台在 2021 年巅峰时期,一瓶售价超过 3, 500 元,如今已经快跌破 2, 000 元,是巧合吗?过去一线城市房价和飞天茅台价格可以说是最硬的人民币计价资产了,甚至比现金还要优质。一线房产和飞天茅台在相当长的一段时间内有两个相同属性,一他们可以长期增值。二他们易于套现。然而现在情况出现了前所未有的变化,房价和飞天茅台两者双双在 2012 一年见顶。' + }, + timeCost: '5.1' + }, + { + context: { + dataTable: [ + { + 品牌: '保时捷', + 年份: '2021', + 车型: 'Macan', + 原价: 608000, + 优惠金额: 160000, + 优惠后价格: 448000, + 折扣力度: 80 + }, + { + 品牌: '保时捷', + 年份: '2024', + 车型: '泰肯', + 原价: 1038000, + 优惠金额: 338000, + 优惠后价格: 700000, + 折扣力度: 70 + } + ], + fieldInfo: [ + { + fieldName: '品牌', + description: '汽车品牌', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '年份', + description: '数据对应时间', + type: 'date', + dateGranularity: 'year', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '车型', + description: '汽车具体型号', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '原价', + description: '汽车的初始价格', + type: 'numerical', + role: 'measure', + location: 'measure' + }, + { + fieldName: '优惠金额', + description: '汽车的优惠价格数额', + type: 'numerical', + role: 'measure', + location: 'measure' + }, + { + fieldName: '优惠后价格', + description: '汽车优惠后的价格', + type: 'numerical', + role: 'measure', + location: 'measure' + }, + { + fieldName: '折扣力度', + description: '汽车的折扣比例', + type: 'ratio', + role: 'measure', + location: 'measure' + } + ], + text: '这不是巧合,其他很多数据也都在 2021 年见顶,比如另一个在 2021 年见顶并开始走下神坛的保时捷。保时捷销量的恶化还在加速,过去一年多,中国市场上保时捷的落地价可以说是惨不忍睹。近期,保时捷只卖 44 万的话题也引发了热议,其华南区域一家终端门店称, Macan 正在进行优惠促销,最高优惠 16 万,该车优惠后最低售价为 44.8 万。另外,在山东、湖北、江西、福建、浙江、江苏等多省份,该车均出现了 50 万元以下的裸车价,而报价达到 103.8 万的泰肯,现在 70 多万就可以拿下。目前,保时捷几乎所有的车型都可以打 7- 8 折。' + }, + timeCost: '12.7' + }, + { + context: { + dataTable: [ + { + 汽车品牌: '保时捷', + 时间: '2024-Q1', + 销售量: 16340, + 同比变化率: -24 + }, + { + 汽车品牌: '保时捷', + 时间: '2024-05', + 销售量: 4633, + 同比变化率: -40.61 + } + ], + fieldInfo: [ + { + fieldName: '汽车品牌', + description: '豪华汽车的品牌名称', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '时间', + description: '销售数据对应的时间', + type: 'date', + dateGranularity: 'quarter', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '销售量', + description: '汽车的销售数量', + type: 'numerical', + role: 'measure', + location: 'measure' + }, + { + fieldName: '同比变化率', + description: '与上年同期相比的销售变化比例', + type: 'ratio', + role: 'measure', + location: 'measure' + } + ], + text: '不只是保时捷,包括奔驰、宝马、奥迪在内的豪华汽车品牌今年以来都在大幅降价,但仍然止不住销量断崖式下降。 2024 年一季度,保时捷中国卖出 16, 340 辆,同比大幅下降24%。保时捷在今年 5 月份仅卖出 4, 633 辆,同比去年5月下滑高达40.61%。这说明保时捷在中国的销量正在加速减少。' + }, + timeCost: '4.8' + }, + { + context: { + dataTable: [ + { + 车型: '特斯拉 3 和 y', + 地区: '中国', + 起始时间: '2022', + 售价: null, + 原本指导价: null, + '美国起售价(美元)': null, + 中国售价与美国售价对比: null + }, + { + 车型: '卡罗拉', + 地区: '中国', + 起始时间: '2022', + 售价: 79800, + 原本指导价: 131800, + '美国起售价(美元)': 23500, + 中国售价与美国售价对比: 50 + }, + { + 车型: '凯美瑞', + 地区: '中国', + 起始时间: '2022', + 售价: 149800, + 原本指导价: null, + '美国起售价(美元)': null, + 中国售价与美国售价对比: null + }, + { + 车型: '汉兰达', + 地区: '中国', + 起始时间: '2022', + 售价: null, + 原本指导价: null, + '美国起售价(美元)': null, + 中国售价与美国售价对比: null + } + ], + fieldInfo: [ + { + fieldName: '车型', + description: '汽车的型号', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '地区', + description: '汽车销售的地区', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '起始时间', + description: '价格对比的起始时间', + type: 'date', + dateGranularity: 'year', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '售价', + description: '汽车的销售价格', + type: 'numerical', + role: 'measure', + location: 'measure' + }, + { + fieldName: '原本指导价', + description: '汽车原本的指导价格', + type: 'numerical', + role: 'measure', + location: 'measure' + }, + { + fieldName: '美国起售价(美元)', + description: '美国油电混动卡罗拉的起售价格(以美元计)', + type: 'numerical', + role: 'measure', + location: 'measure' + }, + { + fieldName: '中国售价与美国售价对比', + description: '中国售价相对于美国售价的比例', + type: 'ratio', + role: 'measure', + location: 'measure' + } + ], + text: '从两年前开始,特斯拉的 3 和 y 中国售价就是世界最低的, 7.98 万可以买到原本指导价 13.18 万的油电混动的卡罗拉。做一个对比,美国的油电混动卡罗拉的起售价是 2.35 万美元,有时甚至还要加价。按照美元人民币汇率计算,这款车的中国售价居然只有美国的一半水平,尽管配置存在差异,但不影响价格差异巨大的这个结论。除了卡罗拉外,汉兰达和凯美瑞也都大幅降价,即使是两年前,我们也很难想象只要 14.98 万人民币就可以买到最新款的混动版凯美瑞。' + }, + timeCost: '13.1' + }, + { + context: { + dataTable: [ + { + 交通方式: '打车(十多年前)', + 时间: '十多年前', + 价格范围: [110, 120] + }, + { + 交通方式: '滴滴(现在)', + 时间: '2024', + 价格范围: [60, 70] + }, + { + 交通方式: '出租车(现在)', + 时间: '2024', + 价格范围: [110, 120] + } + ], + fieldInfo: [ + { + fieldName: '交通方式', + description: '出行的交通方式', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '时间', + description: '数据对应的时间', + type: 'date', + dateGranularity: 'year', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '价格范围', + description: '从首都机场到西直门的价格区间', + type: 'numerical', + role: 'measure', + location: 'measure' + } + ], + text: '中国物价的下降不仅仅体现在商品上,服务价格也是类似的趋势。举个例子,十多年前我常驻北京,当时经常在晚上十一二点从首都机场打车到西直门这样一段单程大约需要 110- 120 元,而现在滴滴大概只要 60- 70 元。如果是现在的出租车,价格和十多年前还是一样的。' + }, + timeCost: '5.0' + }, + { + context: { + dataTable: [ + { + 银行: '工行', + 年份: '2022', + 个人住房贷款不良率: 0.39 + }, + { + 银行: '工行', + 年份: '2023', + 个人住房贷款不良率: 0.44 + }, + { + 银行: '农行', + 年份: '2022', + 个人住房贷款不良率: 0.51 + }, + { + 银行: '农行', + 年份: '2023', + 个人住房贷款不良率: 0.55 + }, + { + 银行: '建行', + 年份: '2022', + 个人住房贷款不良率: 0.37 + }, + { + 银行: '建行', + 年份: '2023', + 个人住房贷款不良率: 0.42 + } + ], + fieldInfo: [ + { + fieldName: '银行', + description: '银行名称', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '年份', + description: '数据对应时间', + type: 'date', + dateGranularity: 'year', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '个人住房贷款不良率', + description: '个人住房贷款的不良率', + type: 'ratio', + role: 'measure', + location: 'measure' + } + ], + text: '以工行、农行、建行发布的数据来看,其 2023 年个人住房贷款不良率分别由 2022 年的0.39%、0.51%、 0.37% 增长至了0.44%、 0.55% 和0.42%,基本都实现了两位数的增幅。大家别觉得这些小数字没啥大不了的,要知道这三家银行每一家的个人住房贷款余额都超过了5万亿,而且按揭贷款往年基本上都是银行稳赚不赔的买卖。供建农三家银行之所以每年能够包揽中国最赚钱企业的前三名,按揭贷款所带来的收益贡献巨大。现在这个优质资产的不良率正在以每年两位数的增幅增加。' + }, + timeCost: '7.8' + }, + { + context: { + dataTable: [ + { + 年份: '2022', + 法拍房挂牌数量: 980000, + 法拍房挂牌数量同比增长率: null + }, + { + 年份: '2023', + 法拍房挂牌数量: 1410000, + 法拍房挂牌数量同比增长率: '43.9' + }, + { + 年份: '2024', + 法拍房挂牌数量: 604400, + 法拍房挂牌数量同比增长率: '192' + }, + { + 年份: '2024', + 法拍房挂牌数量: 2000000, + 法拍房挂牌数量同比增长率: null + } + ], + fieldInfo: [ + { + fieldName: '年份', + description: '数据对应时间', + type: 'date', + dateGranularity: 'year', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '法拍房挂牌数量', + description: '全国法拍房挂牌的套数', + type: 'numerical', + role: 'measure', + location: 'measure' + }, + { + fieldName: '法拍房挂牌数量同比增长率', + description: '法拍房挂牌数量的同比增长比例', + type: 'ratio', + role: 'measure', + location: 'measure' + } + ], + text: '你是银行,你慌不慌?而另一项作为佐证的数据则是法拍房,大家知道现在法拍房的数据有多夸张吗?根据瀚海研究院发布的数据显示, 2022 年全国共挂牌法拍房 98 万套,去年这个数字变成了 141 万套,增长了43.9%。而今年光是一季度的挂牌数量就已飙升至 60.44 万套通,同比上涨192%。这种局势下,银行要是再不改变断供处置策略,那今年的法拍数量估计有望达到 200 万。' + }, + timeCost: '6.5' + }, + { + context: { + dataTable: [ + { + 地区: '北京', + 年份: '2023', + 挂牌法拍房数量: 8153, + 成交法拍房数量: 2771, + 处置率: 33 + } + ], + fieldInfo: [ + { + fieldName: '地区', + description: '涉及的地区名称', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '年份', + description: '数据对应的时间', + type: 'date', + dateGranularity: 'year', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '挂牌法拍房数量', + description: '挂牌法拍房的套数', + type: 'numerical', + role: 'measure', + location: 'measure' + }, + { + fieldName: '成交法拍房数量', + description: '成交的法拍房套数', + type: 'numerical', + role: 'measure', + location: 'measure' + }, + { + fieldName: '处置率', + description: '成交法拍房数量占挂牌法拍房数量的比例', + type: 'ratio', + role: 'measure', + location: 'measure' + } + ], + text: '事实上,对银行来说,现在的行情即使他收了房也难以处置。我们以北京为例, 2023 年北京挂牌法拍房 8, 153 套,最终成交仅 2, 771 套,处置率为33%,这还是房价波动相对较小的北京,换到其他已经跌穿首付的地区,处置率恐怕只会更低。而在法拍流程里,流拍和拍品二次上拍都会在此前的价格上更进一步降低,这也导致了银行回款难度的进一步提高。虽然按照现在的规则,这部分差价是由贷款人承担的,但对方既然已经到了选择断供的地步,可想而知最终也执行不了多少。' + }, + timeCost: '6.1' + }, + { + context: { + dataTable: [ + { + 时间: '2024-04-30', + 行业: '房地产', + 发展方向: '统筹消化存量房产和优化增量住房', + 未出售商品房面积: 746000000, + 正常库存水平面积: 590000000, + 城市数量: 222, + 宽松政策数量: 341, + 销售面积情况: '持续走低', + 投资金额情况: '持续走低' + } + ], + fieldInfo: [ + { + fieldName: '时间', + description: '相关事件发生的时间', + type: 'date', + dateGranularity: 'day', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '行业', + description: '涉及的行业', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '发展方向', + description: '行业的发展方向', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '未出售商品房面积', + description: '我国未出售的商品房面积', + type: 'numerical', + role: 'measure', + location: 'measure' + }, + { + fieldName: '正常库存水平面积', + description: '商品房的正常库存水平面积', + type: 'numerical', + role: 'measure', + location: 'measure' + }, + { + fieldName: '城市数量', + description: '出台宽松政策的城市数量', + type: 'numerical', + role: 'measure', + location: 'measure' + }, + { + fieldName: '宽松政策数量', + description: '出台的宽松政策数量', + type: 'numerical', + role: 'measure', + location: 'measure' + }, + { + fieldName: '销售面积情况', + description: '销售面积的变化情况', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '投资金额情况', + description: '投资金额的变化情况', + type: 'string', + role: 'dimension', + location: 'dimension' + } + ], + text: '另一项推动银行改变策略的原因,则是今年4月 30 号的一场会议,这场会议确定了房地产行业未来一年的发展方向,统筹消化存量房产和优化增量住房,用大家都熟悉的话来说就是去库存。根据国家统计局的官方数据显示,截至 2024 年5月,我国未出售商品房为 7.46 亿平米,远超 5.9 亿平米的正常库存水平。而整个上半年,根据 CRS 的统计,全国 222 个城市总计出台了 341 项宽松政策,但带来的效果均不理想,无论是销售面积还是投资金额,仍然在持续走低。' + }, + timeCost: '11.1' + }, + { + context: { + dataTable: [ + { + 职业: '财经记者,大学老师,滴滴司机,up 主', + 年份: '2023', + 国家: '中国', + 汽车出口量: 4910000 + }, + { + 职业: '财经记者,大学老师,滴滴司机,up 主', + 年份: '2023', + 国家: '日本', + 汽车出口量: null + }, + { + 职业: '财经记者,大学老师,滴滴司机,up 主', + 年份: '2021', + 国家: '中国', + 汽车出口量: 2020000 + }, + { + 职业: '财经记者,大学老师,滴滴司机,up 主', + 年份: '2022', + 国家: '中国', + 汽车出口量: 3110000 + } + ], + fieldInfo: [ + { + fieldName: '职业', + description: '个人从事过的职业', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '年份', + description: '数据对应时间', + type: 'date', + dateGranularity: 'year', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '国家', + description: '汽车出口量相关的国家', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '汽车出口量', + description: '汽车出口的数量', + type: 'numerical', + role: 'measure', + location: 'measure' + } + ], + text: '大家好,我拍拍一名做过财经记者,大学老师和滴滴司届 up 主。 2023 年,我国汽车出口量达到了 491 万辆,超越日本成为世界第一汽车出口国。要知道,日本在这个位置坐了 8 年之久,而中国仅在过去三年时间里接连赶超韩国、德国、日本。中国汽车出口, 2021 年 202 万辆, 2022 年 311 万辆, 2023 年 491 万辆。' + }, + timeCost: '6.2' + }, + { + context: { + dataTable: [ + { + 车型: '名爵ZS', + 国内指导价: 80000 + }, + { + 车型: '名爵ZS', + 国内指导价: 90000 + }, + { + 车型: '特斯拉 model y', + 国内指导价: null + }, + { + 车型: '奇瑞瑞虎7', + 国内指导价: 100000 + }, + { + 车型: '特斯拉 model 3', + 国内指导价: null + }, + { + 车型: '名爵 4 EV', + 国内指导价: 100000 + }, + { + 车型: '奇瑞虎5X', + 国内指导价: 100000 + }, + { + 车型: '欧盟达名爵5', + 国内指导价: 100000 + }, + { + 车型: '缤越元plus', + 国内指导价: 100000 + }, + { + 车型: '名爵 5', + 国内指导价: 60000 + }, + { + 车型: '缤越', + 国内指导价: 60000 + } + ], + fieldInfo: [ + { + fieldName: '车型', + description: '中国乘用车出口的具体车型', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '国内指导价', + description: '车辆在国内的指导价格', + type: 'numerical', + role: 'measure', + location: 'measure' + } + ], + text: '中国汽车转眼间为何变得这么受欢迎呢?又到底是哪些国家在购买中国汽车?中国卖给老外汽车又是些什么品牌和价位车型?本期视频就为大家打开中国汽车出口全球第一背后的真实数据。首先,中国出口的 491 万辆汽车都是些什么车呢?根据乘联会统计,中国乘用车出口量前十车型分别为名爵ZS、特斯拉 model y、奇瑞瑞虎7、特斯拉 model 3、名爵 4 EV、奇瑞虎5X、欧盟达名爵5、缤越元plus。除了特斯拉的 model y 和 model 3,其他车型国内指导价基本都在 10 万元左右,比如排名第一的名爵ZS,指导价 8- 9万元,最便宜的名爵 5 和缤越低到6万元就能拿下,可见中国汽车出海主打的还是一个性价比。' + }, + timeCost: '8.6' + }, + { + context: { + dataTable: [ + { + 车辆类型: '燃油车', + 年份: '2013', + 出口数量: 3710000, + 占出口总量比例: null, + 新能源出口增速: null + }, + { + 车辆类型: '新能源车', + 年份: '2013', + 出口数量: 1200000, + 占出口总量比例: 25, + 新能源出口增速: null + }, + { + 车辆类型: '新能源车', + 年份: '2023', + 出口数量: null, + 占出口总量比例: null, + 新能源出口增速: 77.6 + } + ], + fieldInfo: [ + { + fieldName: '车辆类型', + description: '车的类型,包括燃油车和新能源车', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '年份', + description: '数据对应时间', + type: 'date', + dateGranularity: 'year', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '出口数量', + description: '车辆的出口数量', + type: 'numerical', + role: 'measure', + location: 'measure' + }, + { + fieldName: '占出口总量比例', + description: '新能源车占出口总量的比例', + type: 'ratio', + role: 'measure', + location: 'measure' + }, + { + fieldName: '新能源出口增速', + description: '新能源汽车出口的增长速度', + type: 'ratio', + role: 'measure', + location: 'measure' + } + ], + text: '如果按燃油车、新能源车的分类来看, 2013 年中国出口燃油车 371 万辆,出口新能源汽车 120 万辆,新能源车占到出口总量的25%,虽然这个占比目前只有 1/ 4,但去年新能源出口增速是77.6%,势头不可谓不猛。' + }, + timeCost: '7.5' + }, + { + context: { + dataTable: [ + { + 国家: '俄罗斯', + 年份: '2013', + 出口量: 909000 + }, + { + 国家: '墨西哥', + 年份: '2013', + 出口量: 415000 + }, + { + 国家: '比利时', + 年份: '2013', + 出口量: 217000 + }, + { + 国家: '澳大利亚', + 年份: '2013', + 出口量: 214000 + }, + { + 国家: '英国', + 年份: '2013', + 出口量: 214000 + }, + { + 国家: '沙特阿拉伯', + 年份: '2013', + 出口量: 213000 + }, + { + 国家: '菲律宾', + 年份: '2013', + 出口量: 172000 + }, + { + 国家: '泰国', + 年份: '2013', + 出口量: 169000 + }, + { + 国家: '阿联酋', + 年份: '2013', + 出口量: 159000 + }, + { + 国家: '西班牙', + 年份: '2013', + 出口量: 139000 + }, + { + 地区: '欧洲', + 年份: '2013', + 占比: 38 + } + ], + fieldInfo: [ + { + fieldName: '国家', + description: '汽车出口的目的地国家', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '年份', + description: '数据对应时间', + type: 'date', + dateGranularity: 'year', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '出口量', + description: '中国汽车对该国的出口数量(万辆)', + type: 'numerical', + role: 'measure', + location: 'measure' + }, + { + fieldName: '地区', + description: '汽车出口的市场地区', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '占比', + description: '该地区在中国汽车对外出口中的占比', + type: 'ratio', + role: 'measure', + location: 'measure' + } + ], + text: '那中国汽车出口都卖到了哪些国家呢? 2013 年中国汽车出口量前十的国家分别是,俄罗斯90.9万辆,墨西哥 41.5 万辆,比利时 21.7 万辆,澳大利亚 21.4 万辆,英国 21.4 万辆,沙特阿拉伯 21.3 万辆,菲律宾 17.2 万辆,泰国 16.9 万辆,阿联酋 15.9 万辆,西班牙 13.9 万辆。按地区来看的话,欧洲市场占中国汽车对外出口的38%,远超其他任何单一大洲,可见中国汽车正在得到全世界更多人的认可。' + }, + timeCost: '12.6' + }, + { + context: { + dataTable: [ + { + 国家: '俄罗斯', + 年份: '2022', + 对该国汽车出口量: 160000, + 出口量增长比例: null, + 该国新车市场品牌: null, + 市场占有率: null + }, + { + 国家: '俄罗斯', + 年份: '2023', + 对该国汽车出口量: 909000, + 出口量增长比例: 468, + 该国新车市场品牌: '拉达', + 市场占有率: null + }, + { + 国家: '俄罗斯', + 年份: '2023', + 对该国汽车出口量: 909000, + 出口量增长比例: 468, + 该国新车市场品牌: '奇瑞金车', + 市场占有率: 11.2 + }, + { + 国家: '俄罗斯', + 年份: '2023', + 对该国汽车出口量: 909000, + 出口量增长比例: 468, + 该国新车市场品牌: '哈弗', + 市场占有率: 10.6 + }, + { + 国家: '俄罗斯', + 年份: '2023', + 对该国汽车出口量: 909000, + 出口量增长比例: 468, + 该国新车市场品牌: '极客', + 市场占有率: null + }, + { + 国家: '俄罗斯', + 年份: '2023', + 对该国汽车出口量: 909000, + 出口量增长比例: 468, + 该国新车市场品牌: null, + 市场占有率: 51 + }, + { + 国家: '俄罗斯', + 年份: '2024', + 对该国汽车出口量: null, + 出口量增长比例: null, + 该国新车市场品牌: null, + 市场占有率: 80 + } + ], + fieldInfo: [ + { + fieldName: '国家', + description: '涉及的国家', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '年份', + description: '数据对应时间', + type: 'date', + dateGranularity: 'year', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '对该国汽车出口量', + description: '中国对该国的汽车出口数量', + type: 'numerical', + role: 'measure', + location: 'measure' + }, + { + fieldName: '出口量增长比例', + description: '中国对该国汽车出口量的增长百分比', + type: 'ratio', + role: 'measure', + location: 'measure' + }, + { + fieldName: '该国新车市场品牌', + description: '在该国新车市场中的汽车品牌', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '市场占有率', + description: '汽车品牌在该国新车市场的占比', + type: 'ratio', + role: 'measure', + location: 'measure' + } + ], + text: '当然了,中国汽车出口世界第一,又不得不提议俄罗斯和墨西哥这两个国家可以说去年是把中国车买爆了。 203 年,中国对俄罗斯的汽车出口量从上一年度的 16 万辆暴增到了90.9万辆,增加了468%。在俄罗斯的新车市场中,第一名是俄罗斯品牌拉达,第二至第七名则全都是中国品牌,比如第二名是奇瑞金车,市场占有率11.2%。第三名是哈弗,新车,市场占有率10.6%。俄罗斯卖最好的新能源车也是来自中国的极客。目前中国汽车已经占据俄罗斯新车市场的51%,可以说是拿下了半壁江山。而对于中国而言,仅俄罗斯一个国家 203 年就贡献了中国汽车出口增量的42%,甚至有俄罗斯本土汽车经销商预测, 2024 年中国汽车可能占据俄罗斯新车份额的80%。' + }, + timeCost: '15.3' + }, + { + context: { + dataTable: [ + { + 地区: '俄罗斯', + 年份: '2013', + 国家: '欧洲', + 市场份额变化前: 18, + 市场份额变化后: 4 + }, + { + 地区: '俄罗斯', + 年份: '2013', + 国家: '韩国', + 市场份额变化前: 16, + 市场份额变化后: 6 + }, + { + 地区: '俄罗斯', + 年份: '2013', + 国家: '日本', + 市场份额变化前: 12, + 市场份额变化后: 5 + } + ], + fieldInfo: [ + { + fieldName: '地区', + description: '汽车市场所在地区', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '年份', + description: '数据对应时间', + type: 'date', + dateGranularity: 'year', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '国家', + description: '汽车来源国家', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '市场份额变化前', + description: '变化前的市场份额占比', + type: 'ratio', + role: 'measure', + location: 'measure' + }, + { + fieldName: '市场份额变化后', + description: '变化后的市场份额占比', + type: 'ratio', + role: 'measure', + location: 'measure' + } + ], + text: '有人说俄罗斯满爆中国汽车是因为欧美的贸易封锁,这也步无道理。 2013 年在俄罗斯的新车市场中,欧洲的市场份额从 18% 降到了4%,韩国从 16% 降到了6%,日本从 12% 降到了5%,和欧日韩都是对俄罗斯实行了限制出口国家,其中就包括了部分汽车,可以说中国汽车吃下的正是欧日韩在俄罗斯丢掉市场。' + }, + timeCost: '6.4' + }, + { + context: { + dataTable: [ + { + 国家: '墨西哥', + 年份: '2013', + 中国汽车在该国销售汽车中的占比: 25, + 中国汽车品牌: null, + 中国汽车销量: null, + 中国新能源车在该国新能源车市场的份额: null + }, + { + 国家: '墨西哥', + 年份: '2007', + 中国汽车在该国销售汽车中的占比: 0, + 中国汽车品牌: null, + 中国汽车销量: null, + 中国新能源车在该国新能源车市场的份额: null + }, + { + 国家: '澳大利亚', + 年份: '2023', + 中国汽车在该国销售汽车中的占比: null, + 中国汽车品牌: '名爵', + 中国汽车销量: 58000, + 中国新能源车在该国新能源车市场的份额: null + }, + { + 国家: '澳大利亚', + 年份: '2023', + 中国汽车在该国销售汽车中的占比: null, + 中国汽车品牌: null, + 中国汽车销量: null, + 中国新能源车在该国新能源车市场的份额: 14 + } + ], + fieldInfo: [ + { + fieldName: '国家', + description: '购买中国汽车的国家', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '年份', + description: '数据对应时间', + type: 'date', + dateGranularity: 'year', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '中国汽车在该国销售汽车中的占比', + description: '该国销售汽车中来自中国的比例', + type: 'ratio', + role: 'measure', + location: 'measure' + }, + { + fieldName: '中国汽车品牌', + description: '在该国受欢迎的中国汽车品牌', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '中国汽车销量', + description: '中国汽车在该国的销售数量', + type: 'numerical', + role: 'measure', + location: 'measure' + }, + { + fieldName: '中国新能源车在该国新能源车市场的份额', + description: '中国新能源车在该国新能源车市场的占比', + type: 'ratio', + role: 'measure', + location: 'measure' + } + ], + text: '当然了,除了俄罗斯之外,其他国家也在买中国汽车,比如墨西哥。 2013 年,墨西哥所有销售汽车中有 25% 来自中国,而在 6 年前这个数字为0。澳大利亚也在不断买中国汽车,最受澳大利亚欢迎的中国汽车品牌是名爵,去年卖了 5.8 万辆。在新能源车市场,比亚迪则占据了澳大利亚的新能源汽车 14% 份额,位于第二名。' + }, + timeCost: '12.8' + }, + { + context: { + dataTable: [ + { + 品牌: '特斯拉', + 市场: '全球', + 年份: null, + 市场份额: 53, + 出口汽车数量: null, + 出口汽车数量倍数: null, + 新能源汽车平均出口价格: null + }, + { + 品牌: '中国车企', + 市场: '东南亚', + 年份: 2013, + 市场份额: null, + 出口汽车数量: null, + 出口汽车数量倍数: null, + 新能源汽车平均出口价格: null + }, + { + 品牌: '中国品牌', + 市场: '泰国新能源车市场', + 年份: null, + 市场份额: 80, + 出口汽车数量: null, + 出口汽车数量倍数: null, + 新能源汽车平均出口价格: null + }, + { + 品牌: '比亚迪', + 市场: '全球', + 年份: 2023, + 市场份额: null, + 出口汽车数量: 240000, + 出口汽车数量倍数: 3.34, + 新能源汽车平均出口价格: null + }, + { + 品牌: '比亚迪', + 市场: '泰国新能源车市场', + 年份: null, + 市场份额: 40, + 出口汽车数量: null, + 出口汽车数量倍数: null, + 新能源汽车平均出口价格: null + }, + { + 品牌: '中国新能源汽车', + 市场: '全球', + 年份: 2019, + 市场份额: null, + 出口汽车数量: null, + 出口汽车数量倍数: null, + 新能源汽车平均出口价格: 5000 + }, + { + 品牌: '中国新能源汽车', + 市场: '全球', + 年份: 2022, + 市场份额: null, + 出口汽车数量: null, + 出口汽车数量倍数: null, + 新能源汽车平均出口价格: 22000 + } + ], + fieldInfo: [ + { + fieldName: '品牌', + description: '汽车品牌名称', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '市场', + description: '汽车销售的市场区域', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '年份', + description: '数据对应时间', + type: 'date', + dateGranularity: 'year', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '市场份额', + description: '在该市场的占比', + type: 'ratio', + role: 'measure', + location: 'measure' + }, + { + fieldName: '出口汽车数量', + description: '车企的出口汽车数量', + type: 'count', + role: 'measure', + location: 'measure' + }, + { + fieldName: '出口汽车数量倍数', + description: '出口汽车数量相较于上一年度的倍数', + type: 'ratio', + role: 'measure', + location: 'measure' + }, + { + fieldName: '新能源汽车平均出口价格', + description: '中国新能源汽车平均每辆的出口价格', + type: 'numerical', + role: 'measure', + location: 'measure' + } + ], + text: '当然,这里也不得不提一下第一名,那就是特斯拉市场份额高达53%,在东南亚市场,中国车企业销量在 2013 年同样实现小幅上升,最典型的就是泰国,在泰国的新能源车市场,中国品牌占据了 80% 的份额,比如比亚迪的原 plus 就是泰国的新能源车爆款,那到底是什么原因让中国汽车爆卖呢?基本还可以总结为三方面原因,首先是全球疫情爆发,由于中国汽车的供应链完善,疫情期间仍能维持稳定生产,而日韩这些过去的出口大户受疫情影响,芯片、钢材、橡胶等关键原材料短缺,不仅汽车产能下降,而且成本升高,这就让中国汽车更具性价比。而随着中国国内新能源汽车市场越来越卷出海,成为不少中国车企的选择,比如比亚迪 2023 年进入全球 58 个国家和地区,出口汽车 24 万辆,是上一年度的 3.34 倍。在泰国新能源车市场,比亚迪单独占到了 40% 的市场份额,是名副其实的泰国新能源汽车销冠。而且中国新能源汽车并非只是具备成本优势,汽车与 AI 互联网融合的智能化更是中国车企的拿手好戏。从豪华配置到智能大屏,从外观设计到内饰比拼,这让中国新能源汽车的溢价能力明显变高。2019 年中国新能源汽车平均出口价格每量只有 5, 000 美元, 2022 年涨到了 2.2 万美元。比如比亚迪汉在欧洲发布时价格接近 50 万人民币,是国内售价的两倍多。在泰国、以色列、新西兰等多个国家,比亚迪也已经是新能源汽车的销售冠军。不过,中国汽车征服海外虽然是一部励志爽门,但其实有不少挑战。' + }, + timeCost: '16.7' + }, + { + context: { + dataTable: [ + { + 国家: '中国', + 时间: '2000', + 产品: '摩托车', + 在该国市场份额: 80 + }, + { + 国家: '日本', + 时间: '2000', + 产品: '摩托车', + 在该国市场份额: 20 + }, + { + 国家: '日本', + 时间: '2024', + 产品: '摩托车', + 在该国市场份额: 95 + }, + { + 国家: '中国', + 时间: '2024', + 产品: '摩托车', + 在该国市场份额: 1 + } + ], + fieldInfo: [ + { + fieldName: '国家', + description: '涉及的国家', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '时间', + description: '相关事件发生的时间', + type: 'date', + dateGranularity: 'year', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '产品', + description: '涉及的产品', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '在该国市场份额', + description: '在该国市场所占的比例', + type: 'ratio', + role: 'measure', + location: 'measure' + } + ], + text: '其实中国汽车出海不禁让人想起曾经的中国摩托车出海。 2000 年前后,中国摩托车进军越南,一度占据了 80% 的越南市场份额,但不到三四年时间,却被日本摩托车打得片甲不留。如今日本摩托车在越南占据 95% 的份额,而中国摩托车百分之一都不到。曾经也有大量中国摩托车车企在越南建厂,但却形成了恶性竞争的关系,疯狂打价格战,导致服务和质量越来越差,越南的中国摩托车车企仿佛是飘在越南的。' + }, + timeCost: '4.9' + }, + { + context: { + dataTable: [ + { + 企业类型: '规模以上制造企业', + 企业数量: 445000 + }, + { + 企业类型: '存续的制造业企业', + 企业数量: 6220000 + }, + { + 企业类型: '规模以下的中小微工厂', + 企业数量: 4000000 + }, + { + 企业类型: '工厂规模不到50人的工厂', + 工厂规模: '不到50人', + 工厂占比: 40 + }, + { + 企业类型: '工厂规模不到500人的工厂', + 工厂规模: '不到500人', + 工厂占比: 90 + } + ], + fieldInfo: [ + { + fieldName: '企业类型', + description: '制造业企业的分类', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '企业数量', + description: '该类型企业的数量', + type: 'numerical', + role: 'measure', + location: 'measure' + }, + { + fieldName: '工厂规模', + description: '工厂的人员规模情况', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '工厂占比', + description: '该规模工厂占比情况', + type: 'ratio', + role: 'measure', + location: 'measure' + } + ], + text: '每个中国制造品牌的背后都有一批优秀的零部件供应商,像汇川技术、恒力液压、先导智能、顺域光学、军胜电子这样的零部件企业也是中国制造的骄傲,只不过知名度无法媲美消费者直接接触的终端品牌。按照官方的口径,中国规模以上也就是年销售收入 2, 000 万以上的制造企业有 44.5 万家。至于中国一共有多少家制造业企业存在各种口径,从 300 多万家到近千万家不等。万德资讯给我的数据是,中国大约有 622 万家存续的制造业企业。海之在线是一家总部在上海,聚焦中间品贸易的数字化平台,连接着 70 万家工厂,他们给我的数据是,中国规模以下的中小微工厂大致有 400 万家。这期节目标题中的 400 万家沉默工厂处处记载于此。海志在线的创始人、 CEO 佘莹对我说,从平台看, 40% 的工厂规模不到 50 人,近 90% 的工厂不到 500 人,大部分工厂的年产值在数百万元到数千万元。如果和大企业比,你可以说他们就是一个个的小做法。如果走进去可能会看到老旧的机器上油漆斑驳,可以看到生产计划就用记号笔写在车间墙上挂着的白板上,甚至会发现用破洞的木板随意围搭起来的厕所,待客的茶水里则混杂着浓浓的机油味。但他们就是中国制造业毛细血管层面的供应链小节点,勤勤恳恳的维护设备、搞生产,他们最在意的是生存,是接到订单以及在满足客户之后能够完整的收到货款。' + }, + timeCost: '8.6' + }, + { + context: { + dataTable: [ + { + 事项: '铝和其他废且金属产量变化', + 时间: '2024', + 相关数据: 20, + 产量变化: 20 + }, + { + 事项: '钢铁产量变化', + 时间: '2024', + 相关数据: [-5, -10], + 产量变化: [-5, -10] + }, + { + 事项: '对开发商的银行贷款增长', + 时间: '2024', + 相关数据: 19, + 贷款增长情况: 19 + }, + { + 事项: '房贷和存款跟预付款的比例下降', + 时间: '2024', + 相关数据: [-30, -40], + 贷款增长情况: [-30, -40] + } + ], + fieldInfo: [ + { + fieldName: '事项', + description: '涉及的具体事项', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '时间', + description: '数据对应时间', + type: 'date', + dateGranularity: 'year', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '相关数据', + description: '与事项相关的具体数据', + type: 'ratio', + role: 'measure', + location: 'measure' + }, + { + fieldName: '产量变化', + description: '金属产量的变化情况', + type: 'ratio', + role: 'measure', + location: 'measure' + }, + { + fieldName: '贷款增长情况', + description: '银行贷款的增长情况', + type: 'ratio', + role: 'measure', + location: 'measure' + } + ], + text: '有报道称,一些地方政府面临收入短缺,要求企业缴纳可追溯到 1990 年代的税单。这种紧缩政策在房地产市场寻找几步的时刻,会损害上信心和经济。高盛认为,中国中央政府可以通过加大对西方政府的财政支持来切断机房政府无紧缩所出现的负面溢出效应,那如同美国监管机构在次贷危机期间通过成为最后贷款人来切断金融危机的传播一样。关于出口和机产之间的分化,可以同中国的金属生产中得到证实啊。铝和其他废且金属的产量相比疫情之前上升了 20% 以上,而钢铁的产量下降了 5% 到10%。在房产方面,开发商越来越依赖银行融资, 5 月份对开发商的银行贷款同比增长了19%。而随着房地产销售的下滑,房贷和存款跟预付款的比例同比下降了 30% 到40%。高盛银行股票团队预计从 2024 年到 2026 年,房地产贷款将增加 4.5 万亿人民币,以完全期待收缩的房地产债券和设防的影子银行贷款。' + }, + timeCost: '8.7' + }, + { + context: { + dataTable: [ + { + 领域: '建立燃气和水的生产', + 投资情况: '固定资产投资', + 与疫情前水平对比: 200, + 年份: '2024' + }, + { + 领域: '整体基建', + 投资情况: '固定资产投资', + 与疫情前水平对比: null, + 年份: '2024' + }, + { + 领域: '代线销售商品', + 销售类型: '零售销售', + 销售增长情况: 13, + 年份: '2024' + }, + { + 领域: '餐饮销售', + 销售类型: '零售销售', + 销售增长情况: 5, + 年份: '2024' + }, + { + 领域: '线下商品销售', + 销售类型: '零售销售', + 销售增长情况: 0, + 年份: '2024' + } + ], + fieldInfo: [ + { + fieldName: '领域', + description: '经济领域的分类', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '投资情况', + description: '相关领域的投资增长情况', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '与疫情前水平对比', + description: '与疫情前投资水平的比较', + type: 'ratio', + role: 'measure', + location: 'measure' + }, + { + fieldName: '年份', + description: '数据对应时间', + type: 'date', + dateGranularity: 'year', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '销售类型', + description: '零售销售的类型', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '销售增长情况', + description: '销售的同比增长比例', + type: 'ratio', + role: 'measure', + location: 'measure' + } + ], + text: '中国经济分化并不止于出口和房地产基础设施的固定资产投资。细分项显示,建立燃气和水的生产投资已同疫情前水平翻倍,远远超过了整体的基建的投资增长。因为中国政府首先优先考虑农源供用安全和脱碳。在零售销售当中, 5 月份代线销售商品同比增长13%,而餐饮销售仅增长5%,线下商品的销售保持在去年同期的水平。' + }, + timeCost: '9.6' + }, + { + context: { + dataTable: [ + { + 时间: '7月', + 会议内容: '评估当前经济状况并制定今年剩余时间周期性政策安排', + 经济增长同比: 5.3, + 季度增长预测: null + }, + { + 时间: '7月', + 会议内容: '解决经济结构中重大改革议程', + 经济增长同比: null, + 季度增长预测: null + }, + { + 时间: '二季度', + 会议内容: null, + 经济增长同比: null, + 季度增长预测: '>5' + } + ], + fieldInfo: [ + { + fieldName: '时间', + description: '会议或数据对应的时间', + type: 'date', + dateGranularity: 'month', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '会议内容', + description: '会议专注的方面', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '经济增长同比', + description: '与上年同期相比的经济增长情况', + type: 'ratio', + role: 'measure', + location: 'measure' + }, + { + fieldName: '季度增长预测', + description: '对季度经济增长的预测', + type: 'ratio', + role: 'measure', + location: 'measure' + } + ], + text: '7月中旬将举行两场重要的政策会议,前者将专注于评估当前的经济状况,并为今年剩余时间制定周期性的政策安排。后者将专注于至少未来五年解决经济结构当中的重大改革议程。鉴于一季度的实际, g GPT 同比增长5.3%,而且去年基数较低,那么 G2 季度增长可能高于5%,政府的全年增长目标仍然在轨道上。' + }, + timeCost: '7.5' + }, + { + context: { + dataTable: [ + { + 时间: '7月', + 政策领域: '宏观政策', + 政策情况: '政策执行者不会释放重大刺激措施,可能维持当前立场和执行现有政策' + }, + { + 时间: '5月', + 政策领域: '宏观政策', + 政策情况: '宣布的最后一批措施不及预期,可能引入更多宽松政策' + }, + { + 时间: '三季度', + 政策领域: '货币政策', + 政策情况: '预计降息25个基点' + }, + { + 时间: '四季度9月', + 政策领域: '货币政策', + 政策情况: '预计再降息10个基点' + }, + { + 时间: '今年', + 政策领域: '财政政策', + 政策情况: '预计政府债券发行在下半年显著增加' + }, + { + 时间: '今年', + 政策领域: '财政政策', + 政策情况: '基建投资不会加速太多,除非增长急剧放缓' + }, + { + 时间: '今年', + 政策领域: '财政政策', + 政策情况: '高盛预测中国增强型财政赤字从去年的GDP 11.2%适度扩大到今年的11.9%' + }, + { + 时间: '今年', + 政策领域: '信贷政策', + 政策情况: '信贷增长与GDP增长之间的联系已经减弱' + }, + { + 时间: '今年', + 政策领域: '信贷政策', + 政策情况: '预计信贷总量的增长将从去年的9.5%放缓到今年的9%' + }, + { + 时间: '4月', + 政策领域: '住房政策', + 政策情况: '决策者希望严防房地产市场的尾部风险' + }, + { + 时间: '近期', + 政策领域: '住房政策', + 政策情况: '预计进一步削减房贷利率以刺激需求' + }, + { + 时间: '短期内', + 政策领域: '外汇政策', + 政策情况: '央行将保持美元对人民币汇率稳定,三个月高盛预测为7.3' + } + ], + fieldInfo: [ + { + fieldName: '时间', + description: '数据对应的具体时间', + type: 'date', + dateGranularity: 'month', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '政策领域', + description: '涉及的政策方面', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '政策情况', + description: '政策的具体情况描述', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '降息基点', + description: '降息的基点数量', + type: 'numerical', + role: 'measure', + location: 'measure' + }, + { + fieldName: '赤字占GDP比例', + description: '增强型财政赤字占GDP的比例', + type: 'ratio', + role: 'measure', + location: 'measure' + }, + { + fieldName: '信贷增长与GDP增长联系减弱情况', + description: '信贷增长与GDP增长之间联系的减弱程度', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '信贷总量增长', + description: '信贷总量的增长情况', + type: 'ratio', + role: 'measure', + location: 'measure' + }, + { + fieldName: '房贷利率情况', + description: '房贷利率的相关情况', + type: 'string', + role: 'dimension', + location: 'dimension' + }, + { + fieldName: '汇率', + description: '美元对人民币汇率', + type: 'numerical', + role: 'measure', + location: 'measure' + } + ], + text: '高盛认为,政策执行者不会在 7 月份的首场会议上释放任何重大的刺激措施,宏观政策的证件可能大于维持当前立场和执行现有的政策。另一方面,鉴于 5 月份宣布的最后一批措施不及预期,可能存在引入更多期产宽松政策的可能性。在货币政策方面,资本外流的担忧和银行利润率的下降限制了央行降息的能力。高盛预计三季度将降息 25 个基减,以适应大量政府债券发行,并预计季四季度9月首次降息后会再降息 10 个期减。在财政政策方面,高盛预计政府债券的发行将在下半年显著增加,以完成年初发行缓慢的全年配额。除非增长急剧放缓,否则基建的投资不会加速太多。对于政府 3 月份公布的预算计划,高盛虽然预测中国的增强型的弹盛赤字从去年的 gdp 11.2% 会适度扩大到今年的11.9%,但由于今年出口强计可能会存在财政扩张不及预期的风险。信贷政策方面,正如央行行长6月 19 号陆家嘴论坛上所说,由于金融套利的虚假贷款和监管机构随后对金融系统中这种资金空转的打击,信贷增长与 GDP 增长之间的联系已经减弱。预计摄容总量的增长将同去年的 9.5% 放缓到今年的9%。在住房政策方面,4月的政治局会议表明,决策者希望严防房地产市场的尾部风险。由于地产价格和活动的持续下行,以及机房国企通过央行的贷款计划购买空池公寓的速度缓慢,高盛预计进一步削减房贷利率以刺激需求,同时为去库存提供更多的资金和效率的支持。在外汇政策方面,鉴于美元持续强势和资本外流的压力,高盛认为央行将在短期内保持美元对人民币汇率的稳定,三个月的高盛预测是7.3,因为外汇市决策者可以迎来抵消关税对出口负面影响的工具。 2018- 19 年的经验表明,如果特朗普赢得美国大选,而且正如他最近几个月所宣称的,会对中国实施正大的关税,那美元兑人民币可能会显著贬值。' + }, + timeCost: '18.4' + } + ] + } +]; diff --git a/packages/vmind/__tests__/browser/src/constants/mockData.ts b/packages/vmind/__tests__/browser/src/constants/mockData.ts index 01b815f4..3eced4b4 100644 --- a/packages/vmind/__tests__/browser/src/constants/mockData.ts +++ b/packages/vmind/__tests__/browser/src/constants/mockData.ts @@ -185,7 +185,7 @@ export const mockUserInput6 = { 比利时,欧洲,53840,2018 挪威,欧洲,48930,2018 `, - input: '帮我展示各国GDP排名变化' + input: '使用动态条形图帮我展示各国GDP排名变化' }; /* @@ -4751,6 +4751,5106 @@ export const gmvData = { input: '帮我绘制按城市的gmv和增长率,使用双轴图' }; +export const bubbleCirclePackingData = { + csv: `industry,gross product +第一产业,88345.1 +第二产业,483164.5 +第三产业,638697.6 +农林牧渔业,92582.4 +工业,401644.3 +建筑业,83383.1 +批发和零售业,114517.7 +交通运输、仓储和邮政业,49673.7 +住宿和餐饮业,17855.3 +金融业,96811.0 +房地产业,73821.3 +其他,279918.4 +`, + input: '请使用气泡圈图帮我绘制' +}; + +export const mapChartData = { + csv: `name,value +Russia,17234034 +Canada,9984670 +China,9596960 +United States of America,9525067 +Brazil,8515167 +`, + input: '请将数据渲染到地图图表中' +}; + +export const rangeColumnChartData = { + csv: `categories,min,max +Category One,76,100 +Category Two,56,108 +Category Three,38,129 +Category Four,58,155 +Category Five,45,120 +Category Six,23,99 +Category Seven,18,56 +Category Eight,18,34 +`, + input: '请使用区间柱图渲染数据' +}; + +export const sunburstChartData = { + csv: `Category0,Category1,Category2,Value +Country A,Region1,Office Supplies,824 +Country A,Region1,Furniture,920 +Country A,Region1,Electronic equipment,936 +Country A,Region2,Office Supplies,1270 +Country A,Region2,Furniture,1399 +Country A,Region2,Electronic equipment,1466 +Country A,Region3,Office Supplies,1408 +Country A,Region3,Furniture,1676 +Country A,Region3,Electronic equipment,1559 +Country A,Region4,Office Supplies,745 +Country A,Region4,Furniture,919 +Country A,Region4,Electronic equipment,781 +Country A,Region5,Office Supplies,267 +Country A,Region5,Furniture,316 +Country A,Region5,Electronic equipment,230 +Country A,Region6,Office Supplies,347 +Country A,Region6,Furniture,501 +Country A,Region6,Electronic equipment,453 +Country B,Region1,Office Supplies,824 +Country B,Region1,Furniture,920 +Country B,Region1,Electronic equipment,936 +Country B,Region2,Office Supplies,1270 +Country B,Region2,Furniture,1399 +Country B,Region2,Electronic equipment,1466 +Country B,Region3,Office Supplies,1408 +Country B,Region3,Furniture,1676 +Country B,Region3,Electronic equipment,1559 +Country B,Region4,Office Supplies,745 +Country B,Region4,Furniture,919 +Country B,Region4,Electronic equipment,781 +Country B,Region5,Office Supplies,267 +Country B,Region5,Furniture,316 +Country B,Region5,Electronic equipment,230 +Country B,Region6,Office Supplies,347 +Country B,Region6,Furniture,501 +Country B,Region6,Electronic equipment,453 +Country C,Region1,Office Supplies,824 +Country C,Region1,Furniture,920 +Country C,Region1,Electronic equipment,936 +Country C,Region2,Office Supplies,1270 +Country C,Region2,Furniture,1399 +Country C,Region2,Electronic equipment,1466 +Country C,Region3,Office Supplies,1408 +Country C,Region3,Furniture,1676 +Country C,Region3,Electronic equipment,1559 +Country C,Region4,Office Supplies,745 +Country C,Region4,Furniture,919 +Country C,Region4,Electronic equipment,781 +Country C,Region5,Office Supplies,267 +Country C,Region5,Furniture,316 +Country C,Region5,Electronic equipment,230 +Country C,Region6,Office Supplies,347 +Country C,Region6,Furniture,501 +Country C,Region6,Electronic equipment,453 +`, + input: '请使用旭日图来渲染数据' +}; + +export const treemapChartData = { + csv: `Category-0,Category-1,Category-2,Category-3,value +query,methods,add,,593 +query,methods,and,,330 +query,methods,average,,287 +query,methods,count,,277 +query,methods,distinct,,292 +query,methods,div,,595 +query,methods,eq,,594 +query,methods,fn,,460 +query,methods,gt,,603 +query,methods,gte,,625 +query,methods,iff,,748 +query,methods,isa,,461 +query,methods,lt,,597 +query,methods,lte,,619 +query,methods,max,,283 +query,methods,min,,283 +query,methods,mod,,591 +query,methods,mul,,603 +query,methods,neq,,599 +query,methods,not,,386 +query,methods,or,,323 +query,methods,orderby,,307 +query,methods,range,,772 +query,methods,select,,296 +query,methods,stddev,,363 +query,methods,sub,,600 +query,methods,sum,,280 +query,methods,update,,307 +query,methods,variance,,335 +query,methods,where,,299 +query,methods,xor,,354 +query,methods,_,,264 +query,AggregateExpression,,,1616 +query,And,,,1027 +query,Arithmetic,,,3891 +query,Average,,,891 +query,BinaryExpression,,,2893 +query,Comparison,,,5103 +query,CompositeExpression,,,3677 +query,Count,,,781 +query,DateUtil,,,4141 +query,Distinct,,,933 +query,Expression,,,5130 +query,ExpressionIterator,,,3617 +query,Fn,,,3240 +query,If,,,2732 +query,IsA,,,2039 +query,Literal,,,1214 +query,Match,,,3748 +query,Maximum,,,843 +query,Minimum,,,843 +query,Not,,,1554 +query,Or,,,970 +query,Query,,,13896 +query,Range,,,1594 +query,StringUtil,,,4130 +query,Sum,,,791 +query,Variable,,,1124 +query,Variance,,,1876 +query,Xor,,,1101 +util,palette,ColorPalette,,6367 +util,palette,Palette,,1229 +util,palette,ShapePalette,,2059 +util,palette,valuePalette,,2291 +util,math,DenseMatrix,,3165 +util,math,IMatrix,,2815 +util,math,SparseMatrix,,3366 +util,heap,FibonacciHeap,,9354 +util,heap,HeapNode,,1233 +util,Arrays,,,8258 +util,Colors,,,10001 +util,Dates,,,8217 +util,Displays,,,12555 +util,Filter,,,2324 +util,Geometry,,,10993 +util,IEvaluable,,,335 +util,IPredicate,,,383 +util,IValueProxy,,,874 +util,Maths,,,17705 +util,Orientation,,,1486 +util,Property,,,5559 +util,Shapes,,,19118 +util,Sort,,,6887 +util,Stats,,,6557 +util,Strings,,,22026 +animate,interpolate,ArrayInterpolator,,1983 +animate,interpolate,ColorInterpolator,,2047 +animate,interpolate,DateInterpolator,,1375 +animate,interpolate,Interpolator,,8746 +animate,interpolate,MatrixInterpolator,,2202 +animate,interpolate,NumberInterpolator,,1382 +animate,interpolate,ObjectInterpolator,,1629 +animate,interpolate,PointInterpolator,,1675 +animate,interpolate,RectangleInterpolator,,2042 +animate,Easing,,,17010 +animate,FunctionSequence,,,5842 +animate,ISchedulable,,,1041 +animate,Parallel,,,5176 +animate,Pause,,,449 +animate,Scheduler,,,5593 +animate,Sequence,,,5534 +animate,Transition,,,9201 +animate,Transitioner,,,19975 +animate,TransitionEvent,,,1116 +animate,Tween,,,6006 +scale,IScaleMap,,,2105 +scale,LinearScale,,,1316 +scale,LogScale,,,3151 +scale,OrdinalScale,,,3770 +scale,QuantileScale,,,2435 +scale,QuantitativeScale,,,4839 +scale,RootScale,,,1756 +scale,Scale,,,4268 +scale,ScaleType,,,1821 +scale,TimeScale,,,5833 +physics,DragForce,,,1082 +physics,GravityForce,,,1336 +physics,IForce,,,319 +physics,NBodyForce,,,10498 +physics,Particle,,,2822 +physics,Simulation,,,9983 +physics,Spring,,,2213 +physics,SpringForce,,,1681 +data,converters,Converters,,721 +data,converters,DelimitedTextConverter,,4294 +data,converters,GraphMLConverter,,9800 +data,converters,IDataConverter,,1314 +data,converters,JSONConverter,,2220 +data,DataField,,,1759 +data,DataSchema,,,2165 +data,DataSet,,,586 +data,DataSource,,,3331 +data,DataTable,,,772 +data,DataUtil,,,3322 +vis,controls,AnchorControl,,2138 +vis,controls,ClickControl,,3824 +vis,controls,Control,,1353 +vis,controls,ControlList,,4665 +vis,controls,DragControl,,2649 +vis,controls,ExpandControl,,2832 +vis,controls,HoverControl,,4896 +vis,controls,IControl,,763 +vis,controls,PanZoomControl,,5222 +vis,controls,SelectionControl,,7862 +vis,controls,TooltipControl,,8435 +vis,operator,layout,AxisLayout,6725 +vis,operator,layout,BundledEdgeRouter,3727 +vis,operator,layout,CircleLayout,9317 +vis,operator,layout,CirclePackingLayout,12003 +vis,operator,layout,DendrogramLayout,4853 +vis,operator,layout,ForceDirectedLayout,8411 +vis,operator,layout,IcicleTreeLayout,4864 +vis,operator,layout,IndentedTreeLayout,3174 +vis,operator,layout,Layout,7881 +vis,operator,layout,NodeLinkTreeLayout,12870 +vis,operator,layout,PieLayout,2728 +vis,operator,layout,RadialTreeLayout,12348 +vis,operator,layout,RandomLayout,870 +vis,operator,layout,StackedAreaLayout,9121 +vis,operator,layout,TreeMapLayout,9191 +vis,operator,encoder,ColorEncoder,3179 +vis,operator,encoder,Encoder,4060 +vis,operator,encoder,PropertyEncoder,4138 +vis,operator,encoder,ShapeEncoder,1690 +vis,operator,encoder,valueEncoder,1830 +vis,operator,distortion,BifocalDistortion,4461 +vis,operator,distortion,Distortion,6314 +vis,operator,distortion,FisheyeDistortion,3444 +vis,operator,filter,FisheyeTreeFilter,5219 +vis,operator,filter,GraphDistanceFilter,3165 +vis,operator,filter,VisibilityFilter,3509 +vis,operator,label,Labeler,9956 +vis,operator,label,RadialLabeler,3899 +vis,operator,label,StackedAreaLabeler,3202 +vis,operator,IOperator,,1286 +vis,operator,Operator,,2490 +vis,operator,OperatorList,,5248 +vis,operator,OperatorSequence,,4190 +vis,operator,OperatorSwitch,,2581 +vis,operator,SortOperator,,2023 +vis,data,render,ArrowType,698 +vis,data,render,EdgeRenderer,5569 +vis,data,render,IRenderer,353 +vis,data,render,ShapeRenderer,2247 +vis,data,Data,,20544 +vis,data,DataList,,19788 +vis,data,DataSprite,,10349 +vis,data,EdgeSprite,,3301 +vis,data,NodeSprite,,19382 +vis,data,ScaleBinding,,11275 +vis,data,Tree,,7147 +vis,data,TreeBuilder,,9930 +vis,axis,Axes,,1302 +vis,axis,Axis,,24593 +vis,axis,AxisGridLine,,652 +vis,axis,AxisLabel,,636 +vis,axis,CartesianAxes,,6703 +vis,events,DataEvent,,2313 +vis,events,SelectionEvent,,1880 +vis,events,TooltipEvent,,1701 +vis,events,VisualizationEvent,,1117 +vis,legend,Legend,,20859 +vis,legend,LegendItem,,4614 +vis,legend,LegendRange,,10530 +vis,Visualization,,,16540 +display,DirtySprite,,,8833 +display,LineSprite,,,1732 +display,RectSprite,,,3623 +display,TextSprite,,,10066 +analytics,graph,BetweennessCentrality,,3534 +analytics,graph,LinkDistance,,5731 +analytics,graph,MaxFlowMinCut,,7840 +analytics,graph,ShortestPaths,,5914 +analytics,graph,SpanningTree,,3416 +analytics,cluster,AgglomerativeCluster,,3938 +analytics,cluster,CommunityStructure,,3812 +analytics,cluster,HierarchicalCluster,,6714 +analytics,cluster,MergeEdge,,743 +analytics,optimization,AspectRatioBanker,,7074 +flex,FlareVis,,,4116`, + input: '请使用矩形树图渲染数据的层次结构' +}; + +export const gaugeChartData = { + csv: `name,value,description + 目标A,0.6,目标A的描述`, + input: '请使用仪表盘来完成数据渲染' +}; + +export const linearProgressChartData = { + csv: `type,value,text +Tradition Industries,0.795,79.5% +Business Companies,0.25,25% +Customer-facing Companies,0.065,6.5%`, + input: '请使用线形进度图来完成数据渲染' +}; + +export const basicHeatMapChartData = { + csv: `Financial Ratio Indicator,Comparison Metric,Correlation Coefficient +Asset Liability Ratio,Asset Liability Ratio,1 +Asset Liability Ratio,Asset Liability Ratio (Deducting Advance Payments),0.594527 +Asset Liability Ratio,Debt-to-long Capital Ratio,0.492963 +Asset Liability Ratio,Long Term Asset Suitability Ratio,-0.160995 +Asset Liability Ratio,Equity Multiplier,0.723664 +Asset Liability Ratio,Equity Ratio of Current Liability,0.658646 +Asset Liability Ratio,Interest Bearing Debt / Fully Invested Capital,-0.857474 +Asset Liability Ratio,Current Liability / Total Liabilities,0.320706 +Asset Liability Ratio,Capital Fixation Ratio,-0.284634 +Asset Liability Ratio,Expected Default Frequency,-0.091423 +Asset Liability Ratio (Deducting Advance Payments),Asset Liability Ratio,0.594527 +Asset Liability Ratio (Deducting Advance Payments),Asset Liability Ratio (Deducting Advance Payments),1 +Asset Liability Ratio (Deducting Advance Payments),Debt-to-long Capital Ratio,0.724546 +Asset Liability Ratio (Deducting Advance Payments),Long Term Asset Suitability Ratio,-0.099318 +Asset Liability Ratio (Deducting Advance Payments),Equity Multiplier,0.540639 +Asset Liability Ratio (Deducting Advance Payments),Equity Ratio of Current Liability,0.49214 +Asset Liability Ratio (Deducting Advance Payments),Interest Bearing Debt / Fully Invested Capital,-0.554039 +Asset Liability Ratio (Deducting Advance Payments),Current Liability / Total Liabilities,0.17127 +Asset Liability Ratio (Deducting Advance Payments),Capital Fixation Ratio,-0.265259 +Asset Liability Ratio (Deducting Advance Payments),Expected Default Frequency,0.068577 +Debt-to-long Capital Ratio,Asset Liability Ratio,0.492963 +Debt-to-long Capital Ratio,Asset Liability Ratio (Deducting Advance Payments),0.724546 +Debt-to-long Capital Ratio,Debt-to-long Capital Ratio,1 +Debt-to-long Capital Ratio,Long Term Asset Suitability Ratio,-0.091338 +Debt-to-long Capital Ratio,Equity Multiplier,0.450542 +Debt-to-long Capital Ratio,Equity Ratio of Current Liability,0.375839 +Debt-to-long Capital Ratio,Interest Bearing Debt / Fully Invested Capital,-0.524955 +Debt-to-long Capital Ratio,Current Liability / Total Liabilities,0.300627 +Debt-to-long Capital Ratio,Capital Fixation Ratio,-0.198362 +Debt-to-long Capital Ratio,Expected Default Frequency,0.033209 +Long Term Asset Suitability Ratio,Asset Liability Ratio,-0.160995 +Long Term Asset Suitability Ratio,Asset Liability Ratio (Deducting Advance Payments),-0.099318 +Long Term Asset Suitability Ratio,Debt-to-long Capital Ratio,-0.091338 +Long Term Asset Suitability Ratio,Long Term Asset Suitability Ratio,1 +Long Term Asset Suitability Ratio,Equity Multiplier,-0.049872 +Long Term Asset Suitability Ratio,Equity Ratio of Current Liability,-0.028452 +Long Term Asset Suitability Ratio,Interest Bearing Debt / Fully Invested Capital,0.157157 +Long Term Asset Suitability Ratio,Current Liability / Total Liabilities,0.009742 +Long Term Asset Suitability Ratio,Capital Fixation Ratio,-0.162374 +Long Term Asset Suitability Ratio,Expected Default Frequency,0.155095 +Equity Multiplier,Asset Liability Ratio,0.723664 +Equity Multiplier,Asset Liability Ratio (Deducting Advance Payments),0.540639 +Equity Multiplier,Debt-to-long Capital Ratio,0.450542 +Equity Multiplier,Long Term Asset Suitability Ratio,-0.049872 +Equity Multiplier,Equity Multiplier,1 +Equity Multiplier,Equity Ratio of Current Liability,0.951933 +Equity Multiplier,Interest Bearing Debt / Fully Invested Capital,-0.651767 +Equity Multiplier,Current Liability / Total Liabilities,0.079052 +Equity Multiplier,Capital Fixation Ratio,-0.535984 +Equity Multiplier,Expected Default Frequency,0.00798 +Equity Ratio of Current Liability,Asset Liability Ratio,0.658646 +Equity Ratio of Current Liability,Asset Liability Ratio (Deducting Advance Payments),0.49214 +Equity Ratio of Current Liability,Debt-to-long Capital Ratio,0.375839 +Equity Ratio of Current Liability,Long Term Asset Suitability Ratio,-0.028452 +Equity Ratio of Current Liability,Equity Multiplier,0.951933 +Equity Ratio of Current Liability,Equity Ratio of Current Liability,1 +Equity Ratio of Current Liability,Interest Bearing Debt / Fully Invested Capital,-0.543147 +Equity Ratio of Current Liability,Current Liability / Total Liabilities,-0.106139 +Equity Ratio of Current Liability,Capital Fixation Ratio,-0.52232 +Equity Ratio of Current Liability,Expected Default Frequency,0.011466 +Interest Bearing Debt / Fully Invested Capital,Asset Liability Ratio,-0.857474 +Interest Bearing Debt / Fully Invested Capital,Asset Liability Ratio (Deducting Advance Payments),-0.554039 +Interest Bearing Debt / Fully Invested Capital,Debt-to-long Capital Ratio,-0.524955 +Interest Bearing Debt / Fully Invested Capital,Long Term Asset Suitability Ratio,0.157157 +Interest Bearing Debt / Fully Invested Capital,Equity Multiplier,-0.651767 +Interest Bearing Debt / Fully Invested Capital,Equity Ratio of Current Liability,-0.543147 +Interest Bearing Debt / Fully Invested Capital,Interest Bearing Debt / Fully Invested Capital,1 +Interest Bearing Debt / Fully Invested Capital,Current Liability / Total Liabilities,-0.595016 +Interest Bearing Debt / Fully Invested Capital,Capital Fixation Ratio,0.310521 +Interest Bearing Debt / Fully Invested Capital,Expected Default Frequency,0.066397 +Current Liability / Total Liabilities,Asset Liability Ratio,0.320706 +Current Liability / Total Liabilities,Asset Liability Ratio (Deducting Advance Payments),0.17127 +Current Liability / Total Liabilities,Debt-to-long Capital Ratio,0.300627 +Current Liability / Total Liabilities,Long Term Asset Suitability Ratio,0.009742 +Current Liability / Total Liabilities,Equity Multiplier,0.079052 +Current Liability / Total Liabilities,Equity Ratio of Current Liability,-0.106139 +Current Liability / Total Liabilities,Interest Bearing Debt / Fully Invested Capital,-0.595016 +Current Liability / Total Liabilities,Current Liability / Total Liabilities,1 +Current Liability / Total Liabilities,Capital Fixation Ratio,-0.105199 +Current Liability / Total Liabilities,Expected Default Frequency,-0.064886 +Capital Fixation Ratio,Asset Liability Ratio,-0.284634 +Capital Fixation Ratio,Asset Liability Ratio (Deducting Advance Payments),-0.265259 +Capital Fixation Ratio,Debt-to-long Capital Ratio,-0.198362 +Capital Fixation Ratio,Long Term Asset Suitability Ratio,-0.162374 +Capital Fixation Ratio,Equity Multiplier,-0.535984 +Capital Fixation Ratio,Equity Ratio of Current Liability,-0.52232 +Capital Fixation Ratio,Interest Bearing Debt / Fully Invested Capital,0.310521 +Capital Fixation Ratio,Current Liability / Total Liabilities,-0.105199 +Capital Fixation Ratio,Capital Fixation Ratio,1 +Capital Fixation Ratio,Expected Default Frequency,-0.080153 +Expected Default Frequency,Asset Liability Ratio,-0.091423 +Expected Default Frequency,Asset Liability Ratio (Deducting Advance Payments),0.068577 +Expected Default Frequency,Debt-to-long Capital Ratio,0.033209 +Expected Default Frequency,Long Term Asset Suitability Ratio,0.155095 +Expected Default Frequency,Equity Multiplier,0.00798 +Expected Default Frequency,Equity Ratio of Current Liability,0.011466 +Expected Default Frequency,Interest Bearing Debt / Fully Invested Capital,0.066397 +Expected Default Frequency,Current Liability / Total Liabilities,-0.064886 +Expected Default Frequency,Capital Fixation Ratio,-0.080153 +Expected Default Frequency,Expected Default Frequency,1`, + input: '请使用热图帮我展示各财务比率指标的相关系数' +}; + +export const vennChartData = { + csv: `sets,name,value +0,A,8 +1,D,8 +2,B,10 +3,C,12 +4,A,4 +4,B,4 +5,A,4 +5,C,4 +6,B,4 +6,C,4 +7,A,2 +7,B,2 +7,C,2`, + input: '帮我展示各元素集合重叠区域,以及分布情况。请使用数据中的sets字段来划分不同集合。' +}; + +export const singleColumnLineCombinationChartData = { + csv: `date,Social Penetration,Engagement - Socialization,Penetration of Private Messages,Number of Private Messages per User +2022-03-08,1.2020804451630671,0.7782279444864411,0.21493020207806002,0.26002007727513005 +2022-03-09,1.911162758594358,0.6970763116149991,0.31807068769079905,1.791161354352144 +2022-03-10,0.919293523406533,0.6754510401577041,0.9774597853017851,1.410289280738493 +2022-03-11,1.613617931982911,4.391274420824463,0.662196540154462,2.374084690062705 +2022-03-12,1.121445896148114,0.5827973501093221,1.547704220622789,0.42545370377775604 +2022-03-13,0.527369749651032,0.321443063009525,0.52384329811226,0.45119753243186805 +2022-03-14,0.07991167814791,0.9838146243033221,1.242674929077965,1.276345431333586 +2022-03-15,0.29341332300751205,0.225492098355163,1.133076821811672,0.22045142924559902 +2022-03-16,1.103150404211427,0.580792120371675,1.261446251860683,0.061775812702848 +2022-03-17,0.38285701953593604,0.510579334822959,0.908573021920086,0.429194248082692 +2022-03-18,0.8908005339482421,1.656998380732747,2.003638269088651,1.194511111230195 +2022-03-19,0.8379933951719881,1.372238730132033,1.285574252451237,0.659056833995271 +2022-03-20,2.913059895355856,3.375041306488803,1.683935730207101,0.40361011204949004 +2022-03-21,1.245523794769467,0.5770535812918991,0.518960506573594,0.8441533797310441 +2022-03-22,1.801955367373218,2.562767955961243,2.076490748024919,1.8682050366367142 +2022-03-23,30.25170429439274,60.10096481599735,31.918470633985613,70.34237647545662 +2022-03-24,2.084831170978463,2.824195229461953,1.735738814795219,3.854924132202267 +2022-03-25,0.8300684679922911,0.37108301055861304,1.072942910906809,0.868965201778456 +2022-03-26,5.057522939533747,6.8131452572139555,10.31725741409195,0.6724835487477681 +2022-03-27,1.364245041731511,0.993289299105189,1.288157916081268,1.290710012048575 +2022-03-28,0.429699282814745,0.27225365805664004,0.24488975421611903,0.944202324553962 +2022-03-29,8.636960050981939,2.663368864789215,3.030888929145336,2.191548298261417 +2022-03-30,0.31233481070398905,1.136502929086737,1.4304534277803231,0.9398051933719991 +2022-03-31,0.8979576483673781,0.8268293005130081,1.32475784490384,0.212383798504713 +2022-04-01,1.187326287404249,1.2824253532703072,0.9289553576582981,1.328758303758777 +2022-04-02,0.013251966153457001,1.580091614771022,0.8470948142995741,1.061518688804395 +2022-04-03,0.150440921215681,0.7793382242254321,0.5908683646183901,1.021428732507816 +2022-04-04,1.437865757864698,0.34207119701235905,1.006103497118929,0.8496566144677861 +2022-04-05,19.70534531285437,4.144335050792541,13.880860231019398,19.78289952089912 +2022-04-06,1.068708512330189,1.336025709304907,7.121018094960213,0.032847589287524 +2022-04-07,3.239083103313066,0.9037359185383671,2.010136943230478,2.758258304057329 +2022-04-08,3.609669038457516,13.698767079174356,14.457401852798982,11.6964360828172 +2022-04-09,0.8581543303200471,1.11771091972957,0.9593788300193951,1.121066838670219 +2022-04-10,1.235338424517758,0.5546236200208831,1.138776207683746,0.5694312841615821 +2022-04-11,0.615560300356359,0.133505664394376,0.575680679073131,0.502679162912634 +2022-04-12,3.5445165395901572,8.458105165611851,2.90160000840929,3.084080663501847 +2022-04-13,1.037776502324676,1.412321112593621,1.416876192652653,0.270647644667579 +2022-04-14,0.534866532613768,0.577163861285873,0.034172330313952004,0.268470350264293 +2022-04-15,3.225952049483959,5.112791338669762,3.745099757241069,2.612195295941399 +2022-04-16,12.278592894400722,13.301401633991011,6.202762040985617,18.098567324029407 +2022-04-17,0.411460847135642,0.8194099242420241,0.6882380919620981,0.645388563624089 +2022-04-18,0.304818623987116,0.601409275693432,0.07904084882979401,0.16144847919011002 +2022-04-19,0.8929797309154061,0.932019259560644,0.013117573233606001,0.36918835535862005 +2022-04-20,4.074891060179412,3.6166710941152713,3.143179675624189,5.283666616893828 +2022-04-21,0.902423656543305,2.682237126638688,0.6180860661837431,1.631115014312209 +2022-04-22,0.868968791964932,0.329339479566271,0.001536382167654,0.807551152019862 +2022-04-23,0.598986391584271,0.923756524041317,0.27081187550692803,0.22998130489182 +2022-04-24,0.27570721725353503,0.6601580208066361,0.7774852739576821,1.107108162852159 +2022-04-25,0.38518667923696703,2.037027697748363,0.859959904015784,0.641738277028276 +2022-04-26,0.622049495688147,0.803863499657206,0.22244045641286703,1.320954321806144 +2022-04-27,3.540727101774814,0.651469202290988,0.509144429951741,0.20073460039620403 +2022-04-28,2.742513433824975,2.6893975459595643,0.13894846116144902,0.7415989059349031 +2022-04-29,1.621566806821747,0.9147556633717211,0.19686640023465302,1.66475441380813 +2022-04-30,2.352493741253538,3.463127996997362,2.931184732430775,1.792534569741266 +2022-05-01,0.023487873849160002,0.5573480476128151,0.544054544143018,0.35016352980012605 +2022-05-02,9.85187760463177,35.95040240058573,10.530894431942714,4.323328789531124 +2022-05-03,6.3835439206943,5.577920982650984,4.483541728043783,3.7796731596206943 +2022-05-04,2.897597920598689,5.106082630695584,8.400221891051206,8.018922971992662 +2022-05-05,0.147546385656207,0.040771286126692,0.6862921980279431,0.44745062012103404 +2022-05-06,4.668438202775402,0.23681078820699203,4.557825514906153,3.46073691075845 +2022-05-07,1.868897716467347,1.727448921279463,0.527497153125138,0.120868915583745 +2022-05-08,1.356875902669512,1.434740383567053,1.25226701190186,0.42909048781311704 +2022-05-09,1.029882775112869,0.9377192673786531,0.643077700672811,0.539461571476962 +2022-05-10,1.079419585437788,0.5840348488590831,0.031193331319320002,0.341612265371036 +2022-05-11,0.43374835866466704,0.01643698693241,0.39325414355653304,0.918926460102595 +2022-05-12,0.6884004244125861,1.538028843999251,0.863652647240271,1.249717355592488 +2022-05-13,0.5513219132650721,1.063801968030616,0.65309749602536,1.244646630025216 +2022-05-14,0.26075436773203503,0.16980099784180802,0.502507081730036,0.026734770744615003 +2022-05-15,3.534068370760441,2.144086432206532,1.989727381483406,1.510725845099207 +2022-05-16,1.051684273070894,1.152664833294427,0.747391405264186,0.283792059973869 +2022-05-17,0.8574030868970931,0.8751363341872681,0.901758308356248,0.41795473321335 +2022-05-18,0.515497463894879,0.8615187586650901,0.43634054682577406,1.895212820019219 +2022-05-19,0.9592457438221671,0.126354125202296,2.8539304550226543,0.77105240170235 +2022-05-20,0.069882250377393,0.7098481312166951,0.5071020864029481,2.543277547025898 +2022-05-21,10.360352568974609,17.706030110118455,2.848137759152337,1.260088014509166 +2022-05-22,1.112796751785197,0.9176470910577301,0.43003615544265306,0.910155627802492 +2022-05-23,4.891916669440483,16.47452431770853,2.744192036280677,1.124249996351633 +2022-05-24,0.09534096170855301,0.7854768368577231,0.6263662592501831,0.19409864063613502 +2022-05-25,17.21160548866725,34.373177238596014,7.564216276703391,17.06769270843336 +2022-05-26,0.9890377076819251,0.789535076533531,0.8798790088553111,0.592040366427117 +2022-05-27,1.207578684423282,0.5312851260232421,1.055373428020675,0.84736634769268 +2022-05-28,15.265265813052475,12.028735185645875,14.171624745847268,35.787490090751945 +2022-05-29,1.667919015486645,1.439873268216485,1.078931580631559,0.9907508552960291 +2022-05-30,2.232083847244808,3.827653889831506,1.429842282923971,3.76351508114206 +2022-05-31,1.113011174076138,1.4295696272440521,1.141933003322777,1.22202135537901 +2022-06-01,0.9839213173080511,1.325995589464272,2.006909504383298,1.7803529363753632 +2022-06-02,3.618368394111176,0.627748977148721,1.176985400742372,1.267728131617331 +2022-06-03,1.5240830060491182,0.83151391784571,1.356692075891955,3.227340286052029 +2022-06-04,0.7108355579615261,0.011530713721830002,0.52485737802621,0.661668615725415 +2022-06-05,1.842738679408876,1.130871471288951,1.189107233207374,3.246025623322408 +2022-06-06,2.968986726243696,2.9958102236757282,0.47619309340284505,1.3335764819663671 +2022-06-07,0.30957106038382504,0.44026116440941004,0.42982954277120905,1.741430660250139 +2022-06-08,3.077870353397237,4.156128784010092,1.021512025143279,4.351094223144934 +2022-06-09,0.460474051903736,1.2828566287818242,0.22198861960947303,0.085629074470341 +2022-06-10,0.9248894668614721,0.23152297348937,0.18500236928827601,0.5925681882904861 +2022-06-11,0.5170229174882011,1.344093064443273,0.6923204827335401,1.013151233597585 +2022-06-12,1.343310704782682,0.42108731154009404,1.547163500435265,0.999128791000602 +2022-06-13,4.213284444567541,2.448703044357372,0.13900479867391702,1.556248326348268 +2022-06-14,0.718083714760927,1.912454128957958,0.24702549770442003,2.037101388253879 +2022-06-15,2.443370806389791,0.010368540480550002,0.133167401519793,2.42241572339565 +2022-06-16,3.594231845735735,0.6677966564200211,4.009094569074379,5.5253640045926335 +2022-06-17,1.113951398490715,0.11111864432229301,0.9730098334869651,0.9908309309721931 +2022-06-18,0.5614439322266921,0.806546956486733,0.32013564834811403,0.8486918887953661 +2022-06-19,1.243458727745012,1.135192118212662,5.021267051723119,4.233329079605447 +2022-06-20,1.31005897849395,1.045144309632654,4.014478741193049,2.239616259510069 +2022-06-21,0.572744269459053,1.076475248295982,0.7240389412682761,0.10908279405984601 +2022-06-22,24.581669047338767,24.02021682920061,37.05462241129788,23.51884099646193 +2022-06-23,0.47413969565051606,0.027051327125384002,0.16824850993617801,0.41568301223291604 +2022-06-24,0.43416765009011604,2.878601660092219,1.9317197675603461,1.840590020030168 +2022-06-25,0.943163264857342,0.019465090936308,0.285177476177572,0.5532414004550751 +2022-06-26,0.233205152479134,1.2557471231721191,1.260075716991639,2.715172232506665 +2022-06-27,3.9663605369632933,0.5849212901405391,3.452510757244162,2.679757899115613 +2022-06-28,0.016605232459512002,0.280224773927022,0.729523367081325,1.105137522496868 +2022-06-29,1.374134760412724,0.751739223993092,0.7538963415227941,1.347929408272255 +2022-06-30,0.715486103147415,0.555444809676618,0.08646395240381301,0.5491110504617991 +2022-07-01,0.747532331413809,1.043273887199711,0.49779032149353303,0.885618995495125 +2022-07-02,0.8670766655477491,1.8724388596735242,0.391981409036455,1.040394051716164 +2022-07-03,0.392542368674532,1.204834846410795,1.103562611606201,0.387838034146796 +2022-07-04,2.354765436840968,0.147183599628016,1.798064276315111,0.33504623462675404 +2022-07-05,0.25059554847566,0.259954349350673,0.407469349519874,3.278091213717644 +2022-07-06,4.720665637767317,2.071271452074246,4.502139668053687,5.134166854414464 +2022-07-07,0.646476205877439,0.186466306558064,0.499133613586184,0.15787863433545202 +2022-07-08,4.428354777598469,7.997827905255312,5.845195208267132,3.695856221993309 +2022-07-09,1.502467804494858,0.33362085354833704,1.26505092951483,0.9204718402028381 +2022-07-10,11.706734521216822,36.550441521853145,19.095991246701065,12.292686689327372 +2022-07-11,1.153083534578196,0.337559642243531,1.154651513638781,0.22569823789057203 +2022-07-12,1.4863362021332551,0.48307852351030106,1.5365158530965122,0.057003071478754004 +2022-07-13,1.61896686341972,0.9387594299650791,1.092431878065284,1.886305858547745 +2022-07-14,49.60818750100216,22.940238837323303,13.579325095732914,38.67416013838181 +2022-07-15,1.785205883890873,0.631304013521069,0.62869350368483,0.34417591219448 +2022-07-16,0.715594243310775,0.984028805544615,0.967817534607272,0.153576028704162 +2022-07-17,0.8147430610328651,0.26284189122074103,2.154865858339681,1.283391109459497 +2022-07-18,1.24545618431753,1.082826448671828,0.45266260254768803,0.084950117524903 +2022-07-19,0.083915091025848,0.5880718113215341,1.007179376918947,0.865719136965563 +2022-07-20,0.32701962372413,0.17041520446782002,1.773905435681336,1.104677623595627 +2022-07-21,0.722041044814348,0.822598941600809,0.9593067917284711,0.41221237294221 +2022-07-22,10.662811760936936,0.183634003906628,13.34157103707886,12.159275730149757 +2022-07-23,0.364677770561312,0.559247300094862,0.40653075149155804,0.9694788164354201 +2022-07-24,0.9157754804402811,1.091835974661574,0.8199135063617131,1.062993342271482 +2022-07-25,0.67849525511577,3.048531280160542,1.471231045142114,0.591416124923933 +2022-07-26,1.330066578741473,1.582638082613582,1.789945856913414,2.192979954983851 +2022-07-27,5.686664774275858,6.436173309221049,4.7854634352690155,1.63427958962943 +2022-07-28,0.22324041916141402,1.428578028660132,1.458686942176205,1.311736714260567 +2022-07-29,2.476037411183793,0.7249411790805861,0.42039676295059203,2.995565219170837 +2022-07-30,0.773637653847835,0.9265499876312321,0.32494629315872703,0.324341917122049 +2022-07-31,0.169152723468269,0.9014047551998651,0.46982772647431204,0.5534444716525361 +2022-08-01,1.519627178758216,1.610068186750942,3.309159861747862,0.529330910775445 +2022-08-02,3.545652606242915,2.330031081649702,3.9640154638953513,3.856552869039815 +2022-08-03,1.3404062798488199,0.462815961543229,0.9670138622828691,1.234951845374218 +2022-08-04,0.6530263834012761,0.08597037675761801,0.9707805498085981,0.16192153323070702 +2022-08-05,0.708729075421144,3.581243043200601,2.651870015387795,2.173110201699371 +2022-08-06,11.986631123295103,10.930286916614767,22.78182877052594,11.135752238663327 +2022-08-07,1.232939713701664,1.8029857915415932,1.476317514220094,0.958792084262276 +2022-08-08,0.530813431405317,2.014631665755229,2.7977280500624433,2.039075329513739 +2022-08-09,2.510188659097596,2.983415297830412,0.126105493389976,2.121594836643942 +2022-08-10,1.622456744339298,1.289582374551249,2.5475660513369442,3.282862603860423 +2022-08-11,0.25962103068208003,0.37516694909806303,0.5828588359439041,0.139231895746797 +2022-08-12,0.884113805589634,1.603259620438238,1.8751590471743,0.24122279792940302 +2022-08-13,8.624685230360152,3.3791466219930433,9.375119750363103,0.7506624109540441 +2022-08-14,1.6498217904306332,2.627126072551769,0.57102589263998,2.4024472876658223 +2022-08-15,5.840124155766275,3.354483317899366,1.075590808840468,2.3650336028113492 +2022-08-16,2.405030143824614,1.444879535922397,0.942851527789979,1.423465983705226 +2022-08-17,1.034391306438299,0.6369673400603011,0.473080126014195,0.8585472144660361 +2022-08-18,4.703412413763946,0.5990722583580821,0.911179769434693,1.189643421133775 +2022-08-19,0.22138733877979702,0.24079634787311602,0.045592515857608006,0.9837464357223601 +2022-08-20,0.14621922149563202,0.096627004274573,0.7910843611370051,0.059870034265504 +2022-08-21,5.702011116768989,11.782408392531364,4.022381962144387,12.55656527594101 +2022-08-22,2.289251748782675,1.846139752930779,1.302218066447416,1.195140815195466 +2022-08-23,0.40156922050687605,2.44670175499675,2.701336009126233,2.5846045653914143 +2022-08-24,16.368686321533847,9.285256494681935,14.17816605948454,6.813674272547164 +2022-08-25,17.325634435909638,40.63547963350666,52.36627420733006,22.12581500864155 +2022-08-26,2.771994472181008,1.432898057334553,0.500652317272802,0.29065103217099203 +2022-08-27,2.705080627435551,1.140228551443707,2.535947091285437,2.068004826572326 +2022-08-28,0.366184071525715,0.37561791103581305,1.087399555743408,1.3431857507096732 +2022-08-29,0.192969279119436,1.203078886727172,0.8966719923838661,1.07779591413233 +2022-08-30,0.248116517168076,0.901524977902984,0.9660257636136701,0.13247782324235202 +2022-08-31,0.7172605174280461,0.22721632248943202,0.9247009404760361,0.28572976740870504 +2022-09-01,0.259653267575217,2.040817156148029,2.19857288799284,2.229208371156883 +2022-09-02,1.398428414171018,0.071469482611002,0.9048807067534731,0.0022491420541680004 +2022-09-03,1.7166677805176591,1.903668070163285,1.866568462888393,1.8648831840830011`, + input: '请使用四个独立的折线的组合图展示不同类别的权重随着时间的变化' +}; + +export const singleColumnLineCombinationChartData1 = { + csv: `date,Social Penetration,Engagement - Socialization,Penetration of Private Messages,Number of Private Messages per User +2022-03-08,1.2020804451630671,0.7782279444864411,0.21493020207806002,0.26002007727513005 +2022-03-09,1.911162758594358,0.6970763116149991,0.31807068769079905,1.791161354352144 +2022-03-10,0.919293523406533,0.6754510401577041,0.9774597853017851,1.410289280738493 +2022-03-11,1.613617931982911,4.391274420824463,0.662196540154462,2.374084690062705 +2022-03-12,1.121445896148114,0.5827973501093221,1.547704220622789,0.42545370377775604 +2022-03-13,0.527369749651032,0.321443063009525,0.52384329811226,0.45119753243186805 +2022-03-14,0.07991167814791,0.9838146243033221,1.242674929077965,1.276345431333586 +2022-03-15,0.29341332300751205,0.225492098355163,1.133076821811672,0.22045142924559902 +2022-03-16,1.103150404211427,0.580792120371675,1.261446251860683,0.061775812702848 +2022-03-17,0.38285701953593604,0.510579334822959,0.908573021920086,0.429194248082692 +2022-03-18,0.8908005339482421,1.656998380732747,2.003638269088651,1.194511111230195 +2022-03-19,0.8379933951719881,1.372238730132033,1.285574252451237,0.659056833995271 +2022-03-20,2.913059895355856,3.375041306488803,1.683935730207101,0.40361011204949004 +2022-03-21,1.245523794769467,0.5770535812918991,0.518960506573594,0.8441533797310441 +2022-03-22,1.801955367373218,2.562767955961243,2.076490748024919,1.8682050366367142 +2022-03-23,30.25170429439274,60.10096481599735,31.918470633985613,70.34237647545662 +2022-03-24,2.084831170978463,2.824195229461953,1.735738814795219,3.854924132202267 +2022-03-25,0.8300684679922911,0.37108301055861304,1.072942910906809,0.868965201778456 +2022-03-26,5.057522939533747,6.8131452572139555,10.31725741409195,0.6724835487477681 +2022-03-27,1.364245041731511,0.993289299105189,1.288157916081268,1.290710012048575 +2022-03-28,0.429699282814745,0.27225365805664004,0.24488975421611903,0.944202324553962 +2022-03-29,8.636960050981939,2.663368864789215,3.030888929145336,2.191548298261417 +2022-03-30,0.31233481070398905,1.136502929086737,1.4304534277803231,0.9398051933719991 +2022-03-31,0.8979576483673781,0.8268293005130081,1.32475784490384,0.212383798504713 +2022-04-01,1.187326287404249,1.2824253532703072,0.9289553576582981,1.328758303758777 +2022-04-02,0.013251966153457001,1.580091614771022,0.8470948142995741,1.061518688804395 +2022-04-03,0.150440921215681,0.7793382242254321,0.5908683646183901,1.021428732507816 +2022-04-04,1.437865757864698,0.34207119701235905,1.006103497118929,0.8496566144677861 +2022-04-05,19.70534531285437,4.144335050792541,13.880860231019398,19.78289952089912 +2022-04-06,1.068708512330189,1.336025709304907,7.121018094960213,0.032847589287524 +2022-04-07,3.239083103313066,0.9037359185383671,2.010136943230478,2.758258304057329 +2022-04-08,3.609669038457516,13.698767079174356,14.457401852798982,11.6964360828172 +2022-04-09,0.8581543303200471,1.11771091972957,0.9593788300193951,1.121066838670219 +2022-04-10,1.235338424517758,0.5546236200208831,1.138776207683746,0.5694312841615821 +2022-04-11,0.615560300356359,0.133505664394376,0.575680679073131,0.502679162912634 +2022-04-12,3.5445165395901572,8.458105165611851,2.90160000840929,3.084080663501847 +2022-04-13,1.037776502324676,1.412321112593621,1.416876192652653,0.270647644667579 +2022-04-14,0.534866532613768,0.577163861285873,0.034172330313952004,0.268470350264293 +2022-04-15,3.225952049483959,5.112791338669762,3.745099757241069,2.612195295941399 +2022-04-16,12.278592894400722,13.301401633991011,6.202762040985617,18.098567324029407 +2022-04-17,0.411460847135642,0.8194099242420241,0.6882380919620981,0.645388563624089 +2022-04-18,0.304818623987116,0.601409275693432,0.07904084882979401,0.16144847919011002 +2022-04-19,0.8929797309154061,0.932019259560644,0.013117573233606001,0.36918835535862005 +2022-04-20,4.074891060179412,3.6166710941152713,3.143179675624189,5.283666616893828 +2022-04-21,0.902423656543305,2.682237126638688,0.6180860661837431,1.631115014312209 +2022-04-22,0.868968791964932,0.329339479566271,0.001536382167654,0.807551152019862 +2022-04-23,0.598986391584271,0.923756524041317,0.27081187550692803,0.22998130489182 +2022-04-24,0.27570721725353503,0.6601580208066361,0.7774852739576821,1.107108162852159 +2022-04-25,0.38518667923696703,2.037027697748363,0.859959904015784,0.641738277028276 +2022-04-26,0.622049495688147,0.803863499657206,0.22244045641286703,1.320954321806144 +2022-04-27,3.540727101774814,0.651469202290988,0.509144429951741,0.20073460039620403 +2022-04-28,2.742513433824975,2.6893975459595643,0.13894846116144902,0.7415989059349031 +2022-04-29,1.621566806821747,0.9147556633717211,0.19686640023465302,1.66475441380813 +2022-04-30,2.352493741253538,3.463127996997362,2.931184732430775,1.792534569741266 +2022-05-01,0.023487873849160002,0.5573480476128151,0.544054544143018,0.35016352980012605 +2022-05-02,9.85187760463177,35.95040240058573,10.530894431942714,4.323328789531124 +2022-05-03,6.3835439206943,5.577920982650984,4.483541728043783,3.7796731596206943 +2022-05-04,2.897597920598689,5.106082630695584,8.400221891051206,8.018922971992662 +2022-05-05,0.147546385656207,0.040771286126692,0.6862921980279431,0.44745062012103404 +2022-05-06,4.668438202775402,0.23681078820699203,4.557825514906153,3.46073691075845 +2022-05-07,1.868897716467347,1.727448921279463,0.527497153125138,0.120868915583745 +2022-05-08,1.356875902669512,1.434740383567053,1.25226701190186,0.42909048781311704 +2022-05-09,1.029882775112869,0.9377192673786531,0.643077700672811,0.539461571476962 +2022-05-10,1.079419585437788,0.5840348488590831,0.031193331319320002,0.341612265371036 +2022-05-11,0.43374835866466704,0.01643698693241,0.39325414355653304,0.918926460102595 +2022-05-12,0.6884004244125861,1.538028843999251,0.863652647240271,1.249717355592488 +2022-05-13,0.5513219132650721,1.063801968030616,0.65309749602536,1.244646630025216 +2022-05-14,0.26075436773203503,0.16980099784180802,0.502507081730036,0.026734770744615003 +2022-05-15,3.534068370760441,2.144086432206532,1.989727381483406,1.510725845099207 +2022-05-16,1.051684273070894,1.152664833294427,0.747391405264186,0.283792059973869 +2022-05-17,0.8574030868970931,0.8751363341872681,0.901758308356248,0.41795473321335 +2022-05-18,0.515497463894879,0.8615187586650901,0.43634054682577406,1.895212820019219 +2022-05-19,0.9592457438221671,0.126354125202296,2.8539304550226543,0.77105240170235 +2022-05-20,0.069882250377393,0.7098481312166951,0.5071020864029481,2.543277547025898 +2022-05-21,10.360352568974609,17.706030110118455,2.848137759152337,1.260088014509166 +2022-05-22,1.112796751785197,0.9176470910577301,0.43003615544265306,0.910155627802492 +2022-05-23,4.891916669440483,16.47452431770853,2.744192036280677,1.124249996351633 +2022-05-24,0.09534096170855301,0.7854768368577231,0.6263662592501831,0.19409864063613502 +2022-05-25,17.21160548866725,34.373177238596014,7.564216276703391,17.06769270843336 +2022-05-26,0.9890377076819251,0.789535076533531,0.8798790088553111,0.592040366427117 +2022-05-27,1.207578684423282,0.5312851260232421,1.055373428020675,0.84736634769268 +2022-05-28,15.265265813052475,12.028735185645875,14.171624745847268,35.787490090751945 +2022-05-29,1.667919015486645,1.439873268216485,1.078931580631559,0.9907508552960291 +2022-05-30,2.232083847244808,3.827653889831506,1.429842282923971,3.76351508114206 +2022-05-31,1.113011174076138,1.4295696272440521,1.141933003322777,1.22202135537901 +2022-06-01,0.9839213173080511,1.325995589464272,2.006909504383298,1.7803529363753632 +2022-06-02,3.618368394111176,0.627748977148721,1.176985400742372,1.267728131617331 +2022-06-03,1.5240830060491182,0.83151391784571,1.356692075891955,3.227340286052029 +2022-06-04,0.7108355579615261,0.011530713721830002,0.52485737802621,0.661668615725415 +2022-06-05,1.842738679408876,1.130871471288951,1.189107233207374,3.246025623322408 +2022-06-06,2.968986726243696,2.9958102236757282,0.47619309340284505,1.3335764819663671 +2022-06-07,0.30957106038382504,0.44026116440941004,0.42982954277120905,1.741430660250139 +2022-06-08,3.077870353397237,4.156128784010092,1.021512025143279,4.351094223144934 +2022-06-09,0.460474051903736,1.2828566287818242,0.22198861960947303,0.085629074470341 +2022-06-10,0.9248894668614721,0.23152297348937,0.18500236928827601,0.5925681882904861 +2022-06-11,0.5170229174882011,1.344093064443273,0.6923204827335401,1.013151233597585 +2022-06-12,1.343310704782682,0.42108731154009404,1.547163500435265,0.999128791000602 +2022-06-13,4.213284444567541,2.448703044357372,0.13900479867391702,1.556248326348268 +2022-06-14,0.718083714760927,1.912454128957958,0.24702549770442003,2.037101388253879 +2022-06-15,2.443370806389791,0.010368540480550002,0.133167401519793,2.42241572339565 +2022-06-16,3.594231845735735,0.6677966564200211,4.009094569074379,5.5253640045926335 +2022-06-17,1.113951398490715,0.11111864432229301,0.9730098334869651,0.9908309309721931 +2022-06-18,0.5614439322266921,0.806546956486733,0.32013564834811403,0.8486918887953661 +2022-06-19,1.243458727745012,1.135192118212662,5.021267051723119,4.233329079605447 +2022-06-20,1.31005897849395,1.045144309632654,4.014478741193049,2.239616259510069 +2022-06-21,0.572744269459053,1.076475248295982,0.7240389412682761,0.10908279405984601 +2022-06-22,24.581669047338767,24.02021682920061,37.05462241129788,23.51884099646193 +2022-06-23,0.47413969565051606,0.027051327125384002,0.16824850993617801,0.41568301223291604 +2022-06-24,0.43416765009011604,2.878601660092219,1.9317197675603461,1.840590020030168 +2022-06-25,0.943163264857342,0.019465090936308,0.285177476177572,0.5532414004550751 +2022-06-26,0.233205152479134,1.2557471231721191,1.260075716991639,2.715172232506665 +2022-06-27,3.9663605369632933,0.5849212901405391,3.452510757244162,2.679757899115613 +2022-06-28,0.016605232459512002,0.280224773927022,0.729523367081325,1.105137522496868 +2022-06-29,1.374134760412724,0.751739223993092,0.7538963415227941,1.347929408272255 +2022-06-30,0.715486103147415,0.555444809676618,0.08646395240381301,0.5491110504617991 +2022-07-01,0.747532331413809,1.043273887199711,0.49779032149353303,0.885618995495125 +2022-07-02,0.8670766655477491,1.8724388596735242,0.391981409036455,1.040394051716164 +2022-07-03,0.392542368674532,1.204834846410795,1.103562611606201,0.387838034146796 +2022-07-04,2.354765436840968,0.147183599628016,1.798064276315111,0.33504623462675404 +2022-07-05,0.25059554847566,0.259954349350673,0.407469349519874,3.278091213717644 +2022-07-06,4.720665637767317,2.071271452074246,4.502139668053687,5.134166854414464 +2022-07-07,0.646476205877439,0.186466306558064,0.499133613586184,0.15787863433545202 +2022-07-08,4.428354777598469,7.997827905255312,5.845195208267132,3.695856221993309 +2022-07-09,1.502467804494858,0.33362085354833704,1.26505092951483,0.9204718402028381 +2022-07-10,11.706734521216822,36.550441521853145,19.095991246701065,12.292686689327372 +2022-07-11,1.153083534578196,0.337559642243531,1.154651513638781,0.22569823789057203 +2022-07-12,1.4863362021332551,0.48307852351030106,1.5365158530965122,0.057003071478754004 +2022-07-13,1.61896686341972,0.9387594299650791,1.092431878065284,1.886305858547745 +2022-07-14,49.60818750100216,22.940238837323303,13.579325095732914,38.67416013838181 +2022-07-15,1.785205883890873,0.631304013521069,0.62869350368483,0.34417591219448 +2022-07-16,0.715594243310775,0.984028805544615,0.967817534607272,0.153576028704162 +2022-07-17,0.8147430610328651,0.26284189122074103,2.154865858339681,1.283391109459497 +2022-07-18,1.24545618431753,1.082826448671828,0.45266260254768803,0.084950117524903 +2022-07-19,0.083915091025848,0.5880718113215341,1.007179376918947,0.865719136965563 +2022-07-20,0.32701962372413,0.17041520446782002,1.773905435681336,1.104677623595627 +2022-07-21,0.722041044814348,0.822598941600809,0.9593067917284711,0.41221237294221 +2022-07-22,10.662811760936936,0.183634003906628,13.34157103707886,12.159275730149757 +2022-07-23,0.364677770561312,0.559247300094862,0.40653075149155804,0.9694788164354201 +2022-07-24,0.9157754804402811,1.091835974661574,0.8199135063617131,1.062993342271482 +2022-07-25,0.67849525511577,3.048531280160542,1.471231045142114,0.591416124923933 +2022-07-26,1.330066578741473,1.582638082613582,1.789945856913414,2.192979954983851 +2022-07-27,5.686664774275858,6.436173309221049,4.7854634352690155,1.63427958962943 +2022-07-28,0.22324041916141402,1.428578028660132,1.458686942176205,1.311736714260567 +2022-07-29,2.476037411183793,0.7249411790805861,0.42039676295059203,2.995565219170837 +2022-07-30,0.773637653847835,0.9265499876312321,0.32494629315872703,0.324341917122049 +2022-07-31,0.169152723468269,0.9014047551998651,0.46982772647431204,0.5534444716525361 +2022-08-01,1.519627178758216,1.610068186750942,3.309159861747862,0.529330910775445 +2022-08-02,3.545652606242915,2.330031081649702,3.9640154638953513,3.856552869039815 +2022-08-03,1.3404062798488199,0.462815961543229,0.9670138622828691,1.234951845374218 +2022-08-04,0.6530263834012761,0.08597037675761801,0.9707805498085981,0.16192153323070702 +2022-08-05,0.708729075421144,3.581243043200601,2.651870015387795,2.173110201699371 +2022-08-06,11.986631123295103,10.930286916614767,22.78182877052594,11.135752238663327 +2022-08-07,1.232939713701664,1.8029857915415932,1.476317514220094,0.958792084262276 +2022-08-08,0.530813431405317,2.014631665755229,2.7977280500624433,2.039075329513739 +2022-08-09,2.510188659097596,2.983415297830412,0.126105493389976,2.121594836643942 +2022-08-10,1.622456744339298,1.289582374551249,2.5475660513369442,3.282862603860423 +2022-08-11,0.25962103068208003,0.37516694909806303,0.5828588359439041,0.139231895746797 +2022-08-12,0.884113805589634,1.603259620438238,1.8751590471743,0.24122279792940302 +2022-08-13,8.624685230360152,3.3791466219930433,9.375119750363103,0.7506624109540441 +2022-08-14,1.6498217904306332,2.627126072551769,0.57102589263998,2.4024472876658223 +2022-08-15,5.840124155766275,3.354483317899366,1.075590808840468,2.3650336028113492 +2022-08-16,2.405030143824614,1.444879535922397,0.942851527789979,1.423465983705226 +2022-08-17,1.034391306438299,0.6369673400603011,0.473080126014195,0.8585472144660361 +2022-08-18,4.703412413763946,0.5990722583580821,0.911179769434693,1.189643421133775 +2022-08-19,0.22138733877979702,0.24079634787311602,0.045592515857608006,0.9837464357223601 +2022-08-20,0.14621922149563202,0.096627004274573,0.7910843611370051,0.059870034265504 +2022-08-21,5.702011116768989,11.782408392531364,4.022381962144387,12.55656527594101 +2022-08-22,2.289251748782675,1.846139752930779,1.302218066447416,1.195140815195466 +2022-08-23,0.40156922050687605,2.44670175499675,2.701336009126233,2.5846045653914143 +2022-08-24,16.368686321533847,9.285256494681935,14.17816605948454,6.813674272547164 +2022-08-25,17.325634435909638,40.63547963350666,52.36627420733006,22.12581500864155 +2022-08-26,2.771994472181008,1.432898057334553,0.500652317272802,0.29065103217099203 +2022-08-27,2.705080627435551,1.140228551443707,2.535947091285437,2.068004826572326 +2022-08-28,0.366184071525715,0.37561791103581305,1.087399555743408,1.3431857507096732 +2022-08-29,0.192969279119436,1.203078886727172,0.8966719923838661,1.07779591413233 +2022-08-30,0.248116517168076,0.901524977902984,0.9660257636136701,0.13247782324235202 +2022-08-31,0.7172605174280461,0.22721632248943202,0.9247009404760361,0.28572976740870504 +2022-09-01,0.259653267575217,2.040817156148029,2.19857288799284,2.229208371156883 +2022-09-02,1.398428414171018,0.071469482611002,0.9048807067534731,0.0022491420541680004 +2022-09-03,1.7166677805176591,1.903668070163285,1.866568462888393,1.8648831840830011`, + input: + '请使用组合图分别展示Social Penetration和Engagement - Socialization类别的权重随着时间的变化,以及Penetration of Private Messages和Number of Private Messages per User类别的权重随着时间的变化' +}; + +export const singleColumnBarCombinationChartData = { + csv: `region,可乐销售额,雪碧销售额,芬达销售额,醒目销售额 +south,2350,215,345,1476 +east,1027,654,654,830 +west,1027,159,2100,532 +north,1027,28,1679,498 +`, + input: '帮我使用四个不同柱图的组合展示四个区域上不同商品销售额' +}; + +export const singleColumnBarCombinationChartData1 = { + csv: `date,Social Penetration,Engagement - Socialization,Penetration of Private Messages,Number of Private Messages per User +2022-03-08,1.2020804451630671,0.7782279444864411,0.21493020207806002,0.26002007727513005 +2022-03-09,1.911162758594358,0.6970763116149991,0.31807068769079905,1.791161354352144 +2022-03-10,0.919293523406533,0.6754510401577041,0.9774597853017851,1.410289280738493 +2022-03-11,1.613617931982911,4.391274420824463,0.662196540154462,2.374084690062705 +2022-03-12,1.121445896148114,0.5827973501093221,1.547704220622789,0.42545370377775604 +2022-03-13,0.527369749651032,0.321443063009525,0.52384329811226,0.45119753243186805 +2022-03-14,0.07991167814791,0.9838146243033221,1.242674929077965,1.276345431333586 +2022-03-15,0.29341332300751205,0.225492098355163,1.133076821811672,0.22045142924559902 +2022-03-16,1.103150404211427,0.580792120371675,1.261446251860683,0.061775812702848 +2022-03-17,0.38285701953593604,0.510579334822959,0.908573021920086,0.429194248082692 +2022-03-18,0.8908005339482421,1.656998380732747,2.003638269088651,1.194511111230195 +2022-03-19,0.8379933951719881,1.372238730132033,1.285574252451237,0.659056833995271 +2022-03-20,2.913059895355856,3.375041306488803,1.683935730207101,0.40361011204949004 +2022-03-21,1.245523794769467,0.5770535812918991,0.518960506573594,0.8441533797310441 +2022-03-22,1.801955367373218,2.562767955961243,2.076490748024919,1.8682050366367142 +2022-03-23,30.25170429439274,60.10096481599735,31.918470633985613,70.34237647545662 +2022-03-24,2.084831170978463,2.824195229461953,1.735738814795219,3.854924132202267 +2022-03-25,0.8300684679922911,0.37108301055861304,1.072942910906809,0.868965201778456 +2022-03-26,5.057522939533747,6.8131452572139555,10.31725741409195,0.6724835487477681 +2022-03-27,1.364245041731511,0.993289299105189,1.288157916081268,1.290710012048575 +2022-03-28,0.429699282814745,0.27225365805664004,0.24488975421611903,0.944202324553962 +2022-03-29,8.636960050981939,2.663368864789215,3.030888929145336,2.191548298261417 +2022-03-30,0.31233481070398905,1.136502929086737,1.4304534277803231,0.9398051933719991 +2022-03-31,0.8979576483673781,0.8268293005130081,1.32475784490384,0.212383798504713 +2022-04-01,1.187326287404249,1.2824253532703072,0.9289553576582981,1.328758303758777 +2022-04-02,0.013251966153457001,1.580091614771022,0.8470948142995741,1.061518688804395 +2022-04-03,0.150440921215681,0.7793382242254321,0.5908683646183901,1.021428732507816 +2022-04-04,1.437865757864698,0.34207119701235905,1.006103497118929,0.8496566144677861 +2022-04-05,19.70534531285437,4.144335050792541,13.880860231019398,19.78289952089912 +2022-04-06,1.068708512330189,1.336025709304907,7.121018094960213,0.032847589287524 +2022-04-07,3.239083103313066,0.9037359185383671,2.010136943230478,2.758258304057329 +2022-04-08,3.609669038457516,13.698767079174356,14.457401852798982,11.6964360828172 +2022-04-09,0.8581543303200471,1.11771091972957,0.9593788300193951,1.121066838670219 +2022-04-10,1.235338424517758,0.5546236200208831,1.138776207683746,0.5694312841615821 +2022-04-11,0.615560300356359,0.133505664394376,0.575680679073131,0.502679162912634 +2022-04-12,3.5445165395901572,8.458105165611851,2.90160000840929,3.084080663501847 +2022-04-13,1.037776502324676,1.412321112593621,1.416876192652653,0.270647644667579 +2022-04-14,0.534866532613768,0.577163861285873,0.034172330313952004,0.268470350264293 +2022-04-15,3.225952049483959,5.112791338669762,3.745099757241069,2.612195295941399 +2022-04-16,12.278592894400722,13.301401633991011,6.202762040985617,18.098567324029407 +2022-04-17,0.411460847135642,0.8194099242420241,0.6882380919620981,0.645388563624089 +2022-04-18,0.304818623987116,0.601409275693432,0.07904084882979401,0.16144847919011002 +2022-04-19,0.8929797309154061,0.932019259560644,0.013117573233606001,0.36918835535862005 +2022-04-20,4.074891060179412,3.6166710941152713,3.143179675624189,5.283666616893828 +2022-04-21,0.902423656543305,2.682237126638688,0.6180860661837431,1.631115014312209 +2022-04-22,0.868968791964932,0.329339479566271,0.001536382167654,0.807551152019862 +2022-04-23,0.598986391584271,0.923756524041317,0.27081187550692803,0.22998130489182 +2022-04-24,0.27570721725353503,0.6601580208066361,0.7774852739576821,1.107108162852159 +2022-04-25,0.38518667923696703,2.037027697748363,0.859959904015784,0.641738277028276 +2022-04-26,0.622049495688147,0.803863499657206,0.22244045641286703,1.320954321806144 +2022-04-27,3.540727101774814,0.651469202290988,0.509144429951741,0.20073460039620403 +2022-04-28,2.742513433824975,2.6893975459595643,0.13894846116144902,0.7415989059349031 +2022-04-29,1.621566806821747,0.9147556633717211,0.19686640023465302,1.66475441380813 +2022-04-30,2.352493741253538,3.463127996997362,2.931184732430775,1.792534569741266 +2022-05-01,0.023487873849160002,0.5573480476128151,0.544054544143018,0.35016352980012605 +2022-05-02,9.85187760463177,35.95040240058573,10.530894431942714,4.323328789531124 +2022-05-03,6.3835439206943,5.577920982650984,4.483541728043783,3.7796731596206943 +2022-05-04,2.897597920598689,5.106082630695584,8.400221891051206,8.018922971992662 +2022-05-05,0.147546385656207,0.040771286126692,0.6862921980279431,0.44745062012103404 +2022-05-06,4.668438202775402,0.23681078820699203,4.557825514906153,3.46073691075845 +2022-05-07,1.868897716467347,1.727448921279463,0.527497153125138,0.120868915583745 +2022-05-08,1.356875902669512,1.434740383567053,1.25226701190186,0.42909048781311704 +2022-05-09,1.029882775112869,0.9377192673786531,0.643077700672811,0.539461571476962 +2022-05-10,1.079419585437788,0.5840348488590831,0.031193331319320002,0.341612265371036 +2022-05-11,0.43374835866466704,0.01643698693241,0.39325414355653304,0.918926460102595 +2022-05-12,0.6884004244125861,1.538028843999251,0.863652647240271,1.249717355592488 +2022-05-13,0.5513219132650721,1.063801968030616,0.65309749602536,1.244646630025216 +2022-05-14,0.26075436773203503,0.16980099784180802,0.502507081730036,0.026734770744615003 +2022-05-15,3.534068370760441,2.144086432206532,1.989727381483406,1.510725845099207 +2022-05-16,1.051684273070894,1.152664833294427,0.747391405264186,0.283792059973869 +2022-05-17,0.8574030868970931,0.8751363341872681,0.901758308356248,0.41795473321335 +2022-05-18,0.515497463894879,0.8615187586650901,0.43634054682577406,1.895212820019219 +2022-05-19,0.9592457438221671,0.126354125202296,2.8539304550226543,0.77105240170235 +2022-05-20,0.069882250377393,0.7098481312166951,0.5071020864029481,2.543277547025898 +2022-05-21,10.360352568974609,17.706030110118455,2.848137759152337,1.260088014509166 +2022-05-22,1.112796751785197,0.9176470910577301,0.43003615544265306,0.910155627802492 +2022-05-23,4.891916669440483,16.47452431770853,2.744192036280677,1.124249996351633 +2022-05-24,0.09534096170855301,0.7854768368577231,0.6263662592501831,0.19409864063613502 +2022-05-25,17.21160548866725,34.373177238596014,7.564216276703391,17.06769270843336 +2022-05-26,0.9890377076819251,0.789535076533531,0.8798790088553111,0.592040366427117 +2022-05-27,1.207578684423282,0.5312851260232421,1.055373428020675,0.84736634769268 +2022-05-28,15.265265813052475,12.028735185645875,14.171624745847268,35.787490090751945 +2022-05-29,1.667919015486645,1.439873268216485,1.078931580631559,0.9907508552960291 +2022-05-30,2.232083847244808,3.827653889831506,1.429842282923971,3.76351508114206 +2022-05-31,1.113011174076138,1.4295696272440521,1.141933003322777,1.22202135537901 +2022-06-01,0.9839213173080511,1.325995589464272,2.006909504383298,1.7803529363753632 +2022-06-02,3.618368394111176,0.627748977148721,1.176985400742372,1.267728131617331 +2022-06-03,1.5240830060491182,0.83151391784571,1.356692075891955,3.227340286052029 +2022-06-04,0.7108355579615261,0.011530713721830002,0.52485737802621,0.661668615725415 +2022-06-05,1.842738679408876,1.130871471288951,1.189107233207374,3.246025623322408 +2022-06-06,2.968986726243696,2.9958102236757282,0.47619309340284505,1.3335764819663671 +2022-06-07,0.30957106038382504,0.44026116440941004,0.42982954277120905,1.741430660250139 +2022-06-08,3.077870353397237,4.156128784010092,1.021512025143279,4.351094223144934 +2022-06-09,0.460474051903736,1.2828566287818242,0.22198861960947303,0.085629074470341 +2022-06-10,0.9248894668614721,0.23152297348937,0.18500236928827601,0.5925681882904861 +2022-06-11,0.5170229174882011,1.344093064443273,0.6923204827335401,1.013151233597585 +2022-06-12,1.343310704782682,0.42108731154009404,1.547163500435265,0.999128791000602 +2022-06-13,4.213284444567541,2.448703044357372,0.13900479867391702,1.556248326348268 +2022-06-14,0.718083714760927,1.912454128957958,0.24702549770442003,2.037101388253879 +2022-06-15,2.443370806389791,0.010368540480550002,0.133167401519793,2.42241572339565 +2022-06-16,3.594231845735735,0.6677966564200211,4.009094569074379,5.5253640045926335 +2022-06-17,1.113951398490715,0.11111864432229301,0.9730098334869651,0.9908309309721931 +2022-06-18,0.5614439322266921,0.806546956486733,0.32013564834811403,0.8486918887953661 +2022-06-19,1.243458727745012,1.135192118212662,5.021267051723119,4.233329079605447 +2022-06-20,1.31005897849395,1.045144309632654,4.014478741193049,2.239616259510069 +2022-06-21,0.572744269459053,1.076475248295982,0.7240389412682761,0.10908279405984601 +2022-06-22,24.581669047338767,24.02021682920061,37.05462241129788,23.51884099646193 +2022-06-23,0.47413969565051606,0.027051327125384002,0.16824850993617801,0.41568301223291604 +2022-06-24,0.43416765009011604,2.878601660092219,1.9317197675603461,1.840590020030168 +2022-06-25,0.943163264857342,0.019465090936308,0.285177476177572,0.5532414004550751 +2022-06-26,0.233205152479134,1.2557471231721191,1.260075716991639,2.715172232506665 +2022-06-27,3.9663605369632933,0.5849212901405391,3.452510757244162,2.679757899115613 +2022-06-28,0.016605232459512002,0.280224773927022,0.729523367081325,1.105137522496868 +2022-06-29,1.374134760412724,0.751739223993092,0.7538963415227941,1.347929408272255 +2022-06-30,0.715486103147415,0.555444809676618,0.08646395240381301,0.5491110504617991 +2022-07-01,0.747532331413809,1.043273887199711,0.49779032149353303,0.885618995495125 +2022-07-02,0.8670766655477491,1.8724388596735242,0.391981409036455,1.040394051716164 +2022-07-03,0.392542368674532,1.204834846410795,1.103562611606201,0.387838034146796 +2022-07-04,2.354765436840968,0.147183599628016,1.798064276315111,0.33504623462675404 +2022-07-05,0.25059554847566,0.259954349350673,0.407469349519874,3.278091213717644 +2022-07-06,4.720665637767317,2.071271452074246,4.502139668053687,5.134166854414464 +2022-07-07,0.646476205877439,0.186466306558064,0.499133613586184,0.15787863433545202 +2022-07-08,4.428354777598469,7.997827905255312,5.845195208267132,3.695856221993309 +2022-07-09,1.502467804494858,0.33362085354833704,1.26505092951483,0.9204718402028381 +2022-07-10,11.706734521216822,36.550441521853145,19.095991246701065,12.292686689327372 +2022-07-11,1.153083534578196,0.337559642243531,1.154651513638781,0.22569823789057203 +2022-07-12,1.4863362021332551,0.48307852351030106,1.5365158530965122,0.057003071478754004 +2022-07-13,1.61896686341972,0.9387594299650791,1.092431878065284,1.886305858547745 +2022-07-14,49.60818750100216,22.940238837323303,13.579325095732914,38.67416013838181 +2022-07-15,1.785205883890873,0.631304013521069,0.62869350368483,0.34417591219448 +2022-07-16,0.715594243310775,0.984028805544615,0.967817534607272,0.153576028704162 +2022-07-17,0.8147430610328651,0.26284189122074103,2.154865858339681,1.283391109459497 +2022-07-18,1.24545618431753,1.082826448671828,0.45266260254768803,0.084950117524903 +2022-07-19,0.083915091025848,0.5880718113215341,1.007179376918947,0.865719136965563 +2022-07-20,0.32701962372413,0.17041520446782002,1.773905435681336,1.104677623595627 +2022-07-21,0.722041044814348,0.822598941600809,0.9593067917284711,0.41221237294221 +2022-07-22,10.662811760936936,0.183634003906628,13.34157103707886,12.159275730149757 +2022-07-23,0.364677770561312,0.559247300094862,0.40653075149155804,0.9694788164354201 +2022-07-24,0.9157754804402811,1.091835974661574,0.8199135063617131,1.062993342271482 +2022-07-25,0.67849525511577,3.048531280160542,1.471231045142114,0.591416124923933 +2022-07-26,1.330066578741473,1.582638082613582,1.789945856913414,2.192979954983851 +2022-07-27,5.686664774275858,6.436173309221049,4.7854634352690155,1.63427958962943 +2022-07-28,0.22324041916141402,1.428578028660132,1.458686942176205,1.311736714260567 +2022-07-29,2.476037411183793,0.7249411790805861,0.42039676295059203,2.995565219170837 +2022-07-30,0.773637653847835,0.9265499876312321,0.32494629315872703,0.324341917122049 +2022-07-31,0.169152723468269,0.9014047551998651,0.46982772647431204,0.5534444716525361 +2022-08-01,1.519627178758216,1.610068186750942,3.309159861747862,0.529330910775445 +2022-08-02,3.545652606242915,2.330031081649702,3.9640154638953513,3.856552869039815 +2022-08-03,1.3404062798488199,0.462815961543229,0.9670138622828691,1.234951845374218 +2022-08-04,0.6530263834012761,0.08597037675761801,0.9707805498085981,0.16192153323070702 +2022-08-05,0.708729075421144,3.581243043200601,2.651870015387795,2.173110201699371 +2022-08-06,11.986631123295103,10.930286916614767,22.78182877052594,11.135752238663327 +2022-08-07,1.232939713701664,1.8029857915415932,1.476317514220094,0.958792084262276 +2022-08-08,0.530813431405317,2.014631665755229,2.7977280500624433,2.039075329513739 +2022-08-09,2.510188659097596,2.983415297830412,0.126105493389976,2.121594836643942 +2022-08-10,1.622456744339298,1.289582374551249,2.5475660513369442,3.282862603860423 +2022-08-11,0.25962103068208003,0.37516694909806303,0.5828588359439041,0.139231895746797 +2022-08-12,0.884113805589634,1.603259620438238,1.8751590471743,0.24122279792940302 +2022-08-13,8.624685230360152,3.3791466219930433,9.375119750363103,0.7506624109540441 +2022-08-14,1.6498217904306332,2.627126072551769,0.57102589263998,2.4024472876658223 +2022-08-15,5.840124155766275,3.354483317899366,1.075590808840468,2.3650336028113492 +2022-08-16,2.405030143824614,1.444879535922397,0.942851527789979,1.423465983705226 +2022-08-17,1.034391306438299,0.6369673400603011,0.473080126014195,0.8585472144660361 +2022-08-18,4.703412413763946,0.5990722583580821,0.911179769434693,1.189643421133775 +2022-08-19,0.22138733877979702,0.24079634787311602,0.045592515857608006,0.9837464357223601 +2022-08-20,0.14621922149563202,0.096627004274573,0.7910843611370051,0.059870034265504 +2022-08-21,5.702011116768989,11.782408392531364,4.022381962144387,12.55656527594101 +2022-08-22,2.289251748782675,1.846139752930779,1.302218066447416,1.195140815195466 +2022-08-23,0.40156922050687605,2.44670175499675,2.701336009126233,2.5846045653914143 +2022-08-24,16.368686321533847,9.285256494681935,14.17816605948454,6.813674272547164 +2022-08-25,17.325634435909638,40.63547963350666,52.36627420733006,22.12581500864155 +2022-08-26,2.771994472181008,1.432898057334553,0.500652317272802,0.29065103217099203 +2022-08-27,2.705080627435551,1.140228551443707,2.535947091285437,2.068004826572326 +2022-08-28,0.366184071525715,0.37561791103581305,1.087399555743408,1.3431857507096732 +2022-08-29,0.192969279119436,1.203078886727172,0.8966719923838661,1.07779591413233 +2022-08-30,0.248116517168076,0.901524977902984,0.9660257636136701,0.13247782324235202 +2022-08-31,0.7172605174280461,0.22721632248943202,0.9247009404760361,0.28572976740870504 +2022-09-01,0.259653267575217,2.040817156148029,2.19857288799284,2.229208371156883 +2022-09-02,1.398428414171018,0.071469482611002,0.9048807067534731,0.0022491420541680004 +2022-09-03,1.7166677805176591,1.903668070163285,1.866568462888393,1.8648831840830011`, + input: '请使用四个独立柱图的组合图展示前十天不同类别的权重随着时间的变化。' +}; + +export const dynamicScatterPlotData = { + csv: `年度收益率,净现金流,市值,公司,年份 +50,28,726,公司0,1950 +9,63,301,公司1,1950 +41,8,795,公司2,1950 +93,92,545,公司3,1950 +11,93,798,公司4,1950 +50,11,652,公司5,1950 +35,96,688,公司6,1950 +94,72,795,公司7,1950 +4,4,149,公司8,1950 +4,93,919,公司9,1950 +71,7,976,公司10,1950 +75,7,349,公司11,1950 +93,89,810,公司12,1950 +28,73,602,公司13,1950 +11,73,497,公司14,1950 +87,73,509,公司15,1950 +58,53,256,公司16,1950 +56,69,144,公司17,1950 +49,45,237,公司18,1950 +46,74,387,公司19,1950 +92,42,742,公司20,1950 +45,64,933,公司21,1950 +68,42,284,公司22,1950 +9,46,325,公司23,1950 +70,6,194,公司24,1950 +25,84,552,公司25,1950 +82,87,716,公司26,1950 +5,64,958,公司27,1950 +15,86,593,公司28,1950 +44,11,219,公司29,1950 +46,75,72,公司30,1950 +76,56,530,公司31,1950 +14,8,483,公司32,1950 +82,30,639,公司33,1950 +58,23,876,公司34,1950 +0,28,748,公司35,1950 +55,25,845,公司36,1950 +35,54,185,公司37,1950 +60,1,931,公司38,1950 +64,30,300,公司39,1950 +83,29,510,公司40,1950 +5,77,915,公司41,1950 +23,61,821,公司42,1950 +16,42,22,公司43,1950 +50,73,800,公司44,1950 +93,71,829,公司45,1950 +31,0,293,公司46,1950 +17,75,89,公司47,1950 +8,25,319,公司48,1950 +81,37,851,公司49,1950 +51,31,723,公司0,1951 +10,65,287,公司1,1951 +42,7,813,公司2,1951 +92,90,525,公司3,1951 +12,96,761,公司4,1951 +50,10,681,公司5,1951 +37,96,738,公司6,1951 +97,73,752,公司7,1951 +5,7,189,公司8,1951 +7,93,908,公司9,1951 +72,9,975,公司10,1951 +77,7,309,公司11,1951 +94,89,777,公司12,1951 +31,76,568,公司13,1951 +11,75,523,公司14,1951 +86,73,563,公司15,1951 +58,52,219,公司16,1951 +59,70,176,公司17,1951 +51,48,192,公司18,1951 +49,76,418,公司19,1951 +92,45,747,公司20,1951 +48,67,924,公司21,1951 +71,41,321,公司22,1951 +11,46,304,公司23,1951 +73,8,158,公司24,1951 +25,86,595,公司25,1951 +82,87,673,公司26,1951 +5,67,998,公司27,1951 +18,89,622,公司28,1951 +46,13,247,公司29,1951 +45,74,121,公司30,1951 +79,58,525,公司31,1951 +14,12,439,公司32,1951 +84,30,617,公司33,1951 +61,23,854,公司34,1951 +0,30,765,公司35,1951 +58,25,834,公司36,1951 +37,53,229,公司37,1951 +61,0,955,公司38,1951 +63,30,346,公司39,1951 +84,29,492,公司40,1951 +9,77,916,公司41,1951 +25,64,874,公司42,1951 +18,43,18,公司43,1951 +51,75,755,公司44,1951 +94,71,866,公司45,1951 +32,0,293,公司46,1951 +18,76,111,公司47,1951 +7,25,307,公司48,1951 +83,36,834,公司49,1951 +50,31,710,公司0,1952 +13,65,271,公司1,1952 +41,10,792,公司2,1952 +91,92,552,公司3,1952 +10,94,762,公司4,1952 +50,13,732,公司5,1952 +36,97,782,公司6,1952 +98,72,753,公司7,1952 +5,6,177,公司8,1952 +6,96,924,公司9,1952 +72,10,951,公司10,1952 +80,5,305,公司11,1952 +95,88,827,公司12,1952 +34,77,600,公司13,1952 +11,75,568,公司14,1952 +85,76,562,公司15,1952 +59,55,214,公司16,1952 +61,70,173,公司17,1952 +53,51,156,公司18,1952 +50,79,455,公司19,1952 +95,48,773,公司20,1952 +49,68,927,公司21,1952 +71,43,324,公司22,1952 +10,45,327,公司23,1952 +75,7,166,公司24,1952 +25,86,618,公司25,1952 +81,88,675,公司26,1952 +8,69,1028,公司27,1952 +19,89,636,公司28,1952 +48,15,242,公司29,1952 +44,76,136,公司30,1952 +81,61,531,公司31,1952 +15,14,407,公司32,1952 +87,30,672,公司33,1952 +63,22,881,公司34,1952 +0,30,790,公司35,1952 +59,28,839,公司36,1952 +36,56,257,公司37,1952 +63,0,954,公司38,1952 +66,30,376,公司39,1952 +85,30,496,公司40,1952 +9,77,892,公司41,1952 +26,66,900,公司42,1952 +17,45,21,公司43,1952 +53,77,789,公司44,1952 +96,72,835,公司45,1952 +31,-1,284,公司46,1952 +18,78,103,公司47,1952 +7,25,289,公司48,1952 +86,38,873,公司49,1952 +50,30,672,公司0,1953 +16,64,277,公司1,1953 +44,11,835,公司2,1953 +92,91,561,公司3,1953 +12,94,724,公司4,1953 +50,14,739,公司5,1953 +38,100,767,公司6,1953 +100,72,802,公司7,1953 +5,5,143,公司8,1953 +8,98,894,公司9,1953 +72,10,937,公司10,1953 +79,4,305,公司11,1953 +98,89,873,公司12,1953 +35,79,628,公司13,1953 +12,76,611,公司14,1953 +84,78,545,公司15,1953 +58,57,199,公司16,1953 +63,73,185,公司17,1953 +52,52,117,公司18,1953 +49,78,434,公司19,1953 +94,51,765,公司20,1953 +50,67,899,公司21,1953 +71,45,343,公司22,1953 +13,48,318,公司23,1953 +75,7,185,公司24,1953 +27,89,574,公司25,1953 +84,90,688,公司26,1953 +7,69,991,公司27,1953 +20,90,606,公司28,1953 +51,15,251,公司29,1953 +47,75,154,公司30,1953 +83,63,555,公司31,1953 +14,18,455,公司32,1953 +89,33,709,公司33,1953 +64,22,874,公司34,1953 +-1,33,753,公司35,1953 +61,27,837,公司36,1953 +35,59,280,公司37,1953 +63,3,975,公司38,1953 +67,31,341,公司39,1953 +87,31,471,公司40,1953 +9,76,936,公司41,1953 +28,65,940,公司42,1953 +18,46,59,公司43,1953 +55,76,757,公司44,1953 +96,72,827,公司45,1953 +34,-2,287,公司46,1953 +22,78,107,公司47,1953 +9,25,258,公司48,1953 +87,39,877,公司49,1953 +50,29,645,公司0,1954 +16,64,312,公司1,1954 +47,11,790,公司2,1954 +94,90,553,公司3,1954 +13,93,692,公司4,1954 +48,13,714,公司5,1954 +38,99,725,公司6,1954 +103,72,842,公司7,1954 +6,4,136,公司8,1954 +10,100,894,公司9,1954 +75,9,925,公司10,1954 +79,6,346,公司11,1954 +100,89,878,公司12,1954 +36,80,590,公司13,1954 +14,78,643,公司14,1954 +83,77,575,公司15,1954 +61,59,224,公司16,1954 +62,76,234,公司17,1954 +52,52,161,公司18,1954 +49,79,441,公司19,1954 +96,51,800,公司20,1954 +52,67,931,公司21,1954 +74,48,337,公司22,1954 +14,51,349,公司23,1954 +78,9,238,公司24,1954 +30,91,554,公司25,1954 +83,92,658,公司26,1954 +8,72,967,公司27,1954 +22,89,607,公司28,1954 +52,14,217,公司29,1954 +50,78,156,公司30,1954 +85,63,604,公司31,1954 +16,21,473,公司32,1954 +92,34,753,公司33,1954 +66,22,881,公司34,1954 +1,33,725,公司35,1954 +61,30,797,公司36,1954 +35,63,333,公司37,1954 +63,3,1016,公司38,1954 +69,30,337,公司39,1954 +91,34,445,公司40,1954 +9,78,960,公司41,1954 +27,66,949,公司42,1954 +18,46,113,公司43,1954 +56,79,731,公司44,1954 +98,72,855,公司45,1954 +33,-3,259,公司46,1954 +21,79,109,公司47,1954 +12,26,285,公司48,1954 +91,40,845,公司49,1954 +52,28,667,公司0,1955 +18,65,324,公司1,1955 +50,10,781,公司2,1955 +95,90,581,公司3,1955 +15,95,669,公司4,1955 +46,13,733,公司5,1955 +39,98,759,公司6,1955 +102,74,801,公司7,1955 +8,3,108,公司8,1955 +12,101,882,公司9,1955 +78,7,966,公司10,1955 +80,9,395,公司11,1955 +103,89,847,公司12,1955 +38,81,628,公司13,1955 +14,79,610,公司14,1955 +86,79,625,公司15,1955 +61,60,209,公司16,1955 +62,78,281,公司17,1955 +54,54,186,公司18,1955 +51,82,478,公司19,1955 +95,52,842,公司20,1955 +54,69,886,公司21,1955 +74,51,361,公司22,1955 +17,54,362,公司23,1955 +81,8,212,公司24,1955 +31,94,546,公司25,1955 +82,95,707,公司26,1955 +9,72,929,公司27,1955 +24,90,610,公司28,1955 +54,13,244,公司29,1955 +51,80,208,公司30,1955 +86,67,646,公司31,1955 +20,22,428,公司32,1955 +95,37,758,公司33,1955 +65,25,887,公司34,1955 +4,35,717,公司35,1955 +63,30,819,公司36,1955 +35,65,322,公司37,1955 +65,5,1015,公司38,1955 +71,30,336,公司39,1955 +93,34,472,公司40,1955 +9,81,1001,公司41,1955 +28,67,922,公司42,1955 +18,47,125,公司43,1955 +59,79,778,公司44,1955 +101,75,879,公司45,1955 +32,-1,311,公司46,1955 +23,81,151,公司47,1955 +12,29,285,公司48,1955 +92,42,858,公司49,1955 +50,30,696,公司0,1956 +20,68,327,公司1,1956 +51,8,793,公司2,1956 +98,90,554,公司3,1956 +16,95,689,公司4,1956 +47,15,745,公司5,1956 +39,100,797,公司6,1956 +100,77,765,公司7,1956 +6,4,152,公司8,1956 +14,102,860,公司9,1956 +81,10,1000,公司10,1956 +83,7,412,公司11,1956 +102,91,822,公司12,1956 +37,84,599,公司13,1956 +13,81,584,公司14,1956 +86,81,663,公司15,1956 +63,60,169,公司16,1956 +61,78,309,公司17,1956 +56,56,215,公司18,1956 +52,81,533,公司19,1956 +98,55,882,公司20,1956 +53,69,897,公司21,1956 +73,53,321,公司22,1956 +18,55,399,公司23,1956 +84,7,208,公司24,1956 +30,97,555,公司25,1956 +82,94,687,公司26,1956 +8,74,980,公司27,1956 +24,89,603,公司28,1956 +57,14,255,公司29,1956 +53,81,197,公司30,1956 +88,69,697,公司31,1956 +19,21,454,公司32,1956 +95,38,805,公司33,1956 +67,25,939,公司34,1956 +6,37,714,公司35,1956 +62,32,839,公司36,1956 +34,67,334,公司37,1956 +68,4,983,公司38,1956 +73,29,336,公司39,1956 +94,37,502,公司40,1956 +9,83,969,公司41,1956 +31,69,974,公司42,1956 +19,50,127,公司43,1956 +62,78,743,公司44,1956 +105,75,875,公司45,1956 +36,2,267,公司46,1956 +27,81,116,公司47,1956 +15,29,267,公司48,1956 +92,45,860,公司49,1956 +51,29,675,公司0,1957 +20,66,318,公司1,1957 +50,10,808,公司2,1957 +99,91,593,公司3,1957 +16,97,653,公司4,1957 +46,14,785,公司5,1957 +40,101,838,公司6,1957 +99,77,764,公司7,1957 +5,6,117,公司8,1957 +13,104,852,公司9,1957 +81,12,983,公司10,1957 +82,5,430,公司11,1957 +104,93,835,公司12,1957 +37,82,571,公司13,1957 +14,79,542,公司14,1957 +85,81,692,公司15,1957 +65,61,135,公司16,1957 +60,79,274,公司17,1957 +58,58,219,公司18,1957 +54,83,537,公司19,1957 +97,54,863,公司20,1957 +54,70,885,公司21,1957 +72,55,362,公司22,1957 +18,58,403,公司23,1957 +86,7,166,公司24,1957 +33,96,525,公司25,1957 +84,96,687,公司26,1957 +9,77,963,公司27,1957 +25,91,579,公司28,1957 +57,13,230,公司29,1957 +56,84,185,公司30,1957 +91,71,731,公司31,1957 +20,22,487,公司32,1957 +94,41,834,公司33,1957 +66,27,903,公司34,1957 +8,37,755,公司35,1957 +65,34,861,公司36,1957 +36,66,298,公司37,1957 +71,5,1004,公司38,1957 +75,31,345,公司39,1957 +96,39,512,公司40,1957 +12,87,948,公司41,1957 +34,69,987,公司42,1957 +18,53,150,公司43,1957 +63,77,715,公司44,1957 +109,78,857,公司45,1957 +39,5,237,公司46,1957 +29,84,161,公司47,1957 +19,31,260,公司48,1957 +93,47,857,公司49,1957 +54,30,690,公司0,1958 +23,67,301,公司1,1958 +50,10,816,公司2,1958 +101,91,642,公司3,1958 +18,97,641,公司4,1958 +47,12,750,公司5,1958 +42,102,842,公司6,1958 +98,77,800,公司7,1958 +7,7,117,公司8,1958 +15,105,890,公司9,1958 +84,12,950,公司10,1958 +84,7,457,公司11,1958 +102,92,829,公司12,1958 +39,81,549,公司13,1958 +16,79,578,公司14,1958 +84,83,690,公司15,1958 +63,60,96,公司16,1958 +62,80,237,公司17,1958 +56,59,244,公司18,1958 +54,83,533,公司19,1958 +100,56,859,公司20,1958 +55,72,846,公司21,1958 +72,57,346,公司22,1958 +20,57,430,公司23,1958 +87,9,212,公司24,1958 +33,95,533,公司25,1958 +87,95,658,公司26,1958 +11,80,947,公司27,1958 +27,93,621,公司28,1958 +56,12,195,公司29,1958 +56,84,198,公司30,1958 +92,72,719,公司31,1958 +20,23,466,公司32,1958 +93,43,790,公司33,1958 +68,28,941,公司34,1958 +8,38,718,公司35,1958 +67,37,862,公司36,1958 +38,67,255,公司37,1958 +74,5,967,公司38,1958 +78,32,396,公司39,1958 +96,38,486,公司40,1958 +12,89,981,公司41,1958 +34,70,943,公司42,1958 +20,56,109,公司43,1958 +67,79,745,公司44,1958 +112,82,816,公司45,1958 +43,4,244,公司46,1958 +31,85,136,公司47,1958 +22,32,222,公司48,1958 +96,50,854,公司49,1958 +57,31,709,公司0,1959 +23,69,306,公司1,1959 +51,10,853,公司2,1959 +101,90,683,公司3,1959 +21,97,603,公司4,1959 +49,14,754,公司5,1959 +45,101,860,公司6,1959 +98,78,797,公司7,1959 +10,6,144,公司8,1959 +18,104,918,公司9,1959 +87,15,955,公司10,1959 +84,9,509,公司11,1959 +105,95,803,公司12,1959 +42,82,601,公司13,1959 +19,80,553,公司14,1959 +83,82,649,公司15,1959 +66,63,144,公司16,1959 +64,82,206,公司17,1959 +56,60,200,公司18,1959 +54,86,546,公司19,1959 +101,55,881,公司20,1959 +56,71,839,公司21,1959 +71,57,382,公司22,1959 +22,56,439,公司23,1959 +88,11,242,公司24,1959 +36,95,527,公司25,1959 +86,96,641,公司26,1959 +14,83,979,公司27,1959 +30,92,663,公司28,1959 +56,12,161,公司29,1959 +57,87,234,公司30,1959 +95,75,730,公司31,1959 +22,23,435,公司32,1959 +93,42,754,公司33,1959 +69,29,945,公司34,1959 +7,37,753,公司35,1959 +71,36,853,公司36,1959 +39,66,245,公司37,1959 +75,4,959,公司38,1959 +82,36,425,公司39,1959 +96,41,469,公司40,1959 +12,91,1023,公司41,1959 +35,69,945,公司42,1959 +23,57,140,公司43,1959 +68,78,743,公司44,1959 +115,83,808,公司45,1959 +42,3,203,公司46,1959 +30,84,185,公司47,1959 +25,31,182,公司48,1959 +97,53,852,公司49,1959 +55,30,681,公司0,1960 +22,68,277,公司1,1960 +53,12,823,公司2,1960 +103,90,704,公司3,1960 +19,96,567,公司4,1960 +52,16,775,公司5,1960 +44,101,902,公司6,1960 +100,81,818,公司7,1960 +10,8,159,公司8,1960 +21,105,908,公司9,1960 +90,18,937,公司10,1960 +84,11,498,公司11,1960 +105,94,845,公司12,1960 +45,82,579,公司13,1960 +21,83,592,公司14,1960 +83,81,642,公司15,1960 +68,64,158,公司16,1960 +67,85,248,公司17,1960 +57,59,251,公司18,1960 +53,89,571,公司19,1960 +102,58,885,公司20,1960 +56,70,878,公司21,1960 +73,60,401,公司22,1960 +22,56,423,公司23,1960 +90,10,278,公司24,1960 +39,96,570,公司25,1960 +89,96,598,公司26,1960 +14,86,1003,公司27,1960 +31,95,683,公司28,1960 +59,12,126,公司29,1960 +57,86,192,公司30,1960 +96,77,783,公司31,1960 +22,26,455,公司32,1960 +93,43,787,公司33,1960 +71,31,998,公司34,1960 +8,39,751,公司35,1960 +74,40,867,公司36,1960 +40,66,200,公司37,1960 +75,6,960,公司38,1960 +81,39,391,公司39,1960 +96,41,455,公司40,1960 +12,94,1056,公司41,1960 +38,69,961,公司42,1960 +22,61,119,公司43,1960 +68,81,753,公司44,1960 +115,82,766,公司45,1960 +41,5,205,公司46,1960 +32,83,220,公司47,1960 +28,33,187,公司48,1960 +99,57,893,公司49,1960 +58,33,713,公司0,1961 +23,71,248,公司1,1961 +54,12,787,公司2,1961 +103,92,720,公司3,1961 +19,98,621,公司4,1961 +54,15,826,公司5,1961 +47,103,915,公司6,1961 +102,80,787,公司7,1961 +11,7,173,公司8,1961 +21,107,876,公司9,1961 +90,21,901,公司10,1961 +85,10,492,公司11,1961 +108,95,887,公司12,1961 +47,84,634,公司13,1961 +23,86,633,公司14,1961 +86,80,607,公司15,1961 +70,63,133,公司16,1961 +69,88,266,公司17,1961 +56,62,244,公司18,1961 +54,92,623,公司19,1961 +103,61,878,公司20,1961 +58,71,890,公司21,1961 +74,62,372,公司22,1961 +25,58,396,公司23,1961 +93,13,284,公司24,1961 +40,98,605,公司25,1961 +92,98,647,公司26,1961 +13,88,1003,公司27,1961 +32,95,718,公司28,1961 +59,16,152,公司29,1961 +59,86,215,公司30,1961 +97,80,820,公司31,1961 +21,29,474,公司32,1961 +94,42,755,公司33,1961 +71,33,958,公司34,1961 +8,38,734,公司35,1961 +77,43,878,公司36,1961 +44,67,235,公司37,1961 +75,7,977,公司38,1961 +83,38,393,公司39,1961 +95,41,484,公司40,1961 +13,95,1061,公司41,1961 +41,71,941,公司42,1961 +23,60,119,公司43,1961 +71,84,784,公司44,1961 +117,85,792,公司45,1961 +45,9,235,公司46,1961 +34,84,194,公司47,1961 +30,36,163,公司48,1961 +101,59,921,公司49,1961 +60,32,744,公司0,1962 +21,72,219,公司1,1962 +56,12,801,公司2,1962 +102,90,775,公司3,1962 +22,97,585,公司4,1962 +55,18,838,公司5,1962 +47,106,959,公司6,1962 +104,82,775,公司7,1962 +11,8,148,公司8,1962 +23,107,929,公司9,1962 +89,19,950,公司10,1962 +88,12,496,公司11,1962 +110,96,915,公司12,1962 +47,84,607,公司13,1962 +22,86,639,公司14,1962 +88,79,655,公司15,1962 +73,63,119,公司16,1962 +70,89,246,公司17,1962 +55,64,227,公司18,1962 +57,94,649,公司19,1962 +102,62,921,公司20,1962 +60,72,853,公司21,1962 +74,61,371,公司22,1962 +26,59,412,公司23,1962 +95,16,273,公司24,1962 +41,99,582,公司25,1962 +91,99,668,公司26,1962 +15,89,1047,公司27,1962 +34,94,732,公司28,1962 +59,15,177,公司29,1962 +58,86,203,公司30,1962 +99,82,870,公司31,1962 +21,31,525,公司32,1962 +93,41,725,公司33,1962 +75,34,1005,公司34,1962 +10,37,785,公司35,1962 +77,44,909,公司36,1962 +45,66,195,公司37,1962 +76,10,953,公司38,1962 +86,39,368,公司39,1962 +97,42,441,公司40,1962 +15,95,1089,公司41,1962 +41,71,922,公司42,1962 +24,61,90,公司43,1962 +74,84,758,公司44,1962 +116,85,806,公司45,1962 +46,11,260,公司46,1962 +33,85,174,公司47,1962 +29,39,206,公司48,1962 +101,59,923,公司49,1962 +59,33,766,公司0,1963 +22,75,268,公司1,1963 +56,10,768,公司2,1963 +101,90,740,公司3,1963 +25,96,637,公司4,1963 +54,19,860,公司5,1963 +50,106,978,公司6,1963 +104,81,807,公司7,1963 +10,9,188,公司8,1963 +24,108,941,公司9,1963 +90,20,958,公司10,1963 +88,11,483,公司11,1963 +113,98,872,公司12,1963 +47,87,591,公司13,1963 +21,88,691,公司14,1963 +90,78,681,公司15,1963 +72,63,78,公司16,1963 +69,91,282,公司17,1963 +54,66,197,公司18,1963 +60,97,660,公司19,1963 +101,63,889,公司20,1963 +61,71,867,公司21,1963 +75,62,351,公司22,1963 +25,62,445,公司23,1963 +97,17,250,公司24,1963 +44,99,634,公司25,1963 +91,100,719,公司26,1963 +16,91,1014,公司27,1963 +37,93,756,公司28,1963 +61,17,158,公司29,1963 +59,87,210,公司30,1963 +102,82,833,公司31,1963 +20,30,510,公司32,1963 +96,43,774,公司33,1963 +75,37,1033,公司34,1963 +9,37,793,公司35,1963 +78,44,865,公司36,1963 +44,65,238,公司37,1963 +78,10,985,公司38,1963 +88,39,415,公司39,1963 +97,42,479,公司40,1963 +14,98,1142,公司41,1963 +41,73,967,公司42,1963 +23,60,140,公司43,1963 +75,85,717,公司44,1963 +119,88,834,公司45,1963 +46,10,239,公司46,1963 +34,89,178,公司47,1963 +31,38,186,公司48,1963 +104,61,974,公司49,1963 +59,34,765,公司0,1964 +22,73,238,公司1,1964 +55,11,754,公司2,1964 +103,90,716,公司3,1964 +28,98,684,公司4,1964 +54,20,828,公司5,1964 +53,105,941,公司6,1964 +103,83,797,公司7,1964 +12,9,204,公司8,1964 +22,109,938,公司9,1964 +89,20,949,公司10,1964 +86,13,520,公司11,1964 +112,99,873,公司12,1964 +48,88,605,公司13,1964 +24,89,674,公司14,1964 +90,81,649,公司15,1964 +73,63,106,公司16,1964 +71,93,242,公司17,1964 +54,68,181,公司18,1964 +61,98,667,公司19,1964 +99,65,857,公司20,1964 +64,70,878,公司21,1964 +75,61,329,公司22,1964 +24,65,405,公司23,1964 +99,17,256,公司24,1964 +45,101,680,公司25,1964 +94,101,708,公司26,1964 +16,90,1026,公司27,1964 +40,92,759,公司28,1964 +61,17,146,公司29,1964 +63,88,238,公司30,1964 +103,81,837,公司31,1964 +22,31,474,公司32,1964 +99,46,828,公司33,1964 +76,38,1057,公司34,1964 +10,38,794,公司35,1964 +77,43,847,公司36,1964 +46,67,263,公司37,1964 +80,10,958,公司38,1964 +90,38,380,公司39,1964 +101,45,531,公司40,1964 +18,99,1154,公司41,1964 +45,73,946,公司42,1964 +26,61,144,公司43,1964 +76,85,721,公司44,1964 +119,87,814,公司45,1964 +45,10,256,公司46,1964 +36,88,223,公司47,1964 +31,42,214,公司48,1964 +106,61,987,公司49,1964 +60,34,805,公司0,1965 +21,72,264,公司1,1965 +57,9,771,公司2,1965 +103,93,755,公司3,1965 +26,99,647,公司4,1965 +57,23,857,公司5,1965 +56,107,930,公司6,1965 +106,83,767,公司7,1965 +13,12,195,公司8,1965 +23,111,937,公司9,1965 +91,20,963,公司10,1965 +87,12,561,公司11,1965 +115,102,839,公司12,1965 +51,88,563,公司13,1965 +26,91,675,公司14,1965 +89,83,657,公司15,1965 +76,66,62,公司16,1965 +74,93,274,公司17,1965 +53,70,145,公司18,1965 +60,97,653,公司19,1965 +101,67,838,公司20,1965 +66,70,888,公司21,1965 +78,61,364,公司22,1965 +27,66,439,公司23,1965 +99,16,212,公司24,1965 +45,101,718,公司25,1965 +93,103,749,公司26,1965 +18,89,1070,公司27,1965 +40,91,748,公司28,1965 +62,18,132,公司29,1965 +65,88,261,公司30,1965 +105,83,840,公司31,1965 +22,35,501,公司32,1965 +101,49,828,公司33,1965 +76,39,1050,公司34,1965 +9,37,844,公司35,1965 +77,45,871,公司36,1965 +45,67,267,公司37,1965 +79,11,955,公司38,1965 +93,39,379,公司39,1965 +101,47,508,公司40,1965 +21,100,1160,公司41,1965 +46,76,949,公司42,1965 +29,64,115,公司43,1965 +80,87,767,公司44,1965 +121,86,841,公司45,1965 +44,13,302,公司46,1965 +39,89,264,公司47,1965 +32,43,179,公司48,1965 +106,61,1019,公司49,1965 +59,32,805,公司0,1966 +23,74,274,公司1,1966 +60,8,742,公司2,1966 +102,94,749,公司3,1966 +24,100,640,公司4,1966 +55,22,846,公司5,1966 +56,108,937,公司6,1966 +109,86,769,公司7,1966 +14,12,185,公司8,1966 +26,110,961,公司9,1966 +94,22,985,公司10,1966 +86,12,540,公司11,1966 +117,102,887,公司12,1966 +50,91,613,公司13,1966 +25,93,693,公司14,1966 +89,84,678,公司15,1966 +77,66,62,公司16,1966 +77,95,254,公司17,1966 +54,71,172,公司18,1966 +61,96,677,公司19,1966 +102,67,846,公司20,1966 +69,73,940,公司21,1966 +78,64,403,公司22,1966 +30,69,455,公司23,1966 +98,15,221,公司24,1966 +48,104,704,公司25,1966 +92,102,784,公司26,1966 +21,92,1041,公司27,1966 +43,92,704,公司28,1966 +61,19,100,公司29,1966 +67,91,244,公司30,1966 +106,85,857,公司31,1966 +22,35,545,公司32,1966 +100,52,803,公司33,1966 +79,39,1090,公司34,1966 +9,39,847,公司35,1966 +77,46,865,公司36,1966 +45,69,283,公司37,1966 +80,14,921,公司38,1966 +93,39,341,公司39,1966 +102,49,549,公司40,1966 +22,100,1156,公司41,1966 +48,75,935,公司42,1966 +31,67,136,公司43,1966 +80,88,817,公司44,1966 +122,85,807,公司45,1966 +45,14,259,公司46,1966 +41,90,306,公司47,1966 +32,46,173,公司48,1966 +107,62,1068,公司49,1966 +58,32,775,公司0,1967 +21,76,280,公司1,1967 +59,10,700,公司2,1967 +101,95,788,公司3,1967 +23,100,600,公司4,1967 +55,24,809,公司5,1967 +59,108,912,公司6,1967 +112,86,790,公司7,1967 +17,11,162,公司8,1967 +27,113,940,公司9,1967 +93,21,987,公司10,1967 +88,12,554,公司11,1967 +120,105,894,公司12,1967 +51,91,662,公司13,1967 +26,94,678,公司14,1967 +88,85,694,公司15,1967 +79,65,80,公司16,1967 +80,95,290,公司17,1967 +55,72,181,公司18,1967 +64,95,678,公司19,1967 +101,69,869,公司20,1967 +68,72,993,公司21,1967 +81,67,433,公司22,1967 +31,72,488,公司23,1967 +99,17,211,公司24,1967 +47,104,740,公司25,1967 +93,101,836,公司26,1967 +23,95,1011,公司27,1967 +43,95,688,公司28,1967 +61,19,129,公司29,1967 +68,92,223,公司30,1967 +106,88,837,公司31,1967 +24,36,543,公司32,1967 +100,52,844,公司33,1967 +79,40,1092,公司34,1967 +8,40,862,公司35,1967 +76,47,842,公司36,1967 +48,72,303,公司37,1967 +82,14,965,公司38,1967 +92,40,346,公司39,1967 +101,48,540,公司40,1967 +23,101,1186,公司41,1967 +51,76,921,公司42,1967 +31,67,132,公司43,1967 +79,89,779,公司44,1967 +125,89,808,公司45,1967 +45,14,216,公司46,1967 +40,90,278,公司47,1967 +32,46,203,公司48,1967 +111,64,1115,公司49,1967 +56,31,732,公司0,1968 +20,76,299,公司1,1968 +60,12,722,公司2,1968 +101,95,802,公司3,1968 +25,103,626,公司4,1968 +53,26,786,公司5,1968 +59,108,874,公司6,1968 +112,89,755,公司7,1968 +19,14,202,公司8,1968 +25,114,938,公司9,1968 +95,21,947,公司10,1968 +91,11,558,公司11,1968 +122,108,854,公司12,1968 +52,92,656,公司13,1968 +29,96,711,公司14,1968 +87,86,746,公司15,1968 +81,68,90,公司16,1968 +82,94,319,公司17,1968 +56,72,174,公司18,1968 +64,95,710,公司19,1968 +101,69,836,公司20,1968 +70,75,965,公司21,1968 +80,69,402,公司22,1968 +30,74,485,公司23,1968 +100,17,231,公司24,1968 +50,107,795,公司25,1968 +96,100,861,公司26,1968 +22,96,1058,公司27,1968 +44,94,649,公司28,1968 +60,22,167,公司29,1968 +67,93,260,公司30,1968 +105,90,874,公司31,1968 +28,35,577,公司32,1968 +101,54,880,公司33,1968 +81,43,1145,公司34,1968 +7,42,858,公司35,1968 +77,49,893,公司36,1968 +50,73,346,公司37,1968 +85,14,944,公司38,1968 +92,42,350,公司39,1968 +103,51,526,公司40,1968 +26,104,1162,公司41,1968 +51,75,971,公司42,1968 +31,70,119,公司43,1968 +80,92,741,公司44,1968 +127,92,780,公司45,1968 +48,15,246,公司46,1968 +42,90,321,公司47,1968 +34,46,238,公司48,1968 +115,64,1147,公司49,1968 +58,31,770,公司0,1969 +19,77,284,公司1,1969 +61,10,712,公司2,1969 +100,97,799,公司3,1969 +24,101,651,公司4,1969 +52,26,840,公司5,1969 +60,106,866,公司6,1969 +114,90,771,公司7,1969 +19,13,229,公司8,1969 +25,117,922,公司9,1969 +94,20,985,公司10,1969 +92,14,546,公司11,1969 +124,110,843,公司12,1969 +55,95,615,公司13,1969 +29,99,727,公司14,1969 +86,87,710,公司15,1969 +83,68,139,公司16,1969 +81,94,337,公司17,1969 +59,74,206,公司18,1969 +63,95,685,公司19,1969 +104,69,878,公司20,1969 +73,75,956,公司21,1969 +83,72,409,公司22,1969 +29,73,447,公司23,1969 +101,17,284,公司24,1969 +50,108,821,公司25,1969 +96,101,892,公司26,1969 +24,97,1096,公司27,1969 +44,97,684,公司28,1969 +63,23,184,公司29,1969 +69,95,295,公司30,1969 +105,90,882,公司31,1969 +30,39,568,公司32,1969 +101,55,866,公司33,1969 +83,43,1179,公司34,1969 +8,46,813,公司35,1969 +80,52,872,公司36,1969 +53,72,313,公司37,1969 +86,17,969,公司38,1969 +91,42,317,公司39,1969 +103,53,526,公司40,1969 +26,104,1200,公司41,1969 +53,75,1001,公司42,1969 +32,72,122,公司43,1969 +82,91,741,公司44,1969 +131,92,816,公司45,1969 +48,16,250,公司46,1969 +43,93,357,公司47,1969 +37,45,206,公司48,1969 +114,65,1177,公司49,1969 +57,30,761,公司0,1970 +20,79,314,公司1,1970 +61,10,726,公司2,1970 +99,98,776,公司3,1970 +25,103,699,公司4,1970 +53,25,815,公司5,1970 +60,106,848,公司6,1970 +113,92,806,公司7,1970 +22,12,241,公司8,1970 +24,117,974,公司9,1970 +92,20,1010,公司10,1970 +95,13,599,公司11,1970 +124,110,840,公司12,1970 +58,98,617,公司13,1970 +31,98,781,公司14,1970 +88,85,763,公司15,1970 +81,68,179,公司16,1970 +82,96,316,公司17,1970 +60,73,206,公司18,1970 +64,95,685,公司19,1970 +103,72,889,公司20,1970 +72,77,966,公司21,1970 +84,72,401,公司22,1970 +31,73,495,公司23,1970 +101,18,329,公司24,1970 +51,108,802,公司25,1970 +98,102,892,公司26,1970 +27,97,1063,公司27,1970 +44,99,694,公司28,1970 +66,23,205,公司29,1970 +68,96,347,公司30,1970 +105,90,865,公司31,1970 +30,38,591,公司32,1970 +101,57,897,公司33,1970 +83,42,1218,公司34,1970 +8,45,827,公司35,1970 +81,54,859,公司36,1970 +55,73,347,公司37,1970 +85,17,953,公司38,1970 +93,44,324,公司39,1970 +106,52,542,公司40,1970 +27,106,1201,公司41,1970 +56,75,1011,公司42,1970 +35,72,159,公司43,1970 +86,90,769,公司44,1970 +132,94,861,公司45,1970 +49,17,257,公司46,1970 +45,94,386,公司47,1970 +39,49,180,公司48,1970 +116,65,1160,公司49,1970 +59,30,717,公司0,1971 +22,82,326,公司1,1971 +63,11,733,公司2,1971 +98,100,768,公司3,1971 +26,101,718,公司4,1971 +56,26,776,公司5,1971 +60,106,823,公司6,1971 +113,93,778,公司7,1971 +21,11,209,公司8,1971 +26,119,1000,公司9,1971 +91,21,967,公司10,1971 +94,11,638,公司11,1971 +126,110,842,公司12,1971 +60,99,633,公司13,1971 +31,97,750,公司14,1971 +87,86,793,公司15,1971 +80,71,146,公司16,1971 +83,95,323,公司17,1971 +59,73,215,公司18,1971 +63,96,671,公司19,1971 +105,75,905,公司20,1971 +72,79,964,公司21,1971 +85,73,385,公司22,1971 +30,75,537,公司23,1971 +100,17,317,公司24,1971 +50,108,818,公司25,1971 +97,104,872,公司26,1971 +28,97,1107,公司27,1971 +45,98,741,公司28,1971 +69,22,162,公司29,1971 +68,98,363,公司30,1971 +107,92,878,公司31,1971 +33,38,640,公司32,1971 +100,60,896,公司33,1971 +82,45,1189,公司34,1971 +8,47,863,公司35,1971 +84,56,880,公司36,1971 +56,75,395,公司37,1971 +86,19,1004,公司38,1971 +94,46,307,公司39,1971 +106,53,595,公司40,1971 +30,106,1206,公司41,1971 +58,76,981,公司42,1971 +39,74,184,公司43,1971 +85,93,728,公司44,1971 +134,96,895,公司45,1971 +51,20,226,公司46,1971 +48,97,406,公司47,1971 +40,51,174,公司48,1971 +118,64,1153,公司49,1971 +58,33,714,公司0,1972 +23,81,340,公司1,1972 +61,12,786,公司2,1972 +100,101,816,公司3,1972 +26,103,697,公司4,1972 +56,25,775,公司5,1972 +61,106,801,公司6,1972 +115,95,806,公司7,1972 +24,14,250,公司8,1972 +27,118,1019,公司9,1972 +92,21,959,公司10,1972 +95,11,647,公司11,1972 +126,112,803,公司12,1972 +60,101,648,公司13,1972 +33,100,750,公司14,1972 +88,85,838,公司15,1972 +81,72,158,公司16,1972 +86,97,299,公司17,1972 +61,72,216,公司18,1972 +65,96,698,公司19,1972 +104,77,955,公司20,1972 +74,81,965,公司21,1972 +88,76,434,公司22,1972 +31,77,578,公司23,1972 +103,16,334,公司24,1972 +49,109,793,公司25,1972 +100,106,874,公司26,1972 +27,97,1064,公司27,1972 +45,100,793,公司28,1972 +71,25,186,公司29,1972 +67,101,351,公司30,1972 +110,92,924,公司31,1972 +35,41,640,公司32,1972 +101,59,878,公司33,1972 +82,46,1160,公司34,1972 +10,47,822,公司35,1972 +87,57,843,公司36,1972 +56,74,430,公司37,1972 +85,22,990,公司38,1972 +95,45,344,公司39,1972 +107,54,581,公司40,1972 +31,106,1260,公司41,1972 +60,75,974,公司42,1972 +43,77,185,公司43,1972 +86,93,768,公司44,1972 +134,98,910,公司45,1972 +51,22,234,公司46,1972 +51,99,432,公司47,1972 +39,51,193,公司48,1972 +118,63,1158,公司49,1972 +56,35,728,公司0,1973 +25,83,387,公司1,1973 +64,10,818,公司2,1973 +100,102,834,公司3,1973 +28,103,658,公司4,1973 +55,27,755,公司5,1973 +64,109,824,公司6,1973 +113,98,793,公司7,1973 +26,15,268,公司8,1973 +28,117,1034,公司9,1973 +91,24,980,公司10,1973 +95,12,661,公司11,1973 +128,113,761,公司12,1973 +61,104,615,公司13,1973 +34,100,721,公司14,1973 +90,84,823,公司15,1973 +83,71,139,公司16,1973 +88,99,294,公司17,1973 +61,72,196,公司18,1973 +66,94,682,公司19,1973 +104,78,961,公司20,1973 +76,83,928,公司21,1973 +88,77,426,公司22,1973 +32,76,621,公司23,1973 +106,17,319,公司24,1973 +48,108,825,公司25,1973 +101,107,860,公司26,1973 +30,96,1084,公司27,1973 +47,102,764,公司28,1973 +70,27,147,公司29,1973 +69,100,392,公司30,1973 +110,94,893,公司31,1973 +38,42,665,公司32,1973 +100,60,877,公司33,1973 +82,45,1160,公司34,1973 +9,48,831,公司35,1973 +88,58,833,公司36,1973 +57,75,399,公司37,1973 +87,24,1019,公司38,1973 +98,47,366,公司39,1973 +106,57,597,公司40,1973 +34,109,1253,公司41,1973 +60,76,938,公司42,1973 +44,79,149,公司43,1973 +87,96,753,公司44,1973 +134,98,929,公司45,1973 +50,23,257,公司46,1973 +52,102,452,公司47,1973 +38,54,191,公司48,1973 +119,64,1135,公司49,1973 +58,38,727,公司0,1974 +26,83,405,公司1,1974 +62,11,774,公司2,1974 +101,105,874,公司3,1974 +30,102,700,公司4,1974 +56,30,723,公司5,1974 +64,110,843,公司6,1974 +112,97,756,公司7,1974 +24,18,282,公司8,1974 +26,119,1031,公司9,1974 +91,23,940,公司10,1974 +97,13,659,公司11,1974 +127,116,766,公司12,1974 +62,105,623,公司13,1974 +36,102,735,公司14,1974 +92,86,787,公司15,1974 +82,74,108,公司16,1974 +91,100,311,公司17,1974 +64,72,244,公司18,1974 +64,96,700,公司19,1974 +103,80,929,公司20,1974 +78,86,883,公司21,1974 +87,78,434,公司22,1974 +33,78,584,公司23,1974 +106,17,282,公司24,1974 +48,110,877,公司25,1974 +102,109,852,公司26,1974 +29,95,1115,公司27,1974 +47,101,745,公司28,1974 +73,30,159,公司29,1974 +71,99,440,公司30,1974 +111,93,877,公司31,1974 +39,45,709,公司32,1974 +102,60,872,公司33,1974 +84,45,1175,公司34,1974 +12,49,831,公司35,1974 +89,61,793,公司36,1974 +60,78,386,公司37,1974 +87,27,1016,公司38,1974 +101,49,352,公司39,1974 +109,58,620,公司40,1974 +34,112,1233,公司41,1974 +60,75,959,公司42,1974 +44,83,105,公司43,1974 +90,97,733,公司44,1974 +134,102,885,公司45,1974 +54,25,300,公司46,1974 +55,104,462,公司47,1974 +39,57,180,公司48,1974 +118,66,1155,公司49,1974 +57,38,687,公司0,1975 +24,82,455,公司1,1975 +62,12,826,公司2,1975 +103,107,838,公司3,1975 +32,101,701,公司4,1975 +58,32,757,公司5,1975 +65,111,885,公司6,1975 +111,95,753,公司7,1975 +23,19,262,公司8,1975 +25,122,1082,公司9,1975 +94,21,914,公司10,1975 +99,13,686,公司11,1975 +130,119,771,公司12,1975 +61,103,660,公司13,1975 +36,103,745,公司14,1975 +94,89,802,公司15,1975 +83,77,130,公司16,1975 +91,102,324,公司17,1975 +66,72,224,公司18,1975 +66,98,735,公司19,1975 +106,79,916,公司20,1975 +77,85,863,公司21,1975 +88,78,408,公司22,1975 +35,81,601,公司23,1975 +107,18,326,公司24,1975 +50,112,910,公司25,1975 +102,108,891,公司26,1975 +29,96,1100,公司27,1975 +49,104,741,公司28,1975 +73,31,205,公司29,1975 +72,101,477,公司30,1975 +114,95,900,公司31,1975 +43,48,759,公司32,1975 +104,63,870,公司33,1975 +85,44,1134,公司34,1975 +13,52,827,公司35,1975 +91,62,755,公司36,1975 +59,78,431,公司37,1975 +90,30,977,公司38,1975 +100,50,386,公司39,1975 +111,61,654,公司40,1975 +36,112,1192,公司41,1975 +61,76,925,公司42,1975 +47,83,143,公司43,1975 +92,99,708,公司44,1975 +137,103,889,公司45,1975 +54,28,354,公司46,1975 +56,107,462,公司47,1975 +39,59,194,公司48,1975 +122,66,1180,公司49,1975 +59,40,661,公司0,1976 +24,80,471,公司1,1976 +64,11,782,公司2,1976 +106,107,860,公司3,1976 +34,100,749,公司4,1976 +61,33,740,公司5,1976 +65,111,931,公司6,1976 +110,94,796,公司7,1976 +25,18,243,公司8,1976 +23,125,1110,公司9,1976 +93,22,901,公司10,1976 +99,15,690,公司11,1976 +130,122,755,公司12,1976 +60,105,650,公司13,1976 +35,101,728,公司14,1976 +97,90,824,公司15,1976 +84,80,105,公司16,1976 +90,104,283,公司17,1976 +66,71,278,公司18,1976 +69,98,779,公司19,1976 +108,79,958,公司20,1976 +76,85,833,公司21,1976 +87,81,455,公司22,1976 +36,80,559,公司23,1976 +106,21,306,公司24,1976 +49,115,940,公司25,1976 +105,109,912,公司26,1976 +30,97,1134,公司27,1976 +49,104,748,公司28,1976 +73,34,200,公司29,1976 +72,103,496,公司30,1976 +114,97,890,公司31,1976 +44,50,729,公司32,1976 +103,65,902,公司33,1976 +84,47,1143,公司34,1976 +14,55,811,公司35,1976 +93,64,768,公司36,1976 +59,79,460,公司37,1976 +89,33,972,公司38,1976 +100,50,352,公司39,1976 +113,64,624,公司40,1976 +38,112,1176,公司41,1976 +63,76,893,公司42,1976 +47,82,109,公司43,1976 +92,101,688,公司44,1976 +139,104,926,公司45,1976 +54,30,405,公司46,1976 +56,107,465,公司47,1976 +39,58,166,公司48,1976 +124,68,1218,公司49,1976 +62,41,681,公司0,1977 +23,82,482,公司1,1977 +64,12,812,公司2,1977 +107,109,846,公司3,1977 +36,101,800,公司4,1977 +63,34,786,公司5,1977 +65,111,922,公司6,1977 +109,97,773,公司7,1977 +28,20,225,公司8,1977 +25,128,1113,公司9,1977 +96,25,914,公司10,1977 +98,18,662,公司11,1977 +132,123,785,公司12,1977 +60,106,661,公司13,1977 +35,103,751,公司14,1977 +98,91,852,公司15,1977 +85,83,100,公司16,1977 +92,103,338,公司17,1977 +66,70,248,公司18,1977 +71,101,762,公司19,1977 +110,77,983,公司20,1977 +77,88,858,公司21,1977 +88,84,475,公司22,1977 +38,80,567,公司23,1977 +106,21,356,公司24,1977 +48,116,928,公司25,1977 +105,110,894,公司26,1977 +29,96,1140,公司27,1977 +51,104,731,公司28,1977 +74,35,216,公司29,1977 +72,106,470,公司30,1977 +115,97,938,公司31,1977 +48,51,753,公司32,1977 +105,66,925,公司33,1977 +86,48,1126,公司34,1977 +13,57,803,公司35,1977 +94,67,818,公司36,1977 +59,82,483,公司37,1977 +91,35,960,公司38,1977 +100,50,385,公司39,1977 +114,68,669,公司40,1977 +39,114,1204,公司41,1977 +66,76,898,公司42,1977 +49,85,98,公司43,1977 +92,102,643,公司44,1977 +140,105,915,公司45,1977 +57,30,387,公司46,1977 +57,110,442,公司47,1977 +41,58,134,公司48,1977 +127,70,1242,公司49,1977 +60,44,645,公司0,1978 +24,82,509,公司1,1978 +62,14,815,公司2,1978 +108,112,895,公司3,1978 +36,103,783,公司4,1978 +65,36,811,公司5,1978 +65,113,887,公司6,1978 +107,98,787,公司7,1978 +26,19,239,公司8,1978 +23,130,1070,公司9,1978 +96,27,940,公司10,1978 +99,17,632,公司11,1978 +132,126,797,公司12,1978 +60,108,627,公司13,1978 +37,104,718,公司14,1978 +101,91,869,公司15,1978 +87,83,134,公司16,1978 +92,104,317,公司17,1978 +68,72,277,公司18,1978 +69,104,797,公司19,1978 +110,78,988,公司20,1978 +77,91,888,公司21,1978 +87,87,482,公司22,1978 +38,82,524,公司23,1978 +108,21,326,公司24,1978 +47,118,946,公司25,1978 +105,109,890,公司26,1978 +32,99,1140,公司27,1978 +53,104,747,公司28,1978 +73,38,226,公司29,1978 +74,108,460,公司30,1978 +116,100,926,公司31,1978 +48,53,709,公司32,1978 +106,69,927,公司33,1978 +88,50,1113,公司34,1978 +15,60,817,公司35,1978 +97,69,812,公司36,1978 +60,81,450,公司37,1978 +94,36,980,公司38,1978 +104,52,429,公司39,1978 +113,67,682,公司40,1978 +39,117,1180,公司41,1978 +66,77,881,公司42,1978 +52,86,135,公司43,1978 +92,104,684,公司44,1978 +141,109,968,公司45,1978 +58,29,373,公司46,1978 +57,113,466,公司47,1978 +40,59,140,公司48,1978 +128,73,1291,公司49,1978 +63,43,642,公司0,1979 +25,84,542,公司1,1979 +65,13,787,公司2,1979 +108,115,936,公司3,1979 +38,101,835,公司4,1979 +66,36,836,公司5,1979 +66,111,924,公司6,1979 +109,101,829,公司7,1979 +29,18,258,公司8,1979 +22,133,1088,公司9,1979 +98,30,986,公司10,1979 +99,18,677,公司11,1979 +132,127,759,公司12,1979 +59,111,607,公司13,1979 +36,104,740,公司14,1979 +101,90,845,公司15,1979 +86,82,150,公司16,1979 +95,103,315,公司17,1979 +70,72,312,公司18,1979 +71,103,818,公司19,1979 +110,77,985,公司20,1979 +76,89,913,公司21,1979 +90,90,458,公司22,1979 +37,84,484,公司23,1979 +107,24,295,公司24,1979 +47,118,991,公司25,1979 +104,112,886,公司26,1979 +35,99,1181,公司27,1979 +53,105,706,公司28,1979 +74,39,248,公司29,1979 +76,109,512,公司30,1979 +117,100,979,公司31,1979 +48,55,715,公司32,1979 +107,68,925,公司33,1979 +89,54,1149,公司34,1979 +15,60,790,公司35,1979 +100,70,809,公司36,1979 +63,81,500,公司37,1979 +96,36,1010,公司38,1979 +106,52,470,公司39,1979 +114,67,698,公司40,1979 +39,117,1225,公司41,1979 +70,79,907,公司42,1979 +54,89,144,公司43,1979 +91,106,662,公司44,1979 +144,113,980,公司45,1979 +60,28,344,公司46,1979 +61,117,451,公司47,1979 +40,62,159,公司48,1979 +129,77,1289,公司49,1979 +64,44,615,公司0,1980 +27,85,514,公司1,1980 +68,11,746,公司2,1980 +109,117,944,公司3,1980 +36,99,825,公司4,1980 +67,39,847,公司5,1980 +64,109,921,公司6,1980 +111,103,818,公司7,1980 +29,19,243,公司8,1980 +23,132,1058,公司9,1980 +97,32,1041,公司10,1980 +100,19,665,公司11,1980 +132,125,729,公司12,1980 +58,113,634,公司13,1980 +37,104,776,公司14,1980 +102,92,828,公司15,1980 +85,85,184,公司16,1980 +95,105,335,公司17,1980 +70,72,275,公司18,1980 +72,103,776,公司19,1980 +110,77,998,公司20,1980 +75,91,887,公司21,1980 +92,90,509,公司22,1980 +37,84,448,公司23,1980 +109,25,304,公司24,1980 +47,120,1030,公司25,1980 +104,114,845,公司26,1980 +34,101,1144,公司27,1980 +53,105,686,公司28,1980 +76,40,225,公司29,1980 +77,109,507,公司30,1980 +118,99,955,公司31,1980 +50,55,765,公司32,1980 +109,69,921,公司33,1980 +88,56,1112,公司34,1980 +16,60,771,公司35,1980 +103,70,845,公司36,1980 +66,84,543,公司37,1980 +98,35,1052,公司38,1980 +107,52,440,公司39,1980 +115,69,676,公司40,1980 +42,118,1194,公司41,1980 +73,79,879,公司42,1980 +54,89,106,公司43,1980 +94,110,678,公司44,1980 +147,117,976,公司45,1980 +64,28,330,公司46,1980 +60,118,473,公司47,1980 +44,65,141,公司48,1980 +133,81,1287,公司49,1980 +63,46,590,公司0,1981 +29,83,555,公司1,1981 +70,11,796,公司2,1981 +112,115,971,公司3,1981 +37,100,821,公司4,1981 +67,39,875,公司5,1981 +64,109,927,公司6,1981 +113,106,841,公司7,1981 +30,18,283,公司8,1981 +26,135,1083,公司9,1981 +97,33,1067,公司10,1981 +98,22,656,公司11,1981 +134,124,690,公司12,1981 +61,115,647,公司13,1981 +37,103,767,公司14,1981 +101,91,849,公司15,1981 +87,83,188,公司16,1981 +97,104,383,公司17,1981 +71,74,265,公司18,1981 +71,102,761,公司19,1981 +110,77,1012,公司20,1981 +76,91,877,公司21,1981 +91,92,491,公司22,1981 +36,85,485,公司23,1981 +111,26,287,公司24,1981 +48,119,1045,公司25,1981 +107,117,865,公司26,1981 +33,101,1102,公司27,1981 +53,107,671,公司28,1981 +76,43,231,公司29,1981 +77,110,530,公司30,1981 +121,101,975,公司31,1981 +53,55,747,公司32,1981 +112,73,945,公司33,1981 +90,57,1077,公司34,1981 +17,60,741,公司35,1981 +106,69,897,公司36,1981 +66,84,597,公司37,1981 +100,38,1066,公司38,1981 +108,52,494,公司39,1981 +118,69,702,公司40,1981 +44,118,1150,公司41,1981 +74,79,856,公司42,1981 +56,92,141,公司43,1981 +95,109,725,公司44,1981 +147,121,991,公司45,1981 +66,31,347,公司46,1981 +60,119,501,公司47,1981 +46,66,165,公司48,1981 +134,84,1320,公司49,1981 +65,47,588,公司0,1982 +30,86,514,公司1,1982 +68,11,785,公司2,1982 +113,115,987,公司3,1982 +37,99,815,公司4,1982 +67,39,858,公司5,1982 +65,110,964,公司6,1982 +115,106,846,公司7,1982 +29,20,268,公司8,1982 +26,135,1105,公司9,1982 +98,31,1108,公司10,1982 +97,25,705,公司11,1982 +132,127,723,公司12,1982 +62,115,623,公司13,1982 +38,104,723,公司14,1982 +99,93,828,公司15,1982 +89,83,225,公司16,1982 +100,106,416,公司17,1982 +70,76,318,公司18,1982 +74,104,776,公司19,1982 +109,80,1048,公司20,1982 +79,94,878,公司21,1982 +90,95,474,公司22,1982 +38,87,472,公司23,1982 +110,25,244,公司24,1982 +51,121,1023,公司25,1982 +106,118,855,公司26,1982 +34,102,1070,公司27,1982 +56,109,647,公司28,1982 +78,45,238,公司29,1982 +78,109,544,公司30,1982 +120,102,994,公司31,1982 +54,56,764,公司32,1982 +116,73,915,公司33,1982 +90,56,1072,公司34,1982 +17,62,787,公司35,1982 +109,72,930,公司36,1982 +66,86,627,公司37,1982 +99,39,1035,公司38,1982 +111,55,465,公司39,1982 +119,70,698,公司40,1982 +44,118,1115,公司41,1982 +76,82,892,公司42,1982 +58,95,177,公司43,1982 +95,109,755,公司44,1982 +149,122,949,公司45,1982 +67,34,400,公司46,1982 +61,119,462,公司47,1982 +46,68,124,公司48,1982 +136,86,1371,公司49,1982 +65,46,585,公司0,1983 +32,86,517,公司1,1983 +71,10,748,公司2,1983 +113,115,1030,公司3,1983 +40,102,839,公司4,1983 +65,40,819,公司5,1983 +67,112,983,公司6,1983 +118,109,888,公司7,1983 +30,19,247,公司8,1983 +26,134,1134,公司9,1983 +97,34,1119,公司10,1983 +96,23,694,公司11,1983 +132,125,686,公司12,1983 +62,115,649,公司13,1983 +41,106,680,公司14,1983 +98,94,836,公司15,1983 +89,85,238,公司16,1983 +99,106,439,公司17,1983 +69,78,314,公司18,1983 +74,107,774,公司19,1983 +109,80,1036,公司20,1983 +81,93,883,公司21,1983 +90,94,448,公司22,1983 +38,89,446,公司23,1983 +113,24,235,公司24,1983 +52,124,1014,公司25,1983 +107,117,833,公司26,1983 +36,103,1088,公司27,1983 +59,110,652,公司28,1983 +79,46,251,公司29,1983 +78,112,585,公司30,1983 +121,103,1040,公司31,1983 +54,58,731,公司32,1983 +116,76,944,公司33,1983 +93,59,1036,公司34,1983 +20,65,752,公司35,1983 +112,73,979,公司36,1983 +66,87,621,公司37,1983 +101,41,1007,公司38,1983 +112,58,520,公司39,1983 +119,72,715,公司40,1983 +48,119,1086,公司41,1983 +79,85,904,公司42,1983 +60,96,145,公司43,1983 +96,108,772,公司44,1983 +149,122,970,公司45,1983 +69,37,431,公司46,1983 +61,123,421,公司47,1983 +45,68,110,公司48,1983 +137,86,1347,公司49,1983 +64,45,627,公司0,1984 +33,85,541,公司1,1984 +74,13,733,公司2,1984 +114,115,1042,公司3,1984 +39,103,835,公司4,1984 +68,39,779,公司5,1984 +68,111,1026,公司6,1984 +121,108,902,公司7,1984 +30,21,214,公司8,1984 +27,137,1137,公司9,1984 +100,35,1099,公司10,1984 +96,22,659,公司11,1984 +131,126,659,公司12,1984 +65,115,703,公司13,1984 +41,109,733,公司14,1984 +98,96,818,公司15,1984 +88,86,233,公司16,1984 +100,108,400,公司17,1984 +71,78,301,公司18,1984 +76,106,768,公司19,1984 +109,80,1009,公司20,1984 +81,94,844,公司21,1984 +93,96,459,公司22,1984 +41,91,412,公司23,1984 +116,27,240,公司24,1984 +53,126,1053,公司25,1984 +109,120,873,公司26,1984 +36,106,1076,公司27,1984 +62,111,686,公司28,1984 +81,47,249,公司29,1984 +77,112,585,公司30,1984 +120,106,1003,公司31,1984 +57,58,687,公司32,1984 +119,75,965,公司33,1984 +95,62,1066,公司34,1984 +22,66,735,公司35,1984 +113,74,1026,公司36,1984 +69,89,595,公司37,1984 +101,41,999,公司38,1984 +112,61,510,公司39,1984 +121,74,732,公司40,1984 +49,118,1066,公司41,1984 +78,87,859,公司42,1984 +61,100,143,公司43,1984 +98,108,825,公司44,1984 +153,123,1016,公司45,1984 +72,40,439,公司46,1984 +61,126,398,公司47,1984 +49,68,144,公司48,1984 +136,87,1326,公司49,1984 +63,47,672,公司0,1985 +31,87,570,公司1,1985 +76,12,759,公司2,1985 +116,118,1049,公司3,1985 +39,104,807,公司4,1985 +67,39,790,公司5,1985 +69,109,1033,公司6,1985 +122,108,945,公司7,1985 +31,21,210,公司8,1985 +26,136,1172,公司9,1985 +100,33,1070,公司10,1985 +96,21,686,公司11,1985 +133,127,654,公司12,1985 +64,117,754,公司13,1985 +41,109,698,公司14,1985 +99,97,849,公司15,1985 +91,88,252,公司16,1985 +101,110,381,公司17,1985 +70,79,352,公司18,1985 +76,108,756,公司19,1985 +108,80,965,公司20,1985 +81,94,805,公司21,1985 +92,99,485,公司22,1985 +43,92,396,公司23,1985 +115,30,294,公司24,1985 +54,125,1077,公司25,1985 +108,122,893,公司26,1985 +36,106,1070,公司27,1985 +63,111,684,公司28,1985 +80,46,288,公司29,1985 +80,115,551,公司30,1985 +121,105,1007,公司31,1985 +56,58,701,公司32,1985 +121,75,979,公司33,1985 +96,61,1116,公司34,1985 +22,67,770,公司35,1985 +114,78,1018,公司36,1985 +68,90,622,公司37,1985 +102,41,1014,公司38,1985 +115,64,479,公司39,1985 +125,73,709,公司40,1985 +50,117,1078,公司41,1985 +78,89,899,公司42,1985 +63,101,143,公司43,1985 +100,108,799,公司44,1985 +157,125,1046,公司45,1985 +72,41,445,公司46,1985 +60,126,433,公司47,1985 +49,72,188,公司48,1985 +136,89,1374,公司49,1985 +62,46,664,公司0,1986 +32,90,534,公司1,1986 +75,11,772,公司2,1986 +118,120,1047,公司3,1986 +41,104,774,公司4,1986 +67,41,826,公司5,1986 +70,110,1075,公司6,1986 +123,106,914,公司7,1986 +31,23,251,公司8,1986 +25,135,1129,公司9,1986 +100,32,1093,公司10,1986 +99,20,708,公司11,1986 +135,126,708,公司12,1986 +65,118,777,公司13,1986 +41,109,736,公司14,1986 +102,98,866,公司15,1986 +92,89,230,公司16,1986 +102,109,358,公司17,1986 +73,79,382,公司18,1986 +77,108,734,公司19,1986 +107,79,993,公司20,1986 +83,96,805,公司21,1986 +94,99,512,公司22,1986 +46,93,407,公司23,1986 +116,29,255,公司24,1986 +57,128,1106,公司25,1986 +107,122,872,公司26,1986 +38,109,1110,公司27,1986 +62,113,713,公司28,1986 +82,47,292,公司29,1986 +81,116,521,公司30,1986 +124,106,990,公司31,1986 +58,60,729,公司32,1986 +123,76,967,公司33,1986 +97,62,1109,公司34,1986 +26,66,765,公司35,1986 +113,80,1005,公司36,1986 +71,93,594,公司37,1986 +105,43,1012,公司38,1986 +114,67,485,公司39,1986 +124,75,751,公司40,1986 +49,118,1072,公司41,1986 +82,90,952,公司42,1986 +63,101,110,公司43,1986 +101,109,787,公司44,1986 +161,125,1045,公司45,1986 +72,41,426,公司46,1986 +63,126,451,公司47,1986 +51,71,172,公司48,1986 +138,90,1413,公司49,1986 +64,47,683,公司0,1987 +34,91,576,公司1,1987 +74,14,755,公司2,1987 +121,118,1063,公司3,1987 +43,103,793,公司4,1987 +65,43,875,公司5,1987 +70,108,1076,公司6,1987 +124,108,966,公司7,1987 +33,25,225,公司8,1987 +25,138,1095,公司9,1987 +101,32,1092,公司10,1987 +102,20,703,公司11,1987 +134,127,720,公司12,1987 +67,121,812,公司13,1987 +42,112,756,公司14,1987 +101,100,855,公司15,1987 +95,89,223,公司16,1987 +104,109,406,公司17,1987 +72,79,392,公司18,1987 +80,107,781,公司19,1987 +110,79,1000,公司20,1987 +86,99,779,公司21,1987 +94,99,564,公司22,1987 +49,93,397,公司23,1987 +116,32,236,公司24,1987 +60,128,1080,公司25,1987 +109,121,882,公司26,1987 +39,108,1084,公司27,1987 +65,116,728,公司28,1987 +81,48,299,公司29,1987 +83,119,536,公司30,1987 +125,108,991,公司31,1987 +61,61,745,公司32,1987 +122,77,1018,公司33,1987 +100,63,1101,公司34,1987 +26,65,723,公司35,1987 +113,81,970,公司36,1987 +72,95,597,公司37,1987 +105,44,996,公司38,1987 +116,70,450,公司39,1987 +128,75,778,公司40,1987 +51,118,1089,公司41,1987 +84,89,949,公司42,1987 +62,104,144,公司43,1987 +102,109,787,公司44,1987 +161,129,1023,公司45,1987 +76,43,402,公司46,1987 +65,130,479,公司47,1987 +51,72,138,公司48,1987 +138,92,1384,公司49,1987 +65,46,708,公司0,1988 +34,91,552,公司1,1988 +75,16,750,公司2,1988 +120,116,1093,公司3,1988 +45,101,789,公司4,1988 +68,46,832,公司5,1988 +70,111,1077,公司6,1988 +122,109,956,公司7,1988 +35,27,252,公司8,1988 +28,141,1108,公司9,1988 +104,32,1083,公司10,1988 +102,19,731,公司11,1988 +134,129,702,公司12,1988 +69,123,858,公司13,1988 +41,111,749,公司14,1988 +99,100,876,公司15,1988 +98,89,253,公司16,1988 +104,109,456,公司17,1988 +74,80,411,公司18,1988 +81,110,778,公司19,1988 +112,82,1044,公司20,1988 +86,98,819,公司21,1988 +96,101,527,公司22,1988 +49,93,354,公司23,1988 +116,32,211,公司24,1988 +60,127,1058,公司25,1988 +109,123,839,公司26,1988 +40,112,1095,公司27,1988 +66,118,698,公司28,1988 +81,49,287,公司29,1988 +84,121,589,公司30,1988 +129,111,961,公司31,1988 +62,61,749,公司32,1988 +125,76,1050,公司33,1988 +102,65,1134,公司34,1988 +28,65,745,公司35,1988 +112,84,1003,公司36,1988 +71,96,560,公司37,1988 +106,44,1030,公司38,1988 +118,72,429,公司39,1988 +131,79,756,公司40,1988 +54,120,1137,公司41,1988 +85,88,933,公司42,1988 +66,105,161,公司43,1988 +104,111,821,公司44,1988 +163,132,1066,公司45,1988 +80,43,376,公司46,1988 +68,129,448,公司47,1988 +51,73,191,公司48,1988 +137,96,1346,公司49,1988 +68,49,725,公司0,1989 +37,92,568,公司1,1989 +76,18,802,公司2,1989 +121,115,1099,公司3,1989 +47,101,810,公司4,1989 +68,45,862,公司5,1989 +69,112,1131,公司6,1989 +123,108,958,公司7,1989 +34,29,289,公司8,1989 +27,144,1129,公司9,1989 +106,33,1055,公司10,1989 +102,20,712,公司11,1989 +133,127,673,公司12,1989 +69,126,821,公司13,1989 +41,113,797,公司14,1989 +98,100,835,公司15,1989 +97,90,295,公司16,1989 +107,110,452,公司17,1989 +74,82,385,公司18,1989 +84,109,769,公司19,1989 +115,85,1060,公司20,1989 +86,99,806,公司21,1989 +96,101,512,公司22,1989 +49,95,343,公司23,1989 +118,33,238,公司24,1989 +60,130,1034,公司25,1989 +109,122,888,公司26,1989 +42,113,1091,公司27,1989 +69,118,733,公司28,1989 +82,52,314,公司29,1989 +88,121,557,公司30,1989 +129,114,1003,公司31,1989 +64,64,801,公司32,1989 +126,76,1078,公司33,1989 +106,65,1137,公司34,1989 +27,68,786,公司35,1989 +115,84,993,公司36,1989 +73,96,526,公司37,1989 +106,45,1020,公司38,1989 +121,74,404,公司39,1989 +132,79,795,公司40,1989 +56,122,1101,公司41,1989 +88,90,979,公司42,1989 +68,107,136,公司43,1989 +107,114,828,公司44,1989 +167,132,1062,公司45,1989 +79,44,409,公司46,1989 +71,130,417,公司47,1989 +51,74,242,公司48,1989 +137,95,1367,公司49,1989 +67,47,777,公司0,1990 +39,94,612,公司1,1990 +78,19,830,公司2,1990 +122,116,1110,公司3,1990 +48,102,865,公司4,1990 +67,45,825,公司5,1990 +70,115,1170,公司6,1990 +124,109,972,公司7,1990 +33,31,321,公司8,1990 +30,146,1132,公司9,1990 +107,33,1023,公司10,1990 +101,18,758,公司11,1990 +133,130,710,公司12,1990 +71,126,820,公司13,1990 +43,114,828,公司14,1990 +98,103,869,公司15,1990 +100,93,295,公司16,1990 +108,109,476,公司17,1990 +73,82,344,公司18,1990 +84,110,815,公司19,1990 +118,86,1065,公司20,1990 +89,102,811,公司21,1990 +97,101,473,公司22,1990 +51,94,392,公司23,1990 +121,34,244,公司24,1990 +60,132,1050,公司25,1990 +110,124,915,公司26,1990 +45,113,1117,公司27,1990 +71,119,735,公司28,1990 +81,52,303,公司29,1990 +90,124,547,公司30,1990 +129,114,964,公司31,1990 +66,66,840,公司32,1990 +127,79,1124,公司33,1990 +108,66,1108,公司34,1990 +27,68,747,公司35,1990 +114,85,1047,公司36,1990 +72,97,578,公司37,1990 +106,47,1059,公司38,1990 +120,77,429,公司39,1990 +132,78,790,公司40,1990 +59,124,1061,公司41,1990 +89,91,1033,公司42,1990 +71,108,172,公司43,1990 +106,114,836,公司44,1990 +169,136,1030,公司45,1990 +79,43,407,公司46,1990 +74,133,463,公司47,1990 +55,77,293,公司48,1990 +136,97,1360,公司49,1990 +70,47,768,公司0,1991 +42,95,594,公司1,1991 +79,19,872,公司2,1991 +124,117,1161,公司3,1991 +49,102,822,公司4,1991 +69,48,810,公司5,1991 +69,115,1220,公司6,1991 +122,112,954,公司7,1991 +34,32,319,公司8,1991 +31,145,1112,公司9,1991 +106,35,980,公司10,1991 +100,16,783,公司11,1991 +135,128,748,公司12,1991 +73,128,805,公司13,1991 +44,114,849,公司14,1991 +100,103,863,公司15,1991 +103,91,253,公司16,1991 +106,110,460,公司17,1991 +73,81,331,公司18,1991 +86,109,771,公司19,1991 +119,85,1095,公司20,1991 +92,104,866,公司21,1991 +96,104,495,公司22,1991 +50,94,398,公司23,1991 +123,33,252,公司24,1991 +61,132,1015,公司25,1991 +109,123,917,公司26,1991 +48,112,1096,公司27,1991 +73,121,700,公司28,1991 +82,54,311,公司29,1991 +90,127,534,公司30,1991 +130,114,995,公司31,1991 +69,69,819,公司32,1991 +130,80,1114,公司33,1991 +107,67,1117,公司34,1991 +30,69,716,公司35,1991 +116,86,1098,公司36,1991 +75,100,615,公司37,1991 +108,46,1103,公司38,1991 +122,81,407,公司39,1991 +132,80,764,公司40,1991 +61,124,1096,公司41,1991 +92,91,1032,公司42,1991 +73,109,178,公司43,1991 +106,118,880,公司44,1991 +169,135,1021,公司45,1991 +78,43,375,公司46,1991 +78,136,474,公司47,1991 +56,81,333,公司48,1991 +138,98,1342,公司49,1991 +72,48,781,公司0,1992 +41,97,640,公司1,1992 +80,19,849,公司2,1992 +123,118,1145,公司3,1992 +50,100,847,公司4,1992 +68,49,783,公司5,1992 +72,114,1220,公司6,1992 +125,112,967,公司7,1992 +33,31,336,公司8,1992 +34,143,1079,公司9,1992 +105,36,1007,公司10,1992 +102,17,783,公司11,1992 +134,129,732,公司12,1992 +71,131,825,公司13,1992 +45,116,867,公司14,1992 +99,106,891,公司15,1992 +104,92,303,公司16,1992 +109,112,459,公司17,1992 +73,79,313,公司18,1992 +87,109,745,公司19,1992 +120,87,1110,公司20,1992 +91,107,884,公司21,1992 +99,103,487,公司22,1992 +53,97,379,公司23,1992 +123,33,265,公司24,1992 +60,131,1004,公司25,1992 +111,124,926,公司26,1992 +51,113,1058,公司27,1992 +74,123,724,公司28,1992 +83,53,323,公司29,1992 +93,127,542,公司30,1992 +133,115,1001,公司31,1992 +68,68,776,公司32,1992 +132,80,1113,公司33,1992 +106,69,1126,公司34,1992 +33,71,746,公司35,1992 +116,89,1078,公司36,1992 +78,101,651,公司37,1992 +107,46,1063,公司38,1992 +121,82,372,公司39,1992 +133,81,760,公司40,1992 +60,125,1115,公司41,1992 +94,93,1045,公司42,1992 +72,110,226,公司43,1992 +109,117,849,公司44,1992 +169,138,1047,公司45,1992 +77,43,430,公司46,1992 +78,136,464,公司47,1992 +55,83,336,公司48,1992 +141,98,1375,公司49,1992 +75,49,799,公司0,1993 +42,96,661,公司1,1993 +83,19,813,公司2,1993 +125,120,1199,公司3,1993 +50,101,857,公司4,1993 +71,50,769,公司5,1993 +74,112,1178,公司6,1993 +124,112,1004,公司7,1993 +33,31,364,公司8,1993 +34,144,1063,公司9,1993 +106,39,1026,公司10,1993 +100,16,785,公司11,1993 +132,130,691,公司12,1993 +71,129,874,公司13,1993 +47,117,908,公司14,1993 +101,105,898,公司15,1993 +104,93,334,公司16,1993 +112,112,463,公司17,1993 +75,82,301,公司18,1993 +87,109,767,公司19,1993 +121,89,1136,公司20,1993 +93,105,860,公司21,1993 +102,103,479,公司22,1993 +55,100,418,公司23,1993 +124,36,308,公司24,1993 +61,131,1009,公司25,1993 +114,126,907,公司26,1993 +54,114,1089,公司27,1993 +77,126,690,公司28,1993 +85,55,347,公司29,1993 +96,127,511,公司30,1993 +134,116,1019,公司31,1993 +71,69,762,公司32,1993 +134,80,1128,公司33,1993 +107,70,1142,公司34,1993 +36,74,720,公司35,1993 +115,92,1132,公司36,1993 +78,104,632,公司37,1993 +108,49,1096,公司38,1993 +124,84,338,公司39,1993 +135,82,767,公司40,1993 +61,128,1170,公司41,1993 +93,93,1043,公司42,1993 +76,109,207,公司43,1993 +112,119,873,公司44,1993 +169,141,1049,公司45,1993 +78,43,484,公司46,1993 +82,138,513,公司47,1993 +58,86,316,公司48,1993 +142,100,1373,公司49,1993 +73,47,836,公司0,1994 +43,99,673,公司1,1994 +84,20,804,公司2,1994 +126,119,1235,公司3,1994 +52,101,835,公司4,1994 +70,50,814,公司5,1994 +74,112,1224,公司6,1994 +125,113,1033,公司7,1994 +35,34,395,公司8,1994 +34,143,1066,公司9,1994 +105,39,1025,公司10,1994 +101,16,766,公司11,1994 +132,131,714,公司12,1994 +71,131,899,公司13,1994 +47,119,944,公司14,1994 +103,106,877,公司15,1994 +105,95,319,公司16,1994 +113,115,476,公司17,1994 +77,84,270,公司18,1994 +90,111,747,公司19,1994 +124,89,1107,公司20,1994 +92,105,858,公司21,1994 +105,104,491,公司22,1994 +57,102,460,公司23,1994 +126,37,326,公司24,1994 +60,133,1001,公司25,1994 +113,128,887,公司26,1994 +55,115,1046,公司27,1994 +78,126,668,公司28,1994 +86,54,372,公司29,1994 +99,126,510,公司30,1994 +135,119,994,公司31,1994 +73,68,743,公司32,1994 +136,83,1177,公司33,1994 +107,72,1152,公司34,1994 +38,77,765,公司35,1994 +115,95,1143,公司36,1994 +77,107,671,公司37,1994 +107,50,1128,公司38,1994 +128,86,375,公司39,1994 +135,86,770,公司40,1994 +61,127,1133,公司41,1994 +95,96,1056,公司42,1994 +76,109,218,公司43,1994 +114,121,899,公司44,1994 +168,144,1074,公司45,1994 +78,43,464,公司46,1994 +82,141,545,公司47,1994 +59,86,322,公司48,1994 +144,100,1357,公司49,1994 +74,47,805,公司0,1995 +42,102,700,公司1,1995 +85,22,803,公司2,1995 +124,119,1231,公司3,1995 +53,103,821,公司4,1995 +71,50,858,公司5,1995 +75,112,1200,公司6,1995 +127,114,1013,公司7,1995 +36,34,375,公司8,1995 +36,141,1103,公司9,1995 +106,39,1073,公司10,1995 +102,15,760,公司11,1995 +131,132,749,公司12,1995 +71,133,946,公司13,1995 +47,119,992,公司14,1995 +106,106,841,公司15,1995 +108,96,365,公司16,1995 +113,115,442,公司17,1995 +80,85,287,公司18,1995 +91,113,749,公司19,1995 +125,90,1128,公司20,1995 +91,106,860,公司21,1995 +106,106,467,公司22,1995 +59,102,472,公司23,1995 +129,39,313,公司24,1995 +61,132,961,公司25,1995 +115,130,862,公司26,1995 +57,115,1068,公司27,1995 +79,125,624,公司28,1995 +87,54,418,公司29,1995 +98,129,505,公司30,1995 +138,118,961,公司31,1995 +76,67,719,公司32,1995 +138,84,1163,公司33,1995 +106,71,1149,公司34,1995 +38,78,814,公司35,1995 +115,98,1147,公司36,1995 +78,108,697,公司37,1995 +109,53,1117,公司38,1995 +131,87,347,公司39,1995 +136,89,780,公司40,1995 +61,127,1151,公司41,1995 +96,97,1012,公司42,1995 +79,111,272,公司43,1995 +115,124,909,公司44,1995 +171,146,1122,公司45,1995 +82,44,448,公司46,1995 +84,141,521,公司47,1995 +60,90,313,公司48,1995 +146,102,1372,公司49,1995 +75,47,818,公司0,1996 +45,105,754,公司1,1996 +86,23,793,公司2,1996 +124,121,1245,公司3,1996 +52,105,847,公司4,1996 +70,49,885,公司5,1996 +75,114,1199,公司6,1996 +128,117,1037,公司7,1996 +39,34,359,公司8,1996 +36,144,1061,公司9,1996 +105,41,1054,公司10,1996 +102,15,799,公司11,1996 +132,135,739,公司12,1996 +70,132,917,公司13,1996 +49,121,979,公司14,1996 +106,107,866,公司15,1996 +111,95,345,公司16,1996 +112,116,423,公司17,1996 +83,85,247,公司18,1996 +91,113,800,公司19,1996 +125,91,1130,公司20,1996 +94,106,908,公司21,1996 +108,105,480,公司22,1996 +59,102,492,公司23,1996 +131,41,335,公司24,1996 +60,131,950,公司25,1996 +116,129,874,公司26,1996 +60,116,1118,公司27,1996 +80,127,627,公司28,1996 +91,53,431,公司29,1996 +99,132,491,公司30,1996 +137,121,955,公司31,1996 +79,71,708,公司32,1996 +139,84,1183,公司33,1996 +109,71,1144,公司34,1996 +40,79,823,公司35,1996 +116,99,1142,公司36,1996 +77,111,657,公司37,1996 +113,52,1073,公司38,1996 +135,86,375,公司39,1996 +138,91,777,公司40,1996 +62,128,1127,公司41,1996 +96,100,1024,公司42,1996 +78,114,268,公司43,1996 +114,124,880,公司44,1996 +170,148,1103,公司45,1996 +85,46,436,公司46,1996 +87,144,553,公司47,1996 +59,89,331,公司48,1996 +147,102,1376,公司49,1996 +76,48,804,公司0,1997 +44,106,733,公司1,1997 +88,22,763,公司2,1997 +127,124,1220,公司3,1997 +53,104,850,公司4,1997 +69,52,840,公司5,1997 +77,114,1164,公司6,1997 +127,118,1018,公司7,1997 +41,32,315,公司8,1997 +35,143,1070,公司9,1997 +107,42,1076,公司10,1997 +103,16,851,公司11,1997 +134,137,719,公司12,1997 +71,134,916,公司13,1997 +50,124,984,公司14,1997 +109,106,848,公司15,1997 +113,93,345,公司16,1997 +115,119,476,公司17,1997 +83,85,220,公司18,1997 +93,112,855,公司19,1997 +125,90,1142,公司20,1997 +94,109,883,公司21,1997 +108,108,501,公司22,1997 +62,101,470,公司23,1997 +130,44,337,公司24,1997 +60,134,924,公司25,1997 +115,132,830,公司26,1997 +61,115,1097,公司27,1997 +81,128,629,公司28,1997 +92,56,477,公司29,1997 +102,131,488,公司30,1997 +138,120,973,公司31,1997 +81,71,679,公司32,1997 +138,87,1165,公司33,1997 +110,73,1195,公司34,1997 +39,82,818,公司35,1997 +115,102,1197,公司36,1997 +77,113,660,公司37,1997 +114,56,1048,公司38,1997 +139,87,335,公司39,1997 +141,90,761,公司40,1997 +61,127,1093,公司41,1997 +96,102,1004,公司42,1997 +77,117,302,公司43,1997 +113,127,919,公司44,1997 +171,147,1095,公司45,1997 +87,47,439,公司46,1997 +88,146,573,公司47,1997 +63,89,301,公司48,1997 +147,106,1395,公司49,1997 +79,49,790,公司0,1998 +44,106,738,公司1,1998 +86,25,768,公司2,1998 +126,123,1267,公司3,1998 +53,103,810,公司4,1998 +69,53,804,公司5,1998 +78,116,1180,公司6,1998 +127,118,984,公司7,1998 +40,32,285,公司8,1998 +36,144,1077,公司9,1998 +108,45,1040,公司10,1998 +106,17,897,公司11,1998 +136,139,716,公司12,1998 +73,134,920,公司13,1998 +50,125,989,公司14,1998 +108,107,806,公司15,1998 +114,94,386,公司16,1998 +114,119,495,公司17,1998 +86,85,246,公司18,1998 +92,113,834,公司19,1998 +127,92,1138,公司20,1998 +96,108,900,公司21,1998 +110,108,464,公司22,1998 +64,101,474,公司23,1998 +130,44,310,公司24,1998 +62,137,935,公司25,1998 +115,135,874,公司26,1998 +64,118,1125,公司27,1998 +81,129,599,公司28,1998 +93,56,529,公司29,1998 +105,133,532,公司30,1998 +139,119,928,公司31,1998 +82,73,732,公司32,1998 +137,90,1205,公司33,1998 +112,76,1168,公司34,1998 +40,83,845,公司35,1998 +117,102,1180,公司36,1998 +80,113,661,公司37,1998 +113,58,1050,公司38,1998 +142,88,325,公司39,1998 +141,91,802,公司40,1998 +62,128,1126,公司41,1998 +98,104,972,公司42,1998 +77,117,324,公司43,1998 +113,127,952,公司44,1998 +172,148,1113,公司45,1998 +87,48,396,公司46,1998 +87,148,574,公司47,1998 +62,90,328,公司48,1998 +149,110,1423,公司49,1998 +79,50,748,公司0,1999 +45,106,759,公司1,1999 +88,27,763,公司2,1999 +124,122,1296,公司3,1999 +52,102,805,公司4,1999 +68,52,765,公司5,1999 +78,118,1215,公司6,1999 +128,119,980,公司7,1999 +40,31,244,公司8,1999 +39,143,1061,公司9,1999 +110,46,1060,公司10,1999 +106,20,926,公司11,1999 +137,141,691,公司12,1999 +75,133,935,公司13,1999 +50,126,954,公司14,1999 +107,108,793,公司15,1999 +117,95,376,公司16,1999 +114,122,451,公司17,1999 +89,87,245,公司18,1999 +94,116,827,公司19,1999 +126,94,1161,公司20,1999 +97,110,869,公司21,1999 +110,109,429,公司22,1999 +67,104,474,公司23,1999 +132,45,275,公司24,1999 +61,139,939,公司25,1999 +114,138,928,公司26,1999 +67,120,1106,公司27,1999 +80,130,627,公司28,1999 +93,55,486,公司29,1999 +109,134,526,公司30,1999 +139,121,927,公司31,1999 +81,75,710,公司32,1999 +140,91,1173,公司33,1999 +114,75,1123,公司34,1999 +43,86,874,公司35,1999 +119,105,1213,公司36,1999 +82,115,709,公司37,1999 +115,57,1023,公司38,1999 +143,92,281,公司39,1999 +144,91,796,公司40,1999 +61,128,1136,公司41,1999 +101,106,1026,公司42,1999 +78,116,375,公司43,1999 +115,130,990,公司44,1999 +172,151,1161,公司45,1999 +89,49,414,公司46,1999 +88,147,550,公司47,1999 +64,90,352,公司48,1999 +152,112,1464,公司49,1999 +79,50,741,公司0,2000 +44,105,809,公司1,2000 +89,27,812,公司2,2000 +127,120,1329,公司3,2000 +54,102,831,公司4,2000 +70,55,775,公司5,2000 +80,118,1222,公司6,2000 +130,121,995,公司7,2000 +39,33,259,公司8,2000 +39,143,1114,公司9,2000 +112,46,1016,公司10,2000 +108,23,956,公司11,2000 +139,141,710,公司12,2000 +76,136,955,公司13,2000 +49,129,1008,公司14,2000 +109,108,750,公司15,2000 +117,98,358,公司16,2000 +114,123,423,公司17,2000 +90,87,215,公司18,2000 +94,119,875,公司19,2000 +126,96,1205,公司20,2000 +100,113,923,公司21,2000 +111,109,421,公司22,2000 +68,106,446,公司23,2000 +131,45,237,公司24,2000 +62,141,924,公司25,2000 +117,138,905,公司26,2000 +68,121,1088,公司27,2000 +80,130,612,公司28,2000 +93,54,522,公司29,2000 +109,135,498,公司30,2000 +142,124,897,公司31,2000 +83,75,670,公司32,2000 +141,91,1224,公司33,2000 +115,78,1142,公司34,2000 +47,88,864,公司35,2000 +120,107,1249,公司36,2000 +82,117,704,公司37,2000 +116,57,1074,公司38,2000 +144,95,314,公司39,2000 +143,90,751,公司40,2000 +61,130,1155,公司41,2000 +102,109,1065,公司42,2000 +79,115,418,公司43,2000 +116,131,952,公司44,2000 +172,151,1200,公司45,2000 +92,49,440,公司46,2000 +88,151,581,公司47,2000 +68,94,393,公司48,2000 +154,114,1470,公司49,2000 +79,52,733,公司0,2001 +44,105,834,公司1,2001 +89,29,866,公司2,2001 +128,119,1374,公司3,2001 +53,104,835,公司4,2001 +69,57,784,公司5,2001 +79,119,1209,公司6,2001 +131,120,1010,公司7,2001 +40,32,297,公司8,2001 +37,143,1155,公司9,2001 +112,48,1062,公司10,2001 +109,22,1002,公司11,2001 +141,142,751,公司12,2001 +77,136,960,公司13,2001 +51,128,983,公司14,2001 +112,110,734,公司15,2001 +117,100,403,公司16,2001 +115,122,387,公司17,2001 +91,89,208,公司18,2001 +95,122,871,公司19,2001 +128,97,1162,公司20,2001 +101,114,901,公司21,2001 +110,108,422,公司22,2001 +70,109,475,公司23,2001 +133,44,217,公司24,2001 +64,140,946,公司25,2001 +119,139,883,公司26,2001 +71,124,1071,公司27,2001 +79,133,580,公司28,2001 +95,54,479,公司29,2001 +109,139,527,公司30,2001 +142,124,929,公司31,2001 +85,77,658,公司32,2001 +143,93,1228,公司33,2001 +116,80,1178,公司34,2001 +50,91,881,公司35,2001 +121,110,1280,公司36,2001 +81,120,691,公司37,2001 +120,60,1036,公司38,2001 +146,97,325,公司39,2001 +142,90,790,公司40,2001 +62,130,1166,公司41,2001 +105,110,1097,公司42,2001 +81,116,386,公司43,2001 +117,133,1007,公司44,2001 +171,152,1182,公司45,2001 +92,49,487,公司46,2001 +88,151,605,公司47,2001 +68,98,426,公司48,2001 +158,116,1437,公司49,2001 +80,53,775,公司0,2002 +43,106,802,公司1,2002 +87,31,899,公司2,2002 +127,121,1406,公司3,2002 +54,102,813,公司4,2002 +72,55,741,公司5,2002 +80,119,1210,公司6,2002 +130,119,1006,公司7,2002 +38,32,345,公司8,2002 +35,145,1142,公司9,2002 +111,51,1042,公司10,2002 +112,24,1014,公司11,2002 +141,143,710,公司12,2002 +78,136,963,公司13,2002 +50,131,1003,公司14,2002 +114,109,767,公司15,2002 +118,99,366,公司16,2002 +116,121,409,公司17,2002 +89,90,175,公司18,2002 +94,125,894,公司19,2002 +131,100,1208,公司20,2002 +102,113,882,公司21,2002 +112,111,448,公司22,2002 +69,111,495,公司23,2002 +132,44,219,公司24,2002 +64,141,973,公司25,2002 +119,139,879,公司26,2002 +73,126,1068,公司27,2002 +82,136,542,公司28,2002 +97,53,513,公司29,2002 +110,139,512,公司30,2002 +144,126,952,公司31,2002 +87,76,699,公司32,2002 +144,92,1271,公司33,2002 +119,83,1211,公司34,2002 +52,92,849,公司35,2002 +124,109,1262,公司36,2002 +81,121,677,公司37,2002 +119,63,1031,公司38,2002 +149,100,372,公司39,2002 +143,93,805,公司40,2002 +64,131,1181,公司41,2002 +105,110,1056,公司42,2002 +84,115,420,公司43,2002 +117,133,1020,公司44,2002 +174,152,1156,公司45,2002 +94,52,445,公司46,2002 +91,155,562,公司47,2002 +70,100,429,公司48,2002 +159,118,1398,公司49,2002 +80,56,747,公司0,2003 +43,108,855,公司1,2003 +90,34,917,公司2,2003 +130,120,1413,公司3,2003 +53,101,806,公司4,2003 +72,54,742,公司5,2003 +79,118,1256,公司6,2003 +128,118,1029,公司7,2003 +38,33,388,公司8,2003 +36,146,1155,公司9,2003 +110,52,999,公司10,2003 +111,26,974,公司11,2003 +143,143,675,公司12,2003 +77,139,970,公司13,2003 +51,131,1050,公司14,2003 +117,110,790,公司15,2003 +118,101,381,公司16,2003 +119,120,439,公司17,2003 +91,90,199,公司18,2003 +96,128,928,公司19,2003 +134,101,1210,公司20,2003 +103,114,936,公司21,2003 +111,110,473,公司22,2003 +70,111,501,公司23,2003 +132,47,192,公司24,2003 +63,141,991,公司25,2003 +122,138,839,公司26,2003 +76,127,1119,公司27,2003 +84,136,529,公司28,2003 +97,52,488,公司29,2003 +112,141,559,公司30,2003 +147,128,982,公司31,2003 +89,79,671,公司32,2003 +147,92,1244,公司33,2003 +122,84,1178,公司34,2003 +52,92,855,公司35,2003 +123,113,1273,公司36,2003 +80,121,666,公司37,2003 +118,64,1008,公司38,2003 +150,101,413,公司39,2003 +144,97,837,公司40,2003 +66,131,1184,公司41,2003 +109,113,1042,公司42,2003 +84,117,465,公司43,2003 +116,133,1038,公司44,2003 +175,153,1139,公司45,2003 +98,55,484,公司46,2003 +95,158,551,公司47,2003 +74,102,431,公司48,2003 +160,120,1408,公司49,2003 +82,56,780,公司0,2004 +46,109,885,公司1,2004 +88,35,916,公司2,2004 +129,123,1443,公司3,2004 +52,102,827,公司4,2004 +71,54,728,公司5,2004 +80,119,1226,公司6,2004 +130,121,1028,公司7,2004 +37,33,416,公司8,2004 +36,145,1210,公司9,2004 +110,53,1047,公司10,2004 +110,27,929,公司11,2004 +143,142,654,公司12,2004 +78,138,1011,公司13,2004 +50,130,1053,公司14,2004 +117,110,833,公司15,2004 +118,102,418,公司16,2004 +119,122,460,公司17,2004 +91,91,228,公司18,2004 +98,131,890,公司19,2004 +137,103,1223,公司20,2004 +105,117,907,公司21,2004 +113,109,523,公司22,2004 +70,112,522,公司23,2004 +132,47,243,公司24,2004 +66,144,971,公司25,2004 +123,140,846,公司26,2004 +79,128,1152,公司27,2004 +87,137,583,公司28,2004 +97,52,473,公司29,2004 +112,142,572,公司30,2004 +147,131,1006,公司31,2004 +88,81,674,公司32,2004 +150,92,1250,公司33,2004 +125,85,1183,公司34,2004 +53,94,821,公司35,2004 +124,113,1233,公司36,2004 +81,123,643,公司37,2004 +119,64,1033,公司38,2004 +150,100,436,公司39,2004 +144,100,831,公司40,2004 +67,134,1226,公司41,2004 +108,113,1058,公司42,2004 +86,118,452,公司43,2004 +118,137,997,公司44,2004 +175,155,1168,公司45,2004 +100,57,536,公司46,2004 +96,161,532,公司47,2004 +76,103,441,公司48,2004 +163,123,1373,公司49,2004 +83,58,809,公司0,2005 +47,108,860,公司1,2005 +89,36,934,公司2,2005 +127,123,1466,公司3,2005 +52,104,843,公司4,2005 +70,52,700,公司5,2005 +80,119,1241,公司6,2005 +132,123,1059,公司7,2005 +40,33,405,公司8,2005 +36,146,1204,公司9,2005 +112,52,1036,公司10,2005 +109,26,921,公司11,2005 +145,142,674,公司12,2005 +79,139,992,公司13,2005 +52,132,1077,公司14,2005 +116,113,843,公司15,2005 +118,103,424,公司16,2005 +117,122,432,公司17,2005 +92,92,255,公司18,2005 +99,131,902,公司19,2005 +139,105,1186,公司20,2005 +105,116,935,公司21,2005 +115,108,563,公司22,2005 +72,114,538,公司23,2005 +135,46,269,公司24,2005 +69,144,976,公司25,2005 +124,141,882,公司26,2005 +80,128,1201,公司27,2005 +90,136,596,公司28,2005 +100,53,495,公司29,2005 +114,141,617,公司30,2005 +148,130,991,公司31,2005 +91,83,704,公司32,2005 +153,92,1217,公司33,2005 +125,89,1173,公司34,2005 +56,96,872,公司35,2005 +124,113,1213,公司36,2005 +82,122,664,公司37,2005 +121,67,1000,公司38,2005 +149,104,434,公司39,2005 +144,99,840,公司40,2005 +70,137,1201,公司41,2005 +111,114,1022,公司42,2005 +88,121,409,公司43,2005 +119,141,993,公司44,2005 +177,156,1126,公司45,2005 +104,60,504,公司46,2005 +95,160,499,公司47,2005 +75,102,449,公司48,2005 +162,126,1371,公司49,2005 +86,61,845,公司0,2006 +48,110,907,公司1,2006 +88,36,907,公司2,2006 +128,122,1447,公司3,2006 +54,103,848,公司4,2006 +73,51,718,公司5,2006 +82,119,1264,公司6,2006 +133,122,1070,公司7,2006 +40,35,410,公司8,2006 +35,147,1247,公司9,2006 +112,53,1025,公司10,2006 +109,27,923,公司11,2006 +148,144,667,公司12,2006 +79,140,971,公司13,2006 +51,131,1065,公司14,2006 +118,115,852,公司15,2006 +120,101,472,公司16,2006 +118,122,446,公司17,2006 +95,92,227,公司18,2006 +100,133,942,公司19,2006 +142,104,1212,公司20,2006 +106,117,938,公司21,2006 +117,111,540,公司22,2006 +72,117,552,公司23,2006 +137,48,243,公司24,2006 +69,144,965,公司25,2006 +126,140,905,公司26,2006 +81,130,1239,公司27,2006 +89,138,571,公司28,2006 +103,52,505,公司29,2006 +113,144,671,公司30,2006 +147,133,1025,公司31,2006 +90,83,701,公司32,2006 +154,94,1182,公司33,2006 +127,92,1209,公司34,2006 +55,95,912,公司35,2006 +124,114,1184,公司36,2006 +82,124,650,公司37,2006 +121,70,1004,公司38,2006 +149,106,461,公司39,2006 +143,102,859,公司40,2006 +71,139,1205,公司41,2006 +111,115,1000,公司42,2006 +88,120,376,公司43,2006 +123,140,1016,公司44,2006 +176,156,1088,公司45,2006 +104,61,500,公司46,2006 +98,162,544,公司47,2006 +79,105,485,公司48,2006 +165,126,1343,公司49,2006 +86,60,891,公司0,2007 +50,111,878,公司1,2007 +88,39,883,公司2,2007 +128,124,1469,公司3,2007 +54,104,828,公司4,2007 +73,50,768,公司5,2007 +83,120,1288,公司6,2007 +136,123,1034,公司7,2007 +43,35,425,公司8,2007 +35,148,1258,公司9,2007 +113,54,1047,公司10,2007 +108,26,948,公司11,2007 +149,144,694,公司12,2007 +77,142,1023,公司13,2007 +52,134,1049,公司14,2007 +117,116,859,公司15,2007 +122,104,473,公司16,2007 +120,124,407,公司17,2007 +96,91,187,公司18,2007 +103,135,951,公司19,2007 +141,106,1189,公司20,2007 +105,119,990,公司21,2007 +116,110,582,公司22,2007 +74,115,556,公司23,2007 +138,50,279,公司24,2007 +68,145,953,公司25,2007 +127,142,876,公司26,2007 +83,129,1236,公司27,2007 +91,137,597,公司28,2007 +106,55,471,公司29,2007 +113,143,713,公司30,2007 +149,132,997,公司31,2007 +93,84,668,公司32,2007 +153,96,1174,公司33,2007 +126,95,1180,公司34,2007 +57,97,872,公司35,2007 +126,115,1191,公司36,2007 +86,125,652,公司37,2007 +124,72,992,公司38,2007 +149,108,501,公司39,2007 +144,105,887,公司40,2007 +71,140,1246,公司41,2007 +114,118,1005,公司42,2007 +90,123,335,公司43,2007 +123,142,1015,公司44,2007 +179,157,1114,公司45,2007 +103,65,476,公司46,2007 +99,163,503,公司47,2007 +80,106,508,公司48,2007 +165,127,1300,公司49,2007 +88,60,915,公司0,2008 +51,114,933,公司1,2008 +91,39,914,公司2,2008 +127,126,1443,公司3,2008 +56,103,858,公司4,2008 +72,49,729,公司5,2008 +83,123,1302,公司6,2008 +137,123,1036,公司7,2008 +44,34,424,公司8,2008 +36,150,1261,公司9,2008 +113,52,1092,公司10,2008 +107,25,918,公司11,2008 +150,143,700,公司12,2008 +77,143,1007,公司13,2008 +51,133,1099,公司14,2008 +116,117,815,公司15,2008 +120,103,496,公司16,2008 +122,124,396,公司17,2008 +95,93,181,公司18,2008 +104,138,922,公司19,2008 +140,106,1233,公司20,2008 +105,120,975,公司21,2008 +115,110,635,公司22,2008 +76,115,552,公司23,2008 +140,49,236,公司24,2008 +68,145,986,公司25,2008 +130,143,840,公司26,2008 +85,130,1199,公司27,2008 +90,139,575,公司28,2008 +106,55,464,公司29,2008 +115,142,683,公司30,2008 +151,135,971,公司31,2008 +95,83,627,公司32,2008 +152,96,1202,公司33,2008 +128,97,1147,公司34,2008 +57,99,883,公司35,2008 +126,118,1237,公司36,2008 +89,124,687,公司37,2008 +125,73,950,公司38,2008 +152,110,555,公司39,2008 +148,105,939,公司40,2008 +71,140,1252,公司41,2008 +117,121,1051,公司42,2008 +94,122,328,公司43,2008 +124,144,995,公司44,2008 +179,160,1164,公司45,2008 +106,68,458,公司46,2008 +100,166,495,公司47,2008 +82,108,475,公司48,2008 +168,130,1316,公司49,2008 +89,61,893,公司0,2009 +53,114,913,公司1,2009 +94,40,914,公司2,2009 +128,125,1463,公司3,2009 +58,101,847,公司4,2009 +74,50,753,公司5,2009 +82,123,1338,公司6,2009 +138,125,994,公司7,2009 +46,36,408,公司8,2009 +37,151,1249,公司9,2009 +113,51,1085,公司10,2009 +106,25,901,公司11,2009 +148,143,731,公司12,2009 +76,146,1013,公司13,2009 +54,131,1078,公司14,2009 +115,116,785,公司15,2009 +122,104,541,公司16,2009 +123,122,372,公司17,2009 +98,92,225,公司18,2009 +105,140,945,公司19,2009 +139,109,1236,公司20,2009 +104,123,977,公司21,2009 +118,111,683,公司22,2009 +78,114,536,公司23,2009 +143,52,228,公司24,2009 +69,147,1003,公司25,2009 +129,146,873,公司26,2009 +85,133,1245,公司27,2009 +90,140,611,公司28,2009 +106,57,467,公司29,2009 +115,141,681,公司30,2009 +154,138,1024,公司31,2009 +95,83,587,公司32,2009 +152,99,1161,公司33,2009 +129,97,1115,公司34,2009 +58,99,932,公司35,2009 +129,118,1223,公司36,2009 +89,123,653,公司37,2009 +128,77,907,公司38,2009 +152,112,572,公司39,2009 +149,108,985,公司40,2009 +70,143,1284,公司41,2009 +120,121,1104,公司42,2009 +96,125,339,公司43,2009 +125,145,966,公司44,2009 +178,162,1122,公司45,2009 +106,70,463,公司46,2009 +104,168,515,公司47,2009 +82,108,486,公司48,2009 +171,130,1308,公司49,2009 +90,59,890,公司0,2010 +53,116,920,公司1,2010 +93,39,902,公司2,2010 +127,124,1505,公司3,2010 +58,102,880,公司4,2010 +73,51,710,公司5,2010 +85,122,1309,公司6,2010 +137,124,979,公司7,2010 +47,37,390,公司8,2010 +38,149,1271,公司9,2010 +115,53,1053,公司10,2010 +106,24,916,公司11,2010 +150,142,744,公司12,2010 +79,146,992,公司13,2010 +57,131,1054,公司14,2010 +114,115,780,公司15,2010 +125,104,564,公司16,2010 +126,121,389,公司17,2010 +101,91,182,公司18,2010 +107,143,978,公司19,2010 +142,109,1236,公司20,2010 +104,123,1021,公司21,2010 +118,110,690,公司22,2010 +78,116,534,公司23,2010 +145,55,252,公司24,2010 +72,149,1036,公司25,2010 +131,149,926,公司26,2010 +88,132,1257,公司27,2010 +90,142,577,公司28,2010 +108,57,423,公司29,2010 +114,143,658,公司30,2010 +155,141,1005,公司31,2010 +98,82,558,公司32,2010 +152,100,1150,公司33,2010 +131,98,1075,公司34,2010 +59,101,986,公司35,2010 +130,119,1226,公司36,2010 +89,126,668,公司37,2010 +128,80,938,公司38,2010 +153,115,592,公司39,2010 +151,109,959,公司40,2010 +71,147,1298,公司41,2010 +123,121,1096,公司42,2010 +95,125,392,公司43,2010 +125,144,997,公司44,2010 +180,166,1139,公司45,2010 +107,74,429,公司46,2010 +103,169,570,公司47,2010 +85,110,507,公司48,2010 +174,133,1310,公司49,2010 +93,60,850,公司0,2011 +54,117,928,公司1,2011 +93,41,863,公司2,2011 +128,125,1531,公司3,2011 +58,103,887,公司4,2011 +72,53,692,公司5,2011 +87,124,1333,公司6,2011 +139,123,966,公司7,2011 +49,39,360,公司8,2011 +41,148,1305,公司9,2011 +114,53,1080,公司10,2011 +108,25,876,公司11,2011 +150,141,719,公司12,2011 +81,147,977,公司13,2011 +58,132,1009,公司14,2011 +116,115,745,公司15,2011 +124,105,578,公司16,2011 +125,120,432,公司17,2011 +103,92,182,公司18,2011 +108,145,1032,公司19,2011 +143,108,1197,公司20,2011 +107,125,1059,公司21,2011 +117,111,681,公司22,2011 +79,118,517,公司23,2011 +144,57,297,公司24,2011 +71,150,1022,公司25,2011 +130,152,931,公司26,2011 +89,131,1251,公司27,2011 +91,141,552,公司28,2011 +109,56,444,公司29,2011 +114,143,668,公司30,2011 +154,142,1023,公司31,2011 +98,85,579,公司32,2011 +155,99,1148,公司33,2011 +134,98,1049,公司34,2011 +62,101,1016,公司35,2011 +133,119,1269,公司36,2011 +88,126,719,公司37,2011 +128,79,906,公司38,2011 +157,115,574,公司39,2011 +151,112,997,公司40,2011 +75,146,1278,公司41,2011 +125,124,1096,公司42,2011 +96,127,351,公司43,2011 +129,147,971,公司44,2011 +181,166,1161,公司45,2011 +108,73,463,公司46,2011 +103,170,527,公司47,2011 +87,112,515,公司48,2011 +173,135,1280,公司49,2011 +96,58,872,公司0,2012 +52,117,959,公司1,2012 +92,41,862,公司2,2012 +129,124,1505,公司3,2012 +58,102,843,公司4,2012 +70,55,747,公司5,2012 +87,123,1295,公司6,2012 +140,123,935,公司7,2012 +50,40,360,公司8,2012 +43,150,1274,公司9,2012 +114,54,1053,公司10,2012 +109,28,918,公司11,2012 +150,142,710,公司12,2012 +79,148,949,公司13,2012 +59,133,990,公司14,2012 +116,115,798,公司15,2012 +126,107,567,公司16,2012 +126,120,402,公司17,2012 +105,92,149,公司18,2012 +107,147,1002,公司19,2012 +145,109,1192,公司20,2012 +107,128,1046,公司21,2012 +119,113,733,公司22,2012 +81,119,492,公司23,2012 +147,56,309,公司24,2012 +73,152,1025,公司25,2012 +129,153,892,公司26,2012 +91,131,1236,公司27,2012 +92,143,558,公司28,2012 +112,59,478,公司29,2012 +115,145,720,公司30,2012 +154,142,984,公司31,2012 +99,88,574,公司32,2012 +155,101,1178,公司33,2012 +137,100,1086,公司34,2012 +63,102,973,公司35,2012 +135,121,1240,公司36,2012 +88,128,690,公司37,2012 +127,81,925,公司38,2012 +158,118,599,公司39,2012 +153,115,986,公司40,2012 +77,148,1314,公司41,2012 +126,127,1102,公司42,2012 +97,128,343,公司43,2012 +128,150,947,公司44,2012 +183,169,1188,公司45,2012 +109,75,430,公司46,2012 +105,171,573,公司47,2012 +86,115,568,公司48,2012 +174,136,1259,公司49,2012 +95,60,919,公司0,2013 +52,118,963,公司1,2013 +91,43,864,公司2,2013 +130,123,1544,公司3,2013 +60,100,852,公司4,2013 +73,56,775,公司5,2013 +90,125,1323,公司6,2013 +138,122,945,公司7,2013 +53,42,356,公司8,2013 +43,152,1294,公司9,2013 +115,55,1047,公司10,2013 +109,26,968,公司11,2013 +152,141,676,公司12,2013 +80,150,920,公司13,2013 +58,132,1029,公司14,2013 +116,114,823,公司15,2013 +127,106,537,公司16,2013 +125,122,427,公司17,2013 +104,94,141,公司18,2013 +110,150,1019,公司19,2013 +144,110,1228,公司20,2013 +110,127,1098,公司21,2013 +118,114,784,公司22,2013 +82,121,534,公司23,2013 +148,59,278,公司24,2013 +72,151,1040,公司25,2013 +132,154,897,公司26,2013 +90,133,1279,公司27,2013 +95,142,564,公司28,2013 +112,61,445,公司29,2013 +114,148,696,公司30,2013 +155,143,966,公司31,2013 +100,88,621,公司32,2013 +157,101,1174,公司33,2013 +139,101,1139,公司34,2013 +63,102,931,公司35,2013 +134,125,1213,公司36,2013 +88,129,713,公司37,2013 +129,84,916,公司38,2013 +161,119,557,公司39,2013 +152,118,966,公司40,2013 +79,147,1289,公司41,2013 +127,128,1118,公司42,2013 +100,128,337,公司43,2013 +131,151,904,公司44,2013 +185,171,1217,公司45,2013 +110,75,406,公司46,2013 +105,174,573,公司47,2013 +87,115,621,公司48,2013 +177,138,1295,公司49,2013 +97,62,885,公司0,2014 +54,120,946,公司1,2014 +89,42,866,公司2,2014 +129,126,1527,公司3,2014 +61,101,855,公司4,2014 +74,57,762,公司5,2014 +89,125,1333,公司6,2014 +138,121,906,公司7,2014 +55,42,325,公司8,2014 +44,153,1277,公司9,2014 +114,55,1049,公司10,2014 +112,26,998,公司11,2014 +153,144,698,公司12,2014 +82,148,959,公司13,2014 +59,132,1011,公司14,2014 +115,115,876,公司15,2014 +127,107,540,公司16,2014 +124,125,390,公司17,2014 +104,97,151,公司18,2014 +113,153,1020,公司19,2014 +147,113,1280,公司20,2014 +109,130,1150,公司21,2014 +119,116,802,公司22,2014 +84,123,563,公司23,2014 +148,60,287,公司24,2014 +72,150,1019,公司25,2014 +132,155,911,公司26,2014 +93,133,1291,公司27,2014 +98,145,589,公司28,2014 +112,63,401,公司29,2014 +116,149,714,公司30,2014 +157,142,991,公司31,2014 +99,87,646,公司32,2014 +158,104,1157,公司33,2014 +142,104,1185,公司34,2014 +66,101,944,公司35,2014 +136,124,1177,公司36,2014 +90,129,726,公司37,2014 +129,83,957,公司38,2014 +162,120,600,公司39,2014 +152,120,923,公司40,2014 +78,147,1339,公司41,2014 +131,129,1107,公司42,2014 +100,130,337,公司43,2014 +135,152,878,公司44,2014 +186,171,1254,公司45,2014 +113,77,399,公司46,2014 +106,174,592,公司47,2014 +89,118,584,公司48,2014 +180,138,1297,公司49,2014 +99,63,893,公司0,2015 +54,119,975,公司1,2015 +87,43,840,公司2,2015 +132,124,1574,公司3,2015 +61,101,882,公司4,2015 +73,55,746,公司5,2015 +88,124,1318,公司6,2015 +139,123,894,公司7,2015 +54,45,340,公司8,2015 +45,153,1293,公司9,2015 +116,56,1019,公司10,2015 +115,27,990,公司11,2015 +156,145,709,公司12,2015 +81,147,931,公司13,2015 +61,133,990,公司14,2015 +118,116,894,公司15,2015 +129,106,562,公司16,2015 +126,125,395,公司17,2015 +104,96,166,公司18,2015 +112,152,989,公司19,2015 +149,115,1251,公司20,2015 +109,131,1193,公司21,2015 +119,117,758,公司22,2015 +87,122,593,公司23,2015 +150,62,267,公司24,2015 +72,151,1015,公司25,2015 +132,155,931,公司26,2015 +92,133,1287,公司27,2015 +101,147,583,公司28,2015 +114,62,364,公司29,2015 +117,152,716,公司30,2015 +157,141,1022,公司31,2015 +100,90,669,公司32,2015 +158,106,1131,公司33,2015 +143,103,1154,公司34,2015 +69,103,972,公司35,2015 +136,124,1203,公司36,2015 +92,131,775,公司37,2015 +130,83,951,公司38,2015 +164,122,603,公司39,2015 +156,123,967,公司40,2015 +81,149,1319,公司41,2015 +135,131,1160,公司42,2015 +100,130,302,公司43,2015 +135,155,845,公司44,2015 +188,170,1281,公司45,2015 +116,78,436,公司46,2015 +106,173,603,公司47,2015 +89,120,545,公司48,2015 +181,139,1257,公司49,2015 +98,62,927,公司0,2016 +57,117,1012,公司1,2016 +90,42,866,公司2,2016 +132,124,1602,公司3,2016 +61,103,841,公司4,2016 +75,54,780,公司5,2016 +87,125,1321,公司6,2016 +139,124,862,公司7,2016 +57,47,355,公司8,2016 +47,155,1299,公司9,2016 +119,58,983,公司10,2016 +116,27,988,公司11,2016 +157,145,745,公司12,2016 +80,149,936,公司13,2016 +62,132,1017,公司14,2016 +119,119,892,公司15,2016 +131,109,585,公司16,2016 +125,127,408,公司17,2016 +106,98,135,公司18,2016 +112,153,945,公司19,2016 +150,115,1218,公司20,2016 +108,131,1235,公司21,2016 +121,117,727,公司22,2016 +89,124,645,公司23,2016 +152,63,276,公司24,2016 +73,154,1023,公司25,2016 +132,155,937,公司26,2016 +94,135,1279,公司27,2016 +104,148,599,公司28,2016 +117,65,396,公司29,2016 +119,154,759,公司30,2016 +157,142,993,公司31,2016 +99,89,667,公司32,2016 +161,109,1166,公司33,2016 +142,104,1128,公司34,2016 +73,102,984,公司35,2016 +135,125,1227,公司36,2016 +93,133,771,公司37,2016 +133,82,997,公司38,2016 +163,123,601,公司39,2016 +158,126,1002,公司40,2016 +81,150,1295,公司41,2016 +137,131,1200,公司42,2016 +103,133,305,公司43,2016 +138,159,809,公司44,2016 +189,169,1308,公司45,2016 +118,81,434,公司46,2016 +106,172,595,公司47,2016 +89,122,588,公司48,2016 +183,142,1255,公司49,2016 +101,61,952,公司0,2017 +57,117,987,公司1,2017 +90,42,837,公司2,2017 +134,126,1580,公司3,2017 +61,101,816,公司4,2017 +77,55,823,公司5,2017 +86,127,1350,公司6,2017 +141,123,866,公司7,2017 +59,46,408,公司8,2017 +50,158,1338,公司9,2017 +119,60,1026,公司10,2017 +115,28,1016,公司11,2017 +157,145,797,公司12,2017 +81,148,923,公司13,2017 +61,135,1017,公司14,2017 +120,119,864,公司15,2017 +133,111,629,公司16,2017 +124,129,443,公司17,2017 +107,100,165,公司18,2017 +112,154,949,公司19,2017 +151,116,1254,公司20,2017 +111,133,1248,公司21,2017 +121,117,742,公司22,2017 +89,125,663,公司23,2017 +150,66,298,公司24,2017 +75,154,1051,公司25,2017 +135,154,960,公司26,2017 +93,138,1258,公司27,2017 +104,150,642,公司28,2017 +119,64,352,公司29,2017 +119,154,775,公司30,2017 +157,143,1023,公司31,2017 +100,90,641,公司32,2017 +162,111,1217,公司33,2017 +141,104,1115,公司34,2017 +76,102,968,公司35,2017 +138,124,1245,公司36,2017 +96,135,758,公司37,2017 +136,83,1028,公司38,2017 +162,122,577,公司39,2017 +160,127,1018,公司40,2017 +83,153,1305,公司41,2017 +140,135,1238,公司42,2017 +102,137,303,公司43,2017 +141,162,789,公司44,2017 +188,173,1340,公司45,2017 +121,84,408,公司46,2017 +107,174,584,公司47,2017 +91,123,579,公司48,2017 +185,145,1240,公司49,2017 +103,63,970,公司0,2018 +55,117,1038,公司1,2018 +88,42,875,公司2,2018 +132,126,1631,公司3,2018 +62,104,791,公司4,2018 +79,56,809,公司5,2018 +85,127,1366,公司6,2018 +140,126,880,公司7,2018 +60,48,381,公司8,2018 +51,157,1298,公司9,2018 +120,59,1075,公司10,2018 +114,28,1016,公司11,2018 +159,143,793,公司12,2018 +84,146,882,公司13,2018 +64,138,1033,公司14,2018 +123,121,851,公司15,2018 +135,112,614,公司16,2018 +126,128,429,公司17,2018 +106,101,138,公司18,2018 +115,157,924,公司19,2018 +151,118,1295,公司20,2018 +114,135,1238,公司21,2018 +120,120,763,公司22,2018 +92,128,717,公司23,2018 +151,67,282,公司24,2018 +74,154,1044,公司25,2018 +138,155,928,公司26,2018 +95,139,1270,公司27,2018 +107,153,672,公司28,2018 +119,66,344,公司29,2018 +121,157,734,公司30,2018 +157,143,990,公司31,2018 +101,89,614,公司32,2018 +163,114,1239,公司33,2018 +143,105,1166,公司34,2018 +75,102,1015,公司35,2018 +137,123,1277,公司36,2018 +98,135,811,公司37,2018 +135,86,991,公司38,2018 +164,122,592,公司39,2018 +159,128,1043,公司40,2018 +82,156,1272,公司41,2018 +139,136,1200,公司42,2018 +102,139,309,公司43,2018 +144,161,829,公司44,2018 +187,176,1386,公司45,2018 +121,85,384,公司46,2018 +107,177,628,公司47,2018 +94,124,581,公司48,2018 +186,147,1236,公司49,2018 +105,64,931,公司0,2019 +55,117,1068,公司1,2019 +87,43,912,公司2,2019 +132,125,1637,公司3,2019 +64,106,766,公司4,2019 +82,55,857,公司5,2019 +84,126,1411,公司6,2019 +142,126,852,公司7,2019 +62,49,405,公司8,2019 +50,157,1267,公司9,2019 +123,61,1056,公司10,2019 +114,27,1028,公司11,2019 +158,142,804,公司12,2019 +84,149,924,公司13,2019 +65,140,1007,公司14,2019 +125,122,863,公司15,2019 +137,113,665,公司16,2019 +127,129,424,公司17,2019 +108,101,113,公司18,2019 +115,159,937,公司19,2019 +150,120,1291,公司20,2019 +115,137,1235,公司21,2019 +119,119,770,公司22,2019 +92,128,740,公司23,2019 +150,66,270,公司24,2019 +75,156,1096,公司25,2019 +140,156,920,公司26,2019 +97,138,1256,公司27,2019 +109,154,689,公司28,2019 +120,67,389,公司29,2019 +122,160,764,公司30,2019 +160,142,1034,公司31,2019 +103,90,627,公司32,2019 +163,116,1253,公司33,2019 +143,104,1142,公司34,2019 +78,105,1020,公司35,2019 +141,122,1271,公司36,2019 +99,135,859,公司37,2019 +138,87,952,公司38,2019 +164,121,555,公司39,2019 +162,130,1081,公司40,2019 +83,159,1229,公司41,2019 +138,137,1211,公司42,2019 +105,138,355,公司43,2019 +147,160,788,公司44,2019 +187,175,1438,公司45,2019 +123,85,366,公司46,2019 +110,181,646,公司47,2019 +94,123,589,公司48,2019 +186,146,1262,公司49,2019 +107,65,910,公司0,2020 +57,120,1094,公司1,2020 +86,45,914,公司2,2020 +133,123,1653,公司3,2020 +66,106,818,公司4,2020 +81,57,857,公司5,2020 +86,126,1413,公司6,2020 +142,129,829,公司7,2020 +63,51,445,公司8,2020 +49,157,1278,公司9,2020 +124,61,1099,公司10,2020 +115,27,999,公司11,2020 +161,141,836,公司12,2020 +83,147,892,公司13,2020 +65,139,974,公司14,2020 +126,121,889,公司15,2020 +140,115,630,公司16,2020 +130,132,458,公司17,2020 +107,104,105,公司18,2020 +117,159,949,公司19,2020 +150,122,1319,公司20,2020 +118,136,1284,公司21,2020 +121,122,809,公司22,2020 +93,129,746,公司23,2020 +152,66,267,公司24,2020 +74,156,1065,公司25,2020 +139,156,928,公司26,2020 +100,141,1286,公司27,2020 +110,154,715,公司28,2020 +119,67,383,公司29,2020 +122,159,816,公司30,2020 +161,143,1082,公司31,2020 +105,92,661,公司32,2020 +163,116,1222,公司33,2020 +147,107,1106,公司34,2020 +81,107,992,公司35,2020 +144,123,1247,公司36,2020 +98,138,861,公司37,2020 +139,90,932,公司38,2020 +164,124,513,公司39,2020 +165,130,1105,公司40,2020 +83,159,1192,公司41,2020 +139,140,1178,公司42,2020 +105,138,384,公司43,2020 +148,161,793,公司44,2020 +190,179,1464,公司45,2020 +124,86,381,公司46,2020 +111,182,629,公司47,2020 +98,122,575,公司48,2020 +188,145,1235,公司49,2020 +106,66,941,公司0,2021 +58,121,1117,公司1,2021 +87,46,883,公司2,2021 +133,125,1618,公司3,2021 +69,108,852,公司4,2021 +82,59,890,公司5,2021 +84,128,1421,公司6,2021 +141,130,788,公司7,2021 +63,51,440,公司8,2021 +49,159,1306,公司9,2021 +123,63,1064,公司10,2021 +117,27,1030,公司11,2021 +160,144,842,公司12,2021 +82,146,879,公司13,2021 +67,138,986,公司14,2021 +127,121,914,公司15,2021 +140,117,587,公司16,2021 +130,132,418,公司17,2021 +105,104,132,公司18,2021 +120,160,934,公司19,2021 +153,121,1283,公司20,2021 +119,139,1250,公司21,2021 +120,124,846,公司22,2021 +93,131,758,公司23,2021 +151,66,259,公司24,2021 +76,159,1057,公司25,2021 +140,159,965,公司26,2021 +103,140,1263,公司27,2021 +110,156,759,公司28,2021 +118,68,346,公司29,2021 +123,162,834,公司30,2021 +164,142,1129,公司31,2021 +104,93,696,公司32,2021 +162,116,1257,公司33,2021 +150,109,1124,公司34,2021 +81,106,971,公司35,2021 +143,126,1235,公司36,2021 +101,139,877,公司37,2021 +139,90,930,公司38,2021 +165,123,500,公司39,2021 +167,130,1124,公司40,2021 +83,162,1226,公司41,2021 +138,140,1164,公司42,2021 +108,138,429,公司43,2021 +147,161,774,公司44,2021 +192,180,1510,公司45,2021 +125,89,381,公司46,2021 +113,185,633,公司47,2021 +102,122,626,公司48,2021 +188,147,1222,公司49,2021 +107,67,989,公司0,2022 +56,120,1120,公司1,2022 +87,48,865,公司2,2022 +133,124,1611,公司3,2022 +70,106,881,公司4,2022 +81,60,894,公司5,2022 +83,131,1399,公司6,2022 +141,130,778,公司7,2022 +64,51,411,公司8,2022 +48,161,1339,公司9,2022 +125,62,1054,公司10,2022 +118,30,1056,公司11,2022 +158,146,842,公司12,2022 +80,149,901,公司13,2022 +65,139,988,公司14,2022 +130,121,958,公司15,2022 +140,120,580,公司16,2022 +133,134,436,公司17,2022 +107,103,125,公司18,2022 +118,162,898,公司19,2022 +152,122,1284,公司20,2022 +119,141,1211,公司21,2022 +121,123,830,公司22,2022 +95,131,730,公司23,2022 +151,67,244,公司24,2022 +75,162,1085,公司25,2022 +142,158,998,公司26,2022 +103,141,1290,公司27,2022 +112,157,771,公司28,2022 +120,69,327,公司29,2022 +123,163,846,公司30,2022 +167,143,1183,公司31,2022 +105,96,664,公司32,2022 +164,116,1281,公司33,2022 +152,112,1124,公司34,2022 +83,105,955,公司35,2022 +143,130,1287,公司36,2022 +105,142,869,公司37,2022 +139,89,902,公司38,2022 +167,126,496,公司39,2022 +166,129,1112,公司40,2022 +86,165,1245,公司41,2022 +137,140,1197,公司42,2022 +112,138,464,公司43,2022 +150,164,731,公司44,2022 +194,182,1557,公司45,2022 +125,93,378,公司46,2022 +114,187,649,公司47,2022 +105,122,593,公司48,2022 +192,148,1244,公司49,2022 +106,69,1036,公司0,2023 +59,119,1118,公司1,2023 +89,49,822,公司2,2023 +133,125,1594,公司3,2023 +72,106,860,公司4,2023 +81,60,858,公司5,2023 +82,130,1395,公司6,2023 +140,132,765,公司7,2023 +66,51,387,公司8,2023 +50,163,1392,公司9,2023 +125,60,1086,公司10,2023 +118,29,1052,公司11,2023 +159,146,816,公司12,2023 +83,147,945,公司13,2023 +66,137,1036,公司14,2023 +132,120,954,公司15,2023 +141,122,607,公司16,2023 +132,136,397,公司17,2023 +107,105,109,公司18,2023 +117,165,899,公司19,2023 +151,122,1322,公司20,2023 +120,143,1222,公司21,2023 +121,126,833,公司22,2023 +95,134,746,公司23,2023 +152,70,287,公司24,2023 +75,165,1106,公司25,2023 +141,160,1019,公司26,2023 +105,140,1274,公司27,2023 +115,159,763,公司28,2023 +121,68,363,公司29,2023 +124,162,836,公司30,2023 +166,144,1230,公司31,2023 +105,96,715,公司32,2023 +167,117,1329,公司33,2023 +154,115,1172,公司34,2023 +82,105,962,公司35,2023 +144,131,1274,公司36,2023 +107,144,869,公司37,2023 +140,89,937,公司38,2023 +167,129,542,公司39,2023 +169,132,1136,公司40,2023 +88,165,1232,公司41,2023 +141,142,1217,公司42,2023 +114,141,507,公司43,2023 +154,168,740,公司44,2023 +193,185,1528,公司45,2023 +128,94,341,公司46,2023 +114,191,652,公司47,2023 +108,123,647,公司48,2023 +192,147,1227,公司49,2023`, + input: '使用动态散点图帮我展示各公司年度收益率、净现金流和市值逐年的变化。' +}; + +export const dynamicRoseData = { + csv: `country,continent,GDP,year +美国,美洲,239270,1973 +印度,亚洲,22960,1973 +韩国,亚洲,7870,1973 +土耳其,亚洲,17240,1973 +印度尼西亚,亚洲,10980,1973 +沙特阿拉伯,亚洲,23760,1973 +泰国,亚洲,4130,1973 +菲律宾,亚洲,5660,1973 +马来西亚,亚洲,2780,1973 +英国,欧洲,114750,1973 +意大利,欧洲,107570,1973 +西班牙,欧洲,55990,1973 +荷兰,欧洲,36410,1973 +瑞士,欧洲,33920,1973 +芬兰,欧洲,9930,1973 +瑞典,欧洲,23020,1973 +比利时,欧洲,22280,1973 +挪威,欧洲,14540,1973 +美国,美洲,278390,1978 +印度,亚洲,29220,1978 +韩国,亚洲,13120,1978 +土耳其,亚洲,22620,1978 +印度尼西亚,亚洲,15390,1978 +沙特阿拉伯,亚洲,30080,1978 +泰国,亚洲,6000,1978 +菲律宾,亚洲,7480,1978 +马来西亚,亚洲,3900,1978 +英国,欧洲,121140,1978 +意大利,欧洲,126030,1978 +西班牙,欧洲,64080,1978 +荷兰,欧洲,41420,1978 +瑞士,欧洲,32360,1978 +芬兰,欧洲,10800,1978 +瑞典,欧洲,24650,1978 +比利时,欧洲,24970,1978 +挪威,欧洲,18160,1978 +美国,美洲,336520,1983 +印度,亚洲,34790,1983 +韩国,亚洲,18480,1983 +土耳其,亚洲,25000,1983 +印度尼西亚,亚洲,20870,1983 +沙特阿拉伯,亚洲,24130,1983 +泰国,亚洲,7840,1983 +菲律宾,亚洲,9070,1983 +马来西亚,亚洲,5510,1983 +英国,欧洲,129860.00000000001,1983 +意大利,欧洲,141500,1983 +西班牙,欧洲,67430,1983 +荷兰,欧洲,42830,1983 +瑞士,欧洲,35000,1983 +芬兰,欧洲,13130,1983 +瑞典,欧洲,26980,1983 +比利时,欧洲,26860,1983 +挪威,欧洲,20980,1983 +美国,美洲,427650,1988 +印度,亚洲,45400,1988 +韩国,亚洲,30960,1988 +土耳其,亚洲,33340,1988 +印度尼西亚,亚洲,26890,1988 +沙特阿拉伯,亚洲,25640,1988 +泰国,亚洲,11350,1988 +菲律宾,亚洲,8970,1988 +马来西亚,亚洲,6880,1988 +英国,欧洲,158980,1988 +意大利,欧洲,166060,1988 +西班牙,欧洲,80430,1988 +荷兰,欧洲,49070,1988 +瑞士,欧洲,39950,1988 +芬兰,欧洲,15720,1988 +瑞典,欧洲,31270,1988 +比利时,欧洲,30520,1988 +挪威,欧洲,24800,1988 +美国,美洲,488020,1993 +印度,亚洲,56680,1993 +韩国,亚洲,45790,1993 +土耳其,亚洲,41600,1993 +印度尼西亚,亚洲,37570,1993 +沙特阿拉伯,亚洲,34670,1993 +泰国,亚洲,17990,1993 +菲律宾,亚洲,10000,1993 +马来西亚,亚洲,10720,1993 +英国,欧洲,167180,1993 +意大利,欧洲,177750,1993 +西班牙,欧洲,89630,1993 +荷兰,欧洲,56320,1993 +瑞士,欧洲,42740,1993 +芬兰,欧洲,15040,1993 +瑞典,欧洲,30950,1993 +比利时,欧洲,33350,1993 +挪威,欧洲,28050,1993 +美国,美洲,521740,1998 +印度,亚洲,77270,1998 +韩国,亚洲,59600,1998 +土耳其,亚洲,50560,1998 +印度尼西亚,亚洲,42880,1998 +沙特阿拉伯,亚洲,37310,1998 +泰国,亚洲,19930,1998 +菲律宾,亚洲,12090,1998 +马来西亚,亚洲,14070,1998 +英国,欧洲,196370,1998 +意大利,欧洲,196130,1998 +西班牙,欧洲,104800,1998 +荷兰,欧洲,67570,1998 +瑞士,欧洲,46090,1998 +芬兰,欧洲,18940,1998 +瑞典,欧洲,36510,1998 +比利时,欧洲,37790,1998 +挪威,欧洲,34830,1998 +美国,美洲,545920,2003 +印度,亚洲,102500,2003 +韩国,亚洲,84420,2003 +土耳其,亚洲,55060,2003 +印度尼西亚,亚洲,51460,2003 +沙特阿拉伯,亚洲,40500,2003 +泰国,亚洲,25620,2003 +菲律宾,亚洲,14620,2003 +马来西亚,亚洲,18210,2003 +英国,欧洲,228640,2003 +意大利,欧洲,211730,2003 +西班牙,欧洲,126720,2003 +荷兰,欧洲,75950,2003 +瑞士,欧洲,49450,2003 +芬兰,欧洲,22260,2003 +瑞典,欧洲,42290,2003 +比利时,欧洲,42160,2003 +挪威,欧洲,38320,2003 +美国,美洲,578410,2008 +印度,亚洲,143180,2008 +韩国,亚洲,106280,2008 +土耳其,亚洲,74660,2008 +印度尼西亚,亚洲,67940,2008 +沙特阿拉伯,亚洲,51340,2008 +泰国,亚洲,31950,2008 +菲律宾,亚洲,19140,2008 +马来西亚,亚洲,24100,2008 +英国,欧洲,253560,2008 +意大利,欧洲,221500,2008 +西班牙,欧洲,147390,2008 +荷兰,欧洲,86710,2008 +瑞士,欧洲,57960,2008 +芬兰,欧洲,26270,2008 +瑞典,欧洲,48920,2008 +比利时,欧洲,47720,2008 +挪威,欧洲,43330,2008 +美国,美洲,589420,2013 +印度,亚洲,197840,2013 +韩国,亚洲,125320,2013 +土耳其,亚洲,97510,2013 +印度尼西亚,亚洲,89730,2013 +沙特阿拉伯,亚洲,62900,2013 +泰国,亚洲,37880,2013 +菲律宾,亚洲,24700,2013 +马来西亚,亚洲,29650,2013 +英国,欧洲,260510,2013 +意大利,欧洲,204670,2013 +西班牙,欧洲,134780,2013 +荷兰,欧洲,84970,2013 +瑞士,欧洲,61070,2013 +芬兰,欧洲,24970,2013 +瑞典,欧洲,51470,2013 +比利时,欧洲,49500,2013 +挪威,欧洲,44930,2013 +美国,美洲,617030,2018 +印度,亚洲,282220,2018 +韩国,亚洲,144970,2018 +土耳其,亚洲,124050,2018 +印度尼西亚,亚洲,114690,2018 +沙特阿拉伯,亚洲,70160,2018 +泰国,亚洲,44230,2018 +菲律宾,亚洲,34030,2018 +马来西亚,亚洲,38210,2018 +英国,欧洲,287930,2018 +意大利,欧洲,214100,2018 +西班牙,欧洲,153950,2018 +荷兰,欧洲,94810,2018 +瑞士,欧洲,67460,2018 +芬兰,欧洲,26920,2018 +瑞典,欧洲,58930,2018 +比利时,欧洲,53840,2018 +挪威,欧洲,48930,2018 +`, + input: '使用动态玫瑰图帮我展示各国GDP排名变化' +}; +export const dynamicRoseData1 = { + csv: `country,GDP,year +USA,37,2000 +Russia,32,2000 +China,28,2000 +Australia,16,2000 +Germany,13,2000 +France,13,2000 +Italy,13,2000 +Netherlands,12,2000 +Cuba,11,2000 +U.K.,11,2000 +USA,36,2004 +China,32,2004 +Russia,28,2004 +Australia,17,2004 +Japan,16,2004 +Germany,13,2004 +France,11,2004 +Italy,10,2004 +South Korea,9,2004 +U.K.,9,2004 +China,48,2008 +USA,36,2008 +Russia,24,2008 +U.K.,19,2008 +Germany,16,2008 +Australia,14,2008 +South Korea,13,2008 +Japan,9,2008 +Italy,8,2008 +France,7,2008 +USA,46,2012 +China,39,2012 +U.K.,29,2012 +Russia,19,2012 +South Korea,13,2012 +Germany,11,2012 +France,11,2012 +Australia,8,2012 +Italy,8,2012 +Hungary,8,2012 +USA,46,2016 +U.K.,27,2016 +China,26,2016 +Russia,19,2016 +Germany,17,2016 +Japan,12,2016 +France,10,2016 +South Korea,9,2016 +Italy,8,2016 +Australia,8,2016 +USA,39,2020 +China,38,2020 +Japan,27,2020 +U.K.,22,2020 +Russian Olympic Committee,20,2020 +Australia,17,2020 +Netherlands,10,2020 +France,10,2020 +Germany,10,2020 +Italy,10,2020`, + input: '使用动态玫瑰图帮我展示各国GDP排名变化' +}; + +export const sequenceData = { + csv: `playName,time,eventType +Deandre Ayton,-2209017943000,start +Deandre Ayton,-2209017476000,end +Deandre Ayton,-2209016998000,start +Deandre Ayton,-2209016057000,end +Deandre Ayton,-2209015551000,start +Deandre Ayton,-2209015127000,end +Deandre Ayton,-2209015116000,start +Deandre Ayton,-2209015063000,end +Devin Booker,-2209017943000,start +Devin Booker,-2209017293000,end +Devin Booker,-2209016892000,start +Devin Booker,-2209015783000,end +Devin Booker,-2209015380000,start +Devin Booker,-2209015063000,end +Kyle Lowry,-2209017943000,start +Kyle Lowry,-2209017476000,end +Kyle Lowry,-2209017223000,start +Kyle Lowry,-2209016762000,end +Kyle Lowry,-2209016614000,start +Kyle Lowry,-2209016057000,end +Kyle Lowry,-2209015884000,start +Kyle Lowry,-2209015063000,end +Jae Crowder,-2209017943000,start +Jae Crowder,-2209017293000,end +Jae Crowder,-2209016998000,start +Jae Crowder,-2209016139000,end +Jae Crowder,-2209015651000,start +Jae Crowder,-2209015063000,end +Aron Baynes,-2209017943000,start +Aron Baynes,-2209017476000,end +Aron Baynes,-2209016503000,start +Aron Baynes,-2209016166000,end +Pascal Siakam,-2209016892000,start +Pascal Siakam,-2209015788000,end +Pascal Siakam,-2209015528000,start +Pascal Siakam,-2209015063000,end +Pascal Siakam,-2209017943000,start +Pascal Siakam,-2209017223000,end +Mikal Bridges,-2209017943000,start +Mikal Bridges,-2209017650000,end +Mikal Bridges,-2209016998000,start +Mikal Bridges,-2209016762000,end +Mikal Bridges,-2209016503000,start +Mikal Bridges,-2209016003000,end +Mikal Bridges,-2209015783000,start +Mikal Bridges,-2209015063000,end +Chris Paul,-2209017943000,start +Chris Paul,-2209017476000,end +Chris Paul,-2209016998000,start +Chris Paul,-2209016057000,end +Chris Paul,-2209015551000,start +Chris Paul,-2209015063000,end +OG Anunoby,-2209017943000,start +OG Anunoby,-2209017476000,end +OG Anunoby,-2209017223000,start +OG Anunoby,-2209016614000,end +OG Anunoby,-2209016503000,start +OG Anunoby,-2209016021000,end +OG Anunoby,-2209015788000,start +OG Anunoby,-2209015063000,end +Fred VanVleet,-2209016892000,start +Fred VanVleet,-2209015884000,end +Fred VanVleet,-2209015651000,start +Fred VanVleet,-2209015063000,end +Fred VanVleet,-2209017943000,start +Fred VanVleet,-2209017223000,end +Cameron Johnson,-2209017650000,start +Cameron Johnson,-2209016998000,end +Cameron Johnson,-2209016762000,start +Cameron Johnson,-2209016503000,end +Cameron Johnson,-2209016139000,start +Cameron Johnson,-2209015651000,end +Yuta Watanabe,-2209017476000,start +Yuta Watanabe,-2209016892000,end +Yuta Watanabe,-2209016021000,start +Yuta Watanabe,-2209015651000,end +Dario Saric,-2209017476000,start +Dario Saric,-2209016998000,end +Dario Saric,-2209016057000,start +Dario Saric,-2209015551000,end +Dario Saric,-2209015127000,start +Dario Saric,-2209015116000,end +Chris Boucher,-2209017476000,start +Chris Boucher,-2209016998000,end +Chris Boucher,-2209015962000,start +Chris Boucher,-2209015528000,end +Norman Powell,-2209017476000,start +Norman Powell,-2209017119000,end +Norman Powell,-2209016762000,start +Norman Powell,-2209016547000,end +Norman Powell,-2209016057000,start +Norman Powell,-2209015063000,end +Cameron Payne,-2209017476000,start +Cameron Payne,-2209016998000,end +Cameron Payne,-2209016057000,start +Cameron Payne,-2209015551000,end +Langston Galloway,-2209017293000,start +Langston Galloway,-2209016998000,end +Jevon Carter,-2209017293000,start +Jevon Carter,-2209016892000,end +Jevon Carter,-2209016003000,start +Jevon Carter,-2209015380000,end +Malachi Flynn,-2209017119000,start +Malachi Flynn,-2209016892000,end +Alex Len,-2209016998000,start +Alex Len,-2209016503000,end +Alex Len,-2209016166000,start +Alex Len,-2209015962000,end +DeAndre' Bembry,-2209016547000,start +DeAndre' Bembry,-2209015783000,end`, + input: '使用时序图帮我展示各运动员在比赛中的行动记录。' +}; export const mockUserTextInput0 = { text: `快手消失了。快手上市后,市值一度超过2000亿美元,现在只剩200多亿美元。去年快手的营收破了千亿,公司也赚钱了,但市场不买账了。 滴滴也不见了。滴滴去年营收接近2000亿元,并首次实现年度盈利,不过滴滴从美股退市后,一直没在港股上市,所以没有市值参考。`, @@ -4855,3 +9955,15 @@ export const mockUserTextInput10 = { 如果你需要了解更多股市指数波动信息,可以访问财经新闻网站或咨询专业的投资顾问。` }; + +export const mockProgressData = { + csv: `年份,进度 + 2024年,0.56`, + input: '请使用环形进度图帮我展示今年的进度数据' +}; + +export const liquidData = { + csv: `进度 + 0.56`, + input: '请使用水波图展示进度数据' +}; diff --git a/packages/vmind/__tests__/browser/src/index.scss b/packages/vmind/__tests__/browser/src/index.scss index b85745d3..c022b4ff 100644 --- a/packages/vmind/__tests__/browser/src/index.scss +++ b/packages/vmind/__tests__/browser/src/index.scss @@ -1,3 +1,17 @@ #root { height: 100vh; } + +.flex-text-area { + display: flex; + flex: 1; + flex-direction: column; + + textarea { + flex: 1; + } +} + +.flex-1 { + flex: 1; +} \ No newline at end of file diff --git a/packages/vmind/__tests__/browser/src/pages/ChartGeneration/ChartGeneration.tsx b/packages/vmind/__tests__/browser/src/pages/ChartGeneration/ChartGeneration.tsx index b3aa3534..6f2eb8e7 100644 --- a/packages/vmind/__tests__/browser/src/pages/ChartGeneration/ChartGeneration.tsx +++ b/packages/vmind/__tests__/browser/src/pages/ChartGeneration/ChartGeneration.tsx @@ -19,7 +19,7 @@ export function ChartGenerationPage() { (false); const [outType, setOutType] = useState<'gif' | 'video' | ''>(''); @@ -94,7 +97,7 @@ export function ChartPreview(props: IPropsType) { ManualTicker, defaultTimeline, createCanvas - } as any); + }); const src = URL.createObjectURL(new Blob([data], { type: 'video/mp4' })); setSrc(src); setOutType('gif'); @@ -140,7 +143,7 @@ export function ChartPreview(props: IPropsType) { }, [props]); return ( -
+
= { [Model.GPT3_5]: { url: globalVariables.VITE_GPT_URL, key: globalVariables.VITE_GPT_KEY }, - [Model.GPT4]: { url: globalVariables.VITE_GPT_URL, key: globalVariables.VITE_GPT_KEY } + [Model.GPT4]: { url: globalVariables.VITE_GPT_URL, key: globalVariables.VITE_GPT_KEY }, + [Model.GPT_4o]: { url: globalVariables.VITE_GPT_URL, key: globalVariables.VITE_GPT_KEY }, + [Model.DEEPSEEK_R1]: { url: globalVariables.VITE_DEEPSEEK_URL, key: globalVariables.VITE_DEEPSEEK_KEY }, + [Model.DEEPSEEK_V3]: { url: globalVariables.VITE_DEEPSEEK_URL, key: globalVariables.VITE_DEEPSEEK_KEY }, + Custom: { url: globalVariables.VITE_CUSTOM_URL, key: globalVariables.VITE_CUSTOM_KEY } }; const OPENAI_API_URL = 'https://api.openai.com/v1/chat/completions'; +const MAP_CHART_BASEMAP = 'https://lf9-dp-fe-cms-tos.byteorg.com/obj/bit-cloud/geojson/world.json'; const specTemplateTest = false; export function DataInput(props: IPropsType) { const defaultDataKey = Object.keys(demoDataList)[3]; @@ -102,8 +143,8 @@ export function DataInput(props: IPropsType) { const [csv, setCsv] = useState(demoDataList[defaultDataKey].csv); //const [spec, setSpec] = useState(''); //const [time, setTime] = useState(1000); - const [model, setModel] = useState(Model.GPT3_5); - const [cache, setCache] = useState(true); + const [model, setModel] = useState(Model.GPT_4o); + const [useDataQuery, setUseDataQuery] = useState(false); const [showThoughts, setShowThoughts] = useState(false); const [visible, setVisible] = React.useState(false); const [url, setUrl] = React.useState(ModelConfigMap[model]?.url ?? OPENAI_API_URL); @@ -119,13 +160,14 @@ export function DataInput(props: IPropsType) { return new VMind({ url, model, - cache, showThoughts: showThoughts, headers: { + //must has Authorization: `Bearer ${openAIKey}` if use openai api + Authorization: `Bearer ${apiKey}`, 'api-key': apiKey } }); - }, [apiKey, cache, model, showThoughts, url]); + }, [apiKey, model, showThoughts, url]); const askGPT = useCallback(async () => { //setLoading(true); @@ -144,25 +186,26 @@ export function DataInput(props: IPropsType) { const finalDataset = specTemplateTest && model !== Model.CHART_ADVISOR ? undefined : dataset; const startTime = new Date().getTime(); - const chartGenerationRes = await vmind.generateChart(describe, finalFieldInfo, finalDataset, { - //enableDataQuery: false, + + // The map chart requires the user to register a base map named map in advance using VChart.registerMap + if (csv === demoDataList.Map.csv) { + const response = await fetch(MAP_CHART_BASEMAP); + const geoJson = await response.json(); + VChart.registerMap('map', geoJson); + } + const { spec, chartAdvistorRes, time } = await vmind.generateChart(describe, finalFieldInfo, finalDataset, { + enableDataQuery: useDataQuery, //chartTypeList: [ChartType.BarChart, ChartType.LineChart], // colorPalette: ArcoTheme.colorScheme, theme: 'light' }); const endTime = new Date().getTime(); - console.log(chartGenerationRes); - if (isArray(chartGenerationRes)) { - const resNew = chartGenerationRes.map(res => { - const { spec, cell } = res; - specTemplateTest && (spec.data = undefined); - const finalSpec = specTemplateTest ? vmind.fillSpecWithData(spec, dataset, cell) : spec; - return finalSpec; - }); - props.onSpecListGenerate(resNew); + console.log(spec); + if (chartAdvistorRes?.length) { + props.onSpecListGenerate( + chartAdvistorRes.map(v => (specTemplateTest ? vmind.fillSpecWithData(v.spec, dataset) : v.spec)) + ); } else { - const { spec, time, cell } = chartGenerationRes; - const finalSpec = specTemplateTest ? vmind.fillSpecWithData(spec, dataset) : spec; const costTime = endTime - startTime; @@ -170,7 +213,7 @@ export function DataInput(props: IPropsType) { } setLoading(false); - }, [vmind, csv, model, describe, props]); + }, [vmind, csv, model, describe, useDataQuery, props]); return (
@@ -180,7 +223,7 @@ export function DataInput(props: IPropsType) { marginBottom: 10 }} > -
+
@@ -224,11 +267,11 @@ export function DataInput(props: IPropsType) { placeholder={describe} value={describe} onChange={v => setDescribe(v)} - style={{ minHeight: 80, marginTop: 20, background: 'transparent', border: '1px solid #eee' }} + style={{ minHeight: 80, marginTop: 12, background: 'transparent', border: '1px solid #eee' }} />
- -
+ +

2 @@ -265,11 +308,11 @@ export function DataInput(props: IPropsType) { placeholder={csv} value={csv} onChange={v => setCsv(v)} - style={{ minHeight: 160, marginTop: 20, background: 'transparent', border: '1px solid #eee' }} + style={{ minHeight: 160, marginTop: 12, background: 'transparent', border: '1px solid #eee' }} />

- + {/*

@@ -286,7 +329,7 @@ export function DataInput(props: IPropsType) { style={{ marginBottom: 20, minHeight: 160, - marginTop: 20, + marginTop: 12, background: 'transparent', border: '1px solid #eee' }} @@ -294,17 +337,28 @@ export function DataInput(props: IPropsType) { setTime(v)}>

*/}
- setModel(v)}> - GPT-3.5 - GPT-4 - skylark2 pro - skylark2 pro-v1.2 + { + setModel(v); + if (ModelConfigMap[v]?.url && !ModelConfigMap[v].url.startsWith('Your')) { + setUrl(ModelConfigMap[v]?.url); + } + if (ModelConfigMap[v]?.key && !ModelConfigMap[v].key.startsWith('Your')) { + setApiKey(ModelConfigMap[v]?.key); + } + }} + > + GPT-4o chart-advisor + deepSeek-V3 + deepSeek-R1 + Your Custom Model
- setCache(v)}> - Enable Cache + setUseDataQuery(v)}> + Enable Data Query
diff --git a/packages/vmind/__tests__/browser/src/pages/ChartGeneration/index.scss b/packages/vmind/__tests__/browser/src/pages/ChartGeneration/index.scss deleted file mode 100644 index b67ce3a9..00000000 --- a/packages/vmind/__tests__/browser/src/pages/ChartGeneration/index.scss +++ /dev/null @@ -1,34 +0,0 @@ -.left-sider { - padding: 10px 15px; - height: 100%; - box-sizing: border-box; - display: flex; - flex-direction: column; - align-items: center; - overflow-y: auto; - .generate-botton { - //margin-top: auto; - } -} - -.right-chart { - padding: 20px; - height: 100%; - display: flex; - flex-direction: column; - box-sizing: border-box; - .right-chart-title{ - height: 60px; - display: flex; - flex-direction: row; - justify-content: flex-end; - } -} - -.arco-spin-children { - display: flex; - flex: 1; -} -.arco-modal { - width: unset; -} diff --git a/packages/vmind/__tests__/browser/src/pages/DataExtraction/ChartPreview.tsx b/packages/vmind/__tests__/browser/src/pages/DataExtraction/ChartPreview.tsx deleted file mode 100644 index 15e15d10..00000000 --- a/packages/vmind/__tests__/browser/src/pages/DataExtraction/ChartPreview.tsx +++ /dev/null @@ -1,36 +0,0 @@ -import React, { useState, useCallback, useEffect, useRef } from 'react'; -import './index.scss'; -import { Button, Input, Card, Space, Modal, Spin } from '@arco-design/web-react'; -import VChart from '@visactor/vchart'; -import { isNil } from '@visactor/vutils'; - -const TextArea = Input.TextArea; - -type IPropsType = { - dataset: any; - fieldInfo: any; - instruction: string; -}; - -export function ChartPreview(props: IPropsType) { - const [generating, setGenerating] = useState(false); - - return ( -
- - -
-

dataset:

- -

fieldInfo:

- -

instruction:

- - - {/*
{JSON.stringify(props.spec, null, 4)}
*/} -
-
-
-
- ); -} diff --git a/packages/vmind/__tests__/browser/src/pages/DataExtraction/DataExtraction.tsx b/packages/vmind/__tests__/browser/src/pages/DataExtraction/DataExtraction.tsx deleted file mode 100644 index 376ccd01..00000000 --- a/packages/vmind/__tests__/browser/src/pages/DataExtraction/DataExtraction.tsx +++ /dev/null @@ -1,38 +0,0 @@ -import React, { useState } from 'react'; -import { Layout } from '@arco-design/web-react'; -import { DataInput } from './DataInput'; -import { ChartPreview } from './ChartPreview'; -import type { SimpleFieldInfo, VMindDataset } from '../../../../../src/common/typings'; -const Sider = Layout.Sider; -const Content = Layout.Content; - -export function DataExtractionPage() { - const [dataset, setDataset] = useState([]); - const [fieldInfo, setFieldInfo] = useState([]); - - const [instructionByLLM, setInstructionByLLM] = useState(''); - - const [costTime, setCostTime] = useState(0); - return ( - - - { - const { dataset, fieldInfo, instruction } = option; - setDataset(dataset); - setInstructionByLLM(instruction); - setFieldInfo(fieldInfo); - }} - /> - - - - - - ); -} diff --git a/packages/vmind/__tests__/browser/src/pages/DataExtraction/DataExtractionPage.tsx b/packages/vmind/__tests__/browser/src/pages/DataExtraction/DataExtractionPage.tsx new file mode 100644 index 00000000..dd9c8d32 --- /dev/null +++ b/packages/vmind/__tests__/browser/src/pages/DataExtraction/DataExtractionPage.tsx @@ -0,0 +1,63 @@ +import React, { useState } from 'react'; +import { Card, Layout, Spin } from '@arco-design/web-react'; +import { DataInput } from './DataInput'; +import type { TableProps } from './DataTable'; +import { SimpleTable } from './DataTable'; +import { ChartPreview } from '../ChartGeneration/ChartPreview'; +const Sider = Layout.Sider; +const Content = Layout.Content; + +export function DataExtractionPage() { + const [dataExtractionRes, setDataExtractionRes] = useState([]); + const [spec, setSpec] = useState(''); + const [specList, setSpecList] = useState([]); + const [loading, setLoading] = useState(false); + const [timeCost, setTimeCost] = useState(0); + const [time, setTime] = useState<{ + totalTime: number; + frameArr: any[]; + }>(); + const handleOk = React.useCallback( + async (dataExtractCtx: any, spec: any, specList: any[], time: any, timeCost: number) => { + setLoading(false); + setTimeCost(timeCost); + // eslint-disable-next-line no-console + console.info(dataExtractCtx, spec); + setDataExtractionRes([dataExtractCtx]); + setSpecList(specList); + setTime(time); + setSpec(spec); + }, + [] + ); + + return ( + + + + + +
+ +
+ +

Data Table Result:

+ +
+
+
+
+
+ ); +} diff --git a/packages/vmind/__tests__/browser/src/pages/DataExtraction/DataInput.tsx b/packages/vmind/__tests__/browser/src/pages/DataExtraction/DataInput.tsx index a623db67..95f0b5be 100644 --- a/packages/vmind/__tests__/browser/src/pages/DataExtraction/DataInput.tsx +++ b/packages/vmind/__tests__/browser/src/pages/DataExtraction/DataInput.tsx @@ -1,21 +1,18 @@ /* eslint-disable no-console */ -import React, { useState, useCallback, useMemo } from 'react'; -import './index.scss'; -import { - Avatar, - Input, - Divider, - Button, - InputNumber, - Upload, - Message, - Select, - Radio, - Checkbox, - Modal -} from '@arco-design/web-react'; -import VMind, { ArcoTheme } from '../../../../../src/index'; -import { Model } from '../../../../../src/index'; +import React, { useState, useEffect } from 'react'; +import '../index.scss'; +import { Avatar, Input, Divider, Button, Select, Checkbox, Modal, Radio, Message } from '@arco-design/web-react'; +import VMind, { Model } from '../../../../../src/index'; + +const TextArea = Input.TextArea; +const Option = Select.Option; +const RadioGroup = Radio.Group; + +type IPropsType = { + onOk: (dataExtractCtx: any, spec: any, specList: any[], time: any, timeCost: number) => void; + setLoading: (loading: boolean) => void; +}; + import { mockUserTextInput0, mockUserTextInput1, @@ -29,58 +26,44 @@ import { mockUserTextInput8, mockUserTextInput9 } from '../../constants/mockData'; -import type { VMindDataset } from '../../../../../src/common/typings'; - -const TextArea = Input.TextArea; -const Option = Select.Option; -const RadioGroup = Radio.Group; - -type IPropsType = { - onDatasetGenerate: (payload: any) => void; -}; -const demoTextList: { [key: string]: any } = { - demo0: mockUserTextInput0, - demo: mockUserTextInput1, - demo2: mockUserTextInput2, - demo3: mockUserTextInput3, - demo4: mockUserTextInput4, - demo5: mockUserTextInput5, - demo6: mockUserTextInput6, - demo7: mockUserTextInput7, - demo8: mockUserTextInput8, - demo9: mockUserTextInput9, - demo10: mockUserTextInput10 -}; +const demoTextList: { text: string; input?: string }[] = [ + mockUserTextInput0, + mockUserTextInput1, + mockUserTextInput10, + mockUserTextInput2, + mockUserTextInput3, + mockUserTextInput4, + mockUserTextInput5, + mockUserTextInput6, + mockUserTextInput7, + mockUserTextInput8, + mockUserTextInput9 +]; const globalVariables = (import.meta as any).env; -const ModelConfigMap: any = { - [Model.SKYLARK2]: { url: globalVariables.VITE_SKYLARK_URL, key: globalVariables.VITE_SKYLARK_KEY }, - [Model.SKYLARK2_v1_2]: { url: globalVariables.VITE_SKYLARK_URL, key: globalVariables.VITE_SKYLARK_KEY }, - [Model.GPT3_5]: { url: globalVariables.VITE_GPT_URL, key: globalVariables.VITE_GPT_KEY }, - [Model.GPT4]: { url: globalVariables.VITE_GPT_URL, key: globalVariables.VITE_GPT_KEY } +const ModelConfigMap: Record = { + [Model.DOUBAO_PRO]: { url: globalVariables.VITE_DOUBAO_URL, key: globalVariables.VITE_DOUBAO_KEY }, + [Model.GPT4]: { url: globalVariables.VITE_GPT_URL, key: globalVariables.VITE_GPT_KEY }, + [Model.GPT_4o]: { url: globalVariables.VITE_GPT_URL, key: globalVariables.VITE_GPT_KEY }, + [Model.DEEPSEEK_R1]: { url: globalVariables.VITE_DEEPSEEK_URL, key: globalVariables.VITE_DEEPSEEK_KEY }, + [Model.DEEPSEEK_V3]: { url: globalVariables.VITE_DEEPSEEK_URL, key: globalVariables.VITE_DEEPSEEK_KEY }, + Custom: { url: globalVariables.VITE_CUSTOM_URL, key: globalVariables.VITE_CUSTOM_KEY } }; const OPENAI_API_URL = 'https://api.openai.com/v1/chat/completions'; export function DataInput(props: IPropsType) { - const { onDatasetGenerate } = props; - const defaultDataKeyForTextInput = Object.keys(demoTextList)[0]; - const [text, setText] = useState(demoTextList[defaultDataKeyForTextInput].text); - const [userInput, setUserInput] = useState(demoTextList[defaultDataKeyForTextInput].input); - const [dataset, setDataset] = useState([]); - const [instructionByLLM, setInstructionByLLM] = useState(''); + const defaultIndex = 0; + const [text, setText] = useState(demoTextList[defaultIndex].text); + const [userInput, setUserInput] = useState(demoTextList[defaultIndex].input || ''); - //const [spec, setSpec] = useState(''); - //const [time, setTime] = useState(1000); - const [model, setModel] = useState(Model.GPT3_5); - const [cache, setCache] = useState(true); + const [model, setModel] = useState(Model.GPT_4o); + const [useDataQuery, setUseDataQuery] = useState(false); const [showThoughts, setShowThoughts] = useState(false); const [visible, setVisible] = React.useState(false); const [url, setUrl] = React.useState(ModelConfigMap[model]?.url ?? OPENAI_API_URL); const [apiKey, setApiKey] = React.useState(ModelConfigMap[model]?.key); - const [loading, setLoading] = useState(false); - - const vmind: VMind = useMemo(() => { + const vmind: VMind = React.useMemo(() => { if (!url || !apiKey) { Message.error('Please set your LLM URL and API Key!!!'); return null as unknown as VMind; @@ -88,23 +71,31 @@ export function DataInput(props: IPropsType) { return new VMind({ url, model, - cache, showThoughts: showThoughts, headers: { - 'api-key': apiKey, - Authorization: `Bearer ${apiKey}` + //must has Authorization: `Bearer ${openAIKey}` if use openai api + Authorization: `Bearer ${apiKey}`, + 'api-key': apiKey } }); - }, [apiKey, cache, model, showThoughts, url]); - - const askGPTForGenerateData = useCallback(async () => { - const { instruction, dataset, fieldInfo } = await vmind.extractDataFromText(text, userInput); - - console.log(instruction, dataset, fieldInfo); - setDataset(dataset); - setInstructionByLLM(instruction); - onDatasetGenerate({ dataset, instruction, fieldInfo }); - }, [vmind, text, userInput, onDatasetGenerate]); + }, [apiKey, model, showThoughts, url]); + const handleQuery = React.useCallback(async () => { + props.setLoading(true); + const time1: any = new Date(); + const { dataTable, fieldInfo, spec, time, chartAdvistorRes } = await vmind.text2Chart(text, userInput, { + enableDataQuery: useDataQuery, + theme: 'light' + }); + const time2: any = new Date(); + const diff = (time2 - time1) / 1000; + props.onOk( + { dataTable, fieldInfo }, + spec, + (chartAdvistorRes || [])?.map(v => v.spec), + time, + diff + ); + }, [props, text, userInput, vmind]); return (
@@ -119,50 +110,52 @@ export function DataInput(props: IPropsType) {
-
+

- 0 + 1 Select Demo Data (optional)

-
+

- 1 + 2 Input your data in text format

-

spec:

- - {/*
{JSON.stringify(props.spec, null, 4)}
*/} + {props.insights.map((insight, index) => { + const { plainText = '' } = insight?.textContent || {}; + return

{plainText}

; + })}
) : null} diff --git a/packages/vmind/__tests__/browser/src/pages/Insight/DataInput.tsx b/packages/vmind/__tests__/browser/src/pages/Insight/DataInput.tsx index 8b89b781..d995cdc7 100644 --- a/packages/vmind/__tests__/browser/src/pages/Insight/DataInput.tsx +++ b/packages/vmind/__tests__/browser/src/pages/Insight/DataInput.tsx @@ -1,20 +1,8 @@ /* eslint-disable no-console */ -import React, { useState, useCallback, useMemo } from 'react'; -import './index.scss'; -import { - Avatar, - Input, - Divider, - Button, - InputNumber, - Upload, - Message, - Select, - Radio, - Checkbox, - Modal -} from '@arco-design/web-react'; -import VMind, { ArcoTheme } from '../../../../../src/index'; +import React, { useState, useCallback, useEffect } from 'react'; +import '../index.scss'; +import { Avatar, Input, Divider, Button, InputNumber, Select, Radio, Modal } from '@arco-design/web-react'; +import VMind from '../../../../../src/index'; import { Model } from '../../../../../src/index'; import { ChangePointChart, @@ -26,18 +14,19 @@ import { SalesLineChart, SalesLineChart2, SalesLineChart3, + SalesScatterChart, ScatterClusterChart, - ScatterPlotChart + ScatterPlotChart, + ScatterIrisData } from './data'; import JSON5 from 'json5'; -import { InsightLanguage } from '../../../../../src/applications/types'; const TextArea = Input.TextArea; const Option = Select.Option; const RadioGroup = Radio.Group; type IPropsType = { - onInsightGenerate: (insights: any, costTime: number) => void; + onInsightGenerate: (insights: any, spec: any, costTime: number) => void; onSpecChange: (spec: any) => void; }; const demoDataList: { [key: string]: any } = { @@ -51,68 +40,81 @@ const demoDataList: { [key: string]: any } = { ChangePointChart: ChangePointChart, MultiLineChart2: MultiLineChart2, ScatterPlotChart: ScatterPlotChart, - ScatterClusterChart: ScatterClusterChart + ScatterClusterChart: ScatterClusterChart, + ScatterSalesChart: SalesScatterChart, + ScatterIrisData: ScatterIrisData }; const globalVariables = (import.meta as any).env; -const ModelConfigMap: any = { - [Model.SKYLARK2]: { url: globalVariables.VITE_SKYLARK_URL, key: globalVariables.VITE_SKYLARK_KEY }, - [Model.SKYLARK2_v1_2]: { url: globalVariables.VITE_SKYLARK_URL, key: globalVariables.VITE_SKYLARK_KEY }, - [Model.GPT3_5]: { url: globalVariables.VITE_GPT_URL, key: globalVariables.VITE_GPT_KEY }, - [Model.GPT4]: { url: globalVariables.VITE_GPT_URL, key: globalVariables.VITE_GPT_KEY } +const ModelConfigMap: Record = { + [Model.DOUBAO_PRO]: { url: globalVariables.VITE_DOUBAO_URL, key: globalVariables.VITE_DOUBAO_KEY }, + [Model.GPT4]: { url: globalVariables.VITE_GPT_URL, key: globalVariables.VITE_GPT_KEY }, + [Model.GPT_4o]: { url: globalVariables.VITE_GPT_URL, key: globalVariables.VITE_GPT_KEY }, + [Model.DEEPSEEK_R1]: { url: globalVariables.VITE_DEEPSEEK_URL, key: globalVariables.VITE_DEEPSEEK_KEY }, + [Model.DEEPSEEK_V3]: { url: globalVariables.VITE_DEEPSEEK_URL, key: globalVariables.VITE_DEEPSEEK_KEY }, + Custom: { url: globalVariables.VITE_CUSTOM_URL, key: globalVariables.VITE_CUSTOM_KEY } }; const OPENAI_API_URL = 'https://api.openai.com/v1/chat/completions'; export function DataInput(props: IPropsType) { const defaultDataKey = Object.keys(demoDataList)[0]; const [spec, setSpec] = useState(JSON.stringify(demoDataList[defaultDataKey].spec)); - const [fieldInfo, setFieldInfo] = useState(demoDataList[defaultDataKey].fieldInfo); //const [spec, setSpec] = useState(''); //const [time, setTime] = useState(1000); - const [model, setModel] = useState(Model.GPT3_5); - const [cache, setCache] = useState(true); - const [showThoughts, setShowThoughts] = useState(false); + const [model, setModel] = useState(Model.GPT_4o); + const [numLimits, setNumLimits] = useState(8); const [visible, setVisible] = React.useState(false); const [url, setUrl] = React.useState(ModelConfigMap[model]?.url ?? OPENAI_API_URL); const [apiKey, setApiKey] = React.useState(ModelConfigMap[model]?.key); const [loading, setLoading] = useState(false); - const vmind: VMind = useMemo(() => { - if (!url || !apiKey) { - Message.error('Please set your LLM URL and API Key!!!'); - return null as unknown as VMind; - } - return new VMind({ + const vmind = React.useRef( + new VMind({ url, + headers: { + 'api-key': apiKey, + Authorization: `Bearer ${apiKey}` + }, model, - cache, - showThoughts: showThoughts, + maxTokens: 2048 + }) + ); + useEffect(() => { + vmind.current.updateOptions({ + url, headers: { - 'api-key': apiKey - } + 'api-key': apiKey, + Authorization: `Bearer ${apiKey}` + }, + model }); - }, [apiKey, cache, model, showThoughts, url]); + }, [url, model, apiKey]); const getInsight = useCallback(async () => { const startTime = new Date().getTime(); const specJson = JSON5.parse(spec); - const insights = await vmind.intelligentInsight(specJson, { - //insightNumberLimit: 2, - generateText: true - //language: InsightLanguage.EN + const { insights } = await vmind.current.getInsights(specJson, { + maxNum: numLimits, + detailMaxNum: [ + { types: ['outlier', 'pair_outlier', 'extreme_value', 'turning_point', 'majority_value'], maxNum: 3 }, + { types: ['abnormal_band'], maxNum: 3 }, + { types: ['correlation'], maxNum: 2 }, + { types: ['overall_trend'], maxNum: 2 }, + { types: ['abnormal_trend'], maxNum: 3 } + ] as any }); const endTime = new Date().getTime(); const costTime = endTime - startTime; - props.onInsightGenerate(insights, costTime); + props.onInsightGenerate(insights, specJson, costTime); console.log(costTime); console.log(insights); setLoading(false); - }, [props, spec, vmind]); + }, [numLimits, props, spec]); return (
@@ -143,7 +145,6 @@ export function DataInput(props: IPropsType) { const dataObj = demoDataList[v]; setSpec(JSON.stringify(dataObj.spec)); props.onSpecChange(dataObj.spec); - setFieldInfo(dataObj.fieldInfo); }} > {Object.keys(demoDataList).map(name => ( @@ -154,57 +155,62 @@ export function DataInput(props: IPropsType) {
-
-

- - 2 - - Input your spec -

- + {/*
{JSON.stringify(props.spec, null, 4)}
*/} +
+ ) : null} + + +
+ ); +} diff --git a/packages/vmind/__tests__/browser/src/pages/NewChartGeneration/DataInput.tsx b/packages/vmind/__tests__/browser/src/pages/NewChartGeneration/DataInput.tsx new file mode 100644 index 00000000..80eadff1 --- /dev/null +++ b/packages/vmind/__tests__/browser/src/pages/NewChartGeneration/DataInput.tsx @@ -0,0 +1,276 @@ +/* eslint-disable no-console */ +import React, { useState, useCallback, useMemo } from 'react'; +import '../index.scss'; +import { Avatar, Input, Divider, Button, Message, Select, Radio, Modal } from '@arco-design/web-react'; +import { chartGenerationMockData } from '../../constants/chartGeneratorData'; +import type { DataTable, FieldInfo } from '../../../../../src/index'; +import VMind from '../../../../../src/index'; +import { Model, AtomName, Schedule, LLMManage, DataType } from '../../../../../src/index'; + +const TextArea = Input.TextArea; +const Option = Select.Option; +const RadioGroup = Radio.Group; + +type IPropsType = { + onSpecGenerate: (spec: any, command: string, costTime: number) => void; + onSpecListGenerate?: any; +}; + +const globalVariables = (import.meta as any).env; +const ModelConfigMap: any = { + [Model.DOUBAO_PRO]: { url: globalVariables.VITE_DOUBAO_URL, key: globalVariables.VITE_DOUBAO_KEY }, + [Model.GPT_4o]: { url: globalVariables.VITE_GPT_URL, key: globalVariables.VITE_GPT_KEY } +}; +const OPENAI_API_URL = 'https://api.openai.com/v1/chat/completions'; + +const specTemplateTest = false; + +function dataTypeTransfer(dataType: string): DataType { + switch (dataType) { + case 'date': + case 'time': + return DataType.DATE; + case 'count': + return DataType.INT; + case 'numerical': + case 'ratio': + return DataType.FLOAT; + default: + return DataType.STRING; + } +} + +function transferFieldInfoInSimpleFieldInfo(fieldInfo: FieldInfo[]): FieldInfo[] { + return fieldInfo.map(item => ({ + fieldName: item.fieldName, + description: item.description, + type: dataTypeTransfer(item.type), + role: item.role + })); +} + +export function DataInput(props: IPropsType) { + const [dataTableIndex, setdataTableIndex] = useState(0); + const [query, setQuery] = useState(''); + const [model, setModel] = useState(Model.GPT_4o); + const mockData = React.useMemo(() => { + const llmData = chartGenerationMockData.find(item => item.llm === model) ?? chartGenerationMockData[0]; + return llmData.result; + }, [model]); + const [dataTable, setDataTable] = useState(mockData[dataTableIndex].context.dataTable as any); + const [fieldInfo, setFieldInfo] = useState(mockData[dataTableIndex].context.fieldInfo as any); + const [visible, setVisible] = React.useState(false); + const [url, setUrl] = React.useState(ModelConfigMap[model]?.url ?? OPENAI_API_URL); + const [apiKey, setApiKey] = React.useState(ModelConfigMap[model]?.key); + + const [loading, setLoading] = useState(false); + + React.useEffect(() => { + setDataTable(mockData[dataTableIndex].context.dataTable as any); + setFieldInfo(mockData[dataTableIndex].context.fieldInfo as any); + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [model]); + + const llm = React.useRef( + new LLMManage({ + url, + headers: { + 'api-key': apiKey, + Authorization: `Bearer ${apiKey}` + }, + model, + maxTokens: 2048 + }) + ); + const schedule = React.useRef>( + new Schedule([AtomName.DATA_CLEAN, AtomName.CHART_COMMAND], { + base: { llm: llm.current }, + chartCommand: { useDataTable: true } + }) + ); + + React.useEffect(() => { + llm.current.updateOptions({ + url, + headers: { + 'api-key': apiKey, + Authorization: `Bearer ${apiKey}` + }, + model + }); + }, [url, model, apiKey]); + + const vmind: VMind = useMemo(() => { + if (!url || !apiKey) { + Message.error('Please set your LLM URL and API Key!!!'); + return null as unknown as VMind; + } + return new VMind({ + url, + model, + headers: { + //must has Authorization: `Bearer ${openAIKey}` if use openai api + Authorization: `Bearer ${apiKey}`, + 'api-key': apiKey + } + }); + }, [apiKey, model, url]); + + const askGPT = useCallback(async () => { + let finalDataTable = specTemplateTest && model !== Model.CHART_ADVISOR ? undefined : dataTable; + let finalFieldInfo = fieldInfo; + const startTime = new Date().getTime(); + + setLoading(true); + schedule.current.setNewTask({ + ...mockData[dataTableIndex].context + }); + const ctx = await schedule.current.run(query); + const finalDescribe = ctx.command; + finalDataTable = ctx.dataTable; + finalFieldInfo = ctx.fieldInfo || fieldInfo; + const chartGenerationRes = finalDescribe + ? await vmind.generateChart(finalDescribe, transferFieldInfoInSimpleFieldInfo(finalFieldInfo), finalDataTable, { + theme: 'light' + }) + : { spec: null }; + const endTime = new Date().getTime(); + const { spec } = chartGenerationRes; + + const finalSpec = specTemplateTest ? vmind.fillSpecWithData(spec, dataTable) : spec; + + const costTime = endTime - startTime; + props.onSpecGenerate(finalSpec, finalDescribe, costTime); + + setLoading(false); + }, [model, dataTable, fieldInfo, mockData, dataTableIndex, query, vmind, props]); + + return ( +
+
+
+ +
+
+
+

+ + 0 + + Select Demo Data (optional) +

+ +
+
+

+ + 1 + + Query to adjust result? +

+ +