From 8b12b7ba6642642066e9ee59301279351503b466 Mon Sep 17 00:00:00 2001 From: tasshi / Masaharu Tashiro <33759872+tasshi-me@users.noreply.github.com> Date: Thu, 20 Jun 2024 19:32:43 +0900 Subject: [PATCH] docs: launch doc website (#788) --- .eslintignore | 2 + .prettierignore | 5 +- CONTRIBUTING.md | 54 +- README.md | 444 +-- package.json | 2 + pnpm-lock.yaml | 2433 +++++------------ website/.eslintrc.js | 1 + website/README.md | 40 +- ...7-01-publishing-cli-kintone-doc-website.md | 26 +- website/blog/authors.yml | 43 +- website/contributors.json | 66 + website/docs/community/contributing.md | 209 ++ website/docs/community/credits.mdx | 19 + website/docs/community/index.md | 7 - website/docs/community/index.mdx | 64 + website/docs/community/versioning.md | 38 + website/docs/guide/commands/_category_.json | 3 +- website/docs/guide/commands/record-delete.md | 99 +- website/docs/guide/commands/record-export.md | 65 +- website/docs/guide/commands/record-import.md | 109 +- website/docs/guide/formats/_category_.json | 9 + website/docs/guide/formats/csv.md | 106 + website/docs/guide/index.md | 7 - website/docs/guide/index.mdx | 153 ++ website/docs/guide/installation.md | 86 + website/docs/guide/options.md | 52 + website/docs/guide/troubleshooting.md | 15 +- website/docs/guide/tutorials/intro.md | 47 - .../tutorials/tutorial-basics/_category_.json | 8 - .../tutorial-basics/congratulations.md | 23 - .../tutorial-basics/create-a-blog-post.md | 34 - .../tutorial-basics/create-a-document.md | 57 - .../tutorial-basics/create-a-page.md | 43 - .../tutorial-basics/deploy-your-site.md | 31 - .../tutorial-basics/markdown-features.mdx | 152 - .../img/docsVersionDropdown.png | Bin 25427 -> 0 bytes .../tutorial-extras/img/localeDropdown.png | Bin 27841 -> 0 bytes .../tutorial-extras/manage-docs-versions.md | 55 - .../tutorial-extras/translate-your-site.md | 88 - .../errors}/_category_.json | 4 +- .../reference/errors/mismatch-encoding.md | 16 + .../docs/reference/errors/network-timeout.md | 19 + website/docs/reference/index.md | 6 +- .../reference/logging/LogConfigLevelTable.tsx | 84 + .../reference/logging/LogEventLevelTable.tsx | 70 + website/docs/reference/logging/index.mdx | 71 + .../docs/reference/logging/styles.module.scss | 34 + .../proxy}/_category_.json | 4 +- website/docs/reference/proxy/http-proxy.md | 36 + .../reference/proxy/img/http-tunneling.png | Bin 0 -> 22196 bytes website/docs/reference/proxy/proxy-authn.md | 48 + .../reference/record-delete/_category_.json | 7 + .../record-delete/delete-all-records.md | 142 + .../record-delete/delete-specified-records.md | 120 + .../docs/reference/record-delete/encoding.md | 28 + .../reference/record-export/_category_.json | 7 + .../reference/record-export/delimiters.md | 9 + .../docs/reference/record-export/encoding.md | 27 + .../record-export/errors-warnings.md | 14 + .../reference/record-export/fields-order.md | 72 + .../record-export/fields/attachment.md | 94 + .../reference/record-export/fields/index.md | 47 + .../reference/record-export/fields/table.md | 40 + .../fields/user-group-org-selection.md | 33 + .../reference/record-export/target-fields.md | 78 + .../reference/record-import/_category_.json | 7 + .../reference/record-import/delimiters.md | 17 + .../docs/reference/record-import/encoding.md | 28 + .../record-import/errors-warnings.md | 65 + .../record-import/fields/attachment.md | 36 + .../reference/record-import/fields/index.md | 61 + .../reference/record-import/fields/table.md | 97 + .../fields/user-group-org-selection.md | 33 + .../reference/record-import/target-fields.md | 108 + .../docs/reference/record-import/upsert.md | 53 + website/docusaurus.config.ts | 24 +- website/package.json | 25 +- website/scripts/update-credits.ts | 34 + .../src/components/HomepageFeatures/index.tsx | 24 +- .../credits/Author/img/cybozu_logo.png | Bin 0 -> 27114 bytes .../credits/Author/img/cybozu_logo_wide.png | Bin 0 -> 21012 bytes .../src/components/credits/Author/index.tsx | 18 + .../credits/Author/styles.module.scss | 8 + .../credits/ContributorsList/index.tsx | 24 + .../ContributorsList/styles.module.scss | 17 + website/src/css/{custom.css => custom.scss} | 14 +- website/src/pages/index.module.css | 3 + website/static/img/cli-kintone_social.png | Bin 0 -> 226454 bytes website/static/img/cli-kintone_social.svg | 29 + .../static/img/undraw_add_files_re_v09g.svg | 1 + .../img/undraw_add_files_re_v09g_light.svg | 1 + .../img/undraw_attached_file_re_0n9b.svg | 1 + .../undraw_attached_file_re_0n9b_light.svg | 1 + .../img/undraw_data_processing_yrrv.svg | 1 + .../img/undraw_data_processing_yrrv_light.svg | 1 + .../static/img/undraw_docusaurus_mountain.svg | 171 -- .../static/img/undraw_docusaurus_react.svg | 170 -- website/static/img/undraw_docusaurus_tree.svg | 40 - .../img/undraw_folder_files_re_2cbm.svg | 1 + .../img/undraw_folder_files_re_2cbm_light.svg | 1 + website/static/img/undraw_my_files_swob.svg | 1 + .../static/img/undraw_my_files_swob_light.svg | 1 + .../img/undraw_project_completed_re_jr7u.svg | 1 + ...undraw_project_completed_re_jr7u_light.svg | 1 + .../img/undraw_software_engineer_re_tnjc.svg | 1 + ...undraw_software_engineer_re_tnjc_light.svg | 1 + .../static/img/undraw_well_done_re_3hpo.svg | 1 + .../img/undraw_well_done_re_3hpo_light.svg | 1 + website/tsconfig.docusaurus.json | 9 + website/tsconfig.json | 13 +- website/tsconfig.scripts.json | 15 + 111 files changed, 3569 insertions(+), 3395 deletions(-) create mode 100644 website/contributors.json create mode 100644 website/docs/community/contributing.md create mode 100644 website/docs/community/credits.mdx delete mode 100644 website/docs/community/index.md create mode 100644 website/docs/community/index.mdx create mode 100644 website/docs/community/versioning.md create mode 100644 website/docs/guide/formats/_category_.json create mode 100644 website/docs/guide/formats/csv.md delete mode 100644 website/docs/guide/index.md create mode 100644 website/docs/guide/index.mdx create mode 100644 website/docs/guide/options.md delete mode 100644 website/docs/guide/tutorials/intro.md delete mode 100644 website/docs/guide/tutorials/tutorial-basics/_category_.json delete mode 100644 website/docs/guide/tutorials/tutorial-basics/congratulations.md delete mode 100644 website/docs/guide/tutorials/tutorial-basics/create-a-blog-post.md delete mode 100644 website/docs/guide/tutorials/tutorial-basics/create-a-document.md delete mode 100644 website/docs/guide/tutorials/tutorial-basics/create-a-page.md delete mode 100644 website/docs/guide/tutorials/tutorial-basics/deploy-your-site.md delete mode 100644 website/docs/guide/tutorials/tutorial-basics/markdown-features.mdx delete mode 100644 website/docs/guide/tutorials/tutorial-extras/img/docsVersionDropdown.png delete mode 100644 website/docs/guide/tutorials/tutorial-extras/img/localeDropdown.png delete mode 100644 website/docs/guide/tutorials/tutorial-extras/manage-docs-versions.md delete mode 100644 website/docs/guide/tutorials/tutorial-extras/translate-your-site.md rename website/docs/{guide/tutorials/tutorial-extras => reference/errors}/_category_.json (50%) create mode 100644 website/docs/reference/errors/mismatch-encoding.md create mode 100644 website/docs/reference/errors/network-timeout.md create mode 100644 website/docs/reference/logging/LogConfigLevelTable.tsx create mode 100644 website/docs/reference/logging/LogEventLevelTable.tsx create mode 100644 website/docs/reference/logging/index.mdx create mode 100644 website/docs/reference/logging/styles.module.scss rename website/docs/{guide/tutorials => reference/proxy}/_category_.json (52%) create mode 100644 website/docs/reference/proxy/http-proxy.md create mode 100644 website/docs/reference/proxy/img/http-tunneling.png create mode 100644 website/docs/reference/proxy/proxy-authn.md create mode 100644 website/docs/reference/record-delete/_category_.json create mode 100644 website/docs/reference/record-delete/delete-all-records.md create mode 100644 website/docs/reference/record-delete/delete-specified-records.md create mode 100644 website/docs/reference/record-delete/encoding.md create mode 100644 website/docs/reference/record-export/_category_.json create mode 100644 website/docs/reference/record-export/delimiters.md create mode 100644 website/docs/reference/record-export/encoding.md create mode 100644 website/docs/reference/record-export/errors-warnings.md create mode 100644 website/docs/reference/record-export/fields-order.md create mode 100644 website/docs/reference/record-export/fields/attachment.md create mode 100644 website/docs/reference/record-export/fields/index.md create mode 100644 website/docs/reference/record-export/fields/table.md create mode 100644 website/docs/reference/record-export/fields/user-group-org-selection.md create mode 100644 website/docs/reference/record-export/target-fields.md create mode 100644 website/docs/reference/record-import/_category_.json create mode 100644 website/docs/reference/record-import/delimiters.md create mode 100644 website/docs/reference/record-import/encoding.md create mode 100644 website/docs/reference/record-import/errors-warnings.md create mode 100644 website/docs/reference/record-import/fields/attachment.md create mode 100644 website/docs/reference/record-import/fields/index.md create mode 100644 website/docs/reference/record-import/fields/table.md create mode 100644 website/docs/reference/record-import/fields/user-group-org-selection.md create mode 100644 website/docs/reference/record-import/target-fields.md create mode 100644 website/docs/reference/record-import/upsert.md create mode 100644 website/scripts/update-credits.ts create mode 100644 website/src/components/credits/Author/img/cybozu_logo.png create mode 100644 website/src/components/credits/Author/img/cybozu_logo_wide.png create mode 100644 website/src/components/credits/Author/index.tsx create mode 100644 website/src/components/credits/Author/styles.module.scss create mode 100644 website/src/components/credits/ContributorsList/index.tsx create mode 100644 website/src/components/credits/ContributorsList/styles.module.scss rename website/src/css/{custom.css => custom.scss} (81%) create mode 100644 website/static/img/cli-kintone_social.png create mode 100644 website/static/img/cli-kintone_social.svg create mode 100644 website/static/img/undraw_add_files_re_v09g.svg create mode 100644 website/static/img/undraw_add_files_re_v09g_light.svg create mode 100644 website/static/img/undraw_attached_file_re_0n9b.svg create mode 100644 website/static/img/undraw_attached_file_re_0n9b_light.svg create mode 100644 website/static/img/undraw_data_processing_yrrv.svg create mode 100644 website/static/img/undraw_data_processing_yrrv_light.svg delete mode 100644 website/static/img/undraw_docusaurus_mountain.svg delete mode 100644 website/static/img/undraw_docusaurus_react.svg delete mode 100644 website/static/img/undraw_docusaurus_tree.svg create mode 100644 website/static/img/undraw_folder_files_re_2cbm.svg create mode 100644 website/static/img/undraw_folder_files_re_2cbm_light.svg create mode 100644 website/static/img/undraw_my_files_swob.svg create mode 100644 website/static/img/undraw_my_files_swob_light.svg create mode 100644 website/static/img/undraw_project_completed_re_jr7u.svg create mode 100644 website/static/img/undraw_project_completed_re_jr7u_light.svg create mode 100644 website/static/img/undraw_software_engineer_re_tnjc.svg create mode 100644 website/static/img/undraw_software_engineer_re_tnjc_light.svg create mode 100644 website/static/img/undraw_well_done_re_3hpo.svg create mode 100644 website/static/img/undraw_well_done_re_3hpo_light.svg create mode 100644 website/tsconfig.docusaurus.json create mode 100644 website/tsconfig.scripts.json diff --git a/.eslintignore b/.eslintignore index 0fc7b34b7b..1ac5abfb8b 100644 --- a/.eslintignore +++ b/.eslintignore @@ -8,3 +8,5 @@ allure-results # website package website/.docusaurus website/build +## Auto generated file +website/contributors.json diff --git a/.prettierignore b/.prettierignore index 08aa789e9e..d822fcc87e 100644 --- a/.prettierignore +++ b/.prettierignore @@ -9,7 +9,7 @@ allure-results *.html # Ignore tsconfig file -tsconfig.json +/tsconfig.json # Ignore auto generated files pnpm-lock.yaml @@ -19,8 +19,7 @@ CHANGELOG.md ## Ignore artifacts: website/.docusaurus website/build -## Ignore tsconfig file -website/tsconfig.json ## Ignore auto generated files website/pnpm-lock.yaml website/CHANGELOG.md +website/contributors.json diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index ddce3a24ba..49e49518f2 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,55 +1,3 @@ # Contributing Guide -## For Contributors - -Contributions are always welcome! -If you have discovered a bug or have a feature request, [please create an issue on GitHub](https://github.com/kintone/cli-kintone/issues/new/choose). -Pull requests are also welcome when you find trivial bugs or typos. - -We use English for all commit messages, code comments, issues, pull requests. -For Japanese speakers, we have another repository: https://github.com/kintone/js-sdk-ja. -Please file an issue there. - -(Translated in Japanese) -本リポジトリではコミットメッセージやコードコメント、issues、pull requests において英語を使用しています。 -日本語話者向けに専用のリポジトリも用意しています: https://github.com/kintone/js-sdk-ja -こちらに issue をご登録ください。 - -### Setup - -```sh -% cd cli-kintone -% yarn install -``` - -### Develop - -```sh -% cd cli-kintone -% yarn start -``` - -### Test - -Before run `lint` and `test` scripts, you have to run `build`. - -```sh -% cd cli-kintone -% yarn build -% yarn test -% yarn lint -``` - -## For Maintainers - -### Merge - -After you have approved a PR, please merge the PR using **Squash and merge** with [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) format. - -```sh -feat: support importing CSV -``` - -### Release - -TODO: Create release pipeline and write document +See [Contributing](https://cli.kintone.dev/community/contributing) page. diff --git a/README.md b/README.md index 9267bf1703..9d3973ad09 100644 --- a/README.md +++ b/README.md @@ -4,449 +4,11 @@ A CLI tool to import/export records to/from [Kintone](https://www.kintone.com/). ---- +## Documentation -- [Installation](#installation) -- [Usage](#usage) - - [import](#import) - - [Options](#options) - - [export](#export) - - [Options](#options-1) - - [delete](#delete) - - [Options](#options-2) -- [Supported file formats](#supported-file-formats) - - [CSV format](#csv-format) -- [Command completion](#command-completion) -- [LICENSE](#license) +See our documentation website. -## Installation - -1. Jump to the [Releases](https://github.com/kintone/cli-kintone/releases) page. -2. Download a ZIP file for your platform from "Assets". - - Windows: `cli-kintone-win.zip` - - Linux: `cli-kintone-linux.zip` - - macOS: `cli-kintone-macos.zip` -3. Extract the downloaded zip file -4. Run the extracted file as follows and confirm that the command is available. - - Windows: `cli-kintone.exe` on command prompt - - Linux & macOS: `./cli-kintone` on terminal - -### Notes - -To run the `cli-kintone` command from any directory, do one of the following: - -- Run the command while specifying the absolute path -- Set the PATH environment -- Move the `cli-kintone` file to the `/usr/local/bin` directory (for Linux & macOS) - -## Usage - -### import - -The `import` command allows you to import record data into a specified Kintone app. - -```shell -$ cli-kintone record import \ ---base-url https://${yourDomain} \ ---api-token ${apiToken} \ ---app ${kintoneAppId} \ ---file-path ${filepath} -``` - -#### Options - -Some options use environment variables starting with `KINTONE_` as default values. - -```text -Options: - --version Show version number [boolean] - --help Show help [boolean] - --base-url Kintone Base Url - [string] [required] [default: KINTONE_BASE_URL] - -u, --username Kintone Username - [string] [default: KINTONE_USERNAME] - -p, --password Kintone Password - [string] [default: KINTONE_PASSWORD] - --api-token App's API token[array] [default: KINTONE_API_TOKEN] - --basic-auth-username Kintone Basic Auth Username - [string] [default: KINTONE_BASIC_AUTH_USERNAME] - --basic-auth-password Kintone Basic Auth Password - [string] [default: KINTONE_BASIC_AUTH_PASSWORD] - --app The ID of the app [string] [required] - --guest-space-id The ID of guest space - [string] [default: KINTONE_GUEST_SPACE_ID] - --attachments-dir Attachment file directory [string] - --file-path The path to the source file. - The file extension should be ".csv" - [string] [required] - --encoding Character encoding - [choices: "utf8", "sjis"] [default: "utf8"] - --update-key The key to Bulk Update [string] - --fields The fields to be imported in comma-separated - [string] - --pfx-file-path The path to the client certificate file [string] - --pfx-file-password The password of the client certificate file [string] - --proxy The URL of a proxy server - [string] [default: HTTPS_PROXY] - --log-level The log config level - [choices: "debug", "info", "warn", "error", "fatal", "none"] [default: "info"] - --verbose Set the log config level to "debug" [boolean] -``` - -##### Notes - -- A field within a Table cannot be specified to the `fields` option. - -#### Import Attachment field - -The `--attachments-dir` option is required if records contain an Attachment field. - -- The local file path in the record is treated as a relative path from `--attachments-dir`. - - Upload the file there. -- The file names on Kintone will be the same as the local. - -#### Upsert records - -When the `--update-key` option is set, the option value is used as "Key to Bulk Update" to import (upsert) records. - -"Upsert" means updating and/or inserting records simultaneously. Data containing keys that match existing record values are used to update those records accordingly, and the remaining data is added to the specified app as new records. - -The field specified as "Key to Bulk Update" must meet one of the following requirements: - -- Be the Record Number field. -- Be one of the following field types with the "Prohibit duplicate values" option enabled: - - Text - - Number - -##### Notes - -- When the Record Number field is specified as the "Key to Bulk Update", the field's value may have the target app's code. -- A Record Number field is only evaluated for records to be updated when it is specified as "Key to Bulk Update". -- The following fields in records to be updated are ignored. - - Created by - - Created datetime - - Updated by - - Updated datetime - -### export - -The `export` command allows you to export record data from a specified Kintone app. - -```shell -$ cli-kintone record export \ ---base-url https://${yourDomain} \ ---api-token ${apiToken} \ ---app ${kintoneAppId} \ -> ${filepath} -``` - -#### Options - -Some options use environment variables starting with `KINTONE_` as default values. - -```text -Options: - --version Show version number [boolean] - --help Show help [boolean] - --base-url Kintone Base Url - [string] [required] [default: KINTONE_BASE_URL] - -u, --username Kintone Username - [string] [default: KINTONE_USERNAME] - -p, --password Kintone Password - [string] [default: KINTONE_PASSWORD] - --api-token App's API token[array] [default: KINTONE_API_TOKEN] - --basic-auth-username Kintone Basic Auth Username - [string] [default: KINTONE_BASIC_AUTH_USERNAME] - --basic-auth-password Kintone Basic Auth Password - [string] [default: KINTONE_BASIC_AUTH_PASSWORD] - --app The ID of the app [string] [required] - --guest-space-id The ID of guest space - [string] [default: KINTONE_GUEST_SPACE_ID] - --attachments-dir Attachment file directory [string] - --encoding Character encoding - [choices: "utf8", "sjis"] [default: "utf8"] - -c, --condition The query string [string] - --order-by The sort order as a query [string] - --fields The fields to be exported in comma-separated - [string] - --pfx-file-path The path to the client certificate file [string] - --pfx-file-password The password of the client certificate file [string] - --proxy The URL of a proxy server - [string] [default: HTTPS_PROXY] - --log-level The log config level - [choices: "debug", "info", "warn", "error", "fatal", "none"] [default: "info"] - --verbose Set the log config level to "debug" [boolean] -``` - -##### Notes - -- A field within a Table cannot be specified to the `fields` option. - -#### `--condition` and `--order-by` options - -You can filter and reorder records with `--condition` and `--order-by` options. - -These options are passed to `getAllRecords()` of [@kintone/rest-api-client](https://github.com/kintone/js-sdk/tree/master/packages/rest-api-client#readme). - -Refer to the [`getAllRecords()`](https://github.com/kintone/js-sdk/blob/master/packages/rest-api-client/docs/record.md#getallrecords) document for more information. - -#### Download attachment files - -If the `--attachments-dir` option is set, attachment files will be downloaded to the local directory. - -- The file path is `/-/`. - - For attachment fields in a Table, the file path is `/--/`. -- For files with the same name in the same Attachment field, the files will be renamed to ` ().`. - -### delete - -The `delete` command allows you to delete records of a specified Kintone app. - -**Notice** - -- This command only supports API token authentication. -- This action cannot be rollback. - -```shell -$ cli-kintone record delete \ ---base-url https://${yourDomain} \ ---api-token ${apiToken} \ ---app ${kintoneAppId} \ ---file-path ${filepath} -``` - -You can bypass the confirmation step by using the options `--yes` or `-y`. - -#### Options - -Some options use environment variables starting with `KINTONE_` as default values. - -```text -Options: - --version Show version number [boolean] - --help Show help [boolean] - --base-url Kintone Base Url - [string] [required] [default: KINTONE_BASE_URL] - --api-token App's API token[array] [default: KINTONE_API_TOKEN] - --basic-auth-username Kintone Basic Auth Username - [string] [default: KINTONE_BASIC_AUTH_USERNAME] - --basic-auth-password Kintone Basic Auth Password - [string] [default: KINTONE_BASIC_AUTH_PASSWORD] - --app The ID of the app [string] [required] - --file-path The path to the source file. - The file extension should be ".csv" [string] - --encoding Character encoding - [choices: "utf8", "sjis"] [default: "utf8"] - --guest-space-id The ID of guest space - [string] [default: KINTONE_GUEST_SPACE_ID] - --pfx-file-path The path to the client certificate file [string] - --pfx-file-password The password of the client certificate file [string] - --proxy The URL of a proxy server - [string] [default: HTTPS_PROXY] - -y, --yes Force to delete records [boolean] - --log-level The log config level - [choices: "debug", "info", "warn", "error", "fatal", "none"] [default: "info"] - --verbose Set the log config level to "debug" [boolean] -``` - -#### Delete all records - -All records of the target app will be deleted if the option `--file-path` is not specified. - -#### Delete specific records - -Specific records can be deleted by specifying the option `--file-path`. - -The value of the `--file-path` must be the path to the CSV file and should meet the following requirements: - -- The file extension should be ".csv". -- The header row of the record number column must be the record number field code which is defined in the target app. -- If using the app code in the record number: - - Every row should contain the same app code (not mixed). - - The app code is equal to the target app's one. - -## Proxy Authentication - -cli-kintone supports proxy authentication via proxy url by the following format: - -``` -http://username:password@domain:port -``` - -## Supported file formats - -cli-kintone supports the following formats for both import & export commands. - -- CSV - -When importing, it automatically determines the format by the file extension (specified by the `--file-path` option). - -More information regarding the formats is as follows: - -### CSV format - -The first row (header row) lists the **field codes** of each field. -Each subsequent row corresponds to a record. Each value represents the value of the field. - -```csv -"Record_number","FieldCode1","FieldCode2" -"1","foo","bar" -"2","baz","qux" -``` - -Here are considerations for some field types: - -#### Text area - -If the value contains a line break, enclose the value in double quotes. - -```csv -"TextAreaField" -"multi -line -text" -``` - -#### Check box, Multi-choice - -Specify multiple values by separating them with line breaks (\n). - -```csv -"CheckboxField" -"value1 -value2" -``` - -#### User Selection, Department Selection, Group Selection - -If multiple values are selected, they will be separated with a line break (\n) (equivalent to `value.code` in REST API). - -```csv -"userSelectionField","departmentSelectionField","groupSelectionField" -"John -Bob","Development Div","Administrators" -``` - -#### Created by, Updated by - -Specify the user's login name (equivalent to `value.code` in REST API). - -```csv -"Created_by" -"John" -``` - -#### Attachment - -Files in the same Attachment field (in the same Table row) are separated with line breaks (\n). - -```csv -"file" -"file-9/test.txt -file-9/test (1).txt" -``` - -```csv -"fileInTable" -"fileInTable-1-0/test.txt -fileInTable-1-0/test (1).txt" -``` - -When exporting, only the file name will be outputted if the `--attachments-dir` option is NOT set. - -```csv -"fileFieldCode" -"test.txt -test.txt" -``` - -If running on Windows environment and the filename contains Windows prohibited characters, replace them with `_` . - -#### Table - -- The row where a record begins has a PRIMARY_MARK(`*`) on the "`*`" field. -- The data of fields outside the Table are specified in the row with PRIMARY_MARK(`*`). - - The data of fields outside the Table in other rows will be ignored. -- The data of fields inside the Table are specified with one or more rows. - - If there is no data about the Table in the row, the row is ignored. - -```csv -"*","Text","Table","TextInTable" -"*","first","","alice" -,"first","","bob" -``` - -with multiple Table fields - -```csv -"*","Text","Table","TextInTable","Table_1","NumberInTable" -"*","first","","alice",, -,"first","","bob",, -,"first",,,"","10" -,"first",,,"","20" -``` - -## Command completion - -cli-kintone provides a command-completion feature that lets you use the **Tab** key to complete a partially entered command. - -cli-kintone command completion is now supported for `bash` and `zsh` shells. - -### zsh - -To enable it in `zsh`, `cd` to the directory that contains the cli-kintone executable file, then run the following commands: - -```shell -# 1. Set PATH environment variables -echo "export PATH=$(pwd):\$PATH" >> ~/.zshrc - -# 2. Create and configure a directory to store the completion scripts -mkdir -p ~/.zsh_completion.d/ -echo 'fpath=(~/.zsh_completion.d $fpath)' >> ~/.zshrc - -# 3. Enable bash-autocomplete feature -echo 'autoload bashcompinit && bashcompinit' >> ~/.zshrc -echo 'autoload -Uz compinit && compinit' >> ~/.zshrc - -# 4. Create command completion script -./cli-kintone completion >> ~/.zsh_completion.d/_cli-kintone - -# 5. Reload zsh -source ~/.zshrc -``` - -### bash - -To enable it in `bash`, `cd` to the directory that contains the cli-kintone executable file, then run the following commands: - -```shell -# 1. Create command completion script -mkdir -p ~/.bash_completion.d -./cli-kintone completion >> ~/.bash_completion.d/_cli-kintone - -# 2. Add command completion script to bash - -# For login shell -echo "export PATH=$(pwd):\$PATH" >> ~/.bash_profile -echo 'source ~/.bash_completion.d/_cli-kintone' >> ~/.bash_profile -source ~/.bash_profile - -# For non-login shell -echo "export PATH=$(pwd):\$PATH" >> ~/.bashrc -echo 'source ~/.bash_completion.d/_cli-kintone' >> ~/.bashrc -source ~/.bashrc -``` - -### For Windows OS - -For Windows OS, you can use cli-kintone command completion via `bash` on [WSL2](https://learn.microsoft.com/en-us/windows/wsl/install) - -Steps: - -1. Install Linux on Windows with WSL. Ref: [WSL2](https://learn.microsoft.com/en-us/windows/wsl/install). -2. Open a new Linux Terminal. -3. Download and extract executables from the [Linux package](https://github.com/kintone/cli-kintone/releases). -4. Run the same commands as the [bash section](#bash). +https://cli.kintone.dev/ ## LICENSE diff --git a/package.json b/package.json index 5fe5ccbbb2..90c71ab4eb 100644 --- a/package.json +++ b/package.json @@ -39,6 +39,8 @@ "clean:test": "rimraf allure-results allure-report", "doc:start": "pnpm --filter ./website start", "doc:build": "pnpm --filter ./website build", + "doc:serve": "pnpm --filter ./website serve", + "doc:update-credits": "pnpm --filter ./website update-credits", "update-contributors": "ts-node ./scripts/update-contributors.ts" }, "repository": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0265823738..e105871d09 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -131,17 +131,23 @@ importers: website: dependencies: '@docusaurus/core': - specifier: 3.3.2 - version: 3.3.2(@docusaurus/types@3.3.2)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) + specifier: 3.4.0 + version: 3.4.0(@docusaurus/types@3.4.0)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) '@docusaurus/preset-classic': - specifier: 3.3.2 - version: 3.3.2(@algolia/client-search@4.23.3)(@types/react@18.3.2)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(search-insights@2.13.0)(typescript@5.4.5) + specifier: 3.4.0 + version: 3.4.0(@algolia/client-search@4.23.3)(@types/react@18.3.3)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(search-insights@2.14.0)(typescript@5.4.5) + '@docusaurus/theme-common': + specifier: ^3.4.0 + version: 3.4.0(@docusaurus/types@3.4.0)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) '@mdx-js/react': specifier: ^3.0.1 - version: 3.0.1(@types/react@18.3.2)(react@18.3.1) + version: 3.0.1(@types/react@18.3.3)(react@18.3.1) clsx: specifier: ^2.1.1 version: 2.1.1 + docusaurus-plugin-sass: + specifier: ^0.2.5 + version: 0.2.5(@docusaurus/core@3.4.0)(sass@1.77.5)(webpack@5.92.0) prism-react-renderer: specifier: ^2.3.1 version: 2.3.1(react@18.3.1) @@ -151,22 +157,34 @@ importers: react-dom: specifier: ^18.3.1 version: 18.3.1(react@18.3.1) + sass: + specifier: ^1.77.5 + version: 1.77.5 devDependencies: '@docusaurus/eslint-plugin': - specifier: ^3.3.2 - version: 3.3.2(eslint@8.57.0)(typescript@5.4.5) + specifier: ^3.4.0 + version: 3.4.0(eslint@8.57.0)(typescript@5.4.5) '@docusaurus/module-type-aliases': - specifier: 3.3.2 - version: 3.3.2(react-dom@18.3.1)(react@18.3.1) + specifier: 3.4.0 + version: 3.4.0(react-dom@18.3.1)(react@18.3.1) '@docusaurus/plugin-content-docs': - specifier: ^3.3.2 - version: 3.3.2(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) + specifier: ^3.4.0 + version: 3.4.0(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) '@docusaurus/tsconfig': - specifier: 3.3.2 - version: 3.3.2 + specifier: 3.4.0 + version: 3.4.0 '@docusaurus/types': - specifier: 3.3.2 - version: 3.3.2(react-dom@18.3.1)(react@18.3.1) + specifier: 3.4.0 + version: 3.4.0(react-dom@18.3.1)(react@18.3.1) + '@octokit/rest': + specifier: ^20.1.1 + version: 20.1.1 + '@types/node': + specifier: ^18.19.34 + version: 18.19.37 + ts-node: + specifier: ^10.9.2 + version: 10.9.2(@types/node@18.19.37)(typescript@5.4.5) typescript: specifier: ~5.4.5 version: 5.4.5 @@ -191,10 +209,10 @@ packages: undici: 6.19.0 dev: true - /@algolia/autocomplete-core@1.9.3(@algolia/client-search@4.23.3)(algoliasearch@4.23.3)(search-insights@2.13.0): + /@algolia/autocomplete-core@1.9.3(@algolia/client-search@4.23.3)(algoliasearch@4.23.3)(search-insights@2.14.0): resolution: {integrity: sha512-009HdfugtGCdC4JdXUbVJClA0q0zh24yyePn+KUGk3rP7j8FEe/m5Yo/z65gn6nP/cM39PxpzqKrL7A6fP6PPw==} dependencies: - '@algolia/autocomplete-plugin-algolia-insights': 1.9.3(@algolia/client-search@4.23.3)(algoliasearch@4.23.3)(search-insights@2.13.0) + '@algolia/autocomplete-plugin-algolia-insights': 1.9.3(@algolia/client-search@4.23.3)(algoliasearch@4.23.3)(search-insights@2.14.0) '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.23.3)(algoliasearch@4.23.3) transitivePeerDependencies: - '@algolia/client-search' @@ -202,13 +220,13 @@ packages: - search-insights dev: false - /@algolia/autocomplete-plugin-algolia-insights@1.9.3(@algolia/client-search@4.23.3)(algoliasearch@4.23.3)(search-insights@2.13.0): + /@algolia/autocomplete-plugin-algolia-insights@1.9.3(@algolia/client-search@4.23.3)(algoliasearch@4.23.3)(search-insights@2.14.0): resolution: {integrity: sha512-a/yTUkcO/Vyy+JffmAnTWbr4/90cLzw+CC3bRbhnULr/EM0fGNvM13oQQ14f2moLMcVDyAx/leczLlAOovhSZg==} peerDependencies: search-insights: '>= 1 < 3' dependencies: '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.23.3)(algoliasearch@4.23.3) - search-insights: 2.13.0 + search-insights: 2.14.0 transitivePeerDependencies: - '@algolia/client-search' - algoliasearch @@ -345,8 +363,8 @@ packages: '@algolia/requester-common': 4.23.3 dev: false - /@ampproject/remapping@2.2.1: - resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==} + /@ampproject/remapping@2.3.0: + resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} dependencies: '@jridgewell/gen-mapping': 0.3.5 @@ -366,41 +384,15 @@ packages: '@babel/highlight': 7.24.7 picocolors: 1.0.0 - /@babel/compat-data@7.24.6: - resolution: {integrity: sha512-aC2DGhBq5eEdyXWqrDInSqQjO0k8xtPRf5YylULqx8MCd6jBtzqfta/3ETMRpuKIc5hyswfO80ObyA1MvkCcUQ==} - engines: {node: '>=6.9.0'} - /@babel/compat-data@7.24.7: resolution: {integrity: sha512-qJzAIcv03PyaWqxRgO4mSU3lihncDT296vnyuE2O8uA4w3UHWI4S3hgeZd1L8W1Bft40w9JxJ2b412iDUFFRhw==} engines: {node: '>=6.9.0'} - /@babel/core@7.24.6: - resolution: {integrity: sha512-qAHSfAdVyFmIvl0VHELib8xar7ONuSHrE2hLnsaWkYNTI68dmi1x8GYDhJjMI/e7XWal9QBlZkwbOnkcw7Z8gQ==} - engines: {node: '>=6.9.0'} - dependencies: - '@ampproject/remapping': 2.2.1 - '@babel/code-frame': 7.24.6 - '@babel/generator': 7.24.6 - '@babel/helper-compilation-targets': 7.24.6 - '@babel/helper-module-transforms': 7.24.6(@babel/core@7.24.6) - '@babel/helpers': 7.24.6 - '@babel/parser': 7.24.6 - '@babel/template': 7.24.6 - '@babel/traverse': 7.24.6 - '@babel/types': 7.24.6 - convert-source-map: 2.0.0 - debug: 4.3.4(supports-color@8.1.1) - gensync: 1.0.0-beta.2 - json5: 2.2.3 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - /@babel/core@7.24.7: resolution: {integrity: sha512-nykK+LEK86ahTkX/3TgauT0ikKoNCfKHEaZYTUVupJdTLzGNvrblu4u6fa7DhZONAltdf8e662t/abY8idrd/g==} engines: {node: '>=6.9.0'} dependencies: - '@ampproject/remapping': 2.2.1 + '@ampproject/remapping': 2.3.0 '@babel/code-frame': 7.24.7 '@babel/generator': 7.24.7 '@babel/helper-compilation-targets': 7.24.7 @@ -411,7 +403,7 @@ packages: '@babel/traverse': 7.24.7 '@babel/types': 7.24.7 convert-source-map: 2.0.0 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.5 gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 @@ -427,15 +419,6 @@ packages: jsesc: 2.5.2 dev: true - /@babel/generator@7.24.4: - resolution: {integrity: sha512-Xd6+v6SnjWVx/nus+y0l1sxMOTOMBkyL4+BIdbALyatQnAe/SRVjANeDPSCYaX+i1iJmuGSKf3Z+E+V/va1Hvw==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.24.6 - '@jridgewell/gen-mapping': 0.3.5 - '@jridgewell/trace-mapping': 0.3.25 - jsesc: 2.5.2 - /@babel/generator@7.24.6: resolution: {integrity: sha512-S7m4eNa6YAPJRHmKsLHIDJhNAGNKoWNiWefz1MBbpnt8g9lvMDl1hir4P9bo/57bQEmuwEhnRU/AMWsD0G/Fbg==} engines: {node: '>=6.9.0'} @@ -444,6 +427,7 @@ packages: '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 jsesc: 2.5.2 + dev: true /@babel/generator@7.24.7: resolution: {integrity: sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA==} @@ -466,12 +450,6 @@ packages: dependencies: '@babel/types': 7.24.7 - /@babel/helper-builder-binary-assignment-operator-visitor@7.24.6: - resolution: {integrity: sha512-+wnfqc5uHiMYtvRX7qu80Toef8BXeh4HHR1SPeonGb1SKPniNEd4a/nlaJJMv/OIEYvIVavvo0yR7u10Gqz0Iw==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.24.6 - /@babel/helper-builder-binary-assignment-operator-visitor@7.24.7: resolution: {integrity: sha512-xZeCVVdwb4MsDBkkyZ64tReWYrLRHlMN72vP7Bdm3OUOuyFZExhsHUUnuWnm2/XOlAJzR0LfPpB56WXZn0X/lA==} engines: {node: '>=6.9.0'} @@ -481,16 +459,6 @@ packages: transitivePeerDependencies: - supports-color - /@babel/helper-compilation-targets@7.24.6: - resolution: {integrity: sha512-VZQ57UsDGlX/5fFA7GkVPplZhHsVc+vuErWgdOiysI9Ksnw0Pbbd6pnPiR/mmJyKHgyIW0c7KT32gmhiF+cirg==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/compat-data': 7.24.6 - '@babel/helper-validator-option': 7.24.6 - browserslist: 4.23.0 - lru-cache: 5.1.1 - semver: 6.3.1 - /@babel/helper-compilation-targets@7.24.7: resolution: {integrity: sha512-ctSdRHBi20qWOfy27RUb4Fhp07KSJ3sXcuSvTrXrc4aG8NSYDo1ici3Vhg9bg69y5bj0Mr1lh0aeEgTvc12rMg==} engines: {node: '>=6.9.0'} @@ -501,23 +469,6 @@ packages: lru-cache: 5.1.1 semver: 6.3.1 - /@babel/helper-create-class-features-plugin@7.24.6(@babel/core@7.24.6): - resolution: {integrity: sha512-djsosdPJVZE6Vsw3kk7IPRWethP94WHGOhQTc67SNXE0ZzMhHgALw8iGmYS0TD1bbMM0VDROy43od7/hN6WYcA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.24.6 - '@babel/helper-annotate-as-pure': 7.24.6 - '@babel/helper-environment-visitor': 7.24.6 - '@babel/helper-function-name': 7.24.6 - '@babel/helper-member-expression-to-functions': 7.24.6 - '@babel/helper-optimise-call-expression': 7.24.6 - '@babel/helper-replace-supers': 7.24.6(@babel/core@7.24.6) - '@babel/helper-skip-transparent-expression-wrappers': 7.24.6 - '@babel/helper-split-export-declaration': 7.24.6 - semver: 6.3.1 - /@babel/helper-create-class-features-plugin@7.24.7(@babel/core@7.24.7): resolution: {integrity: sha512-kTkaDl7c9vO80zeX1rJxnuRpEsD5tA81yh11X1gQo+PhSti3JS+7qeZo9U4RHobKRiFPKaGK3svUAeb8D0Q7eg==} engines: {node: '>=6.9.0'} @@ -537,17 +488,6 @@ packages: transitivePeerDependencies: - supports-color - /@babel/helper-create-regexp-features-plugin@7.24.6(@babel/core@7.24.6): - resolution: {integrity: sha512-C875lFBIWWwyv6MHZUG9HmRrlTDgOsLWZfYR0nW69gaKJNe0/Mpxx5r0EID2ZdHQkdUmQo2t0uNckTL08/1BgA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.24.6 - '@babel/helper-annotate-as-pure': 7.24.6 - regexpu-core: 5.3.2 - semver: 6.3.1 - /@babel/helper-create-regexp-features-plugin@7.24.6(@babel/core@7.24.7): resolution: {integrity: sha512-C875lFBIWWwyv6MHZUG9HmRrlTDgOsLWZfYR0nW69gaKJNe0/Mpxx5r0EID2ZdHQkdUmQo2t0uNckTL08/1BgA==} engines: {node: '>=6.9.0'} @@ -570,12 +510,12 @@ packages: regexpu-core: 5.3.2 semver: 6.3.1 - /@babel/helper-define-polyfill-provider@0.6.1(@babel/core@7.24.6): + /@babel/helper-define-polyfill-provider@0.6.1(@babel/core@7.24.7): resolution: {integrity: sha512-o7SDgTJuvx5vLKD6SFvkydkSMBvahDKGiNJzG22IZYXhiqoe9efY7zocICBgzHV4IRg5wdgl2nEL/tulKIEIbA==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/core': 7.24.6 + '@babel/core': 7.24.7 '@babel/helper-compilation-targets': 7.24.7 '@babel/helper-plugin-utils': 7.24.7 debug: 4.3.4(supports-color@8.1.1) @@ -584,48 +524,26 @@ packages: transitivePeerDependencies: - supports-color - /@babel/helper-define-polyfill-provider@0.6.1(@babel/core@7.24.7): - resolution: {integrity: sha512-o7SDgTJuvx5vLKD6SFvkydkSMBvahDKGiNJzG22IZYXhiqoe9efY7zocICBgzHV4IRg5wdgl2nEL/tulKIEIbA==} + /@babel/helper-define-polyfill-provider@0.6.2(@babel/core@7.24.7): + resolution: {integrity: sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: '@babel/core': 7.24.7 '@babel/helper-compilation-targets': 7.24.7 '@babel/helper-plugin-utils': 7.24.7 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.5 lodash.debounce: 4.0.8 resolve: 1.22.8 transitivePeerDependencies: - supports-color - /@babel/helper-environment-visitor@7.22.20: - resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==} - engines: {node: '>=6.9.0'} - - /@babel/helper-environment-visitor@7.24.6: - resolution: {integrity: sha512-Y50Cg3k0LKLMjxdPjIl40SdJgMB85iXn27Vk/qbHZCFx/o5XO3PSnpi675h1KEmmDb6OFArfd5SCQEQ5Q4H88g==} - engines: {node: '>=6.9.0'} - /@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.7 - /@babel/helper-function-name@7.23.0: - resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/template': 7.24.6 - '@babel/types': 7.24.6 - - /@babel/helper-function-name@7.24.6: - resolution: {integrity: sha512-xpeLqeeRkbxhnYimfr2PC+iA0Q7ljX/d1eZ9/inYbmfG2jpl8Lu3DyXvpOAnrS5kxkfOWJjioIMQsaMBXFI05w==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/template': 7.24.6 - '@babel/types': 7.24.6 - /@babel/helper-function-name@7.24.7: resolution: {integrity: sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA==} engines: {node: '>=6.9.0'} @@ -633,30 +551,12 @@ packages: '@babel/template': 7.24.7 '@babel/types': 7.24.7 - /@babel/helper-hoist-variables@7.22.5: - resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.24.6 - - /@babel/helper-hoist-variables@7.24.6: - resolution: {integrity: sha512-SF/EMrC3OD7dSta1bLJIlrsVxwtd0UpjRJqLno6125epQMJ/kyFmpTT4pbvPbdQHzCHg+biQ7Syo8lnDtbR+uA==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.24.6 - /@babel/helper-hoist-variables@7.24.7: resolution: {integrity: sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==} engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.24.7 - /@babel/helper-member-expression-to-functions@7.24.6: - resolution: {integrity: sha512-OTsCufZTxDUsv2/eDXanw/mUZHWOxSbEmC3pP8cgjcy5rgeVPWWMStnv274DV60JtHxTk0adT0QrCzC4M9NWGg==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.24.6 - /@babel/helper-member-expression-to-functions@7.24.7: resolution: {integrity: sha512-LGeMaf5JN4hAT471eJdBs/GK1DoYIJ5GCtZN/EsL6KUiiDZOvO/eKE11AMZJa2zP4zk4qe9V2O/hxAmkRc8p6w==} engines: {node: '>=6.9.0'} @@ -666,18 +566,6 @@ packages: transitivePeerDependencies: - supports-color - /@babel/helper-module-imports@7.24.3: - resolution: {integrity: sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.24.6 - - /@babel/helper-module-imports@7.24.6: - resolution: {integrity: sha512-a26dmxFJBF62rRO9mmpgrfTLsAuyHk4e1hKTUkD/fcMfynt8gvEKwQPQDVxWhca8dHoDck+55DFt42zV0QMw5g==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.24.6 - /@babel/helper-module-imports@7.24.7: resolution: {integrity: sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==} engines: {node: '>=6.9.0'} @@ -687,19 +575,6 @@ packages: transitivePeerDependencies: - supports-color - /@babel/helper-module-transforms@7.24.6(@babel/core@7.24.6): - resolution: {integrity: sha512-Y/YMPm83mV2HJTbX1Qh2sjgjqcacvOlhbzdCCsSlblOKjSYmQqEbO6rUniWQyRo9ncyfjT8hnUjlG06RXDEmcA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.24.6 - '@babel/helper-environment-visitor': 7.24.6 - '@babel/helper-module-imports': 7.24.6 - '@babel/helper-simple-access': 7.24.6 - '@babel/helper-split-export-declaration': 7.24.6 - '@babel/helper-validator-identifier': 7.24.6 - /@babel/helper-module-transforms@7.24.7(@babel/core@7.24.7): resolution: {integrity: sha512-1fuJEwIrp+97rM4RWdO+qrRsZlAeL1lQJoPqtCYWv0NL115XM93hIH4CSRln2w52SqvmY5hqdtauB6QFCDiZNQ==} engines: {node: '>=6.9.0'} @@ -715,41 +590,21 @@ packages: transitivePeerDependencies: - supports-color - /@babel/helper-optimise-call-expression@7.24.6: - resolution: {integrity: sha512-3SFDJRbx7KuPRl8XDUr8O7GAEB8iGyWPjLKJh/ywP/Iy9WOmEfMrsWbaZpvBu2HSYn4KQygIsz0O7m8y10ncMA==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.24.6 - /@babel/helper-optimise-call-expression@7.24.7: resolution: {integrity: sha512-jKiTsW2xmWwxT1ixIdfXUZp+P5yURx2suzLZr5Hi64rURpDYdMW0pv+Uf17EYk2Rd428Lx4tLsnjGJzYKDM/6A==} engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.24.7 - /@babel/helper-plugin-utils@7.24.0: - resolution: {integrity: sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==} - engines: {node: '>=6.9.0'} - /@babel/helper-plugin-utils@7.24.6: resolution: {integrity: sha512-MZG/JcWfxybKwsA9N9PmtF2lOSFSEMVCpIRrbxccZFLJPrJciJdG/UhSh5W96GEteJI2ARqm5UAHxISwRDLSNg==} engines: {node: '>=6.9.0'} + dev: true /@babel/helper-plugin-utils@7.24.7: resolution: {integrity: sha512-Rq76wjt7yz9AAc1KnlRKNAi/dMSVWgDRx43FHoJEbcYU6xOWaE2dVPwcdTukJrjxS65GITyfbvEYHvkirZ6uEg==} engines: {node: '>=6.9.0'} - /@babel/helper-remap-async-to-generator@7.24.6(@babel/core@7.24.6): - resolution: {integrity: sha512-1Qursq9ArRZPAMOZf/nuzVW8HgJLkTB9y9LfP4lW2MVp4e9WkLJDovfKBxoDcCk6VuzIxyqWHyBoaCtSRP10yg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.24.6 - '@babel/helper-annotate-as-pure': 7.24.6 - '@babel/helper-environment-visitor': 7.24.6 - '@babel/helper-wrap-function': 7.24.6 - /@babel/helper-remap-async-to-generator@7.24.7(@babel/core@7.24.7): resolution: {integrity: sha512-9pKLcTlZ92hNZMQfGCHImUpDOlAgkkpqalWEeftW5FBya75k8Li2ilerxkM/uBEj01iBZXcCIB/bwvDYgWyibA==} engines: {node: '>=6.9.0'} @@ -763,17 +618,6 @@ packages: transitivePeerDependencies: - supports-color - /@babel/helper-replace-supers@7.24.6(@babel/core@7.24.6): - resolution: {integrity: sha512-mRhfPwDqDpba8o1F8ESxsEkJMQkUF8ZIWrAc0FtWhxnjfextxMWxr22RtFizxxSYLjVHDeMgVsRq8BBZR2ikJQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.24.6 - '@babel/helper-environment-visitor': 7.24.6 - '@babel/helper-member-expression-to-functions': 7.24.6 - '@babel/helper-optimise-call-expression': 7.24.6 - /@babel/helper-replace-supers@7.24.7(@babel/core@7.24.7): resolution: {integrity: sha512-qTAxxBM81VEyoAY0TtLrx1oAEJc09ZK67Q9ljQToqCnA+55eNwCORaxlKyu+rNfX86o8OXRUSNUnrtsAZXM9sg==} engines: {node: '>=6.9.0'} @@ -787,12 +631,6 @@ packages: transitivePeerDependencies: - supports-color - /@babel/helper-simple-access@7.24.6: - resolution: {integrity: sha512-nZzcMMD4ZhmB35MOOzQuiGO5RzL6tJbsT37Zx8M5L/i9KSrukGXWTjLe1knIbb/RmxoJE9GON9soq0c0VEMM5g==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.24.6 - /@babel/helper-simple-access@7.24.7: resolution: {integrity: sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==} engines: {node: '>=6.9.0'} @@ -802,12 +640,6 @@ packages: transitivePeerDependencies: - supports-color - /@babel/helper-skip-transparent-expression-wrappers@7.24.6: - resolution: {integrity: sha512-jhbbkK3IUKc4T43WadP96a27oYti9gEf1LdyGSP2rHGH77kwLwfhO7TgwnWvxxQVmke0ImmCSS47vcuxEMGD3Q==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.24.6 - /@babel/helper-skip-transparent-expression-wrappers@7.24.7: resolution: {integrity: sha512-IO+DLT3LQUElMbpzlatRASEyQtfhSE0+m465v++3jyyXeBTBUjtVZg28/gHeV5mrTJqvEKhKroBGAvhW+qPHiQ==} engines: {node: '>=6.9.0'} @@ -817,18 +649,6 @@ packages: transitivePeerDependencies: - supports-color - /@babel/helper-split-export-declaration@7.22.6: - resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.24.6 - - /@babel/helper-split-export-declaration@7.24.6: - resolution: {integrity: sha512-CvLSkwXGWnYlF9+J3iZUvwgAxKiYzK3BWuo+mLzD/MDGOZDj7Gq8+hqaOkMxmJwmlv0iu86uH5fdADd9Hxkymw==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.24.6 - /@babel/helper-split-export-declaration@7.24.7: resolution: {integrity: sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==} engines: {node: '>=6.9.0'} @@ -851,26 +671,10 @@ packages: resolution: {integrity: sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==} engines: {node: '>=6.9.0'} - /@babel/helper-validator-option@7.23.5: - resolution: {integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==} - engines: {node: '>=6.9.0'} - - /@babel/helper-validator-option@7.24.6: - resolution: {integrity: sha512-Jktc8KkF3zIkePb48QO+IapbXlSapOW9S+ogZZkcO6bABgYAxtZcjZ/O005111YLf+j4M84uEgwYoidDkXbCkQ==} - engines: {node: '>=6.9.0'} - /@babel/helper-validator-option@7.24.7: resolution: {integrity: sha512-yy1/KvjhV/ZCL+SM7hBrvnZJ3ZuT9OuZgIJAGpPEToANvc3iM6iDvBnRjtElWibHU6n8/LPR/EjX9EtIEYO3pw==} engines: {node: '>=6.9.0'} - /@babel/helper-wrap-function@7.24.6: - resolution: {integrity: sha512-f1JLrlw/jbiNfxvdrfBgio/gRBk3yTAEJWirpAkiJG2Hb22E7cEYKHWo0dFPTv/niPovzIdPdEDetrv6tC6gPQ==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-function-name': 7.24.6 - '@babel/template': 7.24.6 - '@babel/types': 7.24.6 - /@babel/helper-wrap-function@7.24.7: resolution: {integrity: sha512-N9JIYk3TD+1vq/wn77YnJOqMtfWhNewNE+DJV4puD2X7Ew9J4JvrzrFDfTfyv5EgEXVy9/Wt8QiOErzEmv5Ifw==} engines: {node: '>=6.9.0'} @@ -882,13 +686,6 @@ packages: transitivePeerDependencies: - supports-color - /@babel/helpers@7.24.6: - resolution: {integrity: sha512-V2PI+NqnyFu1i0GyTd/O/cTpxzQCYioSkUIRmgo7gFEHKKCg5w46+r/A6WeUR1+P3TeQ49dspGPNd/E3n9AnnA==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/template': 7.24.6 - '@babel/types': 7.24.6 - /@babel/helpers@7.24.7: resolution: {integrity: sha512-NlmJJtvcw72yRJRcnCmGvSi+3jDEg8qFu3z0AFoymmzLx5ERVWyzd9kVXr7Th9/8yIJi2Zc6av4Tqz3wFs8QWg==} engines: {node: '>=6.9.0'} @@ -928,6 +725,7 @@ packages: hasBin: true dependencies: '@babel/types': 7.24.6 + dev: true /@babel/parser@7.24.7: resolution: {integrity: sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==} @@ -936,16 +734,6 @@ packages: dependencies: '@babel/types': 7.24.7 - /@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.24.6(@babel/core@7.24.6): - resolution: {integrity: sha512-bYndrJ6Ph6Ar+GaB5VAc0JPoP80bQCm4qon6JEzXfRl5QZyQ8Ur1K6k7htxWmPA5z+k7JQvaMUrtXlqclWYzKw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.24.6 - '@babel/helper-environment-visitor': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 - /@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.24.7(@babel/core@7.24.7): resolution: {integrity: sha512-TiT1ss81W80eQsN+722OaeQMY/G4yTb4G9JrqeiDADs3N8lbPMGldWi9x8tyqCW5NLx1Jh2AvkE6r6QvEltMMQ==} engines: {node: '>=6.9.0'} @@ -956,15 +744,6 @@ packages: '@babel/helper-environment-visitor': 7.24.7 '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.24.6(@babel/core@7.24.6): - resolution: {integrity: sha512-iVuhb6poq5ikqRq2XWU6OQ+R5o9wF+r/or9CeUyovgptz0UlnK4/seOQ1Istu/XybYjAhQv1FRSSfHHufIku5Q==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 - /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.24.7(@babel/core@7.24.7): resolution: {integrity: sha512-unaQgZ/iRu/By6tsjMZzpeBZjChYfLYry6HrEXPoz3KmfF0sVBQ1l8zKMQ4xRGLWVsjuvB8nQfjNP/DcfEOCsg==} engines: {node: '>=6.9.0'} @@ -974,17 +753,6 @@ packages: '@babel/core': 7.24.7 '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.6(@babel/core@7.24.6): - resolution: {integrity: sha512-c8TER5xMDYzzFcGqOEp9l4hvB7dcbhcGjcLVwxWfe4P5DOafdwjsBJZKsmv+o3aXh7NhopvayQIovHrh2zSRUQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.13.0 - dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 - '@babel/helper-skip-transparent-expression-wrappers': 7.24.6 - '@babel/plugin-transform-optional-chaining': 7.24.6(@babel/core@7.24.6) - /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.7(@babel/core@7.24.7): resolution: {integrity: sha512-+izXIbke1T33mY4MSNnrqhPXDz01WYhEf3yF5NbnUtkiNnm+XBZJl3kNfoK6NKmYlz/D07+l2GWVK/QfDkNCuQ==} engines: {node: '>=6.9.0'} @@ -998,16 +766,6 @@ packages: transitivePeerDependencies: - supports-color - /@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.24.6(@babel/core@7.24.6): - resolution: {integrity: sha512-z8zEjYmwBUHN/pCF3NuWBhHQjJCrd33qAi8MgANfMrAvn72k2cImT8VjK9LJFu4ysOLJqhfkYYb3MvwANRUNZQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.24.6 - '@babel/helper-environment-visitor': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 - /@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.24.7(@babel/core@7.24.7): resolution: {integrity: sha512-utA4HuR6F4Vvcr+o4DnjL8fCOlgRFGbeeBEGNg3ZTrLFw6VWG5XmUrvcQ0FjIYMU2ST4XcR2Wsp7t9qOAPnxMg==} engines: {node: '>=6.9.0'} @@ -1018,14 +776,6 @@ packages: '@babel/helper-environment-visitor': 7.24.7 '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.6): - resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.6 - /@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.7): resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==} engines: {node: '>=6.9.0'} @@ -1034,14 +784,6 @@ packages: dependencies: '@babel/core': 7.24.7 - /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.24.6): - resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.24.7): resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} peerDependencies: @@ -1059,14 +801,6 @@ packages: '@babel/helper-plugin-utils': 7.24.6 dev: true - /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.24.6): - resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.24.7): resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} peerDependencies: @@ -1075,15 +809,6 @@ packages: '@babel/core': 7.24.7 '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.24.6): - resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.24.7): resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} engines: {node: '>=6.9.0'} @@ -1093,14 +818,6 @@ packages: '@babel/core': 7.24.7 '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.24.6): - resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.24.7): resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} peerDependencies: @@ -1109,14 +826,6 @@ packages: '@babel/core': 7.24.7 '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.24.6): - resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.24.7): resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} peerDependencies: @@ -1125,15 +834,6 @@ packages: '@babel/core': 7.24.7 '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-syntax-import-assertions@7.24.6(@babel/core@7.24.6): - resolution: {integrity: sha512-BE6o2BogJKJImTmGpkmOic4V0hlRRxVtzqxiSPa8TIFxyhi4EFjHm08nq1M4STK4RytuLMgnSz0/wfflvGFNOg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 - /@babel/plugin-syntax-import-assertions@7.24.7(@babel/core@7.24.7): resolution: {integrity: sha512-Ec3NRUMoi8gskrkBe3fNmEQfxDvY8bgfQpz6jlk/41kX9eUjvpyqWU7PBP/pLAvMaSQjbMNKJmvX57jP+M6bPg==} engines: {node: '>=6.9.0'} @@ -1143,15 +843,6 @@ packages: '@babel/core': 7.24.7 '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-syntax-import-attributes@7.24.6(@babel/core@7.24.6): - resolution: {integrity: sha512-D+CfsVZousPXIdudSII7RGy52+dYRtbyKAZcvtQKq/NpsivyMVduepzcLqG5pMBugtMdedxdC8Ramdpcne9ZWQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 - /@babel/plugin-syntax-import-attributes@7.24.7(@babel/core@7.24.7): resolution: {integrity: sha512-hbX+lKKeUMGihnK8nvKqmXBInriT3GVjzXKFriV3YC6APGxMbP8RZNFwy91+hocLXq90Mta+HshoB31802bb8A==} engines: {node: '>=6.9.0'} @@ -1161,14 +852,6 @@ packages: '@babel/core': 7.24.7 '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.24.6): - resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.24.7): resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} peerDependencies: @@ -1177,14 +860,6 @@ packages: '@babel/core': 7.24.7 '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.24.6): - resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.24.7): resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} peerDependencies: @@ -1193,15 +868,6 @@ packages: '@babel/core': 7.24.7 '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-syntax-jsx@7.24.6(@babel/core@7.24.6): - resolution: {integrity: sha512-lWfvAIFNWMlCsU0DRUun2GpFwZdGTukLaHJqRh1JRb80NdAP5Sb1HDHB5X9P9OtgZHQl089UzQkpYlBq2VTPRw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 - /@babel/plugin-syntax-jsx@7.24.6(@babel/core@7.24.7): resolution: {integrity: sha512-lWfvAIFNWMlCsU0DRUun2GpFwZdGTukLaHJqRh1JRb80NdAP5Sb1HDHB5X9P9OtgZHQl089UzQkpYlBq2VTPRw==} engines: {node: '>=6.9.0'} @@ -1210,6 +876,7 @@ packages: dependencies: '@babel/core': 7.24.7 '@babel/helper-plugin-utils': 7.24.6 + dev: true /@babel/plugin-syntax-jsx@7.24.7(@babel/core@7.24.7): resolution: {integrity: sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==} @@ -1220,46 +887,22 @@ packages: '@babel/core': 7.24.7 '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.24.6): + /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.24.7): resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.6 + '@babel/core': 7.24.7 '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.24.7): - resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} + /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.24.7): + resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.7 '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.24.6): - resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.7 - - /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.24.7): - resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 - - /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.24.6): - resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.24.7): resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} peerDependencies: @@ -1268,14 +911,6 @@ packages: '@babel/core': 7.24.7 '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.24.6): - resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.24.7): resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} peerDependencies: @@ -1284,14 +919,6 @@ packages: '@babel/core': 7.24.7 '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.24.6): - resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.24.7): resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} peerDependencies: @@ -1300,14 +927,6 @@ packages: '@babel/core': 7.24.7 '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.24.6): - resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.24.7): resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} peerDependencies: @@ -1316,15 +935,6 @@ packages: '@babel/core': 7.24.7 '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.24.6): - resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.24.7): resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} engines: {node: '>=6.9.0'} @@ -1334,15 +944,6 @@ packages: '@babel/core': 7.24.7 '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.24.6): - resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.24.7): resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} engines: {node: '>=6.9.0'} @@ -1352,15 +953,6 @@ packages: '@babel/core': 7.24.7 '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-syntax-typescript@7.24.6(@babel/core@7.24.6): - resolution: {integrity: sha512-TzCtxGgVTEJWWwcYwQhCIQ6WaKlo80/B+Onsk4RRCcYqpYGFcG9etPW94VToGte5AAcxRrhjPUFvUS3Y2qKi4A==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 - /@babel/plugin-syntax-typescript@7.24.6(@babel/core@7.24.7): resolution: {integrity: sha512-TzCtxGgVTEJWWwcYwQhCIQ6WaKlo80/B+Onsk4RRCcYqpYGFcG9etPW94VToGte5AAcxRrhjPUFvUS3Y2qKi4A==} engines: {node: '>=6.9.0'} @@ -1380,16 +972,6 @@ packages: '@babel/core': 7.24.7 '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.24.6): - resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.24.6 - '@babel/helper-create-regexp-features-plugin': 7.24.6(@babel/core@7.24.6) - '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.24.7): resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} engines: {node: '>=6.9.0'} @@ -1400,15 +982,6 @@ packages: '@babel/helper-create-regexp-features-plugin': 7.24.6(@babel/core@7.24.7) '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-transform-arrow-functions@7.24.6(@babel/core@7.24.6): - resolution: {integrity: sha512-jSSSDt4ZidNMggcLx8SaKsbGNEfIl0PHx/4mFEulorE7bpYLbN0d3pDW3eJ7Y5Z3yPhy3L3NaPCYyTUY7TuugQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 - /@babel/plugin-transform-arrow-functions@7.24.7(@babel/core@7.24.7): resolution: {integrity: sha512-Dt9LQs6iEY++gXUwY03DNFat5C2NbO48jj+j/bSAz6b3HgPs39qcPiYt77fDObIcFwj3/C2ICX9YMwGflUoSHQ==} engines: {node: '>=6.9.0'} @@ -1418,18 +991,6 @@ packages: '@babel/core': 7.24.7 '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-transform-async-generator-functions@7.24.6(@babel/core@7.24.6): - resolution: {integrity: sha512-VEP2o4iR2DqQU6KPgizTW2mnMx6BG5b5O9iQdrW9HesLkv8GIA8x2daXBQxw1MrsIkFQGA/iJ204CKoQ8UcnAA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.6 - '@babel/helper-environment-visitor': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 - '@babel/helper-remap-async-to-generator': 7.24.6(@babel/core@7.24.6) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.6) - /@babel/plugin-transform-async-generator-functions@7.24.7(@babel/core@7.24.7): resolution: {integrity: sha512-o+iF77e3u7ZS4AoAuJvapz9Fm001PuD2V3Lp6OSE4FYQke+cSewYtnek+THqGRWyQloRCyvWL1OkyfNEl9vr/g==} engines: {node: '>=6.9.0'} @@ -1444,17 +1005,6 @@ packages: transitivePeerDependencies: - supports-color - /@babel/plugin-transform-async-to-generator@7.24.6(@babel/core@7.24.6): - resolution: {integrity: sha512-NTBA2SioI3OsHeIn6sQmhvXleSl9T70YY/hostQLveWs0ic+qvbA3fa0kwAwQ0OA/XGaAerNZRQGJyRfhbJK4g==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.6 - '@babel/helper-module-imports': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 - '@babel/helper-remap-async-to-generator': 7.24.6(@babel/core@7.24.6) - /@babel/plugin-transform-async-to-generator@7.24.7(@babel/core@7.24.7): resolution: {integrity: sha512-SQY01PcJfmQ+4Ash7NE+rpbLFbmqA2GPIgqzxfFTL4t1FKRq4zTms/7htKpoCUI9OcFYgzqfmCdH53s6/jn5fA==} engines: {node: '>=6.9.0'} @@ -1468,15 +1018,6 @@ packages: transitivePeerDependencies: - supports-color - /@babel/plugin-transform-block-scoped-functions@7.24.6(@babel/core@7.24.6): - resolution: {integrity: sha512-XNW7jolYHW9CwORrZgA/97tL/k05qe/HL0z/qqJq1mdWhwwCM6D4BJBV7wAz9HgFziN5dTOG31znkVIzwxv+vw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 - /@babel/plugin-transform-block-scoped-functions@7.24.7(@babel/core@7.24.7): resolution: {integrity: sha512-yO7RAz6EsVQDaBH18IDJcMB1HnrUn2FJ/Jslc/WtPPWcjhpUJXU/rjbwmluzp7v/ZzWcEhTMXELnnsz8djWDwQ==} engines: {node: '>=6.9.0'} @@ -1486,15 +1027,6 @@ packages: '@babel/core': 7.24.7 '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-transform-block-scoping@7.24.6(@babel/core@7.24.6): - resolution: {integrity: sha512-S/t1Xh4ehW7sGA7c1j/hiOBLnEYCp/c2sEG4ZkL8kI1xX9tW2pqJTCHKtdhe/jHKt8nG0pFCrDHUXd4DvjHS9w==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 - /@babel/plugin-transform-block-scoping@7.24.7(@babel/core@7.24.7): resolution: {integrity: sha512-Nd5CvgMbWc+oWzBsuaMcbwjJWAcp5qzrbg69SZdHSP7AMY0AbWFqFO0WTFCA1jxhMCwodRwvRec8k0QUbZk7RQ==} engines: {node: '>=6.9.0'} @@ -1504,16 +1036,6 @@ packages: '@babel/core': 7.24.7 '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-transform-class-properties@7.24.6(@babel/core@7.24.6): - resolution: {integrity: sha512-j6dZ0Z2Z2slWLR3kt9aOmSIrBvnntWjMDN/TVcMPxhXMLmJVqX605CBRlcGI4b32GMbfifTEsdEjGjiE+j/c3A==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.6 - '@babel/helper-create-class-features-plugin': 7.24.6(@babel/core@7.24.6) - '@babel/helper-plugin-utils': 7.24.6 - /@babel/plugin-transform-class-properties@7.24.7(@babel/core@7.24.7): resolution: {integrity: sha512-vKbfawVYayKcSeSR5YYzzyXvsDFWU2mD8U5TFeXtbCPLFUqe7GyCgvO6XDHzje862ODrOwy6WCPmKeWHbCFJ4w==} engines: {node: '>=6.9.0'} @@ -1526,17 +1048,6 @@ packages: transitivePeerDependencies: - supports-color - /@babel/plugin-transform-class-static-block@7.24.6(@babel/core@7.24.6): - resolution: {integrity: sha512-1QSRfoPI9RoLRa8Mnakc6v3e0gJxiZQTYrMfLn+mD0sz5+ndSzwymp2hDcYJTyT0MOn0yuWzj8phlIvO72gTHA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.12.0 - dependencies: - '@babel/core': 7.24.6 - '@babel/helper-create-class-features-plugin': 7.24.6(@babel/core@7.24.6) - '@babel/helper-plugin-utils': 7.24.6 - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.24.6) - /@babel/plugin-transform-class-static-block@7.24.7(@babel/core@7.24.7): resolution: {integrity: sha512-HMXK3WbBPpZQufbMG4B46A90PkuuhN9vBCb5T8+VAHqvAqvcLi+2cKoukcpmUYkszLhScU3l1iudhrks3DggRQ==} engines: {node: '>=6.9.0'} @@ -1550,22 +1061,6 @@ packages: transitivePeerDependencies: - supports-color - /@babel/plugin-transform-classes@7.24.6(@babel/core@7.24.6): - resolution: {integrity: sha512-+fN+NO2gh8JtRmDSOB6gaCVo36ha8kfCW1nMq2Gc0DABln0VcHN4PrALDvF5/diLzIRKptC7z/d7Lp64zk92Fg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.6 - '@babel/helper-annotate-as-pure': 7.24.6 - '@babel/helper-compilation-targets': 7.24.6 - '@babel/helper-environment-visitor': 7.24.6 - '@babel/helper-function-name': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 - '@babel/helper-replace-supers': 7.24.6(@babel/core@7.24.6) - '@babel/helper-split-export-declaration': 7.24.6 - globals: 11.12.0 - /@babel/plugin-transform-classes@7.24.7(@babel/core@7.24.7): resolution: {integrity: sha512-CFbbBigp8ln4FU6Bpy6g7sE8B/WmCmzvivzUC6xDAdWVsjYTXijpuuGJmYkAaoWAzcItGKT3IOAbxRItZ5HTjw==} engines: {node: '>=6.9.0'} @@ -1584,16 +1079,6 @@ packages: transitivePeerDependencies: - supports-color - /@babel/plugin-transform-computed-properties@7.24.6(@babel/core@7.24.6): - resolution: {integrity: sha512-cRzPobcfRP0ZtuIEkA8QzghoUpSB3X3qSH5W2+FzG+VjWbJXExtx0nbRqwumdBN1x/ot2SlTNQLfBCnPdzp6kg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 - '@babel/template': 7.24.6 - /@babel/plugin-transform-computed-properties@7.24.7(@babel/core@7.24.7): resolution: {integrity: sha512-25cS7v+707Gu6Ds2oY6tCkUwsJ9YIDbggd9+cu9jzzDgiNq7hR/8dkzxWfKWnTic26vsI3EsCXNd4iEB6e8esQ==} engines: {node: '>=6.9.0'} @@ -1604,15 +1089,6 @@ packages: '@babel/helper-plugin-utils': 7.24.7 '@babel/template': 7.24.7 - /@babel/plugin-transform-destructuring@7.24.6(@babel/core@7.24.6): - resolution: {integrity: sha512-YLW6AE5LQpk5npNXL7i/O+U9CE4XsBCuRPgyjl1EICZYKmcitV+ayuuUGMJm2lC1WWjXYszeTnIxF/dq/GhIZQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 - /@babel/plugin-transform-destructuring@7.24.7(@babel/core@7.24.7): resolution: {integrity: sha512-19eJO/8kdCQ9zISOf+SEUJM/bAUIsvY3YDnXZTupUCQ8LgrWnsG/gFB9dvXqdXnRXMAM8fvt7b0CBKQHNGy1mw==} engines: {node: '>=6.9.0'} @@ -1622,16 +1098,6 @@ packages: '@babel/core': 7.24.7 '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-transform-dotall-regex@7.24.6(@babel/core@7.24.6): - resolution: {integrity: sha512-rCXPnSEKvkm/EjzOtLoGvKseK+dS4kZwx1HexO3BtRtgL0fQ34awHn34aeSHuXtZY2F8a1X8xqBBPRtOxDVmcA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.6 - '@babel/helper-create-regexp-features-plugin': 7.24.6(@babel/core@7.24.6) - '@babel/helper-plugin-utils': 7.24.6 - /@babel/plugin-transform-dotall-regex@7.24.7(@babel/core@7.24.7): resolution: {integrity: sha512-ZOA3W+1RRTSWvyqcMJDLqbchh7U4NRGqwRfFSVbOLS/ePIP4vHB5e8T8eXcuqyN1QkgKyj5wuW0lcS85v4CrSw==} engines: {node: '>=6.9.0'} @@ -1642,15 +1108,6 @@ packages: '@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.24.7) '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-transform-duplicate-keys@7.24.6(@babel/core@7.24.6): - resolution: {integrity: sha512-/8Odwp/aVkZwPFJMllSbawhDAO3UJi65foB00HYnK/uXvvCPm0TAXSByjz1mpRmp0q6oX2SIxpkUOpPFHk7FLA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 - /@babel/plugin-transform-duplicate-keys@7.24.7(@babel/core@7.24.7): resolution: {integrity: sha512-JdYfXyCRihAe46jUIliuL2/s0x0wObgwwiGxw/UbgJBr20gQBThrokO4nYKgWkD7uBaqM7+9x5TU7NkExZJyzw==} engines: {node: '>=6.9.0'} @@ -1660,16 +1117,6 @@ packages: '@babel/core': 7.24.7 '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-transform-dynamic-import@7.24.6(@babel/core@7.24.6): - resolution: {integrity: sha512-vpq8SSLRTBLOHUZHSnBqVo0AKX3PBaoPs2vVzYVWslXDTDIpwAcCDtfhUcHSQQoYoUvcFPTdC8TZYXu9ZnLT/w==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.6) - /@babel/plugin-transform-dynamic-import@7.24.7(@babel/core@7.24.7): resolution: {integrity: sha512-sc3X26PhZQDb3JhORmakcbvkeInvxz+A8oda99lj7J60QRuPZvNAk9wQlTBS1ZynelDrDmTU4pw1tyc5d5ZMUg==} engines: {node: '>=6.9.0'} @@ -1680,16 +1127,6 @@ packages: '@babel/helper-plugin-utils': 7.24.7 '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.7) - /@babel/plugin-transform-exponentiation-operator@7.24.6(@babel/core@7.24.6): - resolution: {integrity: sha512-EemYpHtmz0lHE7hxxxYEuTYOOBZ43WkDgZ4arQ4r+VX9QHuNZC+WH3wUWmRNvR8ECpTRne29aZV6XO22qpOtdA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.6 - '@babel/helper-builder-binary-assignment-operator-visitor': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 - /@babel/plugin-transform-exponentiation-operator@7.24.7(@babel/core@7.24.7): resolution: {integrity: sha512-Rqe/vSc9OYgDajNIK35u7ot+KeCoetqQYFXM4Epf7M7ez3lWlOjrDjrwMei6caCVhfdw+mIKD4cgdGNy5JQotQ==} engines: {node: '>=6.9.0'} @@ -1702,16 +1139,6 @@ packages: transitivePeerDependencies: - supports-color - /@babel/plugin-transform-export-namespace-from@7.24.6(@babel/core@7.24.6): - resolution: {integrity: sha512-inXaTM1SVrIxCkIJ5gqWiozHfFMStuGbGJAxZFBoHcRRdDP0ySLb3jH6JOwmfiinPwyMZqMBX+7NBDCO4z0NSA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.24.6) - /@babel/plugin-transform-export-namespace-from@7.24.7(@babel/core@7.24.7): resolution: {integrity: sha512-v0K9uNYsPL3oXZ/7F9NNIbAj2jv1whUEtyA6aujhekLs56R++JDQuzRcP2/z4WX5Vg/c5lE9uWZA0/iUoFhLTA==} engines: {node: '>=6.9.0'} @@ -1722,16 +1149,6 @@ packages: '@babel/helper-plugin-utils': 7.24.7 '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.24.7) - /@babel/plugin-transform-for-of@7.24.6(@babel/core@7.24.6): - resolution: {integrity: sha512-n3Sf72TnqK4nw/jziSqEl1qaWPbCRw2CziHH+jdRYvw4J6yeCzsj4jdw8hIntOEeDGTmHVe2w4MVL44PN0GMzg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 - '@babel/helper-skip-transparent-expression-wrappers': 7.24.6 - /@babel/plugin-transform-for-of@7.24.7(@babel/core@7.24.7): resolution: {integrity: sha512-wo9ogrDG1ITTTBsy46oGiN1dS9A7MROBTcYsfS8DtsImMkHk9JXJ3EWQM6X2SUw4x80uGPlwj0o00Uoc6nEE3g==} engines: {node: '>=6.9.0'} @@ -1744,17 +1161,6 @@ packages: transitivePeerDependencies: - supports-color - /@babel/plugin-transform-function-name@7.24.6(@babel/core@7.24.6): - resolution: {integrity: sha512-sOajCu6V0P1KPljWHKiDq6ymgqB+vfo3isUS4McqW1DZtvSVU2v/wuMhmRmkg3sFoq6GMaUUf8W4WtoSLkOV/Q==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.6 - '@babel/helper-compilation-targets': 7.24.6 - '@babel/helper-function-name': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 - /@babel/plugin-transform-function-name@7.24.7(@babel/core@7.24.7): resolution: {integrity: sha512-U9FcnA821YoILngSmYkW6FjyQe2TyZD5pHt4EVIhmcTkrJw/3KqcrRSxuOo5tFZJi7TE19iDyI1u+weTI7bn2w==} engines: {node: '>=6.9.0'} @@ -1766,16 +1172,6 @@ packages: '@babel/helper-function-name': 7.24.7 '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-transform-json-strings@7.24.6(@babel/core@7.24.6): - resolution: {integrity: sha512-Uvgd9p2gUnzYJxVdBLcU0KurF8aVhkmVyMKW4MIY1/BByvs3EBpv45q01o7pRTVmTvtQq5zDlytP3dcUgm7v9w==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.6) - /@babel/plugin-transform-json-strings@7.24.7(@babel/core@7.24.7): resolution: {integrity: sha512-2yFnBGDvRuxAaE/f0vfBKvtnvvqU8tGpMHqMNpTN2oWMKIR3NqFkjaAgGwawhqK/pIN2T3XdjGPdaG0vDhOBGw==} engines: {node: '>=6.9.0'} @@ -1786,15 +1182,6 @@ packages: '@babel/helper-plugin-utils': 7.24.7 '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.7) - /@babel/plugin-transform-literals@7.24.6(@babel/core@7.24.6): - resolution: {integrity: sha512-f2wHfR2HF6yMj+y+/y07+SLqnOSwRp8KYLpQKOzS58XLVlULhXbiYcygfXQxJlMbhII9+yXDwOUFLf60/TL5tw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 - /@babel/plugin-transform-literals@7.24.7(@babel/core@7.24.7): resolution: {integrity: sha512-vcwCbb4HDH+hWi8Pqenwnjy+UiklO4Kt1vfspcQYFhJdpthSnW8XvWGyDZWKNVrVbVViI/S7K9PDJZiUmP2fYQ==} engines: {node: '>=6.9.0'} @@ -1804,16 +1191,6 @@ packages: '@babel/core': 7.24.7 '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-transform-logical-assignment-operators@7.24.6(@babel/core@7.24.6): - resolution: {integrity: sha512-EKaWvnezBCMkRIHxMJSIIylzhqK09YpiJtDbr2wsXTwnO0TxyjMUkaw4RlFIZMIS0iDj0KyIg7H7XCguHu/YDA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.6) - /@babel/plugin-transform-logical-assignment-operators@7.24.7(@babel/core@7.24.7): resolution: {integrity: sha512-4D2tpwlQ1odXmTEIFWy9ELJcZHqrStlzK/dAOWYyxX3zT0iXQB6banjgeOJQXzEc4S0E0a5A+hahxPaEFYftsw==} engines: {node: '>=6.9.0'} @@ -1824,15 +1201,6 @@ packages: '@babel/helper-plugin-utils': 7.24.7 '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.7) - /@babel/plugin-transform-member-expression-literals@7.24.6(@babel/core@7.24.6): - resolution: {integrity: sha512-9g8iV146szUo5GWgXpRbq/GALTnY+WnNuRTuRHWWFfWGbP9ukRL0aO/jpu9dmOPikclkxnNsjY8/gsWl6bmZJQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 - /@babel/plugin-transform-member-expression-literals@7.24.7(@babel/core@7.24.7): resolution: {integrity: sha512-T/hRC1uqrzXMKLQ6UCwMT85S3EvqaBXDGf0FaMf4446Qx9vKwlghvee0+uuZcDUCZU5RuNi4781UQ7R308zzBw==} engines: {node: '>=6.9.0'} @@ -1842,16 +1210,6 @@ packages: '@babel/core': 7.24.7 '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-transform-modules-amd@7.24.6(@babel/core@7.24.6): - resolution: {integrity: sha512-eAGogjZgcwqAxhyFgqghvoHRr+EYRQPFjUXrTYKBRb5qPnAVxOOglaxc4/byHqjvq/bqO2F3/CGwTHsgKJYHhQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.6 - '@babel/helper-module-transforms': 7.24.6(@babel/core@7.24.6) - '@babel/helper-plugin-utils': 7.24.6 - /@babel/plugin-transform-modules-amd@7.24.7(@babel/core@7.24.7): resolution: {integrity: sha512-9+pB1qxV3vs/8Hdmz/CulFB8w2tuu6EB94JZFsjdqxQokwGa9Unap7Bo2gGBGIvPmDIVvQrom7r5m/TCDMURhg==} engines: {node: '>=6.9.0'} @@ -1864,17 +1222,6 @@ packages: transitivePeerDependencies: - supports-color - /@babel/plugin-transform-modules-commonjs@7.24.6(@babel/core@7.24.6): - resolution: {integrity: sha512-JEV8l3MHdmmdb7S7Cmx6rbNEjRCgTQMZxllveHO0mx6uiclB0NflCawlQQ6+o5ZrwjUBYPzHm2XoK4wqGVUFuw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.6 - '@babel/helper-module-transforms': 7.24.6(@babel/core@7.24.6) - '@babel/helper-plugin-utils': 7.24.6 - '@babel/helper-simple-access': 7.24.6 - /@babel/plugin-transform-modules-commonjs@7.24.7(@babel/core@7.24.7): resolution: {integrity: sha512-iFI8GDxtevHJ/Z22J5xQpVqFLlMNstcLXh994xifFwxxGslr2ZXXLWgtBeLctOD63UFDArdvN6Tg8RFw+aEmjQ==} engines: {node: '>=6.9.0'} @@ -1888,18 +1235,6 @@ packages: transitivePeerDependencies: - supports-color - /@babel/plugin-transform-modules-systemjs@7.24.6(@babel/core@7.24.6): - resolution: {integrity: sha512-xg1Z0J5JVYxtpX954XqaaAT6NpAY6LtZXvYFCJmGFJWwtlz2EmJoR8LycFRGNE8dBKizGWkGQZGegtkV8y8s+w==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.6 - '@babel/helper-hoist-variables': 7.24.6 - '@babel/helper-module-transforms': 7.24.6(@babel/core@7.24.6) - '@babel/helper-plugin-utils': 7.24.6 - '@babel/helper-validator-identifier': 7.24.6 - /@babel/plugin-transform-modules-systemjs@7.24.7(@babel/core@7.24.7): resolution: {integrity: sha512-GYQE0tW7YoaN13qFh3O1NCY4MPkUiAH3fiF7UcV/I3ajmDKEdG3l+UOcbAm4zUE3gnvUU+Eni7XrVKo9eO9auw==} engines: {node: '>=6.9.0'} @@ -1914,16 +1249,6 @@ packages: transitivePeerDependencies: - supports-color - /@babel/plugin-transform-modules-umd@7.24.6(@babel/core@7.24.6): - resolution: {integrity: sha512-esRCC/KsSEUvrSjv5rFYnjZI6qv4R1e/iHQrqwbZIoRJqk7xCvEUiN7L1XrmW5QSmQe3n1XD88wbgDTWLbVSyg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.6 - '@babel/helper-module-transforms': 7.24.6(@babel/core@7.24.6) - '@babel/helper-plugin-utils': 7.24.6 - /@babel/plugin-transform-modules-umd@7.24.7(@babel/core@7.24.7): resolution: {integrity: sha512-3aytQvqJ/h9z4g8AsKPLvD4Zqi2qT+L3j7XoFFu1XBlZWEl2/1kWnhmAbxpLgPrHSY0M6UA02jyTiwUVtiKR6A==} engines: {node: '>=6.9.0'} @@ -1936,16 +1261,6 @@ packages: transitivePeerDependencies: - supports-color - /@babel/plugin-transform-named-capturing-groups-regex@7.24.6(@babel/core@7.24.6): - resolution: {integrity: sha512-6DneiCiu91wm3YiNIGDWZsl6GfTTbspuj/toTEqLh9d4cx50UIzSdg+T96p8DuT7aJOBRhFyaE9ZvTHkXrXr6Q==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.24.6 - '@babel/helper-create-regexp-features-plugin': 7.24.6(@babel/core@7.24.6) - '@babel/helper-plugin-utils': 7.24.6 - /@babel/plugin-transform-named-capturing-groups-regex@7.24.7(@babel/core@7.24.7): resolution: {integrity: sha512-/jr7h/EWeJtk1U/uz2jlsCioHkZk1JJZVcc8oQsJ1dUlaJD83f4/6Zeh2aHt9BIFokHIsSeDfhUmju0+1GPd6g==} engines: {node: '>=6.9.0'} @@ -1956,15 +1271,6 @@ packages: '@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.24.7) '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-transform-new-target@7.24.6(@babel/core@7.24.6): - resolution: {integrity: sha512-f8liz9JG2Va8A4J5ZBuaSdwfPqN6axfWRK+y66fjKYbwf9VBLuq4WxtinhJhvp1w6lamKUwLG0slK2RxqFgvHA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 - /@babel/plugin-transform-new-target@7.24.7(@babel/core@7.24.7): resolution: {integrity: sha512-RNKwfRIXg4Ls/8mMTza5oPF5RkOW8Wy/WgMAp1/F1yZ8mMbtwXW+HDoJiOsagWrAhI5f57Vncrmr9XeT4CVapA==} engines: {node: '>=6.9.0'} @@ -1974,16 +1280,6 @@ packages: '@babel/core': 7.24.7 '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-transform-nullish-coalescing-operator@7.24.6(@babel/core@7.24.6): - resolution: {integrity: sha512-+QlAiZBMsBK5NqrBWFXCYeXyiU1y7BQ/OYaiPAcQJMomn5Tyg+r5WuVtyEuvTbpV7L25ZSLfE+2E9ywj4FD48A==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.6) - /@babel/plugin-transform-nullish-coalescing-operator@7.24.7(@babel/core@7.24.7): resolution: {integrity: sha512-Ts7xQVk1OEocqzm8rHMXHlxvsfZ0cEF2yomUqpKENHWMF4zKk175Y4q8H5knJes6PgYad50uuRmt3UJuhBw8pQ==} engines: {node: '>=6.9.0'} @@ -1994,16 +1290,6 @@ packages: '@babel/helper-plugin-utils': 7.24.7 '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.7) - /@babel/plugin-transform-numeric-separator@7.24.6(@babel/core@7.24.6): - resolution: {integrity: sha512-6voawq8T25Jvvnc4/rXcWZQKKxUNZcKMS8ZNrjxQqoRFernJJKjE3s18Qo6VFaatG5aiX5JV1oPD7DbJhn0a4Q==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.6) - /@babel/plugin-transform-numeric-separator@7.24.7(@babel/core@7.24.7): resolution: {integrity: sha512-e6q1TiVUzvH9KRvicuxdBTUj4AdKSRwzIyFFnfnezpCfP2/7Qmbb8qbU2j7GODbl4JMkblitCQjKYUaX/qkkwA==} engines: {node: '>=6.9.0'} @@ -2014,18 +1300,6 @@ packages: '@babel/helper-plugin-utils': 7.24.7 '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.7) - /@babel/plugin-transform-object-rest-spread@7.24.6(@babel/core@7.24.6): - resolution: {integrity: sha512-OKmi5wiMoRW5Smttne7BwHM8s/fb5JFs+bVGNSeHWzwZkWXWValR1M30jyXo1s/RaqgwwhEC62u4rFH/FBcBPg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.6 - '@babel/helper-compilation-targets': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.6) - '@babel/plugin-transform-parameters': 7.24.6(@babel/core@7.24.6) - /@babel/plugin-transform-object-rest-spread@7.24.7(@babel/core@7.24.7): resolution: {integrity: sha512-4QrHAr0aXQCEFni2q4DqKLD31n2DL+RxcwnNjDFkSG0eNQ/xCavnRkfCUjsyqGC2OviNJvZOF/mQqZBw7i2C5Q==} engines: {node: '>=6.9.0'} @@ -2038,16 +1312,6 @@ packages: '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.7) '@babel/plugin-transform-parameters': 7.24.7(@babel/core@7.24.7) - /@babel/plugin-transform-object-super@7.24.6(@babel/core@7.24.6): - resolution: {integrity: sha512-N/C76ihFKlZgKfdkEYKtaRUtXZAgK7sOY4h2qrbVbVTXPrKGIi8aww5WGe/+Wmg8onn8sr2ut6FXlsbu/j6JHg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 - '@babel/helper-replace-supers': 7.24.6(@babel/core@7.24.6) - /@babel/plugin-transform-object-super@7.24.7(@babel/core@7.24.7): resolution: {integrity: sha512-A/vVLwN6lBrMFmMDmPPz0jnE6ZGx7Jq7d6sT/Ev4H65RER6pZ+kczlf1DthF5N0qaPHBsI7UXiE8Zy66nmAovg==} engines: {node: '>=6.9.0'} @@ -2060,16 +1324,6 @@ packages: transitivePeerDependencies: - supports-color - /@babel/plugin-transform-optional-catch-binding@7.24.6(@babel/core@7.24.6): - resolution: {integrity: sha512-L5pZ+b3O1mSzJ71HmxSCmTVd03VOT2GXOigug6vDYJzE5awLI7P1g0wFcdmGuwSDSrQ0L2rDOe/hHws8J1rv3w==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.6) - /@babel/plugin-transform-optional-catch-binding@7.24.7(@babel/core@7.24.7): resolution: {integrity: sha512-uLEndKqP5BfBbC/5jTwPxLh9kqPWWgzN/f8w6UwAIirAEqiIVJWWY312X72Eub09g5KF9+Zn7+hT7sDxmhRuKA==} engines: {node: '>=6.9.0'} @@ -2080,17 +1334,6 @@ packages: '@babel/helper-plugin-utils': 7.24.7 '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.7) - /@babel/plugin-transform-optional-chaining@7.24.6(@babel/core@7.24.6): - resolution: {integrity: sha512-cHbqF6l1QP11OkYTYQ+hhVx1E017O5ZcSPXk9oODpqhcAD1htsWG2NpHrrhthEO2qZomLK0FXS+u7NfrkF5aOQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 - '@babel/helper-skip-transparent-expression-wrappers': 7.24.6 - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.6) - /@babel/plugin-transform-optional-chaining@7.24.7(@babel/core@7.24.7): resolution: {integrity: sha512-tK+0N9yd4j+x/4hxF3F0e0fu/VdcxU18y5SevtyM/PCFlQvXbR0Zmlo2eBrKtVipGNFzpq56o8WsIIKcJFUCRQ==} engines: {node: '>=6.9.0'} @@ -2104,15 +1347,6 @@ packages: transitivePeerDependencies: - supports-color - /@babel/plugin-transform-parameters@7.24.6(@babel/core@7.24.6): - resolution: {integrity: sha512-ST7guE8vLV+vI70wmAxuZpIKzVjvFX9Qs8bl5w6tN/6gOypPWUmMQL2p7LJz5E63vEGrDhAiYetniJFyBH1RkA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 - /@babel/plugin-transform-parameters@7.24.7(@babel/core@7.24.7): resolution: {integrity: sha512-yGWW5Rr+sQOhK0Ot8hjDJuxU3XLRQGflvT4lhlSY0DFvdb3TwKaY26CJzHtYllU0vT9j58hc37ndFPsqT1SrzA==} engines: {node: '>=6.9.0'} @@ -2122,16 +1356,6 @@ packages: '@babel/core': 7.24.7 '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-transform-private-methods@7.24.6(@babel/core@7.24.6): - resolution: {integrity: sha512-T9LtDI0BgwXOzyXrvgLTT8DFjCC/XgWLjflczTLXyvxbnSR/gpv0hbmzlHE/kmh9nOvlygbamLKRo6Op4yB6aw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.6 - '@babel/helper-create-class-features-plugin': 7.24.6(@babel/core@7.24.6) - '@babel/helper-plugin-utils': 7.24.6 - /@babel/plugin-transform-private-methods@7.24.7(@babel/core@7.24.7): resolution: {integrity: sha512-COTCOkG2hn4JKGEKBADkA8WNb35TGkkRbI5iT845dB+NyqgO8Hn+ajPbSnIQznneJTa3d30scb6iz/DhH8GsJQ==} engines: {node: '>=6.9.0'} @@ -2144,18 +1368,6 @@ packages: transitivePeerDependencies: - supports-color - /@babel/plugin-transform-private-property-in-object@7.24.6(@babel/core@7.24.6): - resolution: {integrity: sha512-Qu/ypFxCY5NkAnEhCF86Mvg3NSabKsh/TPpBVswEdkGl7+FbsYHy1ziRqJpwGH4thBdQHh8zx+z7vMYmcJ7iaQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.6 - '@babel/helper-annotate-as-pure': 7.24.6 - '@babel/helper-create-class-features-plugin': 7.24.6(@babel/core@7.24.6) - '@babel/helper-plugin-utils': 7.24.6 - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.6) - /@babel/plugin-transform-private-property-in-object@7.24.7(@babel/core@7.24.7): resolution: {integrity: sha512-9z76mxwnwFxMyxZWEgdgECQglF2Q7cFLm0kMf8pGwt+GSJsY0cONKj/UuO4bOH0w/uAel3ekS4ra5CEAyJRmDA==} engines: {node: '>=6.9.0'} @@ -2170,15 +1382,6 @@ packages: transitivePeerDependencies: - supports-color - /@babel/plugin-transform-property-literals@7.24.6(@babel/core@7.24.6): - resolution: {integrity: sha512-oARaglxhRsN18OYsnPTpb8TcKQWDYNsPNmTnx5++WOAsUJ0cSC/FZVlIJCKvPbU4yn/UXsS0551CFKJhN0CaMw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 - /@babel/plugin-transform-property-literals@7.24.7(@babel/core@7.24.7): resolution: {integrity: sha512-EMi4MLQSHfd2nrCqQEWxFdha2gBCqU4ZcCng4WBGZ5CJL4bBRW0ptdqqDdeirGZcpALazVVNJqRmsO8/+oNCBA==} engines: {node: '>=6.9.0'} @@ -2188,106 +1391,59 @@ packages: '@babel/core': 7.24.7 '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-transform-react-constant-elements@7.24.1(@babel/core@7.24.7): - resolution: {integrity: sha512-QXp1U9x0R7tkiGB0FOk8o74jhnap0FlZ5gNkRIWdG3eP+SvMFg118e1zaWewDzgABb106QSKpVsD3Wgd8t6ifA==} + /@babel/plugin-transform-react-constant-elements@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-7LidzZfUXyfZ8/buRW6qIIHBY8wAZ1OrY9c/wTr8YhZ6vMPo+Uc/CVFLYY1spZrEQlD4w5u8wjqk5NQ3OVqQKA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.6 - - /@babel/plugin-transform-react-display-name@7.24.1(@babel/core@7.24.6): - resolution: {integrity: sha512-mvoQg2f9p2qlpDQRBC7M3c3XTr0k7cp/0+kFKKO/7Gtu0LSw16eKB+Fabe2bDT/UpsyasTBBkAnbdsLrkD5XMw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-transform-react-display-name@7.24.1(@babel/core@7.24.7): - resolution: {integrity: sha512-mvoQg2f9p2qlpDQRBC7M3c3XTr0k7cp/0+kFKKO/7Gtu0LSw16eKB+Fabe2bDT/UpsyasTBBkAnbdsLrkD5XMw==} + /@babel/plugin-transform-react-display-name@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-H/Snz9PFxKsS1JLI4dJLtnJgCJRoo0AUm3chP6NYr+9En1JMKloheEiLIhlp5MDVznWo+H3AAC1Mc8lmUEpsgg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.6 - - /@babel/plugin-transform-react-jsx-development@7.22.5(@babel/core@7.24.6): - resolution: {integrity: sha512-bDhuzwWMuInwCYeDeMzyi7TaBgRQei6DqxhbyniL7/VG4RSS7HtSL2QbY4eESy1KJqlWt8g3xeEBGPuo+XqC8A==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.6 - '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.24.6) + '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-transform-react-jsx-development@7.22.5(@babel/core@7.24.7): - resolution: {integrity: sha512-bDhuzwWMuInwCYeDeMzyi7TaBgRQei6DqxhbyniL7/VG4RSS7HtSL2QbY4eESy1KJqlWt8g3xeEBGPuo+XqC8A==} + /@babel/plugin-transform-react-jsx-development@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-QG9EnzoGn+Qar7rxuW+ZOsbWOt56FvvI93xInqsZDC5fsekx1AlIO4KIJ5M+D0p0SqSH156EpmZyXq630B8OlQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.7 - '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.24.7) - - /@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.24.6): - resolution: {integrity: sha512-5xOpoPguCZCRbo/JeHlloSkTA8Bld1J/E1/kLfD1nsuiW1m8tduTA1ERCgIZokDflX/IBzKcqR3l7VlRgiIfHA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.6 - '@babel/helper-annotate-as-pure': 7.24.6 - '@babel/helper-module-imports': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 - '@babel/plugin-syntax-jsx': 7.24.6(@babel/core@7.24.6) - '@babel/types': 7.24.6 + '@babel/plugin-transform-react-jsx': 7.24.7(@babel/core@7.24.7) + transitivePeerDependencies: + - supports-color - /@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.24.7): - resolution: {integrity: sha512-5xOpoPguCZCRbo/JeHlloSkTA8Bld1J/E1/kLfD1nsuiW1m8tduTA1ERCgIZokDflX/IBzKcqR3l7VlRgiIfHA==} + /@babel/plugin-transform-react-jsx@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-+Dj06GDZEFRYvclU6k4bme55GKBEWUmByM/eoKuqg4zTNQHiApWRhQph5fxQB2wAEFvRzL1tOEj1RJ19wJrhoA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.7 - '@babel/helper-annotate-as-pure': 7.24.6 - '@babel/helper-module-imports': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 - '@babel/plugin-syntax-jsx': 7.24.6(@babel/core@7.24.7) - '@babel/types': 7.24.6 - - /@babel/plugin-transform-react-pure-annotations@7.24.1(@babel/core@7.24.6): - resolution: {integrity: sha512-+pWEAaDJvSm9aFvJNpLiM2+ktl2Sn2U5DdyiWdZBxmLc6+xGt88dvFqsHiAiDS+8WqUwbDfkKz9jRxK3M0k+kA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.6 - '@babel/helper-annotate-as-pure': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-annotate-as-pure': 7.24.7 + '@babel/helper-module-imports': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 + '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.24.7) + '@babel/types': 7.24.7 + transitivePeerDependencies: + - supports-color - /@babel/plugin-transform-react-pure-annotations@7.24.1(@babel/core@7.24.7): - resolution: {integrity: sha512-+pWEAaDJvSm9aFvJNpLiM2+ktl2Sn2U5DdyiWdZBxmLc6+xGt88dvFqsHiAiDS+8WqUwbDfkKz9jRxK3M0k+kA==} + /@babel/plugin-transform-react-pure-annotations@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-PLgBVk3fzbmEjBJ/u8kFzOqS9tUeDjiaWud/rRym/yjCo/M9cASPlnrd2ZmmZpQT40fOOrvR8jh+n8jikrOhNA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.7 - '@babel/helper-annotate-as-pure': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 - - /@babel/plugin-transform-regenerator@7.24.6(@babel/core@7.24.6): - resolution: {integrity: sha512-SMDxO95I8WXRtXhTAc8t/NFQUT7VYbIWwJCJgEli9ml4MhqUMh4S6hxgH6SmAC3eAQNWCDJFxcFeEt9w2sDdXg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 - regenerator-transform: 0.15.2 + '@babel/helper-annotate-as-pure': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 /@babel/plugin-transform-regenerator@7.24.7(@babel/core@7.24.7): resolution: {integrity: sha512-lq3fvXPdimDrlg6LWBoqj+r/DEWgONuwjuOuQCSYgRroXDH/IdM1C0IZf59fL5cHLpjEH/O6opIRBbqv7ELnuA==} @@ -2299,15 +1455,6 @@ packages: '@babel/helper-plugin-utils': 7.24.7 regenerator-transform: 0.15.2 - /@babel/plugin-transform-reserved-words@7.24.6(@babel/core@7.24.6): - resolution: {integrity: sha512-DcrgFXRRlK64dGE0ZFBPD5egM2uM8mgfrvTMOSB2yKzOtjpGegVYkzh3s1zZg1bBck3nkXiaOamJUqK3Syk+4A==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 - /@babel/plugin-transform-reserved-words@7.24.7(@babel/core@7.24.7): resolution: {integrity: sha512-0DUq0pHcPKbjFZCfTss/pGkYMfy3vFWydkUBd9r0GHpIyfs2eCDENvqadMycRS9wZCXR41wucAfJHJmwA0UmoQ==} engines: {node: '>=6.9.0'} @@ -2317,31 +1464,22 @@ packages: '@babel/core': 7.24.7 '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-transform-runtime@7.24.3(@babel/core@7.24.6): - resolution: {integrity: sha512-J0BuRPNlNqlMTRJ72eVptpt9VcInbxO6iP3jaxr+1NPhC0UkKL+6oeX6VXMEYdADnuqmMmsBspt4d5w8Y/TCbQ==} + /@babel/plugin-transform-runtime@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-YqXjrk4C+a1kZjewqt+Mmu2UuV1s07y8kqcUf4qYLnoqemhR4gRQikhdAhSVJioMjVTu6Mo6pAbaypEA3jY6fw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.6 - '@babel/helper-module-imports': 7.24.3 - '@babel/helper-plugin-utils': 7.24.0 - babel-plugin-polyfill-corejs2: 0.4.10(@babel/core@7.24.6) - babel-plugin-polyfill-corejs3: 0.10.4(@babel/core@7.24.6) - babel-plugin-polyfill-regenerator: 0.6.1(@babel/core@7.24.6) + '@babel/core': 7.24.7 + '@babel/helper-module-imports': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 + babel-plugin-polyfill-corejs2: 0.4.11(@babel/core@7.24.7) + babel-plugin-polyfill-corejs3: 0.10.4(@babel/core@7.24.7) + babel-plugin-polyfill-regenerator: 0.6.2(@babel/core@7.24.7) semver: 6.3.1 transitivePeerDependencies: - supports-color - /@babel/plugin-transform-shorthand-properties@7.24.6(@babel/core@7.24.6): - resolution: {integrity: sha512-xnEUvHSMr9eOWS5Al2YPfc32ten7CXdH7Zwyyk7IqITg4nX61oHj+GxpNvl+y5JHjfN3KXE2IV55wAWowBYMVw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 - /@babel/plugin-transform-shorthand-properties@7.24.7(@babel/core@7.24.7): resolution: {integrity: sha512-KsDsevZMDsigzbA09+vacnLpmPH4aWjcZjXdyFKGzpplxhbeB4wYtury3vglQkg6KM/xEPKt73eCjPPf1PgXBA==} engines: {node: '>=6.9.0'} @@ -2351,16 +1489,6 @@ packages: '@babel/core': 7.24.7 '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-transform-spread@7.24.6(@babel/core@7.24.6): - resolution: {integrity: sha512-h/2j7oIUDjS+ULsIrNZ6/TKG97FgmEk1PXryk/HQq6op4XUUUwif2f69fJrzK0wza2zjCS1xhXmouACaWV5uPA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 - '@babel/helper-skip-transparent-expression-wrappers': 7.24.6 - /@babel/plugin-transform-spread@7.24.7(@babel/core@7.24.7): resolution: {integrity: sha512-x96oO0I09dgMDxJaANcRyD4ellXFLLiWhuwDxKZX5g2rWP1bTPkBSwCYv96VDXVT1bD9aPj8tppr5ITIh8hBng==} engines: {node: '>=6.9.0'} @@ -2373,15 +1501,6 @@ packages: transitivePeerDependencies: - supports-color - /@babel/plugin-transform-sticky-regex@7.24.6(@babel/core@7.24.6): - resolution: {integrity: sha512-fN8OcTLfGmYv7FnDrsjodYBo1DhPL3Pze/9mIIE2MGCT1KgADYIOD7rEglpLHZj8PZlC/JFX5WcD+85FLAQusw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 - /@babel/plugin-transform-sticky-regex@7.24.7(@babel/core@7.24.7): resolution: {integrity: sha512-kHPSIJc9v24zEml5geKg9Mjx5ULpfncj0wRpYtxbvKyTtHCYDkVE3aHQ03FrpEo4gEe2vrJJS1Y9CJTaThA52g==} engines: {node: '>=6.9.0'} @@ -2391,15 +1510,6 @@ packages: '@babel/core': 7.24.7 '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-transform-template-literals@7.24.6(@babel/core@7.24.6): - resolution: {integrity: sha512-BJbEqJIcKwrqUP+KfUIkxz3q8VzXe2R8Wv8TaNgO1cx+nNavxn/2+H8kp9tgFSOL6wYPPEgFvU6IKS4qoGqhmg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 - /@babel/plugin-transform-template-literals@7.24.7(@babel/core@7.24.7): resolution: {integrity: sha512-AfDTQmClklHCOLxtGoP7HkeMw56k1/bTQjwsfhL6pppo/M4TOBSq+jjBUBLmV/4oeFg4GWMavIl44ZeCtmmZTw==} engines: {node: '>=6.9.0'} @@ -2409,15 +1519,6 @@ packages: '@babel/core': 7.24.7 '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-transform-typeof-symbol@7.24.6(@babel/core@7.24.6): - resolution: {integrity: sha512-IshCXQ+G9JIFJI7bUpxTE/oA2lgVLAIK8q1KdJNoPXOpvRaNjMySGuvLfBw/Xi2/1lLo953uE8hyYSDW3TSYig==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 - /@babel/plugin-transform-typeof-symbol@7.24.7(@babel/core@7.24.7): resolution: {integrity: sha512-VtR8hDy7YLB7+Pet9IarXjg/zgCMSF+1mNS/EQEiEaUPoFXCVsHG64SIxcaaI2zJgRiv+YmgaQESUfWAdbjzgg==} engines: {node: '>=6.9.0'} @@ -2427,18 +1528,6 @@ packages: '@babel/core': 7.24.7 '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-transform-typescript@7.24.6(@babel/core@7.24.6): - resolution: {integrity: sha512-H0i+hDLmaYYSt6KU9cZE0gb3Cbssa/oxWis7PX4ofQzbvsfix9Lbh8SRk7LCPDlLWJHUiFeHU0qRRpF/4Zv7mQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.6 - '@babel/helper-annotate-as-pure': 7.24.6 - '@babel/helper-create-class-features-plugin': 7.24.6(@babel/core@7.24.6) - '@babel/helper-plugin-utils': 7.24.6 - '@babel/plugin-syntax-typescript': 7.24.6(@babel/core@7.24.6) - /@babel/plugin-transform-typescript@7.24.7(@babel/core@7.24.7): resolution: {integrity: sha512-iLD3UNkgx2n/HrjBesVbYX6j0yqn/sJktvbtKKgcaLIQ4bTTQ8obAypc1VpyHPD2y4Phh9zHOaAt8e/L14wCpw==} engines: {node: '>=6.9.0'} @@ -2453,15 +1542,6 @@ packages: transitivePeerDependencies: - supports-color - /@babel/plugin-transform-unicode-escapes@7.24.6(@babel/core@7.24.6): - resolution: {integrity: sha512-bKl3xxcPbkQQo5eX9LjjDpU2xYHeEeNQbOhj0iPvetSzA+Tu9q/o5lujF4Sek60CM6MgYvOS/DJuwGbiEYAnLw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 - /@babel/plugin-transform-unicode-escapes@7.24.7(@babel/core@7.24.7): resolution: {integrity: sha512-U3ap1gm5+4edc2Q/P+9VrBNhGkfnf+8ZqppY71Bo/pzZmXhhLdqgaUl6cuB07O1+AQJtCLfaOmswiNbSQ9ivhw==} engines: {node: '>=6.9.0'} @@ -2471,16 +1551,6 @@ packages: '@babel/core': 7.24.7 '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-transform-unicode-property-regex@7.24.6(@babel/core@7.24.6): - resolution: {integrity: sha512-8EIgImzVUxy15cZiPii9GvLZwsy7Vxc+8meSlR3cXFmBIl5W5Tn9LGBf7CDKkHj4uVfNXCJB8RsVfnmY61iedA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.6 - '@babel/helper-create-regexp-features-plugin': 7.24.6(@babel/core@7.24.6) - '@babel/helper-plugin-utils': 7.24.6 - /@babel/plugin-transform-unicode-property-regex@7.24.7(@babel/core@7.24.7): resolution: {integrity: sha512-uH2O4OV5M9FZYQrwc7NdVmMxQJOCCzFeYudlZSzUAHRFeOujQefa92E74TQDVskNHCzOXoigEuoyzHDhaEaK5w==} engines: {node: '>=6.9.0'} @@ -2491,16 +1561,6 @@ packages: '@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.24.7) '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-transform-unicode-regex@7.24.6(@babel/core@7.24.6): - resolution: {integrity: sha512-pssN6ExsvxaKU638qcWb81RrvvgZom3jDgU/r5xFZ7TONkZGFf4MhI2ltMb8OcQWhHyxgIavEU+hgqtbKOmsPA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.6 - '@babel/helper-create-regexp-features-plugin': 7.24.6(@babel/core@7.24.6) - '@babel/helper-plugin-utils': 7.24.6 - /@babel/plugin-transform-unicode-regex@7.24.7(@babel/core@7.24.7): resolution: {integrity: sha512-hlQ96MBZSAXUq7ltkjtu3FJCCSMx/j629ns3hA3pXnBXjanNP0LHi+JpPeA81zaWgVK1VGH95Xuy7u0RyQ8kMg==} engines: {node: '>=6.9.0'} @@ -2511,116 +1571,15 @@ packages: '@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.24.7) '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-transform-unicode-sets-regex@7.24.6(@babel/core@7.24.6): - resolution: {integrity: sha512-quiMsb28oXWIDK0gXLALOJRXLgICLiulqdZGOaPPd0vRT7fQp74NtdADAVu+D8s00C+0Xs0MxVP0VKF/sZEUgw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.24.6 - '@babel/helper-create-regexp-features-plugin': 7.24.6(@babel/core@7.24.6) - '@babel/helper-plugin-utils': 7.24.6 - /@babel/plugin-transform-unicode-sets-regex@7.24.7(@babel/core@7.24.7): resolution: {integrity: sha512-2G8aAvF4wy1w/AGZkemprdGMRg5o6zPNhbHVImRz3lss55TYCBd6xStN19rt8XJHq20sqV0JbyWjOWwQRwV/wg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.24.7 - '@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.24.7) - '@babel/helper-plugin-utils': 7.24.7 - - /@babel/preset-env@7.24.6(@babel/core@7.24.6): - resolution: {integrity: sha512-CrxEAvN7VxfjOG8JNF2Y/eMqMJbZPZ185amwGUBp8D9USK90xQmv7dLdFSa+VbD7fdIqcy/Mfv7WtzG8+/qxKg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/compat-data': 7.24.6 - '@babel/core': 7.24.6 - '@babel/helper-compilation-targets': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 - '@babel/helper-validator-option': 7.24.6 - '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.24.6(@babel/core@7.24.6) - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.24.6(@babel/core@7.24.6) - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.24.6(@babel/core@7.24.6) - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.24.6(@babel/core@7.24.6) - '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.6) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.6) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.24.6) - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.24.6) - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.6) - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.24.6) - '@babel/plugin-syntax-import-assertions': 7.24.6(@babel/core@7.24.6) - '@babel/plugin-syntax-import-attributes': 7.24.6(@babel/core@7.24.6) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.24.6) - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.6) - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.6) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.6) - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.6) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.6) - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.6) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.6) - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.6) - '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.24.6) - '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.24.6) - '@babel/plugin-transform-arrow-functions': 7.24.6(@babel/core@7.24.6) - '@babel/plugin-transform-async-generator-functions': 7.24.6(@babel/core@7.24.6) - '@babel/plugin-transform-async-to-generator': 7.24.6(@babel/core@7.24.6) - '@babel/plugin-transform-block-scoped-functions': 7.24.6(@babel/core@7.24.6) - '@babel/plugin-transform-block-scoping': 7.24.6(@babel/core@7.24.6) - '@babel/plugin-transform-class-properties': 7.24.6(@babel/core@7.24.6) - '@babel/plugin-transform-class-static-block': 7.24.6(@babel/core@7.24.6) - '@babel/plugin-transform-classes': 7.24.6(@babel/core@7.24.6) - '@babel/plugin-transform-computed-properties': 7.24.6(@babel/core@7.24.6) - '@babel/plugin-transform-destructuring': 7.24.6(@babel/core@7.24.6) - '@babel/plugin-transform-dotall-regex': 7.24.6(@babel/core@7.24.6) - '@babel/plugin-transform-duplicate-keys': 7.24.6(@babel/core@7.24.6) - '@babel/plugin-transform-dynamic-import': 7.24.6(@babel/core@7.24.6) - '@babel/plugin-transform-exponentiation-operator': 7.24.6(@babel/core@7.24.6) - '@babel/plugin-transform-export-namespace-from': 7.24.6(@babel/core@7.24.6) - '@babel/plugin-transform-for-of': 7.24.6(@babel/core@7.24.6) - '@babel/plugin-transform-function-name': 7.24.6(@babel/core@7.24.6) - '@babel/plugin-transform-json-strings': 7.24.6(@babel/core@7.24.6) - '@babel/plugin-transform-literals': 7.24.6(@babel/core@7.24.6) - '@babel/plugin-transform-logical-assignment-operators': 7.24.6(@babel/core@7.24.6) - '@babel/plugin-transform-member-expression-literals': 7.24.6(@babel/core@7.24.6) - '@babel/plugin-transform-modules-amd': 7.24.6(@babel/core@7.24.6) - '@babel/plugin-transform-modules-commonjs': 7.24.6(@babel/core@7.24.6) - '@babel/plugin-transform-modules-systemjs': 7.24.6(@babel/core@7.24.6) - '@babel/plugin-transform-modules-umd': 7.24.6(@babel/core@7.24.6) - '@babel/plugin-transform-named-capturing-groups-regex': 7.24.6(@babel/core@7.24.6) - '@babel/plugin-transform-new-target': 7.24.6(@babel/core@7.24.6) - '@babel/plugin-transform-nullish-coalescing-operator': 7.24.6(@babel/core@7.24.6) - '@babel/plugin-transform-numeric-separator': 7.24.6(@babel/core@7.24.6) - '@babel/plugin-transform-object-rest-spread': 7.24.6(@babel/core@7.24.6) - '@babel/plugin-transform-object-super': 7.24.6(@babel/core@7.24.6) - '@babel/plugin-transform-optional-catch-binding': 7.24.6(@babel/core@7.24.6) - '@babel/plugin-transform-optional-chaining': 7.24.6(@babel/core@7.24.6) - '@babel/plugin-transform-parameters': 7.24.6(@babel/core@7.24.6) - '@babel/plugin-transform-private-methods': 7.24.6(@babel/core@7.24.6) - '@babel/plugin-transform-private-property-in-object': 7.24.6(@babel/core@7.24.6) - '@babel/plugin-transform-property-literals': 7.24.6(@babel/core@7.24.6) - '@babel/plugin-transform-regenerator': 7.24.6(@babel/core@7.24.6) - '@babel/plugin-transform-reserved-words': 7.24.6(@babel/core@7.24.6) - '@babel/plugin-transform-shorthand-properties': 7.24.6(@babel/core@7.24.6) - '@babel/plugin-transform-spread': 7.24.6(@babel/core@7.24.6) - '@babel/plugin-transform-sticky-regex': 7.24.6(@babel/core@7.24.6) - '@babel/plugin-transform-template-literals': 7.24.6(@babel/core@7.24.6) - '@babel/plugin-transform-typeof-symbol': 7.24.6(@babel/core@7.24.6) - '@babel/plugin-transform-unicode-escapes': 7.24.6(@babel/core@7.24.6) - '@babel/plugin-transform-unicode-property-regex': 7.24.6(@babel/core@7.24.6) - '@babel/plugin-transform-unicode-regex': 7.24.6(@babel/core@7.24.6) - '@babel/plugin-transform-unicode-sets-regex': 7.24.6(@babel/core@7.24.6) - '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.24.6) - babel-plugin-polyfill-corejs2: 0.4.10(@babel/core@7.24.6) - babel-plugin-polyfill-corejs3: 0.10.4(@babel/core@7.24.6) - babel-plugin-polyfill-regenerator: 0.6.1(@babel/core@7.24.6) - core-js-compat: 3.36.1 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color + '@babel/core': 7.24.7 + '@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.24.7) + '@babel/helper-plugin-utils': 7.24.7 /@babel/preset-env@7.24.7(@babel/core@7.24.7): resolution: {integrity: sha512-1YZNsc+y6cTvWlDHidMBsQZrZfEFjRIo/BZCT906PMdzOyXtSLTgqGdrpcuTDCXyd11Am5uQULtDIcCfnTc8fQ==} @@ -2713,16 +1672,6 @@ packages: transitivePeerDependencies: - supports-color - /@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.24.6): - resolution: {integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==} - peerDependencies: - '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 - dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.7 - '@babel/types': 7.24.6 - esutils: 2.0.3 - /@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.24.7): resolution: {integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==} peerDependencies: @@ -2733,46 +1682,21 @@ packages: '@babel/types': 7.24.6 esutils: 2.0.3 - /@babel/preset-react@7.24.1(@babel/core@7.24.6): - resolution: {integrity: sha512-eFa8up2/8cZXLIpkafhaADTXSnl7IsUFCYenRWrARBz0/qZwcT0RBXpys0LJU4+WfPoF2ZG6ew6s2V6izMCwRA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/helper-validator-option': 7.23.5 - '@babel/plugin-transform-react-display-name': 7.24.1(@babel/core@7.24.6) - '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.24.6) - '@babel/plugin-transform-react-jsx-development': 7.22.5(@babel/core@7.24.6) - '@babel/plugin-transform-react-pure-annotations': 7.24.1(@babel/core@7.24.6) - - /@babel/preset-react@7.24.1(@babel/core@7.24.7): - resolution: {integrity: sha512-eFa8up2/8cZXLIpkafhaADTXSnl7IsUFCYenRWrARBz0/qZwcT0RBXpys0LJU4+WfPoF2ZG6ew6s2V6izMCwRA==} + /@babel/preset-react@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-AAH4lEkpmzFWrGVlHaxJB7RLH21uPQ9+He+eFLWHmF9IuFQVugz8eAsamaW0DXRrTfco5zj1wWtpdcXJUOfsag==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/helper-validator-option': 7.23.5 - '@babel/plugin-transform-react-display-name': 7.24.1(@babel/core@7.24.7) - '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.24.7) - '@babel/plugin-transform-react-jsx-development': 7.22.5(@babel/core@7.24.7) - '@babel/plugin-transform-react-pure-annotations': 7.24.1(@babel/core@7.24.7) - - /@babel/preset-typescript@7.24.6(@babel/core@7.24.6): - resolution: {integrity: sha512-U10aHPDnokCFRXgyT/MaIRTivUu2K/mu0vJlwRS9LxJmJet+PFQNKpggPyFCUtC6zWSBPjvxjnpNkAn3Uw2m5w==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 - '@babel/helper-validator-option': 7.24.6 - '@babel/plugin-syntax-jsx': 7.24.6(@babel/core@7.24.6) - '@babel/plugin-transform-modules-commonjs': 7.24.6(@babel/core@7.24.6) - '@babel/plugin-transform-typescript': 7.24.6(@babel/core@7.24.6) + '@babel/helper-plugin-utils': 7.24.7 + '@babel/helper-validator-option': 7.24.7 + '@babel/plugin-transform-react-display-name': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-react-jsx': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-react-jsx-development': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-react-pure-annotations': 7.24.7(@babel/core@7.24.7) + transitivePeerDependencies: + - supports-color /@babel/preset-typescript@7.24.7(@babel/core@7.24.7): resolution: {integrity: sha512-SyXRe3OdWwIwalxDg5UtJnJQO+YPcTfwiIY2B0Xlddh9o7jpWLvv8X1RthIeDOxQ+O1ML5BLPCONToObyVQVuQ==} @@ -2792,8 +1716,8 @@ packages: /@babel/regjsgen@0.8.0: resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==} - /@babel/runtime-corejs3@7.24.5: - resolution: {integrity: sha512-GWO0mgzNMLWaSYM4z4NVIuY0Cd1fl8cPnuetuddu5w/qGuvt5Y7oUi/kvvQGK9xgOkFJDQX2heIvTRn/OQ1XTg==} + /@babel/runtime-corejs3@7.24.7: + resolution: {integrity: sha512-eytSX6JLBY6PVAeQa2bFlDx/7Mmln/gaEpsit5a3WEvjGfiIytEsgAwuIXCPM0xvw0v0cJn3ilq0/TvXrW0kgA==} engines: {node: '>=6.9.0'} dependencies: core-js-pure: 3.37.1 @@ -2805,6 +1729,12 @@ packages: dependencies: regenerator-runtime: 0.14.1 + /@babel/runtime@7.24.7: + resolution: {integrity: sha512-UwgBRMjJP+xv857DCngvqXI3Iq6J4v0wXmwc6sapg+zyhbwmQX67LUEFrkK5tbyJ30jGuG3ZvWpBiB9LCy1kWw==} + engines: {node: '>=6.9.0'} + dependencies: + regenerator-runtime: 0.14.1 + /@babel/template@7.24.6: resolution: {integrity: sha512-3vgazJlLwNXi9jhrR1ef8qiB65L1RK90+lEQwv4OxveHnqC3BfmnHdgySwRLzf6akhlOYenT+b7AfWq+a//AHw==} engines: {node: '>=6.9.0'} @@ -2812,6 +1742,7 @@ packages: '@babel/code-frame': 7.24.6 '@babel/parser': 7.24.6 '@babel/types': 7.24.6 + dev: true /@babel/template@7.24.7: resolution: {integrity: sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==} @@ -2821,40 +1752,6 @@ packages: '@babel/parser': 7.24.7 '@babel/types': 7.24.7 - /@babel/traverse@7.24.1: - resolution: {integrity: sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/code-frame': 7.24.6 - '@babel/generator': 7.24.6 - '@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.22.6 - '@babel/parser': 7.24.6 - '@babel/types': 7.24.6 - debug: 4.3.4(supports-color@8.1.1) - globals: 11.12.0 - transitivePeerDependencies: - - supports-color - - /@babel/traverse@7.24.6: - resolution: {integrity: sha512-OsNjaJwT9Zn8ozxcfoBc+RaHdj3gFmCmYoQLUII1o6ZrUwku0BMg80FoOTPx+Gi6XhcQxAYE4xyjPTo4SxEQqw==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/code-frame': 7.24.6 - '@babel/generator': 7.24.6 - '@babel/helper-environment-visitor': 7.24.6 - '@babel/helper-function-name': 7.24.6 - '@babel/helper-hoist-variables': 7.24.6 - '@babel/helper-split-export-declaration': 7.24.6 - '@babel/parser': 7.24.6 - '@babel/types': 7.24.6 - debug: 4.3.4(supports-color@8.1.1) - globals: 11.12.0 - transitivePeerDependencies: - - supports-color - /@babel/traverse@7.24.7: resolution: {integrity: sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA==} engines: {node: '>=6.9.0'} @@ -2867,7 +1764,7 @@ packages: '@babel/helper-split-export-declaration': 7.24.7 '@babel/parser': 7.24.7 '@babel/types': 7.24.7 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.5 globals: 11.12.0 transitivePeerDependencies: - supports-color @@ -3242,7 +2139,7 @@ packages: resolution: {integrity: sha512-+sbxb71sWre+PwDK7X2T8+bhS6clcVMLwBPznX45Qu6opJcgRjAp7gYSDzVFp187J+feSj5dNBN1mJoi6ckkUQ==} dev: false - /@docsearch/react@3.6.0(@algolia/client-search@4.23.3)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(search-insights@2.13.0): + /@docsearch/react@3.6.0(@algolia/client-search@4.23.3)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(search-insights@2.14.0): resolution: {integrity: sha512-HUFut4ztcVNmqy9gp/wxNbC7pTOHhgVVkHVGCACTuLhUKUhKAF9KYHJtMiLUJxEqiFLQiuri1fWF8zqwM/cu1w==} peerDependencies: '@types/react': '>= 16.8.0 < 19.0.0' @@ -3259,96 +2156,96 @@ packages: search-insights: optional: true dependencies: - '@algolia/autocomplete-core': 1.9.3(@algolia/client-search@4.23.3)(algoliasearch@4.23.3)(search-insights@2.13.0) + '@algolia/autocomplete-core': 1.9.3(@algolia/client-search@4.23.3)(algoliasearch@4.23.3)(search-insights@2.14.0) '@algolia/autocomplete-preset-algolia': 1.9.3(@algolia/client-search@4.23.3)(algoliasearch@4.23.3) '@docsearch/css': 3.6.0 - '@types/react': 18.3.2 + '@types/react': 18.3.3 algoliasearch: 4.23.3 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - search-insights: 2.13.0 + search-insights: 2.14.0 transitivePeerDependencies: - '@algolia/client-search' dev: false - /@docusaurus/core@3.3.2(@docusaurus/types@3.3.2)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5): - resolution: {integrity: sha512-PzKMydKI3IU1LmeZQDi+ut5RSuilbXnA8QdowGeJEgU8EJjmx3rBHNT1LxQxOVqNEwpWi/csLwd9bn7rUjggPA==} + /@docusaurus/core@3.4.0(@docusaurus/types@3.4.0)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5): + resolution: {integrity: sha512-g+0wwmN2UJsBqy2fQRQ6fhXruoEa62JDeEa5d8IdTJlMoaDaEDfHh7WjwGRn4opuTQWpjAwP/fbcgyHKlE+64w==} engines: {node: '>=18.0'} hasBin: true peerDependencies: react: ^18.0.0 react-dom: ^18.0.0 dependencies: - '@babel/core': 7.24.6 - '@babel/generator': 7.24.4 - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.6) - '@babel/plugin-transform-runtime': 7.24.3(@babel/core@7.24.6) - '@babel/preset-env': 7.24.6(@babel/core@7.24.6) - '@babel/preset-react': 7.24.1(@babel/core@7.24.6) - '@babel/preset-typescript': 7.24.6(@babel/core@7.24.6) - '@babel/runtime': 7.24.1 - '@babel/runtime-corejs3': 7.24.5 - '@babel/traverse': 7.24.1 - '@docusaurus/cssnano-preset': 3.3.2 - '@docusaurus/logger': 3.3.2 - '@docusaurus/mdx-loader': 3.3.2(@docusaurus/types@3.3.2)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/utils': 3.3.2(@docusaurus/types@3.3.2)(typescript@5.4.5) - '@docusaurus/utils-common': 3.3.2(@docusaurus/types@3.3.2) - '@docusaurus/utils-validation': 3.3.2(@docusaurus/types@3.3.2)(typescript@5.4.5) + '@babel/core': 7.24.7 + '@babel/generator': 7.24.7 + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.7) + '@babel/plugin-transform-runtime': 7.24.7(@babel/core@7.24.7) + '@babel/preset-env': 7.24.7(@babel/core@7.24.7) + '@babel/preset-react': 7.24.7(@babel/core@7.24.7) + '@babel/preset-typescript': 7.24.7(@babel/core@7.24.7) + '@babel/runtime': 7.24.7 + '@babel/runtime-corejs3': 7.24.7 + '@babel/traverse': 7.24.7 + '@docusaurus/cssnano-preset': 3.4.0 + '@docusaurus/logger': 3.4.0 + '@docusaurus/mdx-loader': 3.4.0(@docusaurus/types@3.4.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) + '@docusaurus/utils': 3.4.0(@docusaurus/types@3.4.0)(typescript@5.4.5) + '@docusaurus/utils-common': 3.4.0(@docusaurus/types@3.4.0) + '@docusaurus/utils-validation': 3.4.0(@docusaurus/types@3.4.0)(typescript@5.4.5) autoprefixer: 10.4.19(postcss@8.4.38) - babel-loader: 9.1.3(@babel/core@7.24.6)(webpack@5.91.0) + babel-loader: 9.1.3(@babel/core@7.24.7)(webpack@5.92.0) babel-plugin-dynamic-import-node: 2.3.3 boxen: 6.2.1 chalk: 4.1.2 chokidar: 3.6.0 clean-css: 5.3.3 - cli-table3: 0.6.3 + cli-table3: 0.6.5 combine-promises: 1.2.0 commander: 5.1.0 - copy-webpack-plugin: 11.0.0(webpack@5.91.0) - core-js: 3.36.1 - css-loader: 6.11.0(webpack@5.91.0) - css-minimizer-webpack-plugin: 5.0.1(clean-css@5.3.3)(webpack@5.91.0) + copy-webpack-plugin: 11.0.0(webpack@5.92.0) + core-js: 3.37.1 + css-loader: 6.11.0(webpack@5.92.0) + css-minimizer-webpack-plugin: 5.0.1(clean-css@5.3.3)(webpack@5.92.0) cssnano: 6.1.2(postcss@8.4.38) del: 6.1.1 detect-port: 1.6.1 escape-html: 1.0.3 eta: 2.2.0 eval: 0.1.8 - file-loader: 6.2.0(webpack@5.91.0) - fs-extra: 11.1.1 + file-loader: 6.2.0(webpack@5.92.0) + fs-extra: 11.2.0 html-minifier-terser: 7.2.0 html-tags: 3.3.1 - html-webpack-plugin: 5.6.0(webpack@5.91.0) + html-webpack-plugin: 5.6.0(webpack@5.92.0) leven: 3.1.0 lodash: 4.17.21 - mini-css-extract-plugin: 2.9.0(webpack@5.91.0) + mini-css-extract-plugin: 2.9.0(webpack@5.92.0) p-map: 4.0.0 postcss: 8.4.38 - postcss-loader: 7.3.4(postcss@8.4.38)(typescript@5.4.5)(webpack@5.91.0) + postcss-loader: 7.3.4(postcss@8.4.38)(typescript@5.4.5)(webpack@5.92.0) prompts: 2.4.2 react: 18.3.1 - react-dev-utils: 12.0.1(eslint@8.57.0)(typescript@5.4.5)(webpack@5.91.0) + react-dev-utils: 12.0.1(eslint@8.57.0)(typescript@5.4.5)(webpack@5.92.0) react-dom: 18.3.1(react@18.3.1) react-helmet-async: 1.3.0(react-dom@18.3.1)(react@18.3.1) react-loadable: /@docusaurus/react-loadable@6.0.0(react@18.3.1) - react-loadable-ssr-addon-v5-slorber: 1.0.1(@docusaurus/react-loadable@6.0.0)(webpack@5.91.0) + react-loadable-ssr-addon-v5-slorber: 1.0.1(@docusaurus/react-loadable@6.0.0)(webpack@5.92.0) react-router: 5.3.4(react@18.3.1) react-router-config: 5.1.1(react-router@5.3.4)(react@18.3.1) react-router-dom: 5.3.4(react@18.3.1) rtl-detect: 1.1.2 - semver: 7.5.4 + semver: 7.6.2 serve-handler: 6.1.5 shelljs: 0.8.5 - terser-webpack-plugin: 5.3.10(webpack@5.91.0) - tslib: 2.6.2 + terser-webpack-plugin: 5.3.10(webpack@5.92.0) + tslib: 2.6.3 update-notifier: 6.0.2 - url-loader: 4.1.1(file-loader@6.2.0)(webpack@5.91.0) - webpack: 5.91.0 + url-loader: 4.1.1(file-loader@6.2.0)(webpack@5.92.0) + webpack: 5.92.0 webpack-bundle-analyzer: 4.10.2 - webpack-dev-server: 4.15.2(webpack@5.91.0) + webpack-dev-server: 4.15.2(webpack@5.92.0) webpack-merge: 5.10.0 - webpackbar: 5.0.2(webpack@5.91.0) + webpackbar: 5.0.2(webpack@5.92.0) transitivePeerDependencies: - '@docusaurus/types' - '@parcel/css' @@ -3368,52 +2265,52 @@ packages: - vue-template-compiler - webpack-cli - /@docusaurus/cssnano-preset@3.3.2: - resolution: {integrity: sha512-+5+epLk/Rp4vFML4zmyTATNc3Is+buMAL6dNjrMWahdJCJlMWMPd/8YfU+2PA57t8mlSbhLJ7vAZVy54cd1vRQ==} + /@docusaurus/cssnano-preset@3.4.0: + resolution: {integrity: sha512-qwLFSz6v/pZHy/UP32IrprmH5ORce86BGtN0eBtG75PpzQJAzp9gefspox+s8IEOr0oZKuQ/nhzZ3xwyc3jYJQ==} engines: {node: '>=18.0'} dependencies: cssnano-preset-advanced: 6.1.2(postcss@8.4.38) postcss: 8.4.38 postcss-sort-media-queries: 5.2.0(postcss@8.4.38) - tslib: 2.6.2 + tslib: 2.6.3 - /@docusaurus/eslint-plugin@3.3.2(eslint@8.57.0)(typescript@5.4.5): - resolution: {integrity: sha512-0RBuWVV9pFmuvHO4BCN4U4P+WQRgvSzZSXPlNw5P2LLhwKNiDSPgzTUA+7FdleIsfk8+lxo/2/3YkEnarHrEAw==} + /@docusaurus/eslint-plugin@3.4.0(eslint@8.57.0)(typescript@5.4.5): + resolution: {integrity: sha512-3Y9SwkxwY36TmsvZGyLZepifHbXIjZHMEFGuPcvtkFNnVgFIUkoAkf17GfwKKHnAloYVG/hpLV1m8q2BVKSLNQ==} engines: {node: '>=18.0'} peerDependencies: eslint: '>=6' dependencies: '@typescript-eslint/utils': 5.62.0(eslint@8.57.0)(typescript@5.4.5) eslint: 8.57.0 - tslib: 2.6.2 + tslib: 2.6.3 transitivePeerDependencies: - supports-color - typescript dev: true - /@docusaurus/logger@3.3.2: - resolution: {integrity: sha512-Ldu38GJ4P8g4guN7d7pyCOJ7qQugG7RVyaxrK8OnxuTlaImvQw33aDRwaX2eNmX8YK6v+//Z502F4sOZbHHCHQ==} + /@docusaurus/logger@3.4.0: + resolution: {integrity: sha512-bZwkX+9SJ8lB9kVRkXw+xvHYSMGG4bpYHKGXeXFvyVc79NMeeBSGgzd4TQLHH+DYeOJoCdl8flrFJVxlZ0wo/Q==} engines: {node: '>=18.0'} dependencies: chalk: 4.1.2 - tslib: 2.6.2 + tslib: 2.6.3 - /@docusaurus/mdx-loader@3.3.2(@docusaurus/types@3.3.2)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5): - resolution: {integrity: sha512-AFRxj/aOk3/mfYDPxE3wTbrjeayVRvNSZP7mgMuUlrb2UlPRbSVAFX1k2RbgAJrnTSwMgb92m2BhJgYRfptN3g==} + /@docusaurus/mdx-loader@3.4.0(@docusaurus/types@3.4.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5): + resolution: {integrity: sha512-kSSbrrk4nTjf4d+wtBA9H+FGauf2gCax89kV8SUSJu3qaTdSIKdWERlngsiHaCFgZ7laTJ8a67UFf+xlFPtuTw==} engines: {node: '>=18.0'} peerDependencies: react: ^18.0.0 react-dom: ^18.0.0 dependencies: - '@docusaurus/logger': 3.3.2 - '@docusaurus/utils': 3.3.2(@docusaurus/types@3.3.2)(typescript@5.4.5) - '@docusaurus/utils-validation': 3.3.2(@docusaurus/types@3.3.2)(typescript@5.4.5) + '@docusaurus/logger': 3.4.0 + '@docusaurus/utils': 3.4.0(@docusaurus/types@3.4.0)(typescript@5.4.5) + '@docusaurus/utils-validation': 3.4.0(@docusaurus/types@3.4.0)(typescript@5.4.5) '@mdx-js/mdx': 3.0.1 '@slorber/remark-comment': 1.0.0 escape-html: 1.0.3 estree-util-value-to-estree: 3.1.1 - file-loader: 6.2.0(webpack@5.91.0) - fs-extra: 11.1.1 + file-loader: 6.2.0(webpack@5.92.0) + fs-extra: 11.2.0 image-size: 1.1.1 mdast-util-mdx: 3.0.0 mdast-util-to-string: 4.0.0 @@ -3425,12 +2322,12 @@ packages: remark-frontmatter: 5.0.0 remark-gfm: 4.0.0 stringify-object: 3.3.0 - tslib: 2.6.2 + tslib: 2.6.3 unified: 11.0.4 unist-util-visit: 5.0.0 - url-loader: 4.1.1(file-loader@6.2.0)(webpack@5.91.0) + url-loader: 4.1.1(file-loader@6.2.0)(webpack@5.92.0) vfile: 6.0.1 - webpack: 5.91.0 + webpack: 5.92.0 transitivePeerDependencies: - '@docusaurus/types' - '@swc/core' @@ -3440,15 +2337,15 @@ packages: - uglify-js - webpack-cli - /@docusaurus/module-type-aliases@3.3.2(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-b/XB0TBJah5yKb4LYuJT4buFvL0MGAb0+vJDrJtlYMguRtsEBkf2nWl5xP7h4Dlw6ol0hsHrCYzJ50kNIOEclw==} + /@docusaurus/module-type-aliases@3.4.0(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-A1AyS8WF5Bkjnb8s+guTDuYmUiwJzNrtchebBHpc0gz0PyHJNMaybUlSrmJjHVcGrya0LKI4YcR3lBDQfXRYLw==} peerDependencies: react: '*' react-dom: '*' dependencies: - '@docusaurus/types': 3.3.2(react-dom@18.3.1)(react@18.3.1) + '@docusaurus/types': 3.4.0(react-dom@18.3.1)(react@18.3.1) '@types/history': 4.7.11 - '@types/react': 18.3.2 + '@types/react': 18.3.3 '@types/react-router-config': 5.0.11 '@types/react-router-dom': 5.3.3 react: 18.3.1 @@ -3462,32 +2359,32 @@ packages: - uglify-js - webpack-cli - /@docusaurus/plugin-content-blog@3.3.2(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5): - resolution: {integrity: sha512-fJU+dmqp231LnwDJv+BHVWft8pcUS2xVPZdeYH6/ibH1s2wQ/sLcmUrGWyIv/Gq9Ptj8XWjRPMghlxghuPPoxg==} + /@docusaurus/plugin-content-blog@3.4.0(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5): + resolution: {integrity: sha512-vv6ZAj78ibR5Jh7XBUT4ndIjmlAxkijM3Sx5MAAzC1gyv0vupDQNhzuFg1USQmQVj3P5I6bquk12etPV3LJ+Xw==} engines: {node: '>=18.0'} peerDependencies: react: ^18.0.0 react-dom: ^18.0.0 dependencies: - '@docusaurus/core': 3.3.2(@docusaurus/types@3.3.2)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/logger': 3.3.2 - '@docusaurus/mdx-loader': 3.3.2(@docusaurus/types@3.3.2)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/types': 3.3.2(react-dom@18.3.1)(react@18.3.1) - '@docusaurus/utils': 3.3.2(@docusaurus/types@3.3.2)(typescript@5.4.5) - '@docusaurus/utils-common': 3.3.2(@docusaurus/types@3.3.2) - '@docusaurus/utils-validation': 3.3.2(@docusaurus/types@3.3.2)(typescript@5.4.5) + '@docusaurus/core': 3.4.0(@docusaurus/types@3.4.0)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) + '@docusaurus/logger': 3.4.0 + '@docusaurus/mdx-loader': 3.4.0(@docusaurus/types@3.4.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) + '@docusaurus/types': 3.4.0(react-dom@18.3.1)(react@18.3.1) + '@docusaurus/utils': 3.4.0(@docusaurus/types@3.4.0)(typescript@5.4.5) + '@docusaurus/utils-common': 3.4.0(@docusaurus/types@3.4.0) + '@docusaurus/utils-validation': 3.4.0(@docusaurus/types@3.4.0)(typescript@5.4.5) cheerio: 1.0.0-rc.12 feed: 4.2.2 - fs-extra: 11.1.1 + fs-extra: 11.2.0 lodash: 4.17.21 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) reading-time: 1.5.0 srcset: 4.0.0 - tslib: 2.6.2 + tslib: 2.6.3 unist-util-visit: 5.0.0 utility-types: 3.11.0 - webpack: 5.91.0 + webpack: 5.92.0 transitivePeerDependencies: - '@parcel/css' - '@rspack/core' @@ -3507,31 +2404,31 @@ packages: - webpack-cli dev: false - /@docusaurus/plugin-content-docs@3.3.2(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5): - resolution: {integrity: sha512-Dm1ri2VlGATTN3VGk1ZRqdRXWa1UlFubjaEL6JaxaK7IIFqN/Esjpl+Xw10R33loHcRww/H76VdEeYayaL76eg==} + /@docusaurus/plugin-content-docs@3.4.0(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5): + resolution: {integrity: sha512-HkUCZffhBo7ocYheD9oZvMcDloRnGhBMOZRyVcAQRFmZPmNqSyISlXA1tQCIxW+r478fty97XXAGjNYzBjpCsg==} engines: {node: '>=18.0'} peerDependencies: react: ^18.0.0 react-dom: ^18.0.0 dependencies: - '@docusaurus/core': 3.3.2(@docusaurus/types@3.3.2)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/logger': 3.3.2 - '@docusaurus/mdx-loader': 3.3.2(@docusaurus/types@3.3.2)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/module-type-aliases': 3.3.2(react-dom@18.3.1)(react@18.3.1) - '@docusaurus/types': 3.3.2(react-dom@18.3.1)(react@18.3.1) - '@docusaurus/utils': 3.3.2(@docusaurus/types@3.3.2)(typescript@5.4.5) - '@docusaurus/utils-common': 3.3.2(@docusaurus/types@3.3.2) - '@docusaurus/utils-validation': 3.3.2(@docusaurus/types@3.3.2)(typescript@5.4.5) + '@docusaurus/core': 3.4.0(@docusaurus/types@3.4.0)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) + '@docusaurus/logger': 3.4.0 + '@docusaurus/mdx-loader': 3.4.0(@docusaurus/types@3.4.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) + '@docusaurus/module-type-aliases': 3.4.0(react-dom@18.3.1)(react@18.3.1) + '@docusaurus/types': 3.4.0(react-dom@18.3.1)(react@18.3.1) + '@docusaurus/utils': 3.4.0(@docusaurus/types@3.4.0)(typescript@5.4.5) + '@docusaurus/utils-common': 3.4.0(@docusaurus/types@3.4.0) + '@docusaurus/utils-validation': 3.4.0(@docusaurus/types@3.4.0)(typescript@5.4.5) '@types/react-router-config': 5.0.11 combine-promises: 1.2.0 - fs-extra: 11.1.1 + fs-extra: 11.2.0 js-yaml: 4.1.0 lodash: 4.17.21 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - tslib: 2.6.2 + tslib: 2.6.3 utility-types: 3.11.0 - webpack: 5.91.0 + webpack: 5.92.0 transitivePeerDependencies: - '@parcel/css' - '@rspack/core' @@ -3550,23 +2447,23 @@ packages: - vue-template-compiler - webpack-cli - /@docusaurus/plugin-content-pages@3.3.2(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5): - resolution: {integrity: sha512-EKc9fQn5H2+OcGER8x1aR+7URtAGWySUgULfqE/M14+rIisdrBstuEZ4lUPDRrSIexOVClML82h2fDS+GSb8Ew==} + /@docusaurus/plugin-content-pages@3.4.0(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5): + resolution: {integrity: sha512-h2+VN/0JjpR8fIkDEAoadNjfR3oLzB+v1qSXbIAKjQ46JAHx3X22n9nqS+BWSQnTnp1AjkjSvZyJMekmcwxzxg==} engines: {node: '>=18.0'} peerDependencies: react: ^18.0.0 react-dom: ^18.0.0 dependencies: - '@docusaurus/core': 3.3.2(@docusaurus/types@3.3.2)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/mdx-loader': 3.3.2(@docusaurus/types@3.3.2)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/types': 3.3.2(react-dom@18.3.1)(react@18.3.1) - '@docusaurus/utils': 3.3.2(@docusaurus/types@3.3.2)(typescript@5.4.5) - '@docusaurus/utils-validation': 3.3.2(@docusaurus/types@3.3.2)(typescript@5.4.5) - fs-extra: 11.1.1 + '@docusaurus/core': 3.4.0(@docusaurus/types@3.4.0)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) + '@docusaurus/mdx-loader': 3.4.0(@docusaurus/types@3.4.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) + '@docusaurus/types': 3.4.0(react-dom@18.3.1)(react@18.3.1) + '@docusaurus/utils': 3.4.0(@docusaurus/types@3.4.0)(typescript@5.4.5) + '@docusaurus/utils-validation': 3.4.0(@docusaurus/types@3.4.0)(typescript@5.4.5) + fs-extra: 11.2.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - tslib: 2.6.2 - webpack: 5.91.0 + tslib: 2.6.3 + webpack: 5.92.0 transitivePeerDependencies: - '@parcel/css' - '@rspack/core' @@ -3586,21 +2483,21 @@ packages: - webpack-cli dev: false - /@docusaurus/plugin-debug@3.3.2(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5): - resolution: {integrity: sha512-oBIBmwtaB+YS0XlmZ3gCO+cMbsGvIYuAKkAopoCh0arVjtlyPbejzPrHuCoRHB9G7abjNZw7zoONOR8+8LM5+Q==} + /@docusaurus/plugin-debug@3.4.0(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5): + resolution: {integrity: sha512-uV7FDUNXGyDSD3PwUaf5YijX91T5/H9SX4ErEcshzwgzWwBtK37nUWPU3ZLJfeTavX3fycTOqk9TglpOLaWkCg==} engines: {node: '>=18.0'} peerDependencies: react: ^18.0.0 react-dom: ^18.0.0 dependencies: - '@docusaurus/core': 3.3.2(@docusaurus/types@3.3.2)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/types': 3.3.2(react-dom@18.3.1)(react@18.3.1) - '@docusaurus/utils': 3.3.2(@docusaurus/types@3.3.2)(typescript@5.4.5) - fs-extra: 11.1.1 + '@docusaurus/core': 3.4.0(@docusaurus/types@3.4.0)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) + '@docusaurus/types': 3.4.0(react-dom@18.3.1)(react@18.3.1) + '@docusaurus/utils': 3.4.0(@docusaurus/types@3.4.0)(typescript@5.4.5) + fs-extra: 11.2.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) react-json-view-lite: 1.4.0(react@18.3.1) - tslib: 2.6.2 + tslib: 2.6.3 transitivePeerDependencies: - '@parcel/css' - '@rspack/core' @@ -3620,19 +2517,19 @@ packages: - webpack-cli dev: false - /@docusaurus/plugin-google-analytics@3.3.2(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5): - resolution: {integrity: sha512-jXhrEIhYPSClMBK6/IA8qf1/FBoxqGXZvg7EuBax9HaK9+kL3L0TJIlatd8jQJOMtds8mKw806TOCc3rtEad1A==} + /@docusaurus/plugin-google-analytics@3.4.0(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5): + resolution: {integrity: sha512-mCArluxEGi3cmYHqsgpGGt3IyLCrFBxPsxNZ56Mpur0xSlInnIHoeLDH7FvVVcPJRPSQ9/MfRqLsainRw+BojA==} engines: {node: '>=18.0'} peerDependencies: react: ^18.0.0 react-dom: ^18.0.0 dependencies: - '@docusaurus/core': 3.3.2(@docusaurus/types@3.3.2)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/types': 3.3.2(react-dom@18.3.1)(react@18.3.1) - '@docusaurus/utils-validation': 3.3.2(@docusaurus/types@3.3.2)(typescript@5.4.5) + '@docusaurus/core': 3.4.0(@docusaurus/types@3.4.0)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) + '@docusaurus/types': 3.4.0(react-dom@18.3.1)(react@18.3.1) + '@docusaurus/utils-validation': 3.4.0(@docusaurus/types@3.4.0)(typescript@5.4.5) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - tslib: 2.6.2 + tslib: 2.6.3 transitivePeerDependencies: - '@parcel/css' - '@rspack/core' @@ -3652,20 +2549,20 @@ packages: - webpack-cli dev: false - /@docusaurus/plugin-google-gtag@3.3.2(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5): - resolution: {integrity: sha512-vcrKOHGbIDjVnNMrfbNpRQR1x6Jvcrb48kVzpBAOsKbj9rXZm/idjVAXRaewwobHdOrJkfWS/UJoxzK8wyLRBQ==} + /@docusaurus/plugin-google-gtag@3.4.0(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5): + resolution: {integrity: sha512-Dsgg6PLAqzZw5wZ4QjUYc8Z2KqJqXxHxq3vIoyoBWiLEEfigIs7wHR+oiWUQy3Zk9MIk6JTYj7tMoQU0Jm3nqA==} engines: {node: '>=18.0'} peerDependencies: react: ^18.0.0 react-dom: ^18.0.0 dependencies: - '@docusaurus/core': 3.3.2(@docusaurus/types@3.3.2)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/types': 3.3.2(react-dom@18.3.1)(react@18.3.1) - '@docusaurus/utils-validation': 3.3.2(@docusaurus/types@3.3.2)(typescript@5.4.5) + '@docusaurus/core': 3.4.0(@docusaurus/types@3.4.0)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) + '@docusaurus/types': 3.4.0(react-dom@18.3.1)(react@18.3.1) + '@docusaurus/utils-validation': 3.4.0(@docusaurus/types@3.4.0)(typescript@5.4.5) '@types/gtag.js': 0.0.12 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - tslib: 2.6.2 + tslib: 2.6.3 transitivePeerDependencies: - '@parcel/css' - '@rspack/core' @@ -3685,19 +2582,19 @@ packages: - webpack-cli dev: false - /@docusaurus/plugin-google-tag-manager@3.3.2(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5): - resolution: {integrity: sha512-ldkR58Fdeks0vC+HQ+L+bGFSJsotQsipXD+iKXQFvkOfmPIV6QbHRd7IIcm5b6UtwOiK33PylNS++gjyLUmaGw==} + /@docusaurus/plugin-google-tag-manager@3.4.0(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5): + resolution: {integrity: sha512-O9tX1BTwxIhgXpOLpFDueYA9DWk69WCbDRrjYoMQtFHSkTyE7RhNgyjSPREUWJb9i+YUg3OrsvrBYRl64FCPCQ==} engines: {node: '>=18.0'} peerDependencies: react: ^18.0.0 react-dom: ^18.0.0 dependencies: - '@docusaurus/core': 3.3.2(@docusaurus/types@3.3.2)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/types': 3.3.2(react-dom@18.3.1)(react@18.3.1) - '@docusaurus/utils-validation': 3.3.2(@docusaurus/types@3.3.2)(typescript@5.4.5) + '@docusaurus/core': 3.4.0(@docusaurus/types@3.4.0)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) + '@docusaurus/types': 3.4.0(react-dom@18.3.1)(react@18.3.1) + '@docusaurus/utils-validation': 3.4.0(@docusaurus/types@3.4.0)(typescript@5.4.5) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - tslib: 2.6.2 + tslib: 2.6.3 transitivePeerDependencies: - '@parcel/css' - '@rspack/core' @@ -3717,24 +2614,24 @@ packages: - webpack-cli dev: false - /@docusaurus/plugin-sitemap@3.3.2(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5): - resolution: {integrity: sha512-/ZI1+bwZBhAgC30inBsHe3qY9LOZS+79fRGkNdTcGHRMcdAp6Vw2pCd1gzlxd/xU+HXsNP6cLmTOrggmRp3Ujg==} + /@docusaurus/plugin-sitemap@3.4.0(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5): + resolution: {integrity: sha512-+0VDvx9SmNrFNgwPoeoCha+tRoAjopwT0+pYO1xAbyLcewXSemq+eLxEa46Q1/aoOaJQ0qqHELuQM7iS2gp33Q==} engines: {node: '>=18.0'} peerDependencies: react: ^18.0.0 react-dom: ^18.0.0 dependencies: - '@docusaurus/core': 3.3.2(@docusaurus/types@3.3.2)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/logger': 3.3.2 - '@docusaurus/types': 3.3.2(react-dom@18.3.1)(react@18.3.1) - '@docusaurus/utils': 3.3.2(@docusaurus/types@3.3.2)(typescript@5.4.5) - '@docusaurus/utils-common': 3.3.2(@docusaurus/types@3.3.2) - '@docusaurus/utils-validation': 3.3.2(@docusaurus/types@3.3.2)(typescript@5.4.5) - fs-extra: 11.1.1 + '@docusaurus/core': 3.4.0(@docusaurus/types@3.4.0)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) + '@docusaurus/logger': 3.4.0 + '@docusaurus/types': 3.4.0(react-dom@18.3.1)(react@18.3.1) + '@docusaurus/utils': 3.4.0(@docusaurus/types@3.4.0)(typescript@5.4.5) + '@docusaurus/utils-common': 3.4.0(@docusaurus/types@3.4.0) + '@docusaurus/utils-validation': 3.4.0(@docusaurus/types@3.4.0)(typescript@5.4.5) + fs-extra: 11.2.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - sitemap: 7.1.1 - tslib: 2.6.2 + sitemap: 7.1.2 + tslib: 2.6.3 transitivePeerDependencies: - '@parcel/css' - '@rspack/core' @@ -3754,26 +2651,26 @@ packages: - webpack-cli dev: false - /@docusaurus/preset-classic@3.3.2(@algolia/client-search@4.23.3)(@types/react@18.3.2)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(search-insights@2.13.0)(typescript@5.4.5): - resolution: {integrity: sha512-1SDS7YIUN1Pg3BmD6TOTjhB7RSBHJRpgIRKx9TpxqyDrJ92sqtZhomDc6UYoMMLQNF2wHFZZVGFjxJhw2VpL+Q==} + /@docusaurus/preset-classic@3.4.0(@algolia/client-search@4.23.3)(@types/react@18.3.3)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(search-insights@2.14.0)(typescript@5.4.5): + resolution: {integrity: sha512-Ohj6KB7siKqZaQhNJVMBBUzT3Nnp6eTKqO+FXO3qu/n1hJl3YLwVKTWBg28LF7MWrKu46UuYavwMRxud0VyqHg==} engines: {node: '>=18.0'} peerDependencies: react: ^18.0.0 react-dom: ^18.0.0 dependencies: - '@docusaurus/core': 3.3.2(@docusaurus/types@3.3.2)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/plugin-content-blog': 3.3.2(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/plugin-content-docs': 3.3.2(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/plugin-content-pages': 3.3.2(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/plugin-debug': 3.3.2(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/plugin-google-analytics': 3.3.2(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/plugin-google-gtag': 3.3.2(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/plugin-google-tag-manager': 3.3.2(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/plugin-sitemap': 3.3.2(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/theme-classic': 3.3.2(@types/react@18.3.2)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/theme-common': 3.3.2(@docusaurus/types@3.3.2)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/theme-search-algolia': 3.3.2(@algolia/client-search@4.23.3)(@docusaurus/types@3.3.2)(@types/react@18.3.2)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(search-insights@2.13.0)(typescript@5.4.5) - '@docusaurus/types': 3.3.2(react-dom@18.3.1)(react@18.3.1) + '@docusaurus/core': 3.4.0(@docusaurus/types@3.4.0)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) + '@docusaurus/plugin-content-blog': 3.4.0(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) + '@docusaurus/plugin-content-docs': 3.4.0(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) + '@docusaurus/plugin-content-pages': 3.4.0(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) + '@docusaurus/plugin-debug': 3.4.0(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) + '@docusaurus/plugin-google-analytics': 3.4.0(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) + '@docusaurus/plugin-google-gtag': 3.4.0(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) + '@docusaurus/plugin-google-tag-manager': 3.4.0(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) + '@docusaurus/plugin-sitemap': 3.4.0(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) + '@docusaurus/theme-classic': 3.4.0(@types/react@18.3.3)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) + '@docusaurus/theme-common': 3.4.0(@docusaurus/types@3.4.0)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) + '@docusaurus/theme-search-algolia': 3.4.0(@algolia/client-search@4.23.3)(@docusaurus/types@3.4.0)(@types/react@18.3.3)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(search-insights@2.14.0)(typescript@5.4.5) + '@docusaurus/types': 3.4.0(react-dom@18.3.1)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) transitivePeerDependencies: @@ -3803,29 +2700,29 @@ packages: peerDependencies: react: '*' dependencies: - '@types/react': 18.3.2 + '@types/react': 18.3.3 react: 18.3.1 - /@docusaurus/theme-classic@3.3.2(@types/react@18.3.2)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5): - resolution: {integrity: sha512-gepHFcsluIkPb4Im9ukkiO4lXrai671wzS3cKQkY9BXQgdVwsdPf/KS0Vs4Xlb0F10fTz+T3gNjkxNEgSN9M0A==} + /@docusaurus/theme-classic@3.4.0(@types/react@18.3.3)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5): + resolution: {integrity: sha512-0IPtmxsBYv2adr1GnZRdMkEQt1YW6tpzrUPj02YxNpvJ5+ju4E13J5tB4nfdaen/tfR1hmpSPlTFPvTf4kwy8Q==} engines: {node: '>=18.0'} peerDependencies: react: ^18.0.0 react-dom: ^18.0.0 dependencies: - '@docusaurus/core': 3.3.2(@docusaurus/types@3.3.2)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/mdx-loader': 3.3.2(@docusaurus/types@3.3.2)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/module-type-aliases': 3.3.2(react-dom@18.3.1)(react@18.3.1) - '@docusaurus/plugin-content-blog': 3.3.2(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/plugin-content-docs': 3.3.2(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/plugin-content-pages': 3.3.2(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/theme-common': 3.3.2(@docusaurus/types@3.3.2)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/theme-translations': 3.3.2 - '@docusaurus/types': 3.3.2(react-dom@18.3.1)(react@18.3.1) - '@docusaurus/utils': 3.3.2(@docusaurus/types@3.3.2)(typescript@5.4.5) - '@docusaurus/utils-common': 3.3.2(@docusaurus/types@3.3.2) - '@docusaurus/utils-validation': 3.3.2(@docusaurus/types@3.3.2)(typescript@5.4.5) - '@mdx-js/react': 3.0.1(@types/react@18.3.2)(react@18.3.1) + '@docusaurus/core': 3.4.0(@docusaurus/types@3.4.0)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) + '@docusaurus/mdx-loader': 3.4.0(@docusaurus/types@3.4.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) + '@docusaurus/module-type-aliases': 3.4.0(react-dom@18.3.1)(react@18.3.1) + '@docusaurus/plugin-content-blog': 3.4.0(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) + '@docusaurus/plugin-content-docs': 3.4.0(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) + '@docusaurus/plugin-content-pages': 3.4.0(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) + '@docusaurus/theme-common': 3.4.0(@docusaurus/types@3.4.0)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) + '@docusaurus/theme-translations': 3.4.0 + '@docusaurus/types': 3.4.0(react-dom@18.3.1)(react@18.3.1) + '@docusaurus/utils': 3.4.0(@docusaurus/types@3.4.0)(typescript@5.4.5) + '@docusaurus/utils-common': 3.4.0(@docusaurus/types@3.4.0) + '@docusaurus/utils-validation': 3.4.0(@docusaurus/types@3.4.0)(typescript@5.4.5) + '@mdx-js/react': 3.0.1(@types/react@18.3.3)(react@18.3.1) clsx: 2.1.1 copy-text-to-clipboard: 3.2.0 infima: 0.2.0-alpha.43 @@ -3838,7 +2735,7 @@ packages: react-dom: 18.3.1(react@18.3.1) react-router-dom: 5.3.4(react@18.3.1) rtlcss: 4.1.1 - tslib: 2.6.2 + tslib: 2.6.3 utility-types: 3.11.0 transitivePeerDependencies: - '@parcel/css' @@ -3860,29 +2757,29 @@ packages: - webpack-cli dev: false - /@docusaurus/theme-common@3.3.2(@docusaurus/types@3.3.2)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5): - resolution: {integrity: sha512-kXqSaL/sQqo4uAMQ4fHnvRZrH45Xz2OdJ3ABXDS7YVGPSDTBC8cLebFrRR4YF9EowUHto1UC/EIklJZQMG/usA==} + /@docusaurus/theme-common@3.4.0(@docusaurus/types@3.4.0)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5): + resolution: {integrity: sha512-0A27alXuv7ZdCg28oPE8nH/Iz73/IUejVaCazqu9elS4ypjiLhK3KfzdSQBnL/g7YfHSlymZKdiOHEo8fJ0qMA==} engines: {node: '>=18.0'} peerDependencies: react: ^18.0.0 react-dom: ^18.0.0 dependencies: - '@docusaurus/mdx-loader': 3.3.2(@docusaurus/types@3.3.2)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/module-type-aliases': 3.3.2(react-dom@18.3.1)(react@18.3.1) - '@docusaurus/plugin-content-blog': 3.3.2(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/plugin-content-docs': 3.3.2(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/plugin-content-pages': 3.3.2(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/utils': 3.3.2(@docusaurus/types@3.3.2)(typescript@5.4.5) - '@docusaurus/utils-common': 3.3.2(@docusaurus/types@3.3.2) + '@docusaurus/mdx-loader': 3.4.0(@docusaurus/types@3.4.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) + '@docusaurus/module-type-aliases': 3.4.0(react-dom@18.3.1)(react@18.3.1) + '@docusaurus/plugin-content-blog': 3.4.0(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) + '@docusaurus/plugin-content-docs': 3.4.0(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) + '@docusaurus/plugin-content-pages': 3.4.0(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) + '@docusaurus/utils': 3.4.0(@docusaurus/types@3.4.0)(typescript@5.4.5) + '@docusaurus/utils-common': 3.4.0(@docusaurus/types@3.4.0) '@types/history': 4.7.11 - '@types/react': 18.3.2 + '@types/react': 18.3.3 '@types/react-router-config': 5.0.11 clsx: 2.1.1 parse-numeric-range: 1.3.0 prism-react-renderer: 2.3.1(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - tslib: 2.6.2 + tslib: 2.6.3 utility-types: 3.11.0 transitivePeerDependencies: - '@docusaurus/types' @@ -3904,30 +2801,30 @@ packages: - webpack-cli dev: false - /@docusaurus/theme-search-algolia@3.3.2(@algolia/client-search@4.23.3)(@docusaurus/types@3.3.2)(@types/react@18.3.2)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(search-insights@2.13.0)(typescript@5.4.5): - resolution: {integrity: sha512-qLkfCl29VNBnF1MWiL9IyOQaHxUvicZp69hISyq/xMsNvFKHFOaOfk9xezYod2Q9xx3xxUh9t/QPigIei2tX4w==} + /@docusaurus/theme-search-algolia@3.4.0(@algolia/client-search@4.23.3)(@docusaurus/types@3.4.0)(@types/react@18.3.3)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(search-insights@2.14.0)(typescript@5.4.5): + resolution: {integrity: sha512-aiHFx7OCw4Wck1z6IoShVdUWIjntC8FHCw9c5dR8r3q4Ynh+zkS8y2eFFunN/DL6RXPzpnvKCg3vhLQYJDmT9Q==} engines: {node: '>=18.0'} peerDependencies: react: ^18.0.0 react-dom: ^18.0.0 dependencies: - '@docsearch/react': 3.6.0(@algolia/client-search@4.23.3)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(search-insights@2.13.0) - '@docusaurus/core': 3.3.2(@docusaurus/types@3.3.2)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/logger': 3.3.2 - '@docusaurus/plugin-content-docs': 3.3.2(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/theme-common': 3.3.2(@docusaurus/types@3.3.2)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) - '@docusaurus/theme-translations': 3.3.2 - '@docusaurus/utils': 3.3.2(@docusaurus/types@3.3.2)(typescript@5.4.5) - '@docusaurus/utils-validation': 3.3.2(@docusaurus/types@3.3.2)(typescript@5.4.5) + '@docsearch/react': 3.6.0(@algolia/client-search@4.23.3)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)(search-insights@2.14.0) + '@docusaurus/core': 3.4.0(@docusaurus/types@3.4.0)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) + '@docusaurus/logger': 3.4.0 + '@docusaurus/plugin-content-docs': 3.4.0(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) + '@docusaurus/theme-common': 3.4.0(@docusaurus/types@3.4.0)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) + '@docusaurus/theme-translations': 3.4.0 + '@docusaurus/utils': 3.4.0(@docusaurus/types@3.4.0)(typescript@5.4.5) + '@docusaurus/utils-validation': 3.4.0(@docusaurus/types@3.4.0)(typescript@5.4.5) algoliasearch: 4.23.3 - algoliasearch-helper: 3.19.0(algoliasearch@4.23.3) + algoliasearch-helper: 3.21.0(algoliasearch@4.23.3) clsx: 2.1.1 eta: 2.2.0 - fs-extra: 11.1.1 + fs-extra: 11.2.0 lodash: 4.17.21 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - tslib: 2.6.2 + tslib: 2.6.3 utility-types: 3.11.0 transitivePeerDependencies: - '@algolia/client-search' @@ -3952,34 +2849,34 @@ packages: - webpack-cli dev: false - /@docusaurus/theme-translations@3.3.2: - resolution: {integrity: sha512-bPuiUG7Z8sNpGuTdGnmKl/oIPeTwKr0AXLGu9KaP6+UFfRZiyWbWE87ti97RrevB2ffojEdvchNujparR3jEZQ==} + /@docusaurus/theme-translations@3.4.0: + resolution: {integrity: sha512-zSxCSpmQCCdQU5Q4CnX/ID8CSUUI3fvmq4hU/GNP/XoAWtXo9SAVnM3TzpU8Gb//H3WCsT8mJcTfyOk3d9ftNg==} engines: {node: '>=18.0'} dependencies: - fs-extra: 11.1.1 - tslib: 2.6.2 + fs-extra: 11.2.0 + tslib: 2.6.3 dev: false - /@docusaurus/tsconfig@3.3.2: - resolution: {integrity: sha512-2MQXkLoWqgOSiqFojNEq8iPtFBHGQqd1b/SQMoe+v3GgHmk/L6YTTO/hMcHhWb1hTFmbkei++IajSfD3RlZKvw==} + /@docusaurus/tsconfig@3.4.0: + resolution: {integrity: sha512-0qENiJ+TRaeTzcg4olrnh0BQ7eCxTgbYWBnWUeQDc84UYkt/T3pDNnm3SiQkqPb+YQ1qtYFlC0RriAElclo8Dg==} dev: true - /@docusaurus/types@3.3.2(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-5p201S7AZhliRxTU7uMKtSsoC8mgPA9bs9b5NQg1IRdRxJfflursXNVsgc3PcMqiUTul/v1s3k3rXXFlRE890w==} + /@docusaurus/types@3.4.0(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-4jcDO8kXi5Cf9TcyikB/yKmz14f2RZ2qTRerbHAsS+5InE9ZgSLBNLsewtFTcTOXSVcbU3FoGOzcNWAmU1TR0A==} peerDependencies: react: ^18.0.0 react-dom: ^18.0.0 dependencies: '@mdx-js/mdx': 3.0.1 '@types/history': 4.7.11 - '@types/react': 18.3.2 + '@types/react': 18.3.3 commander: 5.1.0 joi: 17.13.1 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) react-helmet-async: 1.3.0(react-dom@18.3.1)(react@18.3.1) utility-types: 3.11.0 - webpack: 5.91.0 + webpack: 5.92.0 webpack-merge: 5.10.0 transitivePeerDependencies: - '@swc/core' @@ -3988,8 +2885,8 @@ packages: - uglify-js - webpack-cli - /@docusaurus/utils-common@3.3.2(@docusaurus/types@3.3.2): - resolution: {integrity: sha512-QWFTLEkPYsejJsLStgtmetMFIA3pM8EPexcZ4WZ7b++gO5jGVH7zsipREnCHzk6+eDgeaXfkR6UPaTt86bp8Og==} + /@docusaurus/utils-common@3.4.0(@docusaurus/types@3.4.0): + resolution: {integrity: sha512-NVx54Wr4rCEKsjOH5QEVvxIqVvm+9kh7q8aYTU5WzUU9/Hctd6aTrcZ3G0Id4zYJ+AeaG5K5qHA4CY5Kcm2iyQ==} engines: {node: '>=18.0'} peerDependencies: '@docusaurus/types': '*' @@ -3997,19 +2894,21 @@ packages: '@docusaurus/types': optional: true dependencies: - '@docusaurus/types': 3.3.2(react-dom@18.3.1)(react@18.3.1) - tslib: 2.6.2 + '@docusaurus/types': 3.4.0(react-dom@18.3.1)(react@18.3.1) + tslib: 2.6.3 - /@docusaurus/utils-validation@3.3.2(@docusaurus/types@3.3.2)(typescript@5.4.5): - resolution: {integrity: sha512-itDgFs5+cbW9REuC7NdXals4V6++KifgVMzoGOOOSIifBQw+8ULhy86u5e1lnptVL0sv8oAjq2alO7I40GR7pA==} + /@docusaurus/utils-validation@3.4.0(@docusaurus/types@3.4.0)(typescript@5.4.5): + resolution: {integrity: sha512-hYQ9fM+AXYVTWxJOT1EuNaRnrR2WGpRdLDQG07O8UOpsvCPWUVOeo26Rbm0JWY2sGLfzAb+tvJ62yF+8F+TV0g==} engines: {node: '>=18.0'} dependencies: - '@docusaurus/logger': 3.3.2 - '@docusaurus/utils': 3.3.2(@docusaurus/types@3.3.2)(typescript@5.4.5) - '@docusaurus/utils-common': 3.3.2(@docusaurus/types@3.3.2) + '@docusaurus/logger': 3.4.0 + '@docusaurus/utils': 3.4.0(@docusaurus/types@3.4.0)(typescript@5.4.5) + '@docusaurus/utils-common': 3.4.0(@docusaurus/types@3.4.0) + fs-extra: 11.2.0 joi: 17.13.1 js-yaml: 4.1.0 - tslib: 2.6.2 + lodash: 4.17.21 + tslib: 2.6.3 transitivePeerDependencies: - '@docusaurus/types' - '@swc/core' @@ -4019,8 +2918,8 @@ packages: - uglify-js - webpack-cli - /@docusaurus/utils@3.3.2(@docusaurus/types@3.3.2)(typescript@5.4.5): - resolution: {integrity: sha512-f4YMnBVymtkSxONv4Y8js3Gez9IgHX+Lcg6YRMOjVbq8sgCcdYK1lf6SObAuz5qB/mxiSK7tW0M9aaiIaUSUJg==} + /@docusaurus/utils@3.4.0(@docusaurus/types@3.4.0)(typescript@5.4.5): + resolution: {integrity: sha512-fRwnu3L3nnWaXOgs88BVBmG1yGjcQqZNHG+vInhEa2Sz2oQB+ZjbEMO5Rh9ePFpZ0YDiDUhpaVjwmS+AU2F14g==} engines: {node: '>=18.0'} peerDependencies: '@docusaurus/types': '*' @@ -4028,26 +2927,27 @@ packages: '@docusaurus/types': optional: true dependencies: - '@docusaurus/logger': 3.3.2 - '@docusaurus/types': 3.3.2(react-dom@18.3.1)(react@18.3.1) - '@docusaurus/utils-common': 3.3.2(@docusaurus/types@3.3.2) + '@docusaurus/logger': 3.4.0 + '@docusaurus/types': 3.4.0(react-dom@18.3.1)(react@18.3.1) + '@docusaurus/utils-common': 3.4.0(@docusaurus/types@3.4.0) '@svgr/webpack': 8.1.0(typescript@5.4.5) escape-string-regexp: 4.0.0 - file-loader: 6.2.0(webpack@5.91.0) - fs-extra: 11.1.1 + file-loader: 6.2.0(webpack@5.92.0) + fs-extra: 11.2.0 github-slugger: 1.5.0 globby: 11.1.0 gray-matter: 4.0.3 - jiti: 1.21.0 + jiti: 1.21.6 js-yaml: 4.1.0 lodash: 4.17.21 - micromatch: 4.0.5 + micromatch: 4.0.7 prompts: 2.4.2 resolve-pathname: 3.0.0 shelljs: 0.8.5 - tslib: 2.6.2 - url-loader: 4.1.1(file-loader@6.2.0)(webpack@5.91.0) - webpack: 5.91.0 + tslib: 2.6.3 + url-loader: 4.1.1(file-loader@6.2.0)(webpack@5.92.0) + utility-types: 3.11.0 + webpack: 5.92.0 transitivePeerDependencies: - '@swc/core' - esbuild @@ -4100,6 +3000,7 @@ packages: /@humanwhocodes/config-array@0.11.14: resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} engines: {node: '>=10.10.0'} + deprecated: Use @eslint/config-array instead dependencies: '@humanwhocodes/object-schema': 2.0.2 debug: 4.3.4(supports-color@8.1.1) @@ -4113,6 +3014,7 @@ packages: /@humanwhocodes/object-schema@2.0.2: resolution: {integrity: sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==} + deprecated: Use @eslint/object-schema instead /@isaacs/cliui@8.0.2: resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} @@ -4438,14 +3340,14 @@ packages: transitivePeerDependencies: - supports-color - /@mdx-js/react@3.0.1(@types/react@18.3.2)(react@18.3.1): + /@mdx-js/react@3.0.1(@types/react@18.3.3)(react@18.3.1): resolution: {integrity: sha512-9ZrPIU4MGf6et1m1ov3zKf+q9+deetI51zprKB1D/z3NOb+rUxxtEl3mCjW5wTGh6VhRdwPueh1oRzi6ezkA8A==} peerDependencies: '@types/react': '>=16' react: '>=16' dependencies: '@types/mdx': 2.0.13 - '@types/react': 18.3.2 + '@types/react': 18.3.3 react: 18.3.1 dev: false @@ -4741,7 +3643,7 @@ packages: resolution: {integrity: sha512-EbDKwO9GpfWP4jN9sGdYwPBU0kdomaPIL2Eu4YwmgP+sJeXT+L7bMwJUBnhzfH8Q2qMBqZ4fJwpCyYsAN3mt2Q==} engines: {node: '>=14'} dependencies: - '@babel/types': 7.24.6 + '@babel/types': 7.24.7 entities: 4.5.0 /@svgr/plugin-jsx@8.1.0(@svgr/core@8.1.0): @@ -4776,9 +3678,9 @@ packages: engines: {node: '>=14'} dependencies: '@babel/core': 7.24.7 - '@babel/plugin-transform-react-constant-elements': 7.24.1(@babel/core@7.24.7) + '@babel/plugin-transform-react-constant-elements': 7.24.7(@babel/core@7.24.7) '@babel/preset-env': 7.24.7(@babel/core@7.24.7) - '@babel/preset-react': 7.24.1(@babel/core@7.24.7) + '@babel/preset-react': 7.24.7(@babel/core@7.24.7) '@babel/preset-typescript': 7.24.7(@babel/core@7.24.7) '@svgr/core': 8.1.0(typescript@5.4.5) '@svgr/plugin-jsx': 8.1.0(@svgr/core@8.1.0) @@ -4876,7 +3778,7 @@ packages: /@types/connect-history-api-fallback@1.5.4: resolution: {integrity: sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==} dependencies: - '@types/express-serve-static-core': 4.19.0 + '@types/express-serve-static-core': 4.19.3 '@types/node': 18.19.37 /@types/connect@3.4.38: @@ -4899,7 +3801,7 @@ packages: resolution: {integrity: sha512-Shavhk87gCtY2fhXDctcfS3e6FdxWkCx1iUZ9eEUbh7rTqlZT0/IzOkCOVt0fCjcFuZ9FPYfuezTBImfHCDBGQ==} dependencies: '@types/estree': 1.0.5 - '@types/json-schema': 7.0.12 + '@types/json-schema': 7.0.15 /@types/estree-jsx@1.0.5: resolution: {integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==} @@ -4909,8 +3811,8 @@ packages: /@types/estree@1.0.5: resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} - /@types/express-serve-static-core@4.19.0: - resolution: {integrity: sha512-bGyep3JqPCRry1wq+O5n7oiBgGWmeIJXPjXXCo8EK0u8duZGSYar7cGqd3ML2JUsLGeB7fmc06KYo9fLGWqPvQ==} + /@types/express-serve-static-core@4.19.3: + resolution: {integrity: sha512-KOzM7MhcBFlmnlr/fzISFF5vGWVSvN6fTd4T+ExOt08bA/dA5kpSzY52nMsI1KDFmUREpJelPYyuslLRSjjgCg==} dependencies: '@types/node': 18.19.37 '@types/qs': 6.9.15 @@ -4921,7 +3823,7 @@ packages: resolution: {integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==} dependencies: '@types/body-parser': 1.19.5 - '@types/express-serve-static-core': 4.19.0 + '@types/express-serve-static-core': 4.19.3 '@types/qs': 6.9.15 '@types/serve-static': 1.15.7 @@ -5001,8 +3903,8 @@ packages: parse5: 7.1.2 dev: true - /@types/json-schema@7.0.12: - resolution: {integrity: sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==} + /@types/json-schema@7.0.15: + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} /@types/json5@0.0.29: resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} @@ -5076,24 +3978,24 @@ packages: resolution: {integrity: sha512-WmSAg7WgqW7m4x8Mt4N6ZyKz0BubSj/2tVUMsAHp+Yd2AMwcSbeFq9WympT19p5heCFmF97R9eD5uUR/t4HEqw==} dependencies: '@types/history': 4.7.11 - '@types/react': 18.3.2 + '@types/react': 18.3.3 '@types/react-router': 5.1.20 /@types/react-router-dom@5.3.3: resolution: {integrity: sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw==} dependencies: '@types/history': 4.7.11 - '@types/react': 18.3.2 + '@types/react': 18.3.3 '@types/react-router': 5.1.20 /@types/react-router@5.1.20: resolution: {integrity: sha512-jGjmu/ZqS7FjSH6owMcD5qpq19+1RS9DeVRqfl1FeBMxTDQAGwlMWOcs52NDoXaNKyG3d1cYQFMs9rCrb88o9Q==} dependencies: '@types/history': 4.7.11 - '@types/react': 18.3.2 + '@types/react': 18.3.3 - /@types/react@18.3.2: - resolution: {integrity: sha512-Btgg89dAnqD4vV7R3hlwOxgqobUQKgx3MmrQRi0yYbs/P0ym8XozIAlkqVilPqHQwXs4e9Tf63rrCgl58BcO4w==} + /@types/react@18.3.3: + resolution: {integrity: sha512-hti/R0pS0q1/xx+TsI73XIqk26eBsISZ2R0wUijXIngRK9R/e7Xw/cXVxQK7R5JjW+SV4zGcn5hXjudkN/pLIw==} dependencies: '@types/prop-types': 15.7.12 csstype: 3.1.3 @@ -5117,6 +4019,10 @@ packages: resolution: {integrity: sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==} dev: true + /@types/semver@7.5.8: + resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} + dev: true + /@types/send@0.17.4: resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} dependencies: @@ -5207,7 +4113,7 @@ packages: graphemer: 1.4.0 ignore: 5.2.4 natural-compare: 1.4.0 - semver: 7.5.4 + semver: 7.6.2 ts-api-utils: 1.0.1(typescript@5.4.5) typescript: 5.4.5 transitivePeerDependencies: @@ -5292,10 +4198,10 @@ packages: dependencies: '@typescript-eslint/types': 5.62.0 '@typescript-eslint/visitor-keys': 5.62.0 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.5 globby: 11.1.0 is-glob: 4.0.3 - semver: 7.5.4 + semver: 7.6.2 tsutils: 3.21.0(typescript@5.4.5) typescript: 5.4.5 transitivePeerDependencies: @@ -5317,7 +4223,7 @@ packages: globby: 11.1.0 is-glob: 4.0.3 minimatch: 9.0.3 - semver: 7.5.4 + semver: 7.6.2 ts-api-utils: 1.0.1(typescript@5.4.5) typescript: 5.4.5 transitivePeerDependencies: @@ -5331,14 +4237,14 @@ packages: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) - '@types/json-schema': 7.0.12 - '@types/semver': 7.5.0 + '@types/json-schema': 7.0.15 + '@types/semver': 7.5.8 '@typescript-eslint/scope-manager': 5.62.0 '@typescript-eslint/types': 5.62.0 '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.4.5) eslint: 8.57.0 eslint-scope: 5.1.1 - semver: 7.5.4 + semver: 7.6.2 transitivePeerDependencies: - supports-color - typescript @@ -5351,13 +4257,13 @@ packages: eslint: ^8.56.0 dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) - '@types/json-schema': 7.0.12 + '@types/json-schema': 7.0.15 '@types/semver': 7.5.0 '@typescript-eslint/scope-manager': 7.4.0 '@typescript-eslint/types': 7.4.0 '@typescript-eslint/typescript-estree': 7.4.0(typescript@5.4.5) eslint: 8.57.0 - semver: 7.5.4 + semver: 7.6.2 transitivePeerDependencies: - supports-color - typescript @@ -5499,32 +4405,45 @@ packages: /acorn-globals@7.0.1: resolution: {integrity: sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==} dependencies: - acorn: 8.10.0 - acorn-walk: 8.2.0 + acorn: 8.12.0 + acorn-walk: 8.3.3 dev: true - /acorn-import-assertions@1.9.0(acorn@8.10.0): - resolution: {integrity: sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==} + /acorn-import-attributes@1.9.5(acorn@8.12.0): + resolution: {integrity: sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==} peerDependencies: acorn: ^8 dependencies: - acorn: 8.10.0 + acorn: 8.12.0 - /acorn-jsx@5.3.2(acorn@8.10.0): + /acorn-jsx@5.3.2(acorn@8.12.0): resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - acorn: 8.10.0 + acorn: 8.12.0 /acorn-walk@8.2.0: resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==} engines: {node: '>=0.4.0'} + dev: true + + /acorn-walk@8.3.3: + resolution: {integrity: sha512-MxXdReSRhGO7VlFe1bRG/oI7/mdLV9B9JJT0N8vZOhF7gFRR5l3M8W9G8JxmKV+JC5mGqJ0QvqfSOLsCPa4nUw==} + engines: {node: '>=0.4.0'} + dependencies: + acorn: 8.12.0 /acorn@8.10.0: resolution: {integrity: sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==} engines: {node: '>=0.4.0'} hasBin: true + dev: true + + /acorn@8.12.0: + resolution: {integrity: sha512-RTvkC4w+KNXrM39/lWCUaG0IbRkWdCv7W/IOW9oU6SawyxulvkQy5HQPVTKxEjczcUvapcrw3cFx/60VN/NRNw==} + engines: {node: '>=0.4.0'} + hasBin: true /address@1.2.2: resolution: {integrity: sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==} @@ -5596,8 +4515,8 @@ packages: require-from-string: 2.0.2 uri-js: 4.4.1 - /algoliasearch-helper@3.19.0(algoliasearch@4.23.3): - resolution: {integrity: sha512-AaSb5DZDMZmDQyIy6lf4aL0OZGgyIdqvLIIvSuVQOIOqfhrYSY7TvotIFI2x0Q3cP3xUpTd7lI1astUC4aXBJw==} + /algoliasearch-helper@3.21.0(algoliasearch@4.23.3): + resolution: {integrity: sha512-hjVOrL15I3Y3K8xG0icwG1/tWE+MocqBrhW6uVBWpU+/kVEMK0BnM2xdssj6mZM61eJ4iRxHR0djEI3ENOpR8w==} peerDependencies: algoliasearch: '>= 3.1 < 6' dependencies: @@ -5918,11 +4837,11 @@ packages: peerDependencies: postcss: ^8.1.0 dependencies: - browserslist: 4.23.0 - caniuse-lite: 1.0.30001599 + browserslist: 4.23.1 + caniuse-lite: 1.0.30001634 fraction.js: 4.3.7 normalize-range: 0.1.2 - picocolors: 1.0.0 + picocolors: 1.0.1 postcss: 8.4.38 postcss-value-parser: 4.2.0 @@ -5977,17 +4896,17 @@ packages: - supports-color dev: true - /babel-loader@9.1.3(@babel/core@7.24.6)(webpack@5.91.0): + /babel-loader@9.1.3(@babel/core@7.24.7)(webpack@5.92.0): resolution: {integrity: sha512-xG3ST4DglodGf8qSwv0MdeWLhrDsw/32QMdTO5T1ZIp9gQur0HkCyFs7Awskr10JKXFXwpAhiCuYX5oGXnRGbw==} engines: {node: '>= 14.15.0'} peerDependencies: '@babel/core': ^7.12.0 webpack: '>=5' dependencies: - '@babel/core': 7.24.6 + '@babel/core': 7.24.7 find-cache-dir: 4.0.0 schema-utils: 4.2.0 - webpack: 5.91.0 + webpack: 5.92.0 /babel-plugin-dynamic-import-node@2.3.3: resolution: {integrity: sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==} @@ -6017,18 +4936,6 @@ packages: '@types/babel__traverse': 7.20.1 dev: true - /babel-plugin-polyfill-corejs2@0.4.10(@babel/core@7.24.6): - resolution: {integrity: sha512-rpIuu//y5OX6jVU+a5BCn1R5RSZYWAl2Nar76iwaOdycqb6JPxediskWFMMl7stfwNJR4b7eiQvh5fB5TEQJTQ==} - peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - dependencies: - '@babel/compat-data': 7.24.7 - '@babel/core': 7.24.6 - '@babel/helper-define-polyfill-provider': 0.6.1(@babel/core@7.24.6) - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - /babel-plugin-polyfill-corejs2@0.4.10(@babel/core@7.24.7): resolution: {integrity: sha512-rpIuu//y5OX6jVU+a5BCn1R5RSZYWAl2Nar76iwaOdycqb6JPxediskWFMMl7stfwNJR4b7eiQvh5fB5TEQJTQ==} peerDependencies: @@ -6041,14 +4948,15 @@ packages: transitivePeerDependencies: - supports-color - /babel-plugin-polyfill-corejs3@0.10.4(@babel/core@7.24.6): - resolution: {integrity: sha512-25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg==} + /babel-plugin-polyfill-corejs2@0.4.11(@babel/core@7.24.7): + resolution: {integrity: sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/core': 7.24.6 - '@babel/helper-define-polyfill-provider': 0.6.1(@babel/core@7.24.6) - core-js-compat: 3.36.1 + '@babel/compat-data': 7.24.7 + '@babel/core': 7.24.7 + '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.24.7) + semver: 6.3.1 transitivePeerDependencies: - supports-color @@ -6063,23 +4971,23 @@ packages: transitivePeerDependencies: - supports-color - /babel-plugin-polyfill-regenerator@0.6.1(@babel/core@7.24.6): + /babel-plugin-polyfill-regenerator@0.6.1(@babel/core@7.24.7): resolution: {integrity: sha512-JfTApdE++cgcTWjsiCQlLyFBMbTUft9ja17saCc93lgV33h4tuCVj7tlvu//qpLwaG+3yEz7/KhahGrUMkVq9g==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/core': 7.24.6 - '@babel/helper-define-polyfill-provider': 0.6.1(@babel/core@7.24.6) + '@babel/core': 7.24.7 + '@babel/helper-define-polyfill-provider': 0.6.1(@babel/core@7.24.7) transitivePeerDependencies: - supports-color - /babel-plugin-polyfill-regenerator@0.6.1(@babel/core@7.24.7): - resolution: {integrity: sha512-JfTApdE++cgcTWjsiCQlLyFBMbTUft9ja17saCc93lgV33h4tuCVj7tlvu//qpLwaG+3yEz7/KhahGrUMkVq9g==} + /babel-plugin-polyfill-regenerator@0.6.2(@babel/core@7.24.7): + resolution: {integrity: sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: '@babel/core': 7.24.7 - '@babel/helper-define-polyfill-provider': 0.6.1(@babel/core@7.24.7) + '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.24.7) transitivePeerDependencies: - supports-color @@ -6226,6 +5134,16 @@ packages: node-releases: 2.0.14 update-browserslist-db: 1.0.13(browserslist@4.23.0) + /browserslist@4.23.1: + resolution: {integrity: sha512-TUfofFo/KsK/bWZ9TWQ5O26tsWW4Uhmt8IYklbnUa70udB6P2wA7w7o4PY4muaEPBQaAX+CEnmmIA41NVHtPVw==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + dependencies: + caniuse-lite: 1.0.30001634 + electron-to-chromium: 1.4.803 + node-releases: 2.0.14 + update-browserslist-db: 1.0.16(browserslist@4.23.1) + /bser@2.1.1: resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==} dependencies: @@ -6290,7 +5208,7 @@ packages: resolution: {integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==} dependencies: pascal-case: 3.1.2 - tslib: 2.6.2 + tslib: 2.6.3 /camelcase@5.3.1: resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} @@ -6308,19 +5226,22 @@ packages: /caniuse-api@3.0.0: resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==} dependencies: - browserslist: 4.23.0 - caniuse-lite: 1.0.30001599 + browserslist: 4.23.1 + caniuse-lite: 1.0.30001634 lodash.memoize: 4.1.2 lodash.uniq: 4.5.0 /caniuse-lite@1.0.30001599: resolution: {integrity: sha512-LRAQHZ4yT1+f9LemSMeqdMpMxZcc4RMWdj4tiFe3G8tNkWK+E58g+/tzotb5cU6TbcVJLr4fySiAW7XmxQvZQA==} + /caniuse-lite@1.0.30001634: + resolution: {integrity: sha512-fbBYXQ9q3+yp1q1gBk86tOFs4pyn/yxFm5ZNP18OXJDfA3txImOY9PhfxVggZ4vRHDqoU8NrKU81eN0OtzOgRA==} + /capital-case@1.0.4: resolution: {integrity: sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==} dependencies: no-case: 3.0.4 - tslib: 2.6.2 + tslib: 2.6.3 upper-case-first: 2.0.2 dev: true @@ -6406,20 +5327,24 @@ packages: normalize-path: 3.0.0 readdirp: 3.6.0 optionalDependencies: - fsevents: 2.3.2 + fsevents: 2.3.3 /chownr@1.1.4: resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} dev: true - /chrome-trace-event@1.0.3: - resolution: {integrity: sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==} + /chrome-trace-event@1.0.4: + resolution: {integrity: sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==} engines: {node: '>=6.0'} /ci-info@3.8.0: resolution: {integrity: sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==} engines: {node: '>=8'} + /ci-info@3.9.0: + resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} + engines: {node: '>=8'} + /cjs-module-lexer@1.2.3: resolution: {integrity: sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==} dev: true @@ -6461,6 +5386,15 @@ packages: string-width: 4.2.3 optionalDependencies: '@colors/colors': 1.5.0 + dev: true + + /cli-table3@0.6.5: + resolution: {integrity: sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ==} + engines: {node: 10.* || >= 12.*} + dependencies: + string-width: 4.2.3 + optionalDependencies: + '@colors/colors': 1.5.0 /cli-width@3.0.0: resolution: {integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==} @@ -6670,19 +5604,19 @@ packages: engines: {node: '>=12'} dev: false - /copy-webpack-plugin@11.0.0(webpack@5.91.0): + /copy-webpack-plugin@11.0.0(webpack@5.92.0): resolution: {integrity: sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ==} engines: {node: '>= 14.15.0'} peerDependencies: webpack: ^5.1.0 dependencies: - fast-glob: 3.3.1 + fast-glob: 3.3.2 glob-parent: 6.0.2 globby: 13.2.2 normalize-path: 3.0.0 schema-utils: 4.2.0 serialize-javascript: 6.0.2 - webpack: 5.91.0 + webpack: 5.92.0 /core-js-compat@3.36.1: resolution: {integrity: sha512-Dk997v9ZCt3X/npqzyGdTlq6t7lDBhZwGvV94PKzDArjp7BTRm7WlDAXYd/OWdeFHO8OChQYRJNJvUCqCbrtKA==} @@ -6693,14 +5627,9 @@ packages: resolution: {integrity: sha512-J/r5JTHSmzTxbiYYrzXg9w1VpqrYt+gexenBE9pugeyhwPZTAEJddyiReJWsLO6uNQ8xJZFbod6XC7KKwatCiA==} requiresBuild: true - /core-js@3.36.1: - resolution: {integrity: sha512-BTvUrwxVBezj5SZ3f10ImnX2oRByMxql3EimVqMysepbC9EeMUOpLwdy6Eoili2x6E4kf+ZUB5k/+Jv55alPfA==} - requiresBuild: true - /core-js@3.37.1: resolution: {integrity: sha512-Xn6qmxrQZyB0FFY8E3bgRXei3lWDJHhvI+u0q9TKIYM49G8pAr0FgnnrFRAmsbptZL1yxRADVXn+x5AGsbBfyw==} requiresBuild: true - dev: false /core-util-is@1.0.2: resolution: {integrity: sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==} @@ -6802,7 +5731,7 @@ packages: dependencies: postcss: 8.4.38 - /css-loader@6.11.0(webpack@5.91.0): + /css-loader@6.11.0(webpack@5.92.0): resolution: {integrity: sha512-CTJ+AEQJjq5NzLga5pE39qdiSV56F8ywCIsqNIRF0r7BDgWsN25aazToqAFg7ZrtA/U016xudB3ffgweORxX7g==} engines: {node: '>= 12.13.0'} peerDependencies: @@ -6821,10 +5750,10 @@ packages: postcss-modules-scope: 3.2.0(postcss@8.4.38) postcss-modules-values: 4.0.0(postcss@8.4.38) postcss-value-parser: 4.2.0 - semver: 7.5.4 - webpack: 5.91.0 + semver: 7.6.2 + webpack: 5.92.0 - /css-minimizer-webpack-plugin@5.0.1(clean-css@5.3.3)(webpack@5.91.0): + /css-minimizer-webpack-plugin@5.0.1(clean-css@5.3.3)(webpack@5.92.0): resolution: {integrity: sha512-3caImjKFQkS+ws1TGcFn0V1HyDJFq1Euy589JlD6/3rV2kj+w7r5G9WDMgSHvpvXHNZ2calVypZWuEDQd9wfLg==} engines: {node: '>= 14.15.0'} peerDependencies: @@ -6856,7 +5785,7 @@ packages: postcss: 8.4.38 schema-utils: 4.2.0 serialize-javascript: 6.0.2 - webpack: 5.91.0 + webpack: 5.92.0 /css-select@4.3.0: resolution: {integrity: sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==} @@ -6906,7 +5835,7 @@ packages: postcss: ^8.4.31 dependencies: autoprefixer: 10.4.19(postcss@8.4.38) - browserslist: 4.23.0 + browserslist: 4.23.1 cssnano-preset-default: 6.1.2(postcss@8.4.38) postcss: 8.4.38 postcss-discard-unused: 6.0.5(postcss@8.4.38) @@ -6920,7 +5849,7 @@ packages: peerDependencies: postcss: ^8.4.31 dependencies: - browserslist: 4.23.0 + browserslist: 4.23.1 css-declaration-sorter: 7.2.0(postcss@8.4.38) cssnano-utils: 4.0.2(postcss@8.4.38) postcss: 8.4.38 @@ -6967,7 +5896,7 @@ packages: postcss: ^8.4.31 dependencies: cssnano-preset-default: 6.1.2(postcss@8.4.38) - lilconfig: 3.1.1 + lilconfig: 3.1.2 postcss: 8.4.38 /csso@5.0.5: @@ -7078,6 +6007,17 @@ packages: ms: 2.1.2 supports-color: 8.1.1 + /debug@4.3.5: + resolution: {integrity: sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.2 + /decimal.js@10.4.3: resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==} dev: true @@ -7223,7 +6163,7 @@ packages: hasBin: true dependencies: address: 1.2.2 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.5 transitivePeerDependencies: - supports-color @@ -7267,6 +6207,21 @@ packages: dependencies: esutils: 2.0.3 + /docusaurus-plugin-sass@0.2.5(@docusaurus/core@3.4.0)(sass@1.77.5)(webpack@5.92.0): + resolution: {integrity: sha512-Z+D0fLFUKcFpM+bqSUmqKIU+vO+YF1xoEQh5hoFreg2eMf722+siwXDD+sqtwU8E4MvVpuvsQfaHwODNlxJAEg==} + peerDependencies: + '@docusaurus/core': ^2.0.0-beta || ^3.0.0-alpha + sass: ^1.30.0 + dependencies: + '@docusaurus/core': 3.4.0(@docusaurus/types@3.4.0)(eslint@8.57.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5) + sass: 1.77.5 + sass-loader: 10.5.2(sass@1.77.5)(webpack@5.92.0) + transitivePeerDependencies: + - fibers + - node-sass + - webpack + dev: false + /dom-converter@0.2.0: resolution: {integrity: sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==} dependencies: @@ -7327,7 +6282,7 @@ packages: resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} dependencies: no-case: 3.0.4 - tslib: 2.6.2 + tslib: 2.6.3 /dot-prop@6.0.1: resolution: {integrity: sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==} @@ -7347,6 +6302,9 @@ packages: /electron-to-chromium@1.4.710: resolution: {integrity: sha512-w+9yAVHoHhysCa+gln7AzbO9CdjFcL/wN/5dd+XW/Msl2d/4+WisEaCF1nty0xbAKaxdaJfgLB2296U7zZB7BA==} + /electron-to-chromium@1.4.803: + resolution: {integrity: sha512-61H9mLzGOCLLVsnLiRzCbc63uldP0AniRYPV3hbGVtONA1pI7qSGILdbofR7A8TMbOypDocEAjH/e+9k1QIe3g==} + /emittery@0.13.1: resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==} engines: {node: '>=12'} @@ -7378,8 +6336,8 @@ packages: once: 1.4.0 dev: true - /enhanced-resolve@5.16.1: - resolution: {integrity: sha512-4U5pNsuDl0EhuZpq46M5xPslstkviJuhrdobaRDBk2Jy2KO37FDAJl4lb2KlNabxT0m4MTK2UHNrsAcphE8nyw==} + /enhanced-resolve@5.17.0: + resolution: {integrity: sha512-dwDPwZL0dmye8Txp2gzFmA6sxALaSvdRDjPH0viLcKrtlOL3tw62nWWweVD1SdILDTJrbrL6tdWVN58Wo6U3eA==} engines: {node: '>=10.13.0'} dependencies: graceful-fs: 4.2.11 @@ -7583,6 +6541,10 @@ packages: resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} engines: {node: '>=6'} + /escalade@3.1.2: + resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} + engines: {node: '>=6'} + /escape-goat@4.0.0: resolution: {integrity: sha512-2Sd4ShcWxbx6OY1IHyla/CVNwvg7XwZVoXZHcSu9w9SReNP1EzzD5T8NWKIR38fIqEns9kDWKUQTXXAmlDrdPg==} engines: {node: '>=12'} @@ -7890,8 +6852,8 @@ packages: resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - acorn: 8.10.0 - acorn-jsx: 5.3.2(acorn@8.10.0) + acorn: 8.12.0 + acorn-jsx: 5.3.2(acorn@8.12.0) eslint-visitor-keys: 3.4.3 /esprima@4.0.1: @@ -8098,6 +7060,16 @@ packages: merge2: 1.4.1 micromatch: 4.0.5 + /fast-glob@3.3.2: + resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} + 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.7 + /fast-json-stable-stringify@2.1.0: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} @@ -8150,7 +7122,7 @@ packages: dependencies: flat-cache: 3.0.4 - /file-loader@6.2.0(webpack@5.91.0): + /file-loader@6.2.0(webpack@5.92.0): resolution: {integrity: sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==} engines: {node: '>= 10.13.0'} peerDependencies: @@ -8158,7 +7130,7 @@ packages: dependencies: loader-utils: 2.0.4 schema-utils: 3.3.0 - webpack: 5.91.0 + webpack: 5.92.0 /filesize@8.0.7: resolution: {integrity: sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ==} @@ -8256,7 +7228,7 @@ packages: signal-exit: 4.1.0 dev: true - /fork-ts-checker-webpack-plugin@6.5.3(eslint@8.57.0)(typescript@5.4.5)(webpack@5.91.0): + /fork-ts-checker-webpack-plugin@6.5.3(eslint@8.57.0)(typescript@5.4.5)(webpack@5.92.0): resolution: {integrity: sha512-SbH/l9ikmMWycd5puHJKTkZJKddF4iRLyW3DeZ08HTI7NGyLS38MXd/KGgeWumQO7YNQbW2u/NtPT2YowbPaGQ==} engines: {node: '>=10', yarn: '>=1.0.0'} peerDependencies: @@ -8270,8 +7242,8 @@ packages: vue-template-compiler: optional: true dependencies: - '@babel/code-frame': 7.24.6 - '@types/json-schema': 7.0.12 + '@babel/code-frame': 7.24.7 + '@types/json-schema': 7.0.15 chalk: 4.1.2 chokidar: 3.6.0 cosmiconfig: 6.0.0 @@ -8282,10 +7254,10 @@ packages: memfs: 3.5.3 minimatch: 3.1.2 schema-utils: 2.7.0 - semver: 7.5.4 + semver: 7.6.2 tapable: 1.1.3 typescript: 5.4.5 - webpack: 5.91.0 + webpack: 5.92.0 /form-data-encoder@2.1.4: resolution: {integrity: sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==} @@ -8325,13 +7297,13 @@ packages: resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} dev: true - /fs-extra@11.1.1: - resolution: {integrity: sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==} + /fs-extra@11.2.0: + resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==} engines: {node: '>=14.14'} dependencies: graceful-fs: 4.2.11 jsonfile: 6.1.0 - universalify: 2.0.0 + universalify: 2.0.1 /fs-extra@9.1.0: resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==} @@ -8348,8 +7320,8 @@ packages: /fs.realpath@1.0.0: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} - /fsevents@2.3.2: - resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} + /fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} os: [darwin] requiresBuild: true @@ -8540,8 +7512,8 @@ packages: engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: dir-glob: 3.0.1 - fast-glob: 3.3.1 - ignore: 5.2.4 + fast-glob: 3.3.2 + ignore: 5.3.1 merge2: 1.4.1 slash: 4.0.0 @@ -8687,7 +7659,7 @@ packages: hast-util-from-parse5: 8.0.1 hast-util-to-parse5: 8.0.0 html-void-elements: 3.0.0 - mdast-util-to-hast: 13.1.0 + mdast-util-to-hast: 13.2.0 parse5: 7.1.2 unist-util-position: 5.0.0 unist-util-visit: 5.0.0 @@ -8770,7 +7742,7 @@ packages: /history@4.10.1: resolution: {integrity: sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==} dependencies: - '@babel/runtime': 7.24.1 + '@babel/runtime': 7.24.7 loose-envify: 1.4.0 resolve-pathname: 3.0.0 tiny-invariant: 1.3.3 @@ -8818,7 +7790,7 @@ packages: he: 1.2.0 param-case: 3.0.4 relateurl: 0.2.7 - terser: 5.31.0 + terser: 5.31.1 /html-minifier-terser@7.2.0: resolution: {integrity: sha512-tXgn3QfqPIpGl9o+K5tpcj3/MN4SfLtsx2GWwBC3SSd0tXQGyF3gsSqad8loJgKZGM3ZxbYDd5yhiBIdWpmvLA==} @@ -8831,7 +7803,7 @@ packages: entities: 4.5.0 param-case: 3.0.4 relateurl: 0.2.7 - terser: 5.31.0 + terser: 5.31.1 /html-tags@3.3.1: resolution: {integrity: sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==} @@ -8840,7 +7812,7 @@ packages: /html-void-elements@3.0.0: resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==} - /html-webpack-plugin@5.6.0(webpack@5.91.0): + /html-webpack-plugin@5.6.0(webpack@5.92.0): resolution: {integrity: sha512-iwaY4wzbe48AfKLZ/Cc8k0L+FKG6oSNRaZ8x5A/T/IVDGyXcbHncM9TdDa93wn0FsSm82FhTKW7f3vS61thXAw==} engines: {node: '>=10.13.0'} peerDependencies: @@ -8857,7 +7829,7 @@ packages: lodash: 4.17.21 pretty-error: 4.0.0 tapable: 2.2.1 - webpack: 5.91.0 + webpack: 5.92.0 /htmlparser2@6.1.0: resolution: {integrity: sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==} @@ -8929,7 +7901,7 @@ packages: http-proxy: 1.18.1 is-glob: 4.0.3 is-plain-obj: 3.0.0 - micromatch: 4.0.5 + micromatch: 4.0.7 transitivePeerDependencies: - debug @@ -9001,6 +7973,10 @@ packages: resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} engines: {node: '>= 4'} + /ignore@5.3.1: + resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} + engines: {node: '>= 4'} + /image-size@1.1.1: resolution: {integrity: sha512-541xKlUw6jr/6gGuk92F+mYM5zaFAc5ahphvkqvNe2bQ6gVBkd6bfrmVJ2t4KDAfikAYZyIqTnktX3i6/aQDrQ==} engines: {node: '>=16.x'} @@ -9011,6 +7987,10 @@ packages: /immer@9.0.21: resolution: {integrity: sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==} + /immutable@4.3.6: + resolution: {integrity: sha512-Ju0+lEMyzMVZarkTn/gqRpdqd5dOPaz1mCZ0SH3JV6iFw81PldE/PEB1hWVEA288HPt4WXW8O7AWxB10M+03QQ==} + dev: false + /import-fresh@3.3.0: resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} engines: {node: '>=6'} @@ -9201,7 +8181,7 @@ packages: resolution: {integrity: sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==} hasBin: true dependencies: - ci-info: 3.8.0 + ci-info: 3.9.0 /is-core-module@2.13.0: resolution: {integrity: sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==} @@ -9504,7 +8484,7 @@ packages: '@babel/parser': 7.24.6 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.0 - semver: 7.5.4 + semver: 7.6.2 transitivePeerDependencies: - supports-color dev: true @@ -9747,7 +8727,7 @@ packages: micromatch: 4.0.5 walker: 1.0.8 optionalDependencies: - fsevents: 2.3.2 + fsevents: 2.3.3 dev: true /jest-leak-detector@29.7.0: @@ -9916,7 +8896,7 @@ packages: jest-util: 29.7.0 natural-compare: 1.4.0 pretty-format: 29.7.0 - semver: 7.5.4 + semver: 7.6.2 transitivePeerDependencies: - supports-color dev: true @@ -9996,8 +8976,8 @@ packages: - ts-node dev: true - /jiti@1.21.0: - resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==} + /jiti@1.21.6: + resolution: {integrity: sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==} hasBin: true /joi@17.13.1: @@ -10039,7 +9019,7 @@ packages: optional: true dependencies: abab: 2.0.6 - acorn: 8.10.0 + acorn: 8.12.0 acorn-globals: 7.0.1 cssom: 0.5.0 cssstyle: 2.3.0 @@ -10113,7 +9093,7 @@ packages: /jsonfile@6.1.0: resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} dependencies: - universalify: 2.0.0 + universalify: 2.0.1 optionalDependencies: graceful-fs: 4.2.11 @@ -10140,6 +9120,11 @@ packages: resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} engines: {node: '>=6'} + /klona@2.0.6: + resolution: {integrity: sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==} + engines: {node: '>= 8'} + dev: false + /knuth-shuffle-seeded@1.0.6: resolution: {integrity: sha512-9pFH0SplrfyKyojCLxZfMcvkhf5hH0d+UwR9nTVJ/DDQJGuzcXjTwB7TP7sDfehSudlGGaOLblmEWqv04ERVWg==} dependencies: @@ -10163,10 +9148,10 @@ packages: dependencies: package-json: 8.1.1 - /launch-editor@2.6.1: - resolution: {integrity: sha512-eB/uXmFVpY4zezmGp5XtU21kwo7GBbKB+EQ+UZeWtGb9yAM5xt/Evk+lYH3eRNAtId+ej4u7TYPFZ07w4s7rRw==} + /launch-editor@2.7.0: + resolution: {integrity: sha512-KAc66u6LxWL8MifQ94oG3YGKYWDwz/Gi0T15lN//GaQoZe08vQGFJxrXkPAeu50UXgvJPPaRKVGuP1TRUm/aHQ==} dependencies: - picocolors: 1.0.0 + picocolors: 1.0.1 shell-quote: 1.8.1 /leven@3.1.0: @@ -10180,8 +9165,8 @@ packages: prelude-ls: 1.2.1 type-check: 0.4.0 - /lilconfig@3.1.1: - resolution: {integrity: sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==} + /lilconfig@3.1.2: + resolution: {integrity: sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==} engines: {node: '>=14'} /lines-and-columns@1.2.4: @@ -10209,8 +9194,8 @@ packages: emojis-list: 3.0.0 json5: 2.2.3 - /loader-utils@3.2.1: - resolution: {integrity: sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw==} + /loader-utils@3.3.1: + resolution: {integrity: sha512-FMJTLMXfCLMLfJxcX9PFqX5qD88Z5MRGaZCVzfuqeZSPsyiBzs+pahDQjbIWz2QIzPZz0NX9Zy4FX3lmK6YHIg==} engines: {node: '>= 12.13.0'} /locate-path@3.0.0: @@ -10278,7 +9263,7 @@ packages: /lower-case@2.0.2: resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} dependencies: - tslib: 2.6.2 + tslib: 2.6.3 /lowercase-keys@3.0.0: resolution: {integrity: sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==} @@ -10299,6 +9284,7 @@ packages: engines: {node: '>=10'} dependencies: yallist: 4.0.0 + dev: true /luxon@3.2.1: resolution: {integrity: sha512-QrwPArQCNLAKGO/C+ZIilgIuDnEnKx5QYODdDtbFaxzsbZcc/a7WFq7MhsVYgRlwawLtvOUESTlfJ+hc/USqPg==} @@ -10309,7 +9295,7 @@ packages: resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} engines: {node: '>=10'} dependencies: - semver: 7.5.4 + semver: 7.6.2 dev: true /make-error@1.3.6: @@ -10343,7 +9329,7 @@ packages: '@types/mdast': 4.0.4 '@types/unist': 3.0.2 devlop: 1.1.0 - mdast-util-from-markdown: 2.0.0 + mdast-util-from-markdown: 2.0.1 mdast-util-to-markdown: 2.1.0 parse-entities: 4.0.1 stringify-entities: 4.0.4 @@ -10359,8 +9345,8 @@ packages: unist-util-is: 6.0.0 unist-util-visit-parents: 6.0.1 - /mdast-util-from-markdown@2.0.0: - resolution: {integrity: sha512-n7MTOr/z+8NAX/wmhhDji8O3bRvPTV/U0oTCaZJkjhPSKTPhS3xufVhKGF8s1pJ7Ox4QgoIU7KHseh09S+9rTA==} + /mdast-util-from-markdown@2.0.1: + resolution: {integrity: sha512-aJEUyzZ6TzlsX2s5B4Of7lN7EQtAxvtradMMglCQDyaTFgse6CmtmdJ15ElnVRlCg1vpNyVtbem0PWzlNieZsA==} dependencies: '@types/mdast': 4.0.4 '@types/unist': 3.0.2 @@ -10383,7 +9369,7 @@ packages: '@types/mdast': 4.0.4 devlop: 1.1.0 escape-string-regexp: 5.0.0 - mdast-util-from-markdown: 2.0.0 + mdast-util-from-markdown: 2.0.1 mdast-util-to-markdown: 2.1.0 micromark-extension-frontmatter: 2.0.0 transitivePeerDependencies: @@ -10403,7 +9389,7 @@ packages: dependencies: '@types/mdast': 4.0.4 devlop: 1.1.0 - mdast-util-from-markdown: 2.0.0 + mdast-util-from-markdown: 2.0.1 mdast-util-to-markdown: 2.1.0 micromark-util-normalize-identifier: 2.0.0 transitivePeerDependencies: @@ -10413,7 +9399,7 @@ packages: resolution: {integrity: sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==} dependencies: '@types/mdast': 4.0.4 - mdast-util-from-markdown: 2.0.0 + mdast-util-from-markdown: 2.0.1 mdast-util-to-markdown: 2.1.0 transitivePeerDependencies: - supports-color @@ -10424,7 +9410,7 @@ packages: '@types/mdast': 4.0.4 devlop: 1.1.0 markdown-table: 3.0.3 - mdast-util-from-markdown: 2.0.0 + mdast-util-from-markdown: 2.0.1 mdast-util-to-markdown: 2.1.0 transitivePeerDependencies: - supports-color @@ -10434,7 +9420,7 @@ packages: dependencies: '@types/mdast': 4.0.4 devlop: 1.1.0 - mdast-util-from-markdown: 2.0.0 + mdast-util-from-markdown: 2.0.1 mdast-util-to-markdown: 2.1.0 transitivePeerDependencies: - supports-color @@ -10442,7 +9428,7 @@ packages: /mdast-util-gfm@3.0.0: resolution: {integrity: sha512-dgQEX5Amaq+DuUqf26jJqSK9qgixgd6rYDHAv4aTBuA92cTknZlKpPfa86Z/s8Dj8xsAQpFfBmPUHWJBWqS4Bw==} dependencies: - mdast-util-from-markdown: 2.0.0 + mdast-util-from-markdown: 2.0.1 mdast-util-gfm-autolink-literal: 2.0.0 mdast-util-gfm-footnote: 2.0.0 mdast-util-gfm-strikethrough: 2.0.0 @@ -10459,7 +9445,7 @@ packages: '@types/hast': 3.0.4 '@types/mdast': 4.0.4 devlop: 1.1.0 - mdast-util-from-markdown: 2.0.0 + mdast-util-from-markdown: 2.0.1 mdast-util-to-markdown: 2.1.0 transitivePeerDependencies: - supports-color @@ -10473,7 +9459,7 @@ packages: '@types/unist': 3.0.2 ccount: 2.0.1 devlop: 1.1.0 - mdast-util-from-markdown: 2.0.0 + mdast-util-from-markdown: 2.0.1 mdast-util-to-markdown: 2.1.0 parse-entities: 4.0.1 stringify-entities: 4.0.4 @@ -10486,7 +9472,7 @@ packages: /mdast-util-mdx@3.0.0: resolution: {integrity: sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==} dependencies: - mdast-util-from-markdown: 2.0.0 + mdast-util-from-markdown: 2.0.1 mdast-util-mdx-expression: 2.0.0 mdast-util-mdx-jsx: 3.1.2 mdast-util-mdxjs-esm: 2.0.1 @@ -10501,7 +9487,7 @@ packages: '@types/hast': 3.0.4 '@types/mdast': 4.0.4 devlop: 1.1.0 - mdast-util-from-markdown: 2.0.0 + mdast-util-from-markdown: 2.0.1 mdast-util-to-markdown: 2.1.0 transitivePeerDependencies: - supports-color @@ -10512,8 +9498,8 @@ packages: '@types/mdast': 4.0.4 unist-util-is: 6.0.0 - /mdast-util-to-hast@13.1.0: - resolution: {integrity: sha512-/e2l/6+OdGp/FB+ctrJ9Avz71AN/GRH3oi/3KAx/kMnoUsD6q0woXlDT8lLEeViVKE7oZxE7RXzvO3T8kF2/sA==} + /mdast-util-to-hast@13.2.0: + resolution: {integrity: sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==} dependencies: '@types/hast': 3.0.4 '@types/mdast': 4.0.4 @@ -10728,8 +9714,8 @@ packages: /micromark-extension-mdxjs@3.0.0: resolution: {integrity: sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ==} dependencies: - acorn: 8.10.0 - acorn-jsx: 5.3.2(acorn@8.10.0) + acorn: 8.12.0 + acorn-jsx: 5.3.2(acorn@8.12.0) micromark-extension-mdx-expression: 3.0.0 micromark-extension-mdx-jsx: 3.0.0 micromark-extension-mdx-md: 2.0.0 @@ -10894,7 +9880,7 @@ packages: resolution: {integrity: sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==} dependencies: '@types/debug': 4.1.12 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.5 decode-named-character-reference: 1.0.2 devlop: 1.1.0 micromark-core-commonmark: 2.0.1 @@ -10920,6 +9906,13 @@ packages: braces: 3.0.3 picomatch: 2.3.1 + /micromatch@4.0.7: + resolution: {integrity: sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==} + engines: {node: '>=8.6'} + dependencies: + braces: 3.0.3 + picomatch: 2.3.1 + /mime-db@1.33.0: resolution: {integrity: sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==} engines: {node: '>= 0.6'} @@ -10963,7 +9956,7 @@ packages: resolution: {integrity: sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - /mini-css-extract-plugin@2.9.0(webpack@5.91.0): + /mini-css-extract-plugin@2.9.0(webpack@5.92.0): resolution: {integrity: sha512-Zs1YsZVfemekSZG+44vBsYTLQORkPMwnlv+aehcxK/NLKC+EGhDB39/YePYYqx/sTk6NnYpuqikhSn7+JIevTA==} engines: {node: '>= 12.13.0'} peerDependencies: @@ -10971,7 +9964,7 @@ packages: dependencies: schema-utils: 4.2.0 tapable: 2.2.1 - webpack: 5.91.0 + webpack: 5.92.0 /minimalistic-assert@1.0.1: resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==} @@ -11086,13 +10079,13 @@ packages: resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} dependencies: lower-case: 2.0.2 - tslib: 2.6.2 + tslib: 2.6.3 /node-abi@3.45.0: resolution: {integrity: sha512-iwXuFrMAcFVi/ZoZiqq8BzAdsLw9kxDfTC0HMyjXfSL/6CSDAGD5UmR7azrAgWV1zKYq7dUUMj4owusBWKLsiQ==} engines: {node: '>=10'} dependencies: - semver: 7.5.4 + semver: 7.6.2 dev: true /node-emoji@2.1.3: @@ -11415,7 +10408,7 @@ packages: got: 12.6.1 registry-auth-token: 5.0.2 registry-url: 6.0.1 - semver: 7.5.4 + semver: 7.6.2 /pad-right@0.2.2: resolution: {integrity: sha512-4cy8M95ioIGolCoMmm2cMntGR1lPLEbOMzOKu8bzjuJP6JpzEMQcDHmh7hHLYGgob+nKe1YHFMaG4V59HQa89g==} @@ -11428,7 +10421,7 @@ packages: resolution: {integrity: sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==} dependencies: dot-case: 3.0.4 - tslib: 2.6.2 + tslib: 2.6.3 /parent-module@1.0.1: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} @@ -11489,7 +10482,7 @@ packages: resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==} dependencies: no-case: 3.0.4 - tslib: 2.6.2 + tslib: 2.6.3 /path-exists@3.0.0: resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==} @@ -11562,6 +10555,9 @@ packages: /picocolors@1.0.0: resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} + /picocolors@1.0.1: + resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} + /picomatch@2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} @@ -11604,7 +10600,7 @@ packages: https-proxy-agent: 5.0.1 node-fetch: 2.6.12 progress: 2.0.3 - semver: 7.5.4 + semver: 7.6.2 tar-fs: 2.1.1 yargs: 16.2.0 transitivePeerDependencies: @@ -11658,7 +10654,7 @@ packages: postcss: ^8.2.2 dependencies: postcss: 8.4.38 - postcss-selector-parser: 6.0.16 + postcss-selector-parser: 6.1.0 postcss-value-parser: 4.2.0 /postcss-colormin@6.1.0(postcss@8.4.38): @@ -11667,7 +10663,7 @@ packages: peerDependencies: postcss: ^8.4.31 dependencies: - browserslist: 4.23.0 + browserslist: 4.23.1 caniuse-api: 3.0.0 colord: 2.9.3 postcss: 8.4.38 @@ -11679,7 +10675,7 @@ packages: peerDependencies: postcss: ^8.4.31 dependencies: - browserslist: 4.23.0 + browserslist: 4.23.1 postcss: 8.4.38 postcss-value-parser: 4.2.0 @@ -11722,9 +10718,9 @@ packages: postcss: ^8.4.31 dependencies: postcss: 8.4.38 - postcss-selector-parser: 6.0.16 + postcss-selector-parser: 6.1.0 - /postcss-loader@7.3.4(postcss@8.4.38)(typescript@5.4.5)(webpack@5.91.0): + /postcss-loader@7.3.4(postcss@8.4.38)(typescript@5.4.5)(webpack@5.92.0): resolution: {integrity: sha512-iW5WTTBSC5BfsBJ9daFMPVrLT36MrNiC6fqOZTTaHjBNX6Pfd5p+hSBqe/fEeNd7pc13QiAyGt7VdGMw4eRC4A==} engines: {node: '>= 14.15.0'} peerDependencies: @@ -11732,10 +10728,10 @@ packages: webpack: ^5.0.0 dependencies: cosmiconfig: 8.3.6(typescript@5.4.5) - jiti: 1.21.0 + jiti: 1.21.6 postcss: 8.4.38 - semver: 7.5.4 - webpack: 5.91.0 + semver: 7.6.2 + webpack: 5.92.0 transitivePeerDependencies: - typescript @@ -11765,11 +10761,11 @@ packages: peerDependencies: postcss: ^8.4.31 dependencies: - browserslist: 4.23.0 + browserslist: 4.23.1 caniuse-api: 3.0.0 cssnano-utils: 4.0.2(postcss@8.4.38) postcss: 8.4.38 - postcss-selector-parser: 6.0.16 + postcss-selector-parser: 6.1.0 /postcss-minify-font-values@6.1.0(postcss@8.4.38): resolution: {integrity: sha512-gklfI/n+9rTh8nYaSJXlCo3nOKqMNkxuGpTn/Qm0gstL3ywTr9/WRKznE+oy6fvfolH6dF+QM4nCo8yPLdvGJg==} @@ -11797,7 +10793,7 @@ packages: peerDependencies: postcss: ^8.4.31 dependencies: - browserslist: 4.23.0 + browserslist: 4.23.1 cssnano-utils: 4.0.2(postcss@8.4.38) postcss: 8.4.38 postcss-value-parser: 4.2.0 @@ -11809,7 +10805,7 @@ packages: postcss: ^8.4.31 dependencies: postcss: 8.4.38 - postcss-selector-parser: 6.0.16 + postcss-selector-parser: 6.1.0 /postcss-modules-extract-imports@3.1.0(postcss@8.4.38): resolution: {integrity: sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==} @@ -11827,7 +10823,7 @@ packages: dependencies: icss-utils: 5.1.0(postcss@8.4.38) postcss: 8.4.38 - postcss-selector-parser: 6.0.16 + postcss-selector-parser: 6.1.0 postcss-value-parser: 4.2.0 /postcss-modules-scope@3.2.0(postcss@8.4.38): @@ -11837,7 +10833,7 @@ packages: postcss: ^8.1.0 dependencies: postcss: 8.4.38 - postcss-selector-parser: 6.0.16 + postcss-selector-parser: 6.1.0 /postcss-modules-values@4.0.0(postcss@8.4.38): resolution: {integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==} @@ -11907,7 +10903,7 @@ packages: peerDependencies: postcss: ^8.4.31 dependencies: - browserslist: 4.23.0 + browserslist: 4.23.1 postcss: 8.4.38 postcss-value-parser: 4.2.0 @@ -11954,7 +10950,7 @@ packages: peerDependencies: postcss: ^8.4.31 dependencies: - browserslist: 4.23.0 + browserslist: 4.23.1 caniuse-api: 3.0.0 postcss: 8.4.38 @@ -11967,8 +10963,8 @@ packages: postcss: 8.4.38 postcss-value-parser: 4.2.0 - /postcss-selector-parser@6.0.16: - resolution: {integrity: sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==} + /postcss-selector-parser@6.1.0: + resolution: {integrity: sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ==} engines: {node: '>=4'} dependencies: cssesc: 3.0.0 @@ -12000,7 +10996,7 @@ packages: postcss: ^8.4.31 dependencies: postcss: 8.4.38 - postcss-selector-parser: 6.0.16 + postcss-selector-parser: 6.1.0 /postcss-value-parser@4.2.0: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} @@ -12018,7 +11014,7 @@ packages: engines: {node: ^10 || ^12 || >=14} dependencies: nanoid: 3.3.7 - picocolors: 1.0.0 + picocolors: 1.0.1 source-map-js: 1.2.0 /prebuild-install@7.1.1: @@ -12227,7 +11223,7 @@ packages: minimist: 1.2.8 strip-json-comments: 2.0.1 - /react-dev-utils@12.0.1(eslint@8.57.0)(typescript@5.4.5)(webpack@5.91.0): + /react-dev-utils@12.0.1(eslint@8.57.0)(typescript@5.4.5)(webpack@5.92.0): resolution: {integrity: sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ==} engines: {node: '>=14'} peerDependencies: @@ -12237,22 +11233,22 @@ packages: typescript: optional: true dependencies: - '@babel/code-frame': 7.24.6 + '@babel/code-frame': 7.24.7 address: 1.2.2 - browserslist: 4.23.0 + browserslist: 4.23.1 chalk: 4.1.2 cross-spawn: 7.0.3 detect-port-alt: 1.1.6 escape-string-regexp: 4.0.0 filesize: 8.0.7 find-up: 5.0.0 - fork-ts-checker-webpack-plugin: 6.5.3(eslint@8.57.0)(typescript@5.4.5)(webpack@5.91.0) + fork-ts-checker-webpack-plugin: 6.5.3(eslint@8.57.0)(typescript@5.4.5)(webpack@5.92.0) global-modules: 2.0.0 globby: 11.1.0 gzip-size: 6.0.0 immer: 9.0.21 is-root: 2.1.0 - loader-utils: 3.2.1 + loader-utils: 3.3.1 open: 8.4.2 pkg-up: 3.1.0 prompts: 2.4.2 @@ -12262,7 +11258,7 @@ packages: strip-ansi: 6.0.1 text-table: 0.2.0 typescript: 5.4.5 - webpack: 5.91.0 + webpack: 5.92.0 transitivePeerDependencies: - eslint - supports-color @@ -12289,7 +11285,7 @@ packages: react: ^16.6.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.6.0 || ^17.0.0 || ^18.0.0 dependencies: - '@babel/runtime': 7.24.1 + '@babel/runtime': 7.24.7 invariant: 2.2.4 prop-types: 15.8.1 react: 18.3.1 @@ -12323,16 +11319,16 @@ packages: react: 18.3.1 dev: false - /react-loadable-ssr-addon-v5-slorber@1.0.1(@docusaurus/react-loadable@6.0.0)(webpack@5.91.0): + /react-loadable-ssr-addon-v5-slorber@1.0.1(@docusaurus/react-loadable@6.0.0)(webpack@5.92.0): resolution: {integrity: sha512-lq3Lyw1lGku8zUEJPDxsNm1AfYHBrO9Y1+olAYwpUJ2IGFBskM0DMKok97A6LWUpHm+o7IvQBOWu9MLenp9Z+A==} engines: {node: '>=10.13.0'} peerDependencies: react-loadable: '*' webpack: '>=4.41.1 || 5.x' dependencies: - '@babel/runtime': 7.24.1 + '@babel/runtime': 7.24.7 react-loadable: /@docusaurus/react-loadable@6.0.0(react@18.3.1) - webpack: 5.91.0 + webpack: 5.92.0 /react-router-config@5.1.1(react-router@5.3.4)(react@18.3.1): resolution: {integrity: sha512-DuanZjaD8mQp1ppHjgnnUnyOlqYXZVjnov/JzFhjLEwd3Z4dYjMSnqrEzzGThH47vpCOqPPwJM2FtthLeJ8Pbg==} @@ -12340,7 +11336,7 @@ packages: react: '>=15' react-router: '>=5' dependencies: - '@babel/runtime': 7.24.1 + '@babel/runtime': 7.24.7 react: 18.3.1 react-router: 5.3.4(react@18.3.1) @@ -12349,7 +11345,7 @@ packages: peerDependencies: react: '>=15' dependencies: - '@babel/runtime': 7.24.1 + '@babel/runtime': 7.24.7 history: 4.10.1 loose-envify: 1.4.0 prop-types: 15.8.1 @@ -12363,7 +11359,7 @@ packages: peerDependencies: react: '>=15' dependencies: - '@babel/runtime': 7.24.1 + '@babel/runtime': 7.24.7 history: 4.10.1 hoist-non-react-statics: 3.3.2 loose-envify: 1.4.0 @@ -12617,7 +11613,7 @@ packages: resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==} dependencies: '@types/mdast': 4.0.4 - mdast-util-from-markdown: 2.0.0 + mdast-util-from-markdown: 2.0.1 micromark-util-types: 2.0.0 unified: 11.0.4 transitivePeerDependencies: @@ -12628,7 +11624,7 @@ packages: dependencies: '@types/hast': 3.0.4 '@types/mdast': 4.0.4 - mdast-util-to-hast: 13.1.0 + mdast-util-to-hast: 13.2.0 unified: 11.0.4 vfile: 6.0.1 @@ -12778,7 +11774,7 @@ packages: engines: {node: '>=14.18.0', npm: '>=8.0.0'} hasBin: true optionalDependencies: - fsevents: 2.3.2 + fsevents: 2.3.3 dev: true /rtl-detect@1.1.2: @@ -12789,8 +11785,8 @@ packages: engines: {node: '>=12.0.0'} hasBin: true dependencies: - escalade: 3.1.1 - picocolors: 1.0.0 + escalade: 3.1.2 + picocolors: 1.0.1 postcss: 8.4.38 strip-json-comments: 3.1.1 dev: false @@ -12808,7 +11804,7 @@ packages: /rxjs@7.8.1: resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} dependencies: - tslib: 2.6.2 + tslib: 2.6.3 /safe-array-concat@1.0.0: resolution: {integrity: sha512-9dVEFruWIsnie89yym+xWTAYASdpw3CJV7Li/6zBewGf9z2i1j31rP6jnY0pHEO4QZh6N0K11bFjWmdR8UGdPQ==} @@ -12856,8 +11852,43 @@ packages: /safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - /sax@1.3.0: - resolution: {integrity: sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==} + /sass-loader@10.5.2(sass@1.77.5)(webpack@5.92.0): + resolution: {integrity: sha512-vMUoSNOUKJILHpcNCCyD23X34gve1TS7Rjd9uXHeKqhvBG39x6XbswFDtpbTElj6XdMFezoWhkh5vtKudf2cgQ==} + engines: {node: '>= 10.13.0'} + peerDependencies: + fibers: '>= 3.1.0' + node-sass: ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0 + sass: ^1.3.0 + webpack: ^4.36.0 || ^5.0.0 + peerDependenciesMeta: + fibers: + optional: true + node-sass: + optional: true + sass: + optional: true + dependencies: + klona: 2.0.6 + loader-utils: 2.0.4 + neo-async: 2.6.2 + sass: 1.77.5 + schema-utils: 3.3.0 + semver: 7.6.2 + webpack: 5.92.0 + dev: false + + /sass@1.77.5: + resolution: {integrity: sha512-oDfX1mukIlxacPdQqNb6mV2tVCrnE+P3nVYioy72V5tlk56CPNcO4TCuFcaCRKKfJ1M3lH95CleRS+dVKL2qMg==} + engines: {node: '>=14.0.0'} + hasBin: true + dependencies: + chokidar: 3.6.0 + immutable: 4.3.6 + source-map-js: 1.2.0 + dev: false + + /sax@1.4.1: + resolution: {integrity: sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==} dev: false /saxes@6.0.0: @@ -12876,7 +11907,7 @@ packages: resolution: {integrity: sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==} engines: {node: '>= 8.9.0'} dependencies: - '@types/json-schema': 7.0.12 + '@types/json-schema': 7.0.15 ajv: 6.12.6 ajv-keywords: 3.5.2(ajv@6.12.6) @@ -12884,7 +11915,7 @@ packages: resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==} engines: {node: '>= 10.13.0'} dependencies: - '@types/json-schema': 7.0.12 + '@types/json-schema': 7.0.15 ajv: 6.12.6 ajv-keywords: 3.5.2(ajv@6.12.6) @@ -12892,13 +11923,13 @@ packages: resolution: {integrity: sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==} engines: {node: '>= 12.13.0'} dependencies: - '@types/json-schema': 7.0.12 + '@types/json-schema': 7.0.15 ajv: 8.16.0 ajv-formats: 2.1.1(ajv@8.16.0) ajv-keywords: 5.1.0(ajv@8.16.0) - /search-insights@2.13.0: - resolution: {integrity: sha512-Orrsjf9trHHxFRuo9/rzm0KIWmgzE8RMlZMzuhZOJ01Rnz3D0YBAe+V6473t6/H6c7irs6Lt48brULAiRWb3Vw==} + /search-insights@2.14.0: + resolution: {integrity: sha512-OLN6MsPMCghDOqlCtsIsYgtsC0pnwVTyT9Mu6A3ewOj1DxvzZF6COrn2g86E/c05xbktB0XN04m/t1Z+n+fTGw==} dev: false /section-matter@1.0.0: @@ -12926,7 +11957,7 @@ packages: resolution: {integrity: sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA==} engines: {node: '>=12'} dependencies: - semver: 7.5.4 + semver: 7.6.2 /semver@5.7.2: resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} @@ -12945,12 +11976,10 @@ packages: lru-cache: 6.0.0 dev: true - /semver@7.5.4: - resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} + /semver@7.6.2: + resolution: {integrity: sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==} engines: {node: '>=10'} hasBin: true - dependencies: - lru-cache: 6.0.0 /send@0.18.0: resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==} @@ -13124,15 +12153,15 @@ packages: /sisteransi@1.0.5: resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} - /sitemap@7.1.1: - resolution: {integrity: sha512-mK3aFtjz4VdJN0igpIJrinf3EO8U8mxOPsTBzSsy06UtjZQJ3YY3o3Xa7zSc5nMqcMrRwlChHZ18Kxg0caiPBg==} + /sitemap@7.1.2: + resolution: {integrity: sha512-ARCqzHJ0p4gWt+j7NlU5eDlIO9+Rkr/JhPFZKKQ1l5GCus7rJH4UdrlVAh0xC/gDS/Qir2UMxqYNHtsKr2rpCw==} engines: {node: '>=12.0.0', npm: '>=5.6.0'} hasBin: true dependencies: '@types/node': 17.0.45 '@types/sax': 1.2.7 arg: 5.0.2 - sax: 1.3.0 + sax: 1.4.1 dev: false /skin-tone@2.0.0: @@ -13153,7 +12182,7 @@ packages: resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==} dependencies: dot-case: 3.0.4 - tslib: 2.6.2 + tslib: 2.6.3 /sockjs@0.3.24: resolution: {integrity: sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==} @@ -13219,7 +12248,7 @@ packages: /spdy-transport@3.0.0: resolution: {integrity: sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==} dependencies: - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.5 detect-node: 2.1.0 hpack.js: 2.1.6 obuf: 1.1.2 @@ -13232,7 +12261,7 @@ packages: resolution: {integrity: sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==} engines: {node: '>=6.0.0'} dependencies: - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.5 handle-thing: 2.0.1 http-deceiver: 1.2.7 select-hose: 2.0.0 @@ -13469,9 +12498,9 @@ packages: peerDependencies: postcss: ^8.4.31 dependencies: - browserslist: 4.23.0 + browserslist: 4.23.1 postcss: 8.4.38 - postcss-selector-parser: 6.0.16 + postcss-selector-parser: 6.1.0 /supports-color@5.5.0: resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} @@ -13509,7 +12538,7 @@ packages: css-tree: 2.3.1 css-what: 6.1.0 csso: 5.0.5 - picocolors: 1.0.0 + picocolors: 1.0.1 /symbol-tree@3.2.4: resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} @@ -13520,7 +12549,7 @@ packages: engines: {node: ^14.18.0 || >=16.0.0} dependencies: '@pkgr/core': 0.1.1 - tslib: 2.6.2 + tslib: 2.6.3 dev: true /tapable@1.1.3: @@ -13551,7 +12580,7 @@ packages: readable-stream: 3.6.2 dev: true - /terser-webpack-plugin@5.3.10(webpack@5.91.0): + /terser-webpack-plugin@5.3.10(webpack@5.92.0): resolution: {integrity: sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==} engines: {node: '>= 10.13.0'} peerDependencies: @@ -13571,16 +12600,16 @@ packages: jest-worker: 27.5.1 schema-utils: 3.3.0 serialize-javascript: 6.0.2 - terser: 5.31.0 - webpack: 5.91.0 + terser: 5.31.1 + webpack: 5.92.0 - /terser@5.31.0: - resolution: {integrity: sha512-Q1JFAoUKE5IMfI4Z/lkE/E6+SwgzO+x4tq4v1AyBLRj8VSYvRO6A/rQrPg1yud4g0En9EKI1TvFRF2tQFcoUkg==} + /terser@5.31.1: + resolution: {integrity: sha512-37upzU1+viGvuFtBo9NPufCb9dwM0+l9hMxYyWfBA+fbwrPqNJAhbZ6W47bBFnZHKHTUBnMvi87434qq+qnxOg==} engines: {node: '>=10'} hasBin: true dependencies: '@jridgewell/source-map': 0.3.6 - acorn: 8.10.0 + acorn: 8.12.0 commander: 2.20.3 source-map-support: 0.5.21 @@ -13744,8 +12773,8 @@ packages: resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} dev: true - /tslib@2.6.2: - resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} + /tslib@2.6.3: + resolution: {integrity: sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==} /tsutils@3.21.0(typescript@5.4.5): resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} @@ -14018,6 +13047,10 @@ packages: resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==} engines: {node: '>= 10.0.0'} + /universalify@2.0.1: + 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'} @@ -14032,6 +13065,16 @@ packages: escalade: 3.1.1 picocolors: 1.0.0 + /update-browserslist-db@1.0.16(browserslist@4.23.1): + resolution: {integrity: sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + dependencies: + browserslist: 4.23.1 + escalade: 3.1.2 + picocolors: 1.0.1 + /update-notifier@6.0.2: resolution: {integrity: sha512-EDxhTEVPZZRLWYcJ4ZXjGFN0oP7qYvbXWzEgRm/Yql4dHX5wDbvh89YHP6PK1lzZJYrMtXUuZZz8XGK+U6U1og==} engines: {node: '>=14.16'} @@ -14047,14 +13090,14 @@ packages: is-yarn-global: 0.4.1 latest-version: 7.0.0 pupa: 3.1.0 - semver: 7.5.4 + semver: 7.6.2 semver-diff: 4.0.0 xdg-basedir: 5.1.0 /upper-case-first@2.0.2: resolution: {integrity: sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==} dependencies: - tslib: 2.6.2 + tslib: 2.6.3 dev: true /uri-js@4.4.1: @@ -14062,7 +13105,7 @@ packages: dependencies: punycode: 2.3.0 - /url-loader@4.1.1(file-loader@6.2.0)(webpack@5.91.0): + /url-loader@4.1.1(file-loader@6.2.0)(webpack@5.92.0): resolution: {integrity: sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==} engines: {node: '>= 10.13.0'} peerDependencies: @@ -14072,11 +13115,11 @@ packages: file-loader: optional: true dependencies: - file-loader: 6.2.0(webpack@5.91.0) + file-loader: 6.2.0(webpack@5.92.0) loader-utils: 2.0.4 mime-types: 2.1.35 schema-utils: 3.3.0 - webpack: 5.91.0 + webpack: 5.92.0 /url-parse@1.5.10: resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} @@ -14221,22 +13264,22 @@ packages: hasBin: true dependencies: '@discoveryjs/json-ext': 0.5.7 - acorn: 8.10.0 - acorn-walk: 8.2.0 + acorn: 8.12.0 + acorn-walk: 8.3.3 commander: 7.2.0 debounce: 1.2.1 escape-string-regexp: 4.0.0 gzip-size: 6.0.0 html-escaper: 2.0.2 opener: 1.5.2 - picocolors: 1.0.0 + picocolors: 1.0.1 sirv: 2.0.4 ws: 7.5.9 transitivePeerDependencies: - bufferutil - utf-8-validate - /webpack-dev-middleware@5.3.4(webpack@5.91.0): + /webpack-dev-middleware@5.3.4(webpack@5.92.0): resolution: {integrity: sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q==} engines: {node: '>= 12.13.0'} peerDependencies: @@ -14247,9 +13290,9 @@ packages: mime-types: 2.1.35 range-parser: 1.2.1 schema-utils: 4.2.0 - webpack: 5.91.0 + webpack: 5.92.0 - /webpack-dev-server@4.15.2(webpack@5.91.0): + /webpack-dev-server@4.15.2(webpack@5.92.0): resolution: {integrity: sha512-0XavAZbNJ5sDrCbkpWL8mia0o5WPOd2YGtxrEiZkBK9FjLppIUK2TgxK6qGD2P3hUXTJNNPVibrerKcx5WkR1g==} engines: {node: '>= 12.13.0'} hasBin: true @@ -14281,7 +13324,7 @@ packages: html-entities: 2.5.2 http-proxy-middleware: 2.0.6(@types/express@4.17.21) ipaddr.js: 2.2.0 - launch-editor: 2.6.1 + launch-editor: 2.7.0 open: 8.4.2 p-retry: 4.6.2 rimraf: 3.0.2 @@ -14290,9 +13333,9 @@ packages: serve-index: 1.9.1 sockjs: 0.3.24 spdy: 4.0.2 - webpack: 5.91.0 - webpack-dev-middleware: 5.3.4(webpack@5.91.0) - ws: 8.16.0 + webpack: 5.92.0 + webpack-dev-middleware: 5.3.4(webpack@5.92.0) + ws: 8.17.0 transitivePeerDependencies: - bufferutil - debug @@ -14311,8 +13354,8 @@ packages: resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} engines: {node: '>=10.13.0'} - /webpack@5.91.0: - resolution: {integrity: sha512-rzVwlLeBWHJbmgTC/8TvAcu5vpJNII+MelQpylD4jNERPwpBJOE2lEcko1zJX3QJeLjTTAnQxn/OJ8bjDzVQaw==} + /webpack@5.92.0: + resolution: {integrity: sha512-Bsw2X39MYIgxouNATyVpCNVWBCuUwDgWtN78g6lSdPJRLaQ/PUVm/oXcaRAyY/sMFoKFQrsPeqvTizWtq7QPCA==} engines: {node: '>=10.13.0'} hasBin: true peerDependencies: @@ -14326,11 +13369,11 @@ packages: '@webassemblyjs/ast': 1.12.1 '@webassemblyjs/wasm-edit': 1.12.1 '@webassemblyjs/wasm-parser': 1.12.1 - acorn: 8.10.0 - acorn-import-assertions: 1.9.0(acorn@8.10.0) - browserslist: 4.23.0 - chrome-trace-event: 1.0.3 - enhanced-resolve: 5.16.1 + acorn: 8.12.0 + acorn-import-attributes: 1.9.5(acorn@8.12.0) + browserslist: 4.23.1 + chrome-trace-event: 1.0.4 + enhanced-resolve: 5.17.0 es-module-lexer: 1.5.3 eslint-scope: 5.1.1 events: 3.3.0 @@ -14342,7 +13385,7 @@ packages: neo-async: 2.6.2 schema-utils: 3.3.0 tapable: 2.2.1 - terser-webpack-plugin: 5.3.10(webpack@5.91.0) + terser-webpack-plugin: 5.3.10(webpack@5.92.0) watchpack: 2.4.1 webpack-sources: 3.2.3 transitivePeerDependencies: @@ -14350,7 +13393,7 @@ packages: - esbuild - uglify-js - /webpackbar@5.0.2(webpack@5.91.0): + /webpackbar@5.0.2(webpack@5.92.0): resolution: {integrity: sha512-BmFJo7veBDgQzfWXl/wwYXr/VFus0614qZ8i9znqcl9fnEdiVkdbi0TedLQ6xAK92HZHDJ0QmyQ0fmuZPAgCYQ==} engines: {node: '>=12'} peerDependencies: @@ -14360,7 +13403,7 @@ packages: consola: 2.15.3 pretty-time: 1.1.0 std-env: 3.7.0 - webpack: 5.91.0 + webpack: 5.92.0 /websocket-driver@0.7.4: resolution: {integrity: sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==} @@ -14549,6 +13592,19 @@ packages: optional: true utf-8-validate: optional: true + dev: true + + /ws@8.17.0: + resolution: {integrity: sha512-uJq6108EgZMAl20KagGkzCKfMEjxmKvZHG7Tlq0Z6nOky7YF7aq4mOx6xK8TJ/i1LeK4Qus7INktacctDgY8Ow==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true /xdg-basedir@5.1.0: resolution: {integrity: sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ==} @@ -14558,7 +13614,7 @@ packages: resolution: {integrity: sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g==} hasBin: true dependencies: - sax: 1.3.0 + sax: 1.4.1 dev: false /xml-name-validator@4.0.0: @@ -14584,6 +13640,7 @@ packages: /yallist@4.0.0: resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + dev: true /yaml@1.10.2: resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} diff --git a/website/.eslintrc.js b/website/.eslintrc.js index 73f8c88037..e7fa44ae34 100644 --- a/website/.eslintrc.js +++ b/website/.eslintrc.js @@ -4,6 +4,7 @@ const docusaurusModuleAliases = [ "@docusaurus/useDocusaurusContext", "@theme/Heading", "@theme/Layout", + "@theme/ThemedImage", "@site/static", "@site/src", ]; diff --git a/website/README.md b/website/README.md index 0c6c2c27be..2c0ba6e1ce 100644 --- a/website/README.md +++ b/website/README.md @@ -1,41 +1,7 @@ # Website -This website is built using [Docusaurus](https://docusaurus.io/), a modern static website generator. +The source of [https://cli.kintone.dev/](https://cli.kintone.dev/). -### Installation +## Development -``` -$ yarn -``` - -### Local Development - -``` -$ yarn start -``` - -This command starts a local development server and opens up a browser window. Most changes are reflected live without having to restart the server. - -### Build - -``` -$ yarn build -``` - -This command generates static content into the `build` directory and can be served using any static contents hosting service. - -### Deployment - -Using SSH: - -``` -$ USE_SSH=true yarn deploy -``` - -Not using SSH: - -``` -$ GIT_USER= yarn deploy -``` - -If you are using GitHub pages for hosting, this command is a convenient way to build the website and push to the `gh-pages` branch. +See [Contributing](https://cli.kintone.dev/community/contributing) page. diff --git a/website/blog/2024-07-01-publishing-cli-kintone-doc-website.md b/website/blog/2024-07-01-publishing-cli-kintone-doc-website.md index 7d411efc8b..3b4f35d4e4 100644 --- a/website/blog/2024-07-01-publishing-cli-kintone-doc-website.md +++ b/website/blog/2024-07-01-publishing-cli-kintone-doc-website.md @@ -1,9 +1,25 @@ --- -slug: publishing-doc-website -title: First Blog Post -authors: [tasshi] -tags: [hola, docusaurus] +slug: announcing-doc-website +title: The documentation website is launched 🎉 +authors: [tasshi, dx-team] +tags: [announcement] --- Hi, there :wave: -We are happy to announce publishing cli-kintone documentation site. + +We are happy to announce cli-kintone documentation website. + +This website aims to provide cli-kintone users with common usage and reference. There are four sections: + +- [User Guide](/guide): Comprehensive assistance from installation to common usage. +- [Reference](/reference): Detailed specifications. +- [Community](/community): Link to forum and support, contribution guide +- [Blog](/blog): Official announcements, roadmaps, and more! + +We will continually improve our documentation. +Follow our official Twitter accounts for the latest news. + +- English: [Kintone Developer Program (@kintonedev)](https://x.com/kintonedev) +- Japanese: [kintone developer JP (@kintonedevjp)](https://x.com/kintonedevjp) + +Lastly, we always welcome your contribution! Please see [Contributing](/community/contributing) page to know how to contribute to cli-kintone. diff --git a/website/blog/authors.yml b/website/blog/authors.yml index e36995e4c9..53b136b46e 100644 --- a/website/blog/authors.yml +++ b/website/blog/authors.yml @@ -1,23 +1,34 @@ tasshi: name: tasshi (Masaharu Tashiro) - title: Product Owner of kintone DX team + title: Product Owner of kintone DX Team url: https://github.com/tasshi-me image_url: https://github.com/tasshi-me.png -endi: - name: Endilie Yacop Sucipto - title: Maintainer of Docusaurus - url: https://github.com/endiliey - image_url: https://github.com/endiliey.png +dx-team: + name: kintone DX Team + url: https://github.com/kintone + image_url: https://github.com/kintone.png -yangshun: - name: Yangshun Tay - title: Front End Engineer @ Facebook - url: https://github.com/yangshun - image_url: https://github.com/yangshun.png +ueokande: + name: Shin'ya Ueoka + title: Team leader of kintone DX team + url: https://ueokande.com + image_url: https://github.com/ueokande.png -slorber: - name: Sébastien Lorber - title: Docusaurus maintainer - url: https://sebastienlorber.com - image_url: https://github.com/slorber.png +hung: + name: Nguyen Thai Hung + title: Software engineer of kintone DX team + url: https://github.com/hung-cybo + image_url: https://github.com/hung-cybo.png + +tuan: + name: tuan-pham + title: Software engineer of kintone DX team + url: https://github.com/tuanphamcybozu + image_url: https://github.com/tuanphamcybozu.png + +minh: + name: minh-nguyen + title: Quality assurance of kintone DX team + url: https://github.com/minh-nguyen1985 + image_url: https://github.com/minh-nguyen1985.png diff --git a/website/contributors.json b/website/contributors.json new file mode 100644 index 0000000000..41de078c71 --- /dev/null +++ b/website/contributors.json @@ -0,0 +1,66 @@ +[ + { + "login": "tasshi-me", + "avatar_url": "https://avatars.githubusercontent.com/u/33759872?v=4" + }, + { + "login": "hung-cybo", + "avatar_url": "https://avatars.githubusercontent.com/u/59815499?v=4" + }, + { + "login": "tuanphamcybozu", + "avatar_url": "https://avatars.githubusercontent.com/u/41720778?v=4" + }, + { + "login": "chick-p", + "avatar_url": "https://avatars.githubusercontent.com/u/14119304?v=4" + }, + { + "login": "shisama", + "avatar_url": "https://avatars.githubusercontent.com/u/9845816?v=4" + }, + { + "login": "zaki-yama", + "avatar_url": "https://avatars.githubusercontent.com/u/1001444?v=4" + }, + { + "login": "koba04", + "avatar_url": "https://avatars.githubusercontent.com/u/250407?v=4" + }, + { + "login": "b4h0-c4t", + "avatar_url": "https://avatars.githubusercontent.com/u/22951237?v=4" + }, + { + "login": "nakajmg", + "avatar_url": "https://avatars.githubusercontent.com/u/1995370?v=4" + }, + { + "login": "shintaroNagata", + "avatar_url": "https://avatars.githubusercontent.com/u/48338353?v=4" + }, + { + "login": "kjmnmt", + "avatar_url": "https://avatars.githubusercontent.com/u/46946976?v=4" + }, + { + "login": "ueokande", + "avatar_url": "https://avatars.githubusercontent.com/u/534166?v=4" + }, + { + "login": "ksm-cy", + "avatar_url": "https://avatars.githubusercontent.com/u/62086225?v=4" + }, + { + "login": "ryounasso", + "avatar_url": "https://avatars.githubusercontent.com/u/62008782?v=4" + }, + { + "login": "jesslynvc", + "avatar_url": "https://avatars.githubusercontent.com/u/117426935?v=4" + }, + { + "login": "ahandsel", + "avatar_url": "https://avatars.githubusercontent.com/u/30670749?v=4" + } +] diff --git a/website/docs/community/contributing.md b/website/docs/community/contributing.md new file mode 100644 index 0000000000..ca3c942961 --- /dev/null +++ b/website/docs/community/contributing.md @@ -0,0 +1,209 @@ +--- +sidebar_position: 200 +--- + +# Contributing + +We always welcome your contribution! This document provides how to contribute to cli-kintone. + +## Code of Conduct + +Before starting contribution, please see [Code of Conduct](https://github.com/kintone/.github/blob/main/docs/CODE_OF_CONDUCT.md) first. + +## Supporting resources + +If you have any questions or feedbacks, you can check our [supporting resources](/community). + +## Issues + +We use [GitHub Issues](https://github.com/kintone/cli-kintone/issues) for bug reports and feature requests. + +Before submitting an Issue, please make sure that there is no related Issue already. + +When creating an Issue, be sure to fill out the Issue template. Especially, a [minimum reproduction](https://stackoverflow.com/help/minimal-reproducible-example) is really important to fix a bug and directly lead to faster triage. + +## Pull Requests + +If you are going to make a [PR contribution](https://github.com/kintone/cli-kintone/pulls), please make sure that a corresponding Issue exist first. +In addition, we encourage you to make a proposal in the Issue before starting implementation. + +## Development + +### Setup repository + +[Node.js](https://nodejs.org/) should be configured. + +Clone and move into the repository + +```shell +git clone git@github.com:kintone/cli-kintone.git +cd cli-kintone +``` + +Install dependencies + +```shell +corepack enable +pnpm install +``` + +Run build command to check if the repository is ready. + +```shell +pnpm build +``` + +### Build + +Run `build` command: + +```shell +pnpm build +``` + +Executables will be generated in `bin` directory. + +``` +bin +├── cli-kintone-linux +├── cli-kintone-macos +└── cli-kintone-win.exe +``` + +To build in watch mode, run `start` command: + +```shell +pnpm start +``` + +In watch mode, only JavaScript output in `dist` directory are updated. So run the entrypoint file directly. + +```shell +node ./cli.js +``` + +### Testing + +We have two kinds of tests, unit tests and E2E tests. + +#### Unit tests + +When you change implementation, corresponding unit tests must be added or updated. + +Unit tests are located in the `__tests__` directory next to the test target code. + +Please read [Jest](https://jestjs.io/) document to know how to write unit tests. + +You can run unit tests using `test` command: + +```shell +pnpm test +``` + +:::note +We also run tests on CI, so local execution is optional. +::: + +#### E2E tests + +E2E testing is based on practical scenarios. We use [Cucumber](https://github.com/cucumber/cucumber-js). + +All of our E2E tests are located in [`features`](https://github.com/kintone/cli-kintone/tree/main/features) directory of repository root. + +You can run E2E tests using `test:e2e` command: + +```shell +pnpm test:e2e +``` + +Unfortunately, an actual kintone environment with API access is required to run E2E tests. +Therefore, we recommend to run on CI. + +### Documentation website + +The documentation website (this website!) must be updated in the same PR. + +Edit files in [`website/docs`](https://github.com/kintone/cli-kintone/tree/main/website/docs) to update documents. + +To preview changes on local, run `doc:start` command: + +```shell +pnpm doc:start +``` + +### Linting + +Before commit your work, please run `lint` command: + +```shell +pnpm lint +``` + +You can run auto-fix with `fix` command: + +```shell +pnpm fix +``` + +### Commit + +The commit message must follow the [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/). + +``` +: +``` + +We support the following commit types: + +| Type | Description | +| -------- | ------------------------ | +| feat | New features | +| fix | Bug fixes | +| test | Test updates | +| build | Changes on build process | +| ci | Changes on CI workflows | +| docs | Document updates | +| perf | Performance improvements | +| refactor | Refactoring | +| revert | Reverting past changes | +| lint | Lint updates | +| style | Style updates | +| debug | Debugs | +| chore | Any other chores | + +:::warning +Must not merge `debug` commit to the `main` branch. +::: + +If the commit will change the backward compatibility, please mark the commit as a **Breaking Change**. + +- Add `!` just after the scope +- Add `BREAKING CHANGE: ` footer + - The description should be a short clear summary of user impact. + +### Creating a Pull Request + +When everything is ready, make a [Pull Request on GitHub](https://github.com/kintone/cli-kintone/pulls). + +The PR title must also follow the [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/). +The title will be used as the commit message of squash commit on merging. +It will also be used on [CHANGELOG](https://github.com/kintone/cli-kintone/blob/main/CHANGELOG.md), so make sure to be understandable for users. + +Finally, don't forget to fill out the PR body following the template. + +### Releasing + +We use [Release Please](https://github.com/googleapis/release-please) to create a release and update CHANGELOG. + +Merging a [Release PR](https://github.com/kintone/cli-kintone/pulls?q=is%3Apr+is%3Aopen+label%3A%22autorelease%3A+pending%22) will trigger the release. +Please check CHANGELOG and release version before merge. + +#### Release frequency + +Normally, maintainer will trigger a release weekly. + +#### Versioning + +We follow the [Semantic Versioning](https://semver.org/). + +For more details, see [Versioning Policy](./versioning) page. diff --git a/website/docs/community/credits.mdx b/website/docs/community/credits.mdx new file mode 100644 index 0000000000..74666ca3f2 --- /dev/null +++ b/website/docs/community/credits.mdx @@ -0,0 +1,19 @@ +--- +sidebar_position: 1000 +--- + +# Credits + +## Author + +import Author from "../../src/components/credits/Author" + + + +## Contributors + +Here are cli-kintone contributors! + +import ContributorsList from "../../src/components/credits/ContributorsList" + + diff --git a/website/docs/community/index.md b/website/docs/community/index.md deleted file mode 100644 index 463bb54ae5..0000000000 --- a/website/docs/community/index.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -sidebar_position: 100 ---- - -# Community - -Coming soon! :construction: diff --git a/website/docs/community/index.mdx b/website/docs/community/index.mdx new file mode 100644 index 0000000000..3d9a292bfc --- /dev/null +++ b/website/docs/community/index.mdx @@ -0,0 +1,64 @@ +--- +sidebar_position: 100 +--- + +# Community + +This section introduces some cli-kintone related communities you can join. + +## Forums + +There are official forums where you can ask questions and discuss usage and tips with other users. + +import ThemedImage from '@theme/ThemedImage'; +import Link from "@docusaurus/Link"; + + + + + + + + + + + + +
日本語English
+ + + + + + + +
+ +## Support + +You can contact our [API Support Desk](https://jp.cybozu.help/k/ja/trouble_shooting/developer/developer_qa.html) for questions about specifications and troubleshooting. + +## Feature requests + +We accept feature requests on [GitHub Issues](https://github.com/kintone/cli-kintone/issues/new/choose). Your feedback makes cli-kintone better. + +## Contributing + +We always welcome contribution! +Please check [Contributing](./contributing) page. + +## News + +For the latest news about cli-kintone, [follow @kintonedevjp on Twitter](https://x.com/kintonedevjp). diff --git a/website/docs/community/versioning.md b/website/docs/community/versioning.md new file mode 100644 index 0000000000..a861be27ba --- /dev/null +++ b/website/docs/community/versioning.md @@ -0,0 +1,38 @@ +--- +sidebar_position: 300 +--- + +# Versioning Policy + +This page describe how we increment the cli-kintone version. + +## Basics + +Our versioning refers to [Semantic Versioning](https://semver.org/). + +The version number format is **x.y.z**. + +## Patch update + +When releasing **bugfixes or chores**, it is a **patch update**. We will increment **z** number. + +e.g. bugfixes, dependencies updates, document changes, etc. + +Corresponding commit types are +`fix`, `test`, `build`, `ci`, `docs`, `perf`, `refactor`, `revert`, `lint`, `style`, `debug`, and `chore`. + +## Minor update + +When releasing **new features**, it is a **minor update**. We will increment **y** number. + +e.g. adding new command, support new format, etc. + +Corresponding commit type is `feat`. + +## Major update + +When releasing **breaking changes**, it is a **major update**. We will increment **x** number. + +e.g. changing output format, dropping platform support, etc. + +Corresponding commit types are any types with `!` flag. diff --git a/website/docs/guide/commands/_category_.json b/website/docs/guide/commands/_category_.json index 00caef06b2..18aa35b0c7 100644 --- a/website/docs/guide/commands/_category_.json +++ b/website/docs/guide/commands/_category_.json @@ -4,5 +4,6 @@ "link": { "type": "generated-index", "description": "Commands you can run on cli-kintone" - } + }, + "collapsed": false } diff --git a/website/docs/guide/commands/record-delete.md b/website/docs/guide/commands/record-delete.md index ab35eb6ffb..c3cea962d6 100644 --- a/website/docs/guide/commands/record-delete.md +++ b/website/docs/guide/commands/record-delete.md @@ -1,88 +1,51 @@ --- -sidebar_position: 2 +sidebar_position: 300 --- # record delete -Let's translate `docs/intro.md` to French. +The `delete` command allows you to delete records of a specified Kintone app. -## Configure i18n +**Notice** -Modify `docusaurus.config.js` to add support for the `fr` locale: +- This command only supports API token authentication. +- This action cannot be rollback. -```js title="docusaurus.config.js" -export default { - i18n: { - defaultLocale: "en", - locales: ["en", "fr"], - }, -}; -``` - -## Translate a doc - -Copy the `docs/intro.md` file to the `i18n/fr` folder: +## Example -```bash -mkdir -p i18n/fr/docusaurus-plugin-content-docs/current/ - -cp docs/intro.md i18n/fr/docusaurus-plugin-content-docs/current/intro.md +```shell +cli-kintone record delete \ + --base-url https://${yourDomain} \ + --api-token ${apiToken} \ + --app ${kintoneAppId} \ + --file-path ${filepath} ``` -Translate `i18n/fr/docusaurus-plugin-content-docs/current/intro.md` in French. +You can bypass the confirmation step by using the options `--yes` or `-y`. -## Start your localized site +## Options -Start your site on the French locale: +See [Options](/guide/options) page for common options. -```bash -npm run start -- --locale fr -``` +| Option | Required | Description | +| -------------- | -------- | ------------------------------------------------------------------------- | +| `--app` | Yes | The ID of the app | +| `--file-path` | | The path to the source file. | +| `--encoding ` | | Character encoding
Default to `utf8`
Encodings: `utf8` and `sjis` | +| `--yes`, `-y` | | Force to delete records | -Your localized site is accessible at [http://localhost:3000/fr/](http://localhost:3000/fr/) and the `Getting Started` page is translated. +## Delete all records -:::caution +All records of the target app will be deleted if the option `--file-path` is not specified. -In development, you can only use one locale at a time. +## Delete specific records -::: +Specific records can be deleted by specifying the option `--file-path`. -## Add a Locale Dropdown - -To navigate seamlessly across languages, add a locale dropdown. - -Modify the `docusaurus.config.js` file: - -```js title="docusaurus.config.js" -export default { - themeConfig: { - navbar: { - items: [ - // highlight-start - { - type: "localeDropdown", - }, - // highlight-end - ], - }, - }, -}; -``` +The value of the `--file-path` must be the path to the CSV file and should meet the following requirements: -The locale dropdown now appears in your navbar: - -![Locale Dropdown](./img/localeDropdown.png) - -## Build your localized site - -Build your site for a specific locale: - -```bash -npm run build -- --locale fr -``` - -Or build your site to include all the locales at once: - -```bash -npm run build -``` +- The file extension should be ".csv". +- The header row of the CSV file must be the record number field code defined in the target app. +- If using the app code in the record number: + - Every row should contain the same app code (not mixed). + - The app code is equal to the target app's one. diff --git a/website/docs/guide/commands/record-export.md b/website/docs/guide/commands/record-export.md index aa7442df2f..9ef10c3919 100644 --- a/website/docs/guide/commands/record-export.md +++ b/website/docs/guide/commands/record-export.md @@ -1,55 +1,50 @@ --- -sidebar_position: 1 +sidebar_position: 100 --- # record export -Docusaurus can manage multiple versions of your docs. +The `export` command allows you to export record data from a specified Kintone app. -## Create a docs version +## Example -Release a version 1.0 of your project: - -```bash -npm run docusaurus docs:version 1.0 +```shell +cli-kintone record export \ + --base-url https://${yourDomain} \ + --api-token ${apiToken} \ + --app ${kintoneAppId} \ +> ${filepath} ``` -The `docs` folder is copied into `versioned_docs/version-1.0` and `versions.json` is created. +## Options -Your docs now have 2 versions: +See [Options](/guide/options) page for common options. -- `1.0` at `http://localhost:3000/docs/` for the version 1.0 docs -- `current` at `http://localhost:3000/docs/next/` for the **upcoming, unreleased docs** +| Option | Required | Description | +| ------------------- | -------- | ------------------------------------------------------------------------- | +| `--app` | Yes | The ID of the app | +| `--attachments-dir` | | Attachment file directory | +| `--condition`, `-c` | | The query string | +| `--order-by` | | The sort order as a query | +| `--fields` | | The fields to be exported in comma-separated | +| `--encoding ` | | Character encoding
Default to `utf8`
Encodings: `utf8` and `sjis` | -## Add a Version Dropdown +### Notes -To navigate seamlessly across versions, add a version dropdown. +- A field within a Table cannot be specified to the `fields` option. -Modify the `docusaurus.config.js` file: +## `--condition` and `--order-by` options -```js title="docusaurus.config.js" -export default { - themeConfig: { - navbar: { - items: [ - // highlight-start - { - type: "docsVersionDropdown", - }, - // highlight-end - ], - }, - }, -}; -``` +You can filter and reorder records with `--condition` and `--order-by` options. -The docs version dropdown appears in your navbar: +These options are passed to `getAllRecords()` of [@kintone/rest-api-client](https://github.com/kintone/js-sdk/tree/master/packages/rest-api-client#readme). -![Docs Version Dropdown](./img/docsVersionDropdown.png) +Refer to the [`getAllRecords()`](https://github.com/kintone/js-sdk/blob/master/packages/rest-api-client/docs/record.md#getallrecords) document for more information. -## Update an existing version +## Download attachment files -It is possible to edit versioned docs in their respective folder: +If the `--attachments-dir` option is set, attachment files will be downloaded to the local directory. -- `versioned_docs/version-1.0/hello.md` updates `http://localhost:3000/docs/hello` -- `docs/hello.md` updates `http://localhost:3000/docs/next/hello` +- The file path is `/-/`. + - For attachment fields in a Table, the file path is `/--/`. +- For files with the same name in the same Attachment field, the files will be renamed to ` ().`. diff --git a/website/docs/guide/commands/record-import.md b/website/docs/guide/commands/record-import.md index 7f27100448..b11dfb2f1e 100644 --- a/website/docs/guide/commands/record-import.md +++ b/website/docs/guide/commands/record-import.md @@ -1,88 +1,69 @@ --- -sidebar_position: 2 +sidebar_position: 200 --- # record import -Let's translate `docs/intro.md` to French. +The `import` command allows you to import record data into a specified Kintone app. -## Configure i18n +## Example -Modify `docusaurus.config.js` to add support for the `fr` locale: - -```js title="docusaurus.config.js" -export default { - i18n: { - defaultLocale: "en", - locales: ["en", "fr"], - }, -}; -``` - -## Translate a doc - -Copy the `docs/intro.md` file to the `i18n/fr` folder: - -```bash -mkdir -p i18n/fr/docusaurus-plugin-content-docs/current/ - -cp docs/intro.md i18n/fr/docusaurus-plugin-content-docs/current/intro.md +```shell +cli-kintone record import \ + --base-url https://${yourDomain} \ + --api-token ${apiToken} \ + --app ${kintoneAppId} \ + --file-path ${filepath} ``` -Translate `i18n/fr/docusaurus-plugin-content-docs/current/intro.md` in French. +## Options -## Start your localized site +See [Options](/guide/options) page for common options. -Start your site on the French locale: +| Option | Required | Description | +| ------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `--app` | Yes | The ID of the app | +| `--attachments-dir` | | Attachment file directory | +| `--file-path` | Yes | The path to the source file.
The file extension should be ".csv" | +| `--encoding ` | | Character encoding
Default to `utf8`
Encodings: `utf8` and `sjis` | +| `--update-key` | | The key to Bulk Update
When this option is set, cli-kintone will be in the UPSERT mode.
See [Upsert records](#upsert-records) section for more details. | +| `--fields ` | | The fields to be imported in comma-separated | -```bash -npm run start -- --locale fr -``` +:::note +A field within a Table cannot be specified to the `fields` option. +::: -Your localized site is accessible at [http://localhost:3000/fr/](http://localhost:3000/fr/) and the `Getting Started` page is translated. +## File format -:::caution +When importing, it automatically determines the format by the file extension (specified by the `--file-path` option). -In development, you can only use one locale at a time. +## Import Attachment field -::: +The `--attachments-dir` option is required if records contain an Attachment field. -## Add a Locale Dropdown - -To navigate seamlessly across languages, add a locale dropdown. - -Modify the `docusaurus.config.js` file: - -```js title="docusaurus.config.js" -export default { - themeConfig: { - navbar: { - items: [ - // highlight-start - { - type: "localeDropdown", - }, - // highlight-end - ], - }, - }, -}; -``` +- The local file path in the record is treated as a relative path from `--attachments-dir`. + - Upload the file there. +- The file names on Kintone will be the same as the local. -The locale dropdown now appears in your navbar: +## Upsert records -![Locale Dropdown](./img/localeDropdown.png) +When the `--update-key` option is set, the option value is used as "Key to Bulk Update" to import (upsert) records. -## Build your localized site +"Upsert" means updating and/or inserting records simultaneously. Data containing keys that match existing record values are used to update those records accordingly, and the remaining data is added to the specified app as new records. -Build your site for a specific locale: +The field specified as "Key to Bulk Update" must meet one of the following requirements: -```bash -npm run build -- --locale fr -``` +- Be the Record Number field. +- Be one of the following field types with the "Prohibit duplicate values" option enabled: + - Text + - Number -Or build your site to include all the locales at once: +### Notes -```bash -npm run build -``` +- When the Record Number field is specified as the "Key to Bulk Update", the field's value may have the target app's code. +- A Record Number field is only evaluated for records to be updated when it is specified as "Key to Bulk Update". +- The following fields in records to be updated are ignored. + - Created by + - Created datetime + - Updated by + - Updated datetime diff --git a/website/docs/guide/formats/_category_.json b/website/docs/guide/formats/_category_.json new file mode 100644 index 0000000000..95b86bc244 --- /dev/null +++ b/website/docs/guide/formats/_category_.json @@ -0,0 +1,9 @@ +{ + "label": "File formats", + "position": 500, + "link": { + "type": "generated-index", + "description": "cli-kintone supports the following formats for both import & export commands." + }, + "collapsed": false +} diff --git a/website/docs/guide/formats/csv.md b/website/docs/guide/formats/csv.md new file mode 100644 index 0000000000..4f1ba90c02 --- /dev/null +++ b/website/docs/guide/formats/csv.md @@ -0,0 +1,106 @@ +--- +sidebar_position: 1 +--- + +# CSV + +The first row (header row) lists the **field codes** of each field. +Each subsequent row corresponds to a record. Each value represents the value of the field. + +```csv +"Record_number","FieldCode1","FieldCode2" +"1","foo","bar" +"2","baz","qux" +``` + +Here are considerations for some field types: + +#### Text area + +If the value contains a line break, enclose the value in double quotes. + +```csv +"TextAreaField" +"multi +line +text" +``` + +#### Check box, Multi-choice + +Specify multiple values by separating them with line breaks (\n). + +```csv +"CheckboxField" +"value1 +value2" +``` + +#### User Selection, Department Selection, Group Selection + +If multiple values are selected, they will be separated with a line break (\n) (equivalent to `value.code` in REST API). + +```csv +"userSelectionField","departmentSelectionField","groupSelectionField" +"John +Bob","Development Div","Administrators" +``` + +#### Created by, Updated by + +Specify the user's login name (equivalent to `value.code` in REST API). + +```csv +"Created_by" +"John" +``` + +#### Attachment + +Files in the same Attachment field (in the same Table row) are separated with line breaks (\n). + +```csv +"file" +"file-9/test.txt +file-9/test (1).txt" +``` + +```csv +"fileInTable" +"fileInTable-1-0/test.txt +fileInTable-1-0/test (1).txt" +``` + +When exporting, only the file name will be outputted if the `--attachments-dir` option is NOT set. + +```csv +"fileFieldCode" +"test.txt +test.txt" +``` + +If running on Windows environment and the filename contains Windows prohibited characters, replace them with `_` . + +#### Table + +- The row where a record begins has a PRIMARY_MARK(`*`) on the "`*`" field. +- The data of fields outside the Table are specified in the row with PRIMARY_MARK(`*`). + - The data of fields outside the Table in other rows will be ignored. +- The data of fields inside the Table are specified with one or more rows. + - If there is no data about the Table in the row, the row is ignored. + +```csv +"*","Text","Table","TextInTable" +"*","first","","alice" +,"first","","bob" +``` + +with multiple Table fields + +```csv +"*","Text","Table","TextInTable","Table_1","NumberInTable" +"*","first","","alice",, +,"first","","bob",, +,"first",,,"","10" +,"first",,,"","20" +``` diff --git a/website/docs/guide/index.md b/website/docs/guide/index.md deleted file mode 100644 index 3348668d47..0000000000 --- a/website/docs/guide/index.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -sidebar_position: 100 ---- - -# Introduction - -cli-kintone (Pronounced `kurikɪntóʊn`, named for Japanese sweets, [Kurikinton](https://visitgifu.com/see-do/kurikinton/)) is the CLI tool to import and export [kintone](https://www.kintone.com/en-us/) records. diff --git a/website/docs/guide/index.mdx b/website/docs/guide/index.mdx new file mode 100644 index 0000000000..1e1566ef18 --- /dev/null +++ b/website/docs/guide/index.mdx @@ -0,0 +1,153 @@ +--- +sidebar_position: 100 +--- + +# Getting Started + +:::info +There are better tutorials for Japanese speakers. + +- [はじめようcli-kintone - cybozu developer network](https://cybozu.dev/ja/tutorials/hello-cli-kintone/) +::: + +## What is cli-kintone? + +cli-kintone is the CLI tool for importing and exporting [Kintone](https://www.kintone.com/en-us/) records. It is suitable for batch record operations. + +- Backup/restore Kintone records +- Data synchronization between Kintone and other BI platforms +- Data migration from other systems + +:::tip[Pronunciation] +cli-kintone is pronounced "Koo-Ree Kint-Own," and "Kint" rhymes with "hint." It is named after the Japanese sweet [栗きんとん](https://visitgifu.com/see-do/kurikinton/). +::: + +## Why cli-kintone? + +cli-kintone enhance non-engineers work performance. + +Here is a comparison of Web GUI, CLI, and API: + +- Web GUI + - Low learning cost + - Easy to operate + - Difficult to automate + - Mainly for end users +- CLI + - Moderate learning cost + - Modestly easy to operate + - Easy to automate with shell scripts + - Mainly used by IT personnel +- API + - High learning cost + - Application development required to operate + - High level automation can be built + - Mainly used by plugin developers + +**With cli-kintone, non-engineers can automate their routine and regular tasks with a little shell scripting skill.** + +## Try cli-kintone + +This part will walk you through the process of installing cli-kintone and exporting records from the application. + +### Requirements + +To run cli-kintone, a Kintone subscription with API access is required. + +### Installing + +1. Jump to the [Releases](https://github.com/kintone/cli-kintone/releases) page. +2. Download latest cli-kintone ZIP file and extract it. + +For more details, see [Installation](./installation) page. + +### Operation check + +Run cli-kintone with `--version` option. + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + + + + ```shell + ./cli-kintone --version + + # A version should be printed + # 1.10.0 + ``` + + + ```powershell + ./cli-kintone.exe --version + + # A version should be printed + # 1.10.0 + ``` + + + + +If you see the version you downloaded, you are ready to go! + +### Configuring + +To access Kintone from cli-kintone, you need to set authentication information. +We recommend setting environment variables to reduce repetition. + +Here are the environment variables to set. + +|Key|Description| +|-|-| +|`KINTONE_BASE_URL`|Base URL of Kintone you want to access.
e.g. `https://example.cybozu.com`| +|`KINTONE_API_TOKEN`|API token of the app you want to access| + +:::tip +Alternatively, you can set `KINTONE_USERNAME` and `KINTONE_PASSWORD` to use password authentication. +::: + + + + ```shell + export KINTONE_BASE_URL='https://example.cybozu.com' + export KINTONE_API_TOKEN='YourAPIToken' + ``` + + + ```powershell + $Env:KINTONE_BASE_URL='https://example.cybozu.com' + $Env:KINTONE_API_TOKEN='YourAPIToken' + ``` + + + ```powershell + set KINTONE_BASE_URL=https://example.cybozu.com + set KINTONE_API_TOKEN=YourAPIToken + ``` + + + +### Exporting record + +Now, it's time. Use the `record export` command to retrive records from Kintone app. + + + + ```shell + ./cli-kintone --app 123 + + # Exported records will be printed in CSV format + ``` + + + ```powershell + ./cli-kintone.exe --app 123 + + # Exported records will be printed in CSV format + ``` + + + +## Next steps + +See [Commands](/category/commands) section to check all features. diff --git a/website/docs/guide/installation.md b/website/docs/guide/installation.md index e6e9586f87..d867c0a309 100644 --- a/website/docs/guide/installation.md +++ b/website/docs/guide/installation.md @@ -3,3 +3,89 @@ sidebar_position: 200 --- # Installation + +This page will help you install cli-kintone. + +## From binary file + +1. Jump to the [Releases](https://github.com/kintone/cli-kintone/releases) page. +2. Download a ZIP file for your platform from "Assets". + - Windows: `cli-kintone_${version}_win.zip` + - Linux: `cli-kintone_${version}_linux.zip` + - macOS: `cli-kintone_${version}_macos.zip` +3. Extract the downloaded zip file +4. Run the extracted file as follows and confirm that the command is available. + - Windows: `cli-kintone.exe` on command prompt + - Linux & macOS: `./cli-kintone` on terminal + +### Run cli-kintone from anywhere + +To run the `cli-kintone` command from any directory, do one of the following: + +- Run the command while specifying the absolute path +- Set the PATH environment +- Move the `cli-kintone` file to the `/usr/local/bin` directory (for Linux & macOS) + +### Command completion + +cli-kintone provides a command-completion feature that lets you use the **Tab** key to complete a partially entered command. + +:::info +cli-kintone command completion is now supported for `bash` and `zsh` shells. +::: + +#### zsh + +To enable it in `zsh`, `cd` to the directory that contains the cli-kintone executable file, then run the following commands: + +```shell +# 1. Set PATH environment variables +echo "export PATH=$(pwd):\$PATH" >> ~/.zshrc + +# 2. Create and configure a directory to store the completion scripts +mkdir -p ~/.zsh_completion.d/ +echo 'fpath=(~/.zsh_completion.d $fpath)' >> ~/.zshrc + +# 3. Enable bash-autocomplete feature +echo 'autoload bashcompinit && bashcompinit' >> ~/.zshrc +echo 'autoload -Uz compinit && compinit' >> ~/.zshrc + +# 4. Create command completion script +./cli-kintone completion >> ~/.zsh_completion.d/_cli-kintone + +# 5. Reload zsh +source ~/.zshrc +``` + +#### bash + +To enable it in `bash`, `cd` to the directory that contains the cli-kintone executable file, then run the following commands: + +```shell +# 1. Create command completion script +mkdir -p ~/.bash_completion.d +./cli-kintone completion >> ~/.bash_completion.d/_cli-kintone + +# 2. Add command completion script to bash + +# For login shell +echo "export PATH=$(pwd):\$PATH" >> ~/.bash_profile +echo 'source ~/.bash_completion.d/_cli-kintone' >> ~/.bash_profile +source ~/.bash_profile + +# For non-login shell +echo "export PATH=$(pwd):\$PATH" >> ~/.bashrc +echo 'source ~/.bash_completion.d/_cli-kintone' >> ~/.bashrc +source ~/.bashrc +``` + +#### For Windows OS + +For Windows OS, you can use cli-kintone command completion via `bash` on [WSL2](https://learn.microsoft.com/en-us/windows/wsl/install) + +Steps: + +1. Install Linux on Windows with WSL. Ref: [WSL2](https://learn.microsoft.com/en-us/windows/wsl/install). +2. Open a new Linux Terminal. +3. Download and extract executables from the [Linux package](https://github.com/kintone/cli-kintone/releases). +4. Run the same commands as the [bash section](#bash). diff --git a/website/docs/guide/options.md b/website/docs/guide/options.md new file mode 100644 index 0000000000..7f684b2ba9 --- /dev/null +++ b/website/docs/guide/options.md @@ -0,0 +1,52 @@ +--- +sidebar_position: 400 +--- + +# Options + +This page introduces common options of cli-kintone. + +:::info +Some options use environment variables as default values. +::: + +## General + +| Option | Description | +| ----------- | ------------------- | +| `--version` | Show version number | +| `--help` | Show help | + +## Logging + +See [Logging](/reference/logging) reference for more details. + +| Option | Description | +| ------------- | ------------------------------------------------------------------------------------- | +| `--log-level` | Change log config level
Levels: `debug`, `info`, `warn`, `error`, `fatal`, `none` | +| `--verbose` | Set log config level to `debug` | + +## Authentication + +| Option | Description | +| ----------------------- | ------------------------------------------------------------------------ | +| `--base-url` | Kintone Base URL
Default to `KINTONE_BASE_URL` | +| `--username`, `-u` | Kintone Username
Default to `KINTONE_USERNAME` | +| `--password`, `-p` | Kintone Password
Default to `KINTONE_PASSWORD` | +| `--api-token` | App's API tokens
Default to `KINTONE_API_TOKEN` | +| `--basic-auth-username` | Kintone Basic Auth Username
Default to `KINTONE_BASIC_AUTH_USERNAME` | +| `--basic-auth-password` | Kintone Basic Auth Password
Default to `KINTONE_BASIC_AUTH_PASSWORD` | +| `--pfx-file-path` | The path to the client certificate file | +| `--pfx-file-password` | The password of the client certificate file | + +## Network + +| Option | Description | +| --------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `--proxy` | The URL of a proxy server
Format: `http://username:password@host:port`
Default to `HTTPS_PROXY`
See [Proxy](/reference/proxy/http-proxy) reference for more details. | + +## Guest space + +| Option | Description | +| ------------------ | ------------------------------------------------------------- | +| `--guest-space-id` | The ID of guest space
Default to `KINTONE_GUEST_SPACE_ID` | diff --git a/website/docs/guide/troubleshooting.md b/website/docs/guide/troubleshooting.md index 71ce0c5b4d..8f415c84c7 100644 --- a/website/docs/guide/troubleshooting.md +++ b/website/docs/guide/troubleshooting.md @@ -1,5 +1,18 @@ --- -sidebar_position: 400 +sidebar_position: 600 --- # Troubleshooting + +This page will help you solve any problems you may encounter with cli-kintone. + +## Supporting resources + +You can use our official Forum, Support desk, etc. +See [Community](/community) section for more details. + +## Debug logs + +Detailed logs are available to accurately assess the situation. + +Use `--verbose` option to enable debug logs. diff --git a/website/docs/guide/tutorials/intro.md b/website/docs/guide/tutorials/intro.md deleted file mode 100644 index 45e8604c8b..0000000000 --- a/website/docs/guide/tutorials/intro.md +++ /dev/null @@ -1,47 +0,0 @@ ---- -sidebar_position: 1 ---- - -# Tutorial Intro - -Let's discover **Docusaurus in less than 5 minutes**. - -## Getting Started - -Get started by **creating a new site**. - -Or **try Docusaurus immediately** with **[docusaurus.new](https://docusaurus.new)**. - -### What you'll need - -- [Node.js](https://nodejs.org/en/download/) version 18.0 or above: - - When installing Node.js, you are recommended to check all checkboxes related to dependencies. - -## Generate a new site - -Generate a new Docusaurus site using the **classic template**. - -The classic template will automatically be added to your project after you run the command: - -```bash -npm init docusaurus@latest my-website classic -``` - -You can type this command into Command Prompt, Powershell, Terminal, or any other integrated terminal of your code editor. - -The command also installs all necessary dependencies you need to run Docusaurus. - -## Start your site - -Run the development server: - -```bash -cd my-website -npm run start -``` - -The `cd` command changes the directory you're working with. In order to work with your newly created Docusaurus site, you'll need to navigate the terminal there. - -The `npm run start` command builds your website locally and serves it through a development server, ready for you to view at http://localhost:3000/. - -Open `docs/intro.md` (this page) and edit some lines: the site **reloads automatically** and displays your changes. diff --git a/website/docs/guide/tutorials/tutorial-basics/_category_.json b/website/docs/guide/tutorials/tutorial-basics/_category_.json deleted file mode 100644 index 2e6db55b1e..0000000000 --- a/website/docs/guide/tutorials/tutorial-basics/_category_.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "label": "Tutorial - Basics", - "position": 2, - "link": { - "type": "generated-index", - "description": "5 minutes to learn the most important Docusaurus concepts." - } -} diff --git a/website/docs/guide/tutorials/tutorial-basics/congratulations.md b/website/docs/guide/tutorials/tutorial-basics/congratulations.md deleted file mode 100644 index 04771a00b7..0000000000 --- a/website/docs/guide/tutorials/tutorial-basics/congratulations.md +++ /dev/null @@ -1,23 +0,0 @@ ---- -sidebar_position: 6 ---- - -# Congratulations! - -You have just learned the **basics of Docusaurus** and made some changes to the **initial template**. - -Docusaurus has **much more to offer**! - -Have **5 more minutes**? Take a look at **[versioning](../tutorial-extras/manage-docs-versions.md)** and **[i18n](../tutorial-extras/translate-your-site.md)**. - -Anything **unclear** or **buggy** in this tutorial? [Please report it!](https://github.com/facebook/docusaurus/discussions/4610) - -## What's next? - -- Read the [official documentation](https://docusaurus.io/) -- Modify your site configuration with [`docusaurus.config.js`](https://docusaurus.io/docs/api/docusaurus-config) -- Add navbar and footer items with [`themeConfig`](https://docusaurus.io/docs/api/themes/configuration) -- Add a custom [Design and Layout](https://docusaurus.io/docs/styling-layout) -- Add a [search bar](https://docusaurus.io/docs/search) -- Find inspirations in the [Docusaurus showcase](https://docusaurus.io/showcase) -- Get involved in the [Docusaurus Community](https://docusaurus.io/community/support) diff --git a/website/docs/guide/tutorials/tutorial-basics/create-a-blog-post.md b/website/docs/guide/tutorials/tutorial-basics/create-a-blog-post.md deleted file mode 100644 index 550ae17ee1..0000000000 --- a/website/docs/guide/tutorials/tutorial-basics/create-a-blog-post.md +++ /dev/null @@ -1,34 +0,0 @@ ---- -sidebar_position: 3 ---- - -# Create a Blog Post - -Docusaurus creates a **page for each blog post**, but also a **blog index page**, a **tag system**, an **RSS** feed... - -## Create your first Post - -Create a file at `blog/2021-02-28-greetings.md`: - -```md title="blog/2021-02-28-greetings.md" ---- -slug: greetings -title: Greetings! -authors: - - name: Joel Marcey - title: Co-creator of Docusaurus 1 - url: https://github.com/JoelMarcey - image_url: https://github.com/JoelMarcey.png - - name: Sébastien Lorber - title: Docusaurus maintainer - url: https://sebastienlorber.com - image_url: https://github.com/slorber.png -tags: [greetings] ---- - -Congratulations, you have made your first post! - -Feel free to play around and edit this post as much as you like. -``` - -A new blog post is now available at [http://localhost:3000/blog/greetings](http://localhost:3000/blog/greetings). diff --git a/website/docs/guide/tutorials/tutorial-basics/create-a-document.md b/website/docs/guide/tutorials/tutorial-basics/create-a-document.md deleted file mode 100644 index bdd5160d5f..0000000000 --- a/website/docs/guide/tutorials/tutorial-basics/create-a-document.md +++ /dev/null @@ -1,57 +0,0 @@ ---- -sidebar_position: 2 ---- - -# Create a Document - -Documents are **groups of pages** connected through: - -- a **sidebar** -- **previous/next navigation** -- **versioning** - -## Create your first Doc - -Create a Markdown file at `docs/hello.md`: - -```md title="docs/hello.md" -# Hello - -This is my **first Docusaurus document**! -``` - -A new document is now available at [http://localhost:3000/docs/hello](http://localhost:3000/docs/hello). - -## Configure the Sidebar - -Docusaurus automatically **creates a sidebar** from the `docs` folder. - -Add metadata to customize the sidebar label and position: - -```md title="docs/hello.md" {1-4} ---- -sidebar_label: "Hi!" -sidebar_position: 3 ---- - -# Hello - -This is my **first Docusaurus document**! -``` - -It is also possible to create your sidebar explicitly in `sidebars.js`: - -```js title="sidebars.js" -export default { - guideSidebar: [ - "intro", - // highlight-next-line - "hello", - { - type: "category", - label: "Tutorial", - items: ["tutorial-basics/create-a-document"], - }, - ], -}; -``` diff --git a/website/docs/guide/tutorials/tutorial-basics/create-a-page.md b/website/docs/guide/tutorials/tutorial-basics/create-a-page.md deleted file mode 100644 index a2cb8eda41..0000000000 --- a/website/docs/guide/tutorials/tutorial-basics/create-a-page.md +++ /dev/null @@ -1,43 +0,0 @@ ---- -sidebar_position: 1 ---- - -# Create a Page - -Add **Markdown or React** files to `src/pages` to create a **standalone page**: - -- `src/pages/index.js` → `localhost:3000/` -- `src/pages/foo.md` → `localhost:3000/foo` -- `src/pages/foo/bar.js` → `localhost:3000/foo/bar` - -## Create your first React Page - -Create a file at `src/pages/my-react-page.js`: - -```jsx title="src/pages/my-react-page.js" -import React from "react"; -import Layout from "@theme/Layout"; - -export default function MyReactPage() { - return ( - -

My React page

-

This is a React page

-
- ); -} -``` - -A new page is now available at [http://localhost:3000/my-react-page](http://localhost:3000/my-react-page). - -## Create your first Markdown Page - -Create a file at `src/pages/my-markdown-page.md`: - -```mdx title="src/pages/my-markdown-page.md" -# My Markdown page - -This is a Markdown page -``` - -A new page is now available at [http://localhost:3000/my-markdown-page](http://localhost:3000/my-markdown-page). diff --git a/website/docs/guide/tutorials/tutorial-basics/deploy-your-site.md b/website/docs/guide/tutorials/tutorial-basics/deploy-your-site.md deleted file mode 100644 index 1c50ee063e..0000000000 --- a/website/docs/guide/tutorials/tutorial-basics/deploy-your-site.md +++ /dev/null @@ -1,31 +0,0 @@ ---- -sidebar_position: 5 ---- - -# Deploy your site - -Docusaurus is a **static-site-generator** (also called **[Jamstack](https://jamstack.org/)**). - -It builds your site as simple **static HTML, JavaScript and CSS files**. - -## Build your site - -Build your site **for production**: - -```bash -npm run build -``` - -The static files are generated in the `build` folder. - -## Deploy your site - -Test your production build locally: - -```bash -npm run serve -``` - -The `build` folder is now served at [http://localhost:3000/](http://localhost:3000/). - -You can now deploy the `build` folder **almost anywhere** easily, **for free** or very small cost (read the **[Deployment Guide](https://docusaurus.io/docs/deployment)**). diff --git a/website/docs/guide/tutorials/tutorial-basics/markdown-features.mdx b/website/docs/guide/tutorials/tutorial-basics/markdown-features.mdx deleted file mode 100644 index 35e00825ed..0000000000 --- a/website/docs/guide/tutorials/tutorial-basics/markdown-features.mdx +++ /dev/null @@ -1,152 +0,0 @@ ---- -sidebar_position: 4 ---- - -# Markdown Features - -Docusaurus supports **[Markdown](https://daringfireball.net/projects/markdown/syntax)** and a few **additional features**. - -## Front Matter - -Markdown documents have metadata at the top called [Front Matter](https://jekyllrb.com/docs/front-matter/): - -```text title="my-doc.md" -// highlight-start ---- -id: my-doc-id -title: My document title -description: My document description -slug: /my-custom-url ---- -// highlight-end - -## Markdown heading - -Markdown text with [links](./hello.md) -``` - -## Links - -Regular Markdown links are supported, using url paths or relative file paths. - -```md -Let's see how to [Create a page](/create-a-page). -``` - -```md -Let's see how to [Create a page](./create-a-page.md). -``` - -**Result:** Let's see how to [Create a page](./create-a-page.md). - -## Images - -Regular Markdown images are supported. - -You can use absolute paths to reference images in the static directory (`static/img/docusaurus.png`): - -```md -![Docusaurus logo](/img/docusaurus.png) -``` - -![Docusaurus logo](/img/docusaurus.png) - -You can reference images relative to the current file as well. This is particularly useful to colocate images close to the Markdown files using them: - -```md -![Docusaurus logo](./img/docusaurus.png) -``` - -## Code Blocks - -Markdown code blocks are supported with Syntax highlighting. - -````md -```jsx title="src/components/HelloDocusaurus.js" -function HelloDocusaurus() { - return

Hello, Docusaurus!

; -} -``` -```` - -```jsx title="src/components/HelloDocusaurus.js" -function HelloDocusaurus() { - return

Hello, Docusaurus!

; -} -``` - -## Admonitions - -Docusaurus has a special syntax to create admonitions and callouts: - -```md -:::tip My tip - -Use this awesome feature option - -::: - -:::danger Take care - -This action is dangerous - -::: -``` - -:::tip My tip - -Use this awesome feature option - -::: - -:::danger Take care - -This action is dangerous - -::: - -## MDX and React Components - -[MDX](https://mdxjs.com/) can make your documentation more **interactive** and allows using any **React components inside Markdown**: - -```jsx -export const Highlight = ({children, color}) => ( - { - alert(`You clicked the color ${color} with label ${children}`) - }}> - {children} - -); - -This is Docusaurus green ! - -This is Facebook blue ! -``` - -export const Highlight = ({children, color}) => ( - { - alert(`You clicked the color ${color} with label ${children}`); - }}> - {children} - -); - -This is Docusaurus green ! - -This is Facebook blue ! diff --git a/website/docs/guide/tutorials/tutorial-extras/img/docsVersionDropdown.png b/website/docs/guide/tutorials/tutorial-extras/img/docsVersionDropdown.png deleted file mode 100644 index 97e4164618b5f8beda34cfa699720aba0ad2e342..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25427 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 diff --git a/website/docs/guide/tutorials/tutorial-extras/img/localeDropdown.png b/website/docs/guide/tutorials/tutorial-extras/img/localeDropdown.png deleted file mode 100644 index e257edc1f932985396bf59584c7ccfaddf955779..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27841 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 JrC|B>e*nH7H{}2T diff --git a/website/docs/guide/tutorials/tutorial-extras/manage-docs-versions.md b/website/docs/guide/tutorials/tutorial-extras/manage-docs-versions.md deleted file mode 100644 index 2c724f6761..0000000000 --- a/website/docs/guide/tutorials/tutorial-extras/manage-docs-versions.md +++ /dev/null @@ -1,55 +0,0 @@ ---- -sidebar_position: 1 ---- - -# Manage Docs Versions - -Docusaurus can manage multiple versions of your docs. - -## Create a docs version - -Release a version 1.0 of your project: - -```bash -npm run docusaurus docs:version 1.0 -``` - -The `docs` folder is copied into `versioned_docs/version-1.0` and `versions.json` is created. - -Your docs now have 2 versions: - -- `1.0` at `http://localhost:3000/docs/` for the version 1.0 docs -- `current` at `http://localhost:3000/docs/next/` for the **upcoming, unreleased docs** - -## Add a Version Dropdown - -To navigate seamlessly across versions, add a version dropdown. - -Modify the `docusaurus.config.js` file: - -```js title="docusaurus.config.js" -export default { - themeConfig: { - navbar: { - items: [ - // highlight-start - { - type: "docsVersionDropdown", - }, - // highlight-end - ], - }, - }, -}; -``` - -The docs version dropdown appears in your navbar: - -![Docs Version Dropdown](img/docsVersionDropdown.png) - -## Update an existing version - -It is possible to edit versioned docs in their respective folder: - -- `versioned_docs/version-1.0/hello.md` updates `http://localhost:3000/docs/hello` -- `docs/hello.md` updates `http://localhost:3000/docs/next/hello` diff --git a/website/docs/guide/tutorials/tutorial-extras/translate-your-site.md b/website/docs/guide/tutorials/tutorial-extras/translate-your-site.md deleted file mode 100644 index 8145352639..0000000000 --- a/website/docs/guide/tutorials/tutorial-extras/translate-your-site.md +++ /dev/null @@ -1,88 +0,0 @@ ---- -sidebar_position: 2 ---- - -# Translate your site - -Let's translate `docs/intro.md` to French. - -## Configure i18n - -Modify `docusaurus.config.js` to add support for the `fr` locale: - -```js title="docusaurus.config.js" -export default { - i18n: { - defaultLocale: "en", - locales: ["en", "fr"], - }, -}; -``` - -## Translate a doc - -Copy the `docs/intro.md` file to the `i18n/fr` folder: - -```bash -mkdir -p i18n/fr/docusaurus-plugin-content-docs/current/ - -cp docs/intro.md i18n/fr/docusaurus-plugin-content-docs/current/intro.md -``` - -Translate `i18n/fr/docusaurus-plugin-content-docs/current/intro.md` in French. - -## Start your localized site - -Start your site on the French locale: - -```bash -npm run start -- --locale fr -``` - -Your localized site is accessible at [http://localhost:3000/fr/](http://localhost:3000/fr/) and the `Getting Started` page is translated. - -:::caution - -In development, you can only use one locale at a time. - -::: - -## Add a Locale Dropdown - -To navigate seamlessly across languages, add a locale dropdown. - -Modify the `docusaurus.config.js` file: - -```js title="docusaurus.config.js" -export default { - themeConfig: { - navbar: { - items: [ - // highlight-start - { - type: "localeDropdown", - }, - // highlight-end - ], - }, - }, -}; -``` - -The locale dropdown now appears in your navbar: - -![Locale Dropdown](img/localeDropdown.png) - -## Build your localized site - -Build your site for a specific locale: - -```bash -npm run build -- --locale fr -``` - -Or build your site to include all the locales at once: - -```bash -npm run build -``` diff --git a/website/docs/guide/tutorials/tutorial-extras/_category_.json b/website/docs/reference/errors/_category_.json similarity index 50% rename from website/docs/guide/tutorials/tutorial-extras/_category_.json rename to website/docs/reference/errors/_category_.json index a8ffcc1930..0469505a3f 100644 --- a/website/docs/guide/tutorials/tutorial-extras/_category_.json +++ b/website/docs/reference/errors/_category_.json @@ -1,6 +1,6 @@ { - "label": "Tutorial - Extras", - "position": 3, + "label": "Errors handling", + "position": 400, "link": { "type": "generated-index" } diff --git a/website/docs/reference/errors/mismatch-encoding.md b/website/docs/reference/errors/mismatch-encoding.md new file mode 100644 index 0000000000..481825412b --- /dev/null +++ b/website/docs/reference/errors/mismatch-encoding.md @@ -0,0 +1,16 @@ +# Mismatch encoding + +When executing the `import` and `delete` command, an error will be thrown if the specified encoding (default is UTF-8) mismatches the actual encoding of the specified CSV file. + +Error message + +```shell +ERROR: Failed to decode the specified CSV file. +ERROR: The specified encoding (<>) might mismatch the actual encoding of the CSV file. +``` + +## Implementation + +After decoding the header row of the CSV file by the specified encoding (default is UTF-8), the error will be thrown if the decoded string contains untranslatable characters. + +Untranslatable characters are `�` and `?` (described in [iconv-lite](https://github.com/ashtuchkin/iconv-lite#other-notes)) diff --git a/website/docs/reference/errors/network-timeout.md b/website/docs/reference/errors/network-timeout.md new file mode 100644 index 0000000000..5b54332d5e --- /dev/null +++ b/website/docs/reference/errors/network-timeout.md @@ -0,0 +1,19 @@ +# Network timeout + +When a network error occurs, an error message will be thrown as below. + +```shell +ERROR: [ECONNABORTED] timeout of 600000ms exceeded +ERROR: The cli-kintone aborted due to a network error. +ERROR: Please check your network connection. +``` + +Below is the list of network timeout errors that cli-kintone handles + +- Socket timeout - Default is 600 seconds + +## Implementation + +@kintone/rest-api-client allows the user to specify the socket timeout. So, when establishing a connection with the KintoneRestAPIClient, cli-kintone specifies that option. + +Currently, we consider an error as a network error if It has the error code ECONNABORTED. diff --git a/website/docs/reference/index.md b/website/docs/reference/index.md index ce439623a4..6c1ffe0cb2 100644 --- a/website/docs/reference/index.md +++ b/website/docs/reference/index.md @@ -4,4 +4,8 @@ sidebar_position: 100 # Reference -Coming soon! :construction: +This section provides detailed reference documentation to deep dive into cli-kintone. + +:::info +If you are just going to start using cli-kintone, please visit the [Guide](/guide) section first. +::: diff --git a/website/docs/reference/logging/LogConfigLevelTable.tsx b/website/docs/reference/logging/LogConfigLevelTable.tsx new file mode 100644 index 0000000000..e765c112b7 --- /dev/null +++ b/website/docs/reference/logging/LogConfigLevelTable.tsx @@ -0,0 +1,84 @@ +import styles from "./styles.module.scss"; + +export default function LogConfigLevelTable() { + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Event levelConfig level
tracedebuginfowarnerrorfatalnone
traceincludedexcludedexcludedexcludedexcludedexcludedexcluded
debugincludedincludedexcludedexcludedexcludedexcludedexcluded
infoincludedincludedincludedexcludedexcludedexcludedexcluded
warnincludedincludedincludedincludedexcludedexcludedexcluded
errorincludedincludedincludedincludedincludedexcludedexcluded
fatalincludedincludedincludedincludedincludedincludedexcluded
+ ); +} diff --git a/website/docs/reference/logging/LogEventLevelTable.tsx b/website/docs/reference/logging/LogEventLevelTable.tsx new file mode 100644 index 0000000000..e8e6948efd --- /dev/null +++ b/website/docs/reference/logging/LogEventLevelTable.tsx @@ -0,0 +1,70 @@ +import styles from "./styles.module.scss"; + +export default function LogEventLevelTable() { + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
LevelColorDescription
tracebackground green + Detailed information about internal process status. +
+ e.g. internal process status. +
debuggreen + Diagnostic information that is helpful for troubleshooting or + testing. +
+ e.g. detailed progress (nth record processing, ), +
infoblue + Information that is helpful for users in normal usage. +
+ e.g. progress +
warnyellow + The process can continue, but a potential problem happens. +
+ e.g. exported/imported records are empty +
errorred + The process is aborting due to an error. +
+ e.g. Authentication failure, API limitation, wrong inputs +
fatalbackground red + The process is aborting with an unexpected error. +
+ e.g. NPE, OOM, unhandled error from libraries +
+ ); +} diff --git a/website/docs/reference/logging/index.mdx b/website/docs/reference/logging/index.mdx new file mode 100644 index 0000000000..57611cad65 --- /dev/null +++ b/website/docs/reference/logging/index.mdx @@ -0,0 +1,71 @@ +--- +sidebar_position: 600 +--- + +# Logging + +## Overview + +cli-kintone supports various logs that help users to check progress, debug, and report issues. + +Users can control log output by command line options. + +## Command line options + +| Option | Description | +| --------------------- | ------------------------------------------- | +| `--log-level ` | Change log config level to specified level. | +| `--verbose` | Change log config level to `debug` | + +## Log format + +``` +[(datetime)] (log level): (message) +``` + +- datetime: The datetime string in ISO8601 format. (`YYYY-MM-DDTHH:mm:ss.sssZ`) +- log level: The log event level. Please see log levels for more details. +- message: The message that describes the event. + +On the terminal with color support, the log level is printed with a color. + +If a message has line breaks, each line should be shown with a prefix. + +```shell +# When the error message has line breaks: +# "The first line\nThe second line\nThe third line" + +# The message should be printed as follows +[2023-09-14T19:58:55.938Z] ERROR: The first line +[2023-09-14T19:58:55.938Z] ERROR: The second line +[2023-09-14T19:58:55.938Z] ERROR: The third line +``` + +## Log printing destination + +We print all kinds of logs to **stderr**. + +Why: The output of command is printed to stdout, so progress/errors is better to be printed to stderr. + +## Log levels + +We have two types of log levels: **log event level** and **log config level**. + +- Log event level: How we categorize logs. + - When we send an event message to the logger, each event has a log event level. +- Log config level: How we filter logs to be printed + - When the logger prints logs, the logger will filter logs using the log config level. + +### Log event level + +import LogEventLevelTable from "./LogEventLevelTable"; + + + +### Log config level + +The default log config level is `info`. + +import LogConfigLevelTable from "./LogConfigLevelTable"; + + diff --git a/website/docs/reference/logging/styles.module.scss b/website/docs/reference/logging/styles.module.scss new file mode 100644 index 0000000000..108cf7b922 --- /dev/null +++ b/website/docs/reference/logging/styles.module.scss @@ -0,0 +1,34 @@ +.trace { + background-color: green; +} +.debug { + background-color: limegreen; +} +.info { + background-color: dodgerblue; +} +.warn { + background-color: gold; +} +.error { + background-color: orangered; +} +.fatal { + background-color: maroon; +} + +.included { + background-color: lime; +} +.excluded { + background-color: salmon; +} + +[data-theme='dark'] { + .included { + background-color: green; + } + .excluded { + background-color: maroon; + } +} diff --git a/website/docs/guide/tutorials/_category_.json b/website/docs/reference/proxy/_category_.json similarity index 52% rename from website/docs/guide/tutorials/_category_.json rename to website/docs/reference/proxy/_category_.json index 282182e560..0ef7bfa495 100644 --- a/website/docs/guide/tutorials/_category_.json +++ b/website/docs/reference/proxy/_category_.json @@ -1,6 +1,6 @@ { - "label": "Tutorials", - "position": 100000, + "label": "Proxy", + "position": 500, "link": { "type": "generated-index" } diff --git a/website/docs/reference/proxy/http-proxy.md b/website/docs/reference/proxy/http-proxy.md new file mode 100644 index 0000000000..c251e4edae --- /dev/null +++ b/website/docs/reference/proxy/http-proxy.md @@ -0,0 +1,36 @@ +# Using an HTTP proxy + +## Command-line interface + +```shell +cli-kintone record --proxy +``` + +| Variable | Description | +| --------- | --------------------------- | +| `--proxy` | The URL of the proxy server | + +## Environment variable + +| Variable | Description | +| ------------- | ------------------------------------------------------------------------------------------ | +| `HTTPS_PROXY` | The URL of the proxy server
The command-line option is prioritized over this variable. | + +## Connection details + +We use HTTP Tunneling for the request. + +- The client sends `CONNECT` request to the proxy server +- The Proxy server creates a TCP connection to the destination server +- The client sends an encrypted request to the destination server via the proxy server + +![Sequence of HTTP Tunneling](./img/http-tunneling.png) + +### refs. + +- [Proxy servers and tunneling - HTTP | MDN](https://developer.mozilla.org/en-US/docs/Web/HTTP/Proxy_servers_and_tunneling#http_tunneling) +- [Issue #24 · kintone/js-sdk-ja](https://github.com/kintone/js-sdk-ja/issues/24#issuecomment-996485078) + +## Implementation + +We use [TooTallNate/proxy-agents](https://github.com/TooTallNate/node-https-proxy-agent) for this function. diff --git a/website/docs/reference/proxy/img/http-tunneling.png b/website/docs/reference/proxy/img/http-tunneling.png new file mode 100644 index 0000000000000000000000000000000000000000..185d9667f2e1908539dae3ccdd9a9d1db2d6ccb0 GIT binary patch literal 22196 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 literal 0 HcmV?d00001 diff --git a/website/docs/reference/proxy/proxy-authn.md b/website/docs/reference/proxy/proxy-authn.md new file mode 100644 index 0000000000..55fe67c74a --- /dev/null +++ b/website/docs/reference/proxy/proxy-authn.md @@ -0,0 +1,48 @@ +# Proxy authentication + +## Overview + +cli-kintone v1 supports Proxy Authentication with only Proxy Basic Authn for now. + +Users can specify the Proxy Authn by specifying `--proxy` CLI option or using environment variables (ENV Vars). + +## Usage + +Below are two ways to specify Proxy Authn. + +### Using `--proxy` option + +Users can specify the Proxy Authn using `--proxy` option in the following format: + +```shell +--proxy http://user:pass@domain:port +``` + +For example: + +```shell +./cli-kintone --proxy http://myuser:mypass@mydomain.com:3128 +``` + +### Using environment variables + +Users can specify the Proxy Authn using the ENV Vars: + +- HTTPS_PROXY +- https_proxy + +These variables should contain the Proxy URL in the following format: + +```shell +http://user:pass@domain:port +``` + +For example on Linux/macOS: + +```shell +export https_proxy=http://user:pass@domain:port +``` + +:::note +The `--proxy` option is prioritized over ENV vars +::: diff --git a/website/docs/reference/record-delete/_category_.json b/website/docs/reference/record-delete/_category_.json new file mode 100644 index 0000000000..78e7e03802 --- /dev/null +++ b/website/docs/reference/record-delete/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "Deleting records", + "position": 300, + "link": { + "type": "generated-index" + } +} diff --git a/website/docs/reference/record-delete/delete-all-records.md b/website/docs/reference/record-delete/delete-all-records.md new file mode 100644 index 0000000000..9f5bb6eb5b --- /dev/null +++ b/website/docs/reference/record-delete/delete-all-records.md @@ -0,0 +1,142 @@ +# Deleting all records + +## Details + +The `delete` command allows you to delete all permitted records of a specified kintone app. + +Command-line interface: + +```shell +cli-kintone record delete --base-url https://${yourDomain} --api-token ${apiToken} --app ${kintoneAppId} +``` + +Currently, this command only supports API Token. + +:::note[Why?] +This is because making password authentication available would significantly complicate the specification and implementation or degrade performance. + +To check whether a user has record deletion permissions, we need to call the [Evaluate Record Permissions](https://kintone.dev/en/docs/kintone/rest-api/apps/evaluate-record-permissions/) API. +This API can only evaluate 100 record per request. + +On the other hand, if we perform record deletion without evaluation, we need to consider a complex retry process. +::: + +If the user specifies username or password via the command option or ENV variable without api-token, an error will be thrown. + +```shell +ERROR: The delete command only supports API token authentication +``` + +
+detailed cases + +username: set by option or ENV or none +password: set by option or ENV or none +api-token: set by option or ENV +=> Do not throw the error message + +username: set by option or ENV +password: set by option or ENV +api-token: none +=> throw the error message + +username: set by option or ENV +password: none +api-token: none +=> throw the error message + +username: none +password: set by option or ENV +api-token: none +=> throw the error message + +
+ +Before the command is executed, the user must confirm the action by answering the prompt yes/no. + +```shell +cli-kintone record delete --base-url https://${yourDomain} --api-token ${apiToken} --app ${kintoneAppId} +> Are you sure want to delete records? (y/N) +``` + +Notes: + +- The confirmation message is in English only for now. +- If not specifying the answer, the default answer is No. + +Or, the user can specify the option `--yes` or `-y` to execute the command without prompt. + +```shell +cli-kintone record delete --yes --base-url https://${yourDomain} --api-token ${apiToken} --app ${kintoneAppId} +``` + +Once the command is executed successfully, the below message will be shown. + +```shell +INFO: Starting to delete all records... +INFO: 2 records are deleted successfully +``` + +If there is no record in the specified app, a warning message will be shown. + +```shell +INFO: Starting to delete all records... +WARN: The specified app does not have any records. +``` + +If the API Token does not have the delete permission, an error will be shown. Ref to [Errors](#errors) section. + +## Implementation + +The delete all records command is now using some APIs of [rest-api-cilent](https://github.com/kintone/js-sdk/tree/master/packages/rest-api-client) + +- [getAllRecordsWithId](https://github.com/kintone/js-sdk/blob/master/packages/rest-api-client/docs/record.md#getallrecordswithid): this method is used to get the ID of all records +- [deleteAllRecords](https://github.com/kintone/js-sdk/blob/master/packages/rest-api-client/docs/record.md#deleteallrecords): this method is used to delete all records + +The API [deleteAllRecords](https://github.com/kintone/js-sdk/blob/master/packages/rest-api-client/docs/record.md#deleteallrecords) split the records into chunks of 2000 records and process each chunk sequentially. Therefore, the rollback can be performed on each chunk of 2000 records. + +## Errors + +### An error occurs while deleting all records + +When an error occurs while deleting all records, the process will stop at the current chunk. For example: + +Assume that there are 10.000 records on the app and an error will happen at the index 2022th. + +The following behavior will occur: + +==> + +- Records 1st → 2000th are deleted successfully +- Records 2001th → 10.000th are NOT deleted +- An error message is thrown +- Process is stopped + +#### The format of the output when an error occurs + +```shell +ERROR: Failed to delete all records. +ERROR: number_of_success/number_of_total records are deleted successfully. +ERROR: An error occurred while processing records. +ERROR: [error_status] [error_code] error_message (error_id) +``` + +For example: + +```shell +ERROR: Failed to delete all records. +ERROR: 2000/6000 records are deleted. +ERROR:An error occurred while processing records. +ERROR: [404] [GAIA_RE01] The specified record (ID: 1054447) is not found. (v7jzg2VeSHu8biwO9jZ6) +``` + +### Using API Token which does not have the delete permission + +If the user uses API Tokens and that token does not have the delete permission, the below error will be shown. + +```shell +ERROR: Failed to delete all records. +ERROR: No records are deleted. +ERROR: An error occurred while processing records. +ERROR: [403] [GAIA_NO01] このAPIトークンでは、指定したAPIを実行できません。 (IY3EH6WWAPEX6KcyE5Qd) +``` diff --git a/website/docs/reference/record-delete/delete-specified-records.md b/website/docs/reference/record-delete/delete-specified-records.md new file mode 100644 index 0000000000..9d3220b194 --- /dev/null +++ b/website/docs/reference/record-delete/delete-specified-records.md @@ -0,0 +1,120 @@ +# Deleting specified records + +## Details + +By specifying the option `--file-path`, the `delete` command allows users to delete records from a CSV file. + +Command-line interface: + +```shell +cli-kintone record delete --api-token --file-path +``` + +Example: + +```shell +cli-kintone record delete --api-token --file-path records_need_to_be_deleted.csv +``` + +Currently, this command only supports API Token. + +:::note[Why?] +This is because making password authentication available would significantly complicate the specification and implementation or degrade performance. + +To check whether a user has record deletion permissions, we need to call the [Evaluate Record Permissions](https://kintone.dev/en/docs/kintone/rest-api/apps/evaluate-record-permissions/) API. +This API can only evaluate 100 record per request. + +On the other hand, if we perform record deletion without evaluation, we need to consider a complex retry process. +::: + +The CSV file must contain the record number column. +And, the header row of the record number column must be the record number field code which is defined in the kintone site. For example: +The record number field code in kintone: `Record_number` +The content of the CSV file: + +```csv +*,"Record_number","Text","Table","Table_Text","Table_Number" +*,"1","sample1","","foo","4" +,"1","sample1","","bar","5" +*,"2","sample2","","hoge","6" +``` + +The value of the record number column can be either the record number or the app code. For example: + +```csv +*,"Record_number","Text","Table","Table_Text","Table_Number" +*,"myapp-1","sample1","","foo","4" +,"myapp-1","sample1","","bar","5" +*,"myapp-2","sample2","","hoge","6" +``` + +If using the app code, every row should contain the same app code (not mix) and the app code is equal to the kintone app's one. + +The user also can specify the encoding of the CSV file. Supported character encodings: `utf8`, `sjis`. + +Before the command is executed, the user must confirm the action by answering the prompt yes/no. + +```shell +cli-kintone record delete --app ${kintoneAppId} --file-path ${pathToCsvFile} +> Are you sure want to delete records? (y/N) +``` + +Notes: + +- The confirmation message is in English only for now. +- If not specifying the answer, the default answer is No. + +Or, the user can specify the option `--yes` or `-y` to execute the command without a prompt. + +```shell +cli-kintone record delete --yes --app ${kintoneAppId} --file-path ${pathToCsvFile} +``` + +Once the command is executed successfully, the below message will be shown. + +```shell +INFO: Starting to delete records... +INFO: records are deleted successfully +``` + +## Valid cases + +### valid record number value + +#### Example input + +```csv +Record_number +1 +2 +3 +``` + +or + +```csv +Record_number +appcode-1 +appcode-2 +appcode-3 +``` + +#### Expected result + +All records [1, 2, 3] should be deleted. + +what is valid value: + +- All record numbers are numeric or appcode, not mixed. +- The app code is equals to the kintone app's one. + +#### Expected output + +```shell +INFO: Starting to delete records... +INFO: 3 records are deleted successfully +``` + +## Errors and Warnings + +(TBD) diff --git a/website/docs/reference/record-delete/encoding.md b/website/docs/reference/record-delete/encoding.md new file mode 100644 index 0000000000..e0930e0093 --- /dev/null +++ b/website/docs/reference/record-delete/encoding.md @@ -0,0 +1,28 @@ +# Character encoding + +## Command-line interface + +```shell +// specify a character encoding +cli-kintone record delete --app 8 --file-path records.csv --encoding sjis +``` + +| Parameter name | Short name | Description | +| -------------- | ---------- | ------------------------------------- | +| `--encoding` | | Character-set encoding for input file | + +## Specify a character encoding + +The `--encoding` option allows to specify a character encoding of the specified CSV file. The following encodings are available: + +| Key | Encode | +| ------ | --------- | +| `utf8` | UTF-8 | +| `sjis` | Shift-JIS | + +The default is `utf8` + +## Errors + +- Specified unsupported encoding +- [Mismatch encoding](../errors/mismatch-encoding) diff --git a/website/docs/reference/record-export/_category_.json b/website/docs/reference/record-export/_category_.json new file mode 100644 index 0000000000..1ea76c3809 --- /dev/null +++ b/website/docs/reference/record-export/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "Exporting records", + "position": 100, + "link": { + "type": "generated-index" + } +} diff --git a/website/docs/reference/record-export/delimiters.md b/website/docs/reference/record-export/delimiters.md new file mode 100644 index 0000000000..877b23f4e0 --- /dev/null +++ b/website/docs/reference/record-export/delimiters.md @@ -0,0 +1,9 @@ +# Delimiters + +When exporting records as CSV, line breaks and delimiters are as follows. + +| Type | Value | +| --------------------------- | ----------- | +| Record delimiter | LF (`\n`) | +| Line break inside a content | LF (`\n`) | +| Field delimiter | Comma (`,`) | diff --git a/website/docs/reference/record-export/encoding.md b/website/docs/reference/record-export/encoding.md new file mode 100644 index 0000000000..8cca9e0c06 --- /dev/null +++ b/website/docs/reference/record-export/encoding.md @@ -0,0 +1,27 @@ +# Character encoding + +## Command-line interface + +```shell +// Specify output character encoding +cli-kintone record export --app 8 --encoding sjis +``` + +| Parameter name | Short name | Description | +| -------------- | ---------- | ------------------ | +| --encoding | | Character encoding | + +## Character encoding + +The `--encoding` option enables to select a character encoding of the output result. The following encodings are supports: + +| Key | Encode | +| ------ | --------- | +| `utf8` | UTF-8 | +| `sjis` | Shift-JIS | + +The default is `utf8` + +## Errors + +- Specified unsupported encoding diff --git a/website/docs/reference/record-export/errors-warnings.md b/website/docs/reference/record-export/errors-warnings.md new file mode 100644 index 0000000000..86d441c51e --- /dev/null +++ b/website/docs/reference/record-export/errors-warnings.md @@ -0,0 +1,14 @@ +# Errors and Warnings + +## Errors + +(TBD) + +## Warnings + +A warning message will be shown if there is no record in the specified app. + +```shell +cli-kintone record export --base-url https://[your-domain] --username [your-user-name] --password [your-password] --app [APP_ID] +[2023-09-06T08:54:24.140Z] WARN: The specified app does not have any records. +``` diff --git a/website/docs/reference/record-export/fields-order.md b/website/docs/reference/record-export/fields-order.md new file mode 100644 index 0000000000..f9d4cec7b1 --- /dev/null +++ b/website/docs/reference/record-export/fields-order.md @@ -0,0 +1,72 @@ +# Ordering fields + +## Without specifying target fields + +When not specifying the target fields, the column order will be followed by [kintone form layout](https://kintone.dev/en/docs/kintone/rest-api/apps/get-form-layout/). + +For example, the app has the following form layout: + +``` +[Record_number] +[Created_datetime] [Updated_datetime] +[Created_by] [Updated_by] +[Text] [Number] +[Text_area] +``` + +==> The column has the following order + +```shell +cli-kintone record export --app 27 +"Record_number","Created_datetime","Updated_datetime","Created_by","Updated_by","Text","Number","Text_area" +"1","2022-08-12T07:15:00Z","2022-08-12T07:15:00Z","user01","user01","hello","1","content" +"2","2022-08-12T07:15:00Z","2022-08-12T07:15:00Z","user01","user01","goodbye","2","body" +``` + +## Specifies fields + +When specifying the target fields, the column order will be the same as the order of user specifies. + +For example, the app has the following form layout: + +``` +[Record_number] +[Created_datetime] [Updated_datetime] +[Created_by] [Updated_by] +[Text] [Number] +[Text_area] +``` + +==> The column has the following order + +```shell +cli-kintone record export --app 27 --fields Record_number,Number,Text_area,Text +"Record_number","Number","Text_area","Text" +"1","1","content","hello" +"2","2","body","goodbye" +``` + +## Specifies a table field + +When specifying the target fields, and containing the “Table” field, the order of the table’s fields will be followed by [kintone form layout](https://kintone.dev/en/docs/kintone/rest-api/apps/get-form-layout/). + +For example, the app has the following form layout: + +``` +[Record_number] +[Name] [Class] +[Learning_score] *Learning_score is a Table file* +[Subject] [Score] +``` + +==> The column has the following order + +```shell +cli-kintone record export --app 29 --fields Record_number,Name,Class,Learning_score + +"*","Record_number","Name","Class","Learning_score","Subject","Score" +"*","1","user01","SP01","53783","Math","A" +,"1","user01","SP01","53783","Chemistry","B" +"*","2","user02","SP01","53783","Math","B" +,"2","user02","SP01","53783","Chemistry","A" +``` diff --git a/website/docs/reference/record-export/fields/attachment.md b/website/docs/reference/record-export/fields/attachment.md new file mode 100644 index 0000000000..073fdd1d80 --- /dev/null +++ b/website/docs/reference/record-export/fields/attachment.md @@ -0,0 +1,94 @@ +# Attachment + +## Command-line interface + +```shell +cli-kintone record export --app 8 --attachment-dir ./attachments +``` + +| Parameter name | Short name | Description | +| ------------------- | ---------- | ------------------------------------------------------ | +| `--attachments-dir` | | The output directory where the download files saved on | + +## Downloading files + +An example of the downloaded file and structure + +``` +attachmentsDir +├── Portfolio-1 +│   └── Profile.pdf +├── Portfolio-15 +│   └── Portfolio.pdf +├── UserPhoto-1 +│   ├── Photo1.png +│   └── Photo2.png +└── UserPhoto-15 +└── Photo1.png +``` + +## Path naming + +The attachment field out of a table + +``` +/-/ +``` + +The attachment field on a table + +``` +/--/ +``` + +The flow of the conversion process for file names + +1. Replace prohibited characters (Windows only) +2. Rename the duplicated file name + +## Replace prohibited characters (Windows only) + +If running on a Windows environment and the filename contains Windows-prohibited characters, replace them with `_`. + +Windows prohibited characters are `< > : " / \ | ? *`. + +Example: + +``` +text<>.txt → text__.txt +``` + +## Rename the duplicated file name + +When the attachment fields has same file names + +``` + (). +``` + +Example: + +``` +Portfolio.pdf +Portfolio (1).pdf +Portfolio (2).pdf +Portfolio (3).pdf +``` + +NOTE: The destination directory will be created automatically if it doesn’t exist. + +## File names on CSV file + +An example of a CSV file that contains attachment files + +```csv +"Record_number","Created_by","Portfolio","UserPhoto" +"1","tasshi","Portfolio-1/Profile.pdf","UserPhoto-1/Photo1.png +UserPhoto-1/Photo2.png" +"15","tasshi","Portfolio-15/Portfolio.pdf","UserPhoto-15/Photo1.png" +``` + +- The column has a name wich an attachment field code. +- The column has a value indicating the downloaded file path. +- The file path is a relative path of the --attachment-dir +- Multiple file names are separated by a new-line character (LF). diff --git a/website/docs/reference/record-export/fields/index.md b/website/docs/reference/record-export/fields/index.md new file mode 100644 index 0000000000..ea73b38511 --- /dev/null +++ b/website/docs/reference/record-export/fields/index.md @@ -0,0 +1,47 @@ +# Field specifications + +Basically, the output is the same as the `value` property of the [API response](https://kintone.dev/en/docs/kintone/overview/field-types/). + +## Record information + +| Field type | Output | +| ---------------- | -------------------- | +| Record number | Same as API response | +| Record ID | Not supported | +| Revision | Not supported | +| Created by | Same as API response | +| Created datetime | Same as API response | +| Updated by | Same as API response | +| Updated datetime | Same as API response | + +## General fields + +| Field type | Output | +| -------------------- | --------------------------------------------------------------------------------------- | +| Text | Same as API response | +| Text area | Same as API response | +| Rich text | Same as API response | +| Number | Same as API response | +| Calculated | Same as API response | +| Check box | Same as API response | +| Radio button | Same as API response | +| Multi-choice | Same as API response | +| Drop-down | Same as API response | +| User selection | [User selection, Department selection, and Group selection](./user-group-org-selection) | +| Department selection | [User selection, Department selection, and Group selection](./user-group-org-selection) | +| Group selection | [User selection, Department selection, and Group selection](./user-group-org-selection) | +| Date | YYYY-MM-DD
e.g. 2022-04-01 | +| Time | HH:MM
e.g. 09:30 | +| Date and time | YYYY-MM-DDTHH:MM:SSZ
e.g. 2022-04-11T07:00Z | +| Link | Same as API response | +| Attachment | [Attachment](./attachment) | +| Lookup | Not supported | +| Table | [Table](./table) | +| Related records | Not supported | +| Category | Not supported | +| Status | Not supported | +| Assignee | Not supported | +| Label | Not supported | +| Blank space | Not supported | +| Border | Not supported | +| Group | Not supported | diff --git a/website/docs/reference/record-export/fields/table.md b/website/docs/reference/record-export/fields/table.md new file mode 100644 index 0000000000..bb45caaa84 --- /dev/null +++ b/website/docs/reference/record-export/fields/table.md @@ -0,0 +1,40 @@ +# Table + +## CSV file format + +### CSV file example + +```csv +"*","Text","Table","TextInTable" +"*","first","","alice" +,"first","","bob" +``` + +| \* | Text | Table | TextInTable | +| --- | ----- | ---------- | ----------- | +| \* | first | `` | alice | +| | first | `` | bob | + +### With multiple tables + +```csv +"*","Text","Table","TextInTable","Table_1","NumberInTable" +"*","first","","alice",, +,"first","","bob",, +,"first",,,"","10" +,"first",,,"","20" +``` + +| \* | Text | Table | TextInTable | Table_1 | NumberInTable | +| --- | ----- | ---------- | ----------- | ---------- | ------------- | +| \* | first | `` | alice | | | +| | first | `` | bob | | | +| | first | | | `` | 10 | +| | first | | | `` | 20 | + +### Specification + +- The row where a record begins has a PRIMARY*MARK(`*`) on the “\*“ field. +- The data of fields outside the Table are repeated in all rows. +- The data of fields inside the Table are specified with one or multiple rows + - Each row contains data for one table only diff --git a/website/docs/reference/record-export/fields/user-group-org-selection.md b/website/docs/reference/record-export/fields/user-group-org-selection.md new file mode 100644 index 0000000000..77f279ad53 --- /dev/null +++ b/website/docs/reference/record-export/fields/user-group-org-selection.md @@ -0,0 +1,33 @@ +# User selection, Department selection, and Group selection + +## CSV file format + +### CSV file example + +```csv +"Record_number","User_selection","Group_selection","Department_selection" +"2","user01 +user02 +user03","Dev team1 +Dev team2","Develepment dept. +Sales dept." +"1","user02","Dev team1","Sales dept." +``` + +### User selection field + +- The column name is equal to the code of user selection field. +- The column contains login names of selected user(s). +- Multi users represented by separating a new-line character(LF). + +### Group selection field + +- The column name is equal to the code of group selection field. +- The column contains group code(s). +- Multi groups are represented by separating a new-line character(LF). + +### Department selection field + +- The column name is equal to the code of department selection field. +- The column contains department code(s). +- Multi departments are represented by separating a new-line character(LF). diff --git a/website/docs/reference/record-export/target-fields.md b/website/docs/reference/record-export/target-fields.md new file mode 100644 index 0000000000..9fd63c0ec5 --- /dev/null +++ b/website/docs/reference/record-export/target-fields.md @@ -0,0 +1,78 @@ +# Specify target fields + +## Command-line interface + +```shell +cli-kintone record export --app 8 --fields 'Number,Text,' +``` + +| Parameter name | Short name | Description | +| -------------- | ---------- | ------------------------------------------ | +| --fields | | Comma-separated field codes to be exported | + +## Target fields variation + +### Without specifying target fields + +All fields are exported + +```shell +cli-kintone record export --app 27 +"*","Record_number","Number","Table","Number_0","Number_1","Table_0","Number_2","Number_3","Created_by","Created_datetime","Updated_by","Updated_datetime" +"*","1","1","53783","2","3",,,,"user01","2022-08-12T07:15:00Z","user01","2022-08-12T07:15:00Z" +,"1","1","53785","2","3",,,,"user01","2022-08-12T07:15:00Z","user01","2022-08-12T07:15:00Z" +","1","1",,,,"53784","4","5","user01","2022-08-12T07:15:00Z","user01","2022-08-12T07:15:00Z +","1","1",,,,"53786","4","5","user01","2022-08-12T07:15:00Z","user01","2022-08-12T07:15:00Z +"*","2","1","53788","2","3",,,,"user01","2022-08-12T07:15:00Z","user01","2022-08-12T07:15:00Z" +,"2","1","53789","2","3",,,,"user01","2022-08-12T07:15:00Z","user01","2022-08-12T07:15:00Z" +,"2","1",,,,"53790","4","5","user01","2022-08-12T07:15:00Z","user01","2022-08-12T07:15:00Z +,"2","1",,,,"53791","4","5","user01","2022-08-12T07:15:00Z","user01","2022-08-12T07:15:00Z +``` + +### Specifies fields + +The specified fields are exported. The PRIMARY_MARK (\*) does not appear when the specified fields do not contain a table, even if the app has the table. + +```shell +cli-kintone record export --app 27 --fields Record_number,Number +"Record_number","Number" +"1","1" +"2","1" +``` + +### Specifies a table field + +The specified fields with every rows on the table are exported. + +```shell +cli-kintone record export --app 27 --fields Table + +"*","Table","Number_0","Number_1" +"*","53783","2","3" +,"53785","2","3" +"*","53788","2","3" +,"53789","2","3" +``` + +### Errors + +#### Specified a fields on the table + +```shell +cli-kintone record export --app 27 --fields Number_0 +Error: The specified field "Number_0" in a table cannot be specified to fields option +``` + +#### Specified PRIMARY_MARK(`*`) + +```shell +cli-kintone record export --app 27 --fields '*' +Error: The specified field "*" does not exist on the app +``` + +#### Specified a fields which does not exist + +```shell +cli-kintone record export --app 27 --fields Rich_textan +Error: The specified field "Rich_textan" does not exist on the app +``` diff --git a/website/docs/reference/record-import/_category_.json b/website/docs/reference/record-import/_category_.json new file mode 100644 index 0000000000..89055026bd --- /dev/null +++ b/website/docs/reference/record-import/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "Importing records", + "position": 200, + "link": { + "type": "generated-index" + } +} diff --git a/website/docs/reference/record-import/delimiters.md b/website/docs/reference/record-import/delimiters.md new file mode 100644 index 0000000000..f108010aa9 --- /dev/null +++ b/website/docs/reference/record-import/delimiters.md @@ -0,0 +1,17 @@ +# Delimiters + +When importing records from CSV, line breaks and delimiters are as follows. + +| Type | Value | +| --------------------------- | ------------------- | +| Record delimiter | Auto discovered \*1 | +| Line break inside a content | LF (`\n`) | +| Field delimiter | Comma (`,`) | + +\*1: Select the appropriate one from CRLF, LF, and CR automatically. + +An error will occur if multiple types of line breaks are used. + +We use the function of the csv-parse library for auto discovering. + +https://csv.js.org/parse/options/record_delimiter/ diff --git a/website/docs/reference/record-import/encoding.md b/website/docs/reference/record-import/encoding.md new file mode 100644 index 0000000000..9ed6daedfd --- /dev/null +++ b/website/docs/reference/record-import/encoding.md @@ -0,0 +1,28 @@ +# Character encoding + +## Command-line interface + +```shell +// specify a character encoding +cli-kintone record import --app 8 --file-path records.csv --encoding sjis +``` + +| Parameter name | Short name | Description | +| -------------- | ---------- | ------------------------------------- | +| `--encoding` | | Character-set encoding for input file | + +## Specify a character encoding + +The `--encoding` option allows to specify a character encoding on importing CSV files. The following encodings are available: + +| Key | Encode | +| ------ | --------- | +| `utf8` | UTF-8 | +| `sjis` | Shift-JIS | + +The default is `utf8` + +## Errors + +- Specified unsupported encoding +- [Mismatch encoding](../errors/mismatch-encoding) diff --git a/website/docs/reference/record-import/errors-warnings.md b/website/docs/reference/record-import/errors-warnings.md new file mode 100644 index 0000000000..cdc0c1fa15 --- /dev/null +++ b/website/docs/reference/record-import/errors-warnings.md @@ -0,0 +1,65 @@ +# Errors and Warnings + +## Errors + +When an error occurs during record import, the below error will be thrown. + +Error format: + +``` +An error occurred on at row . + Cause: +``` + +Example: + +``` +An error occurred on phone_number at row 2. + Cause: Only numbers are allowed. +``` + +Below are the study cases of the error message + +### One error occurred in a record + +``` +ERROR: [400] [CB_VA01] 入力内容が正しくありません。 (4Ax9owcXS1e8aYjRcRn8) +ERROR: An error occurred on surname at row 2. +ERROR: Cause: 必須です。 +``` + +### Two different type of errors occurred in a record + +``` +ERROR: [400] [CB_VA01] 入力内容が正しくありません。 (Vq2An4rki9tKh84yppfD) +ERROR: An error occurred on surname at row 2. +ERROR: Cause: 必須です。 +ERROR: An error occurred on Number at row 3. +ERROR: Cause: 数字でなければなりません。 +``` + +### Two same-type errors occurred in a record + +``` +ERROR: [400] [CB_VA01] 入力内容が正しくありません。 (IWeQPfaRHsEJdAS4TOZq) +ERROR: An error occurred on surname at row 2. +ERROR: Cause: 必須です。 +ERROR: An error occurred on lastname at row 2. +ERROR: Cause: 必須です。 +``` + +### Two different type and two same-type of errors occurred in a record + +``` +ERROR: [400] [CB_VA01] 入力内容が正しくありません。 (rgm6XXy1jItFPc3ndMep) +ERROR: An error occurred on surname at row 2. +ERROR: Cause: 必須です。 +ERROR: An error occurred on lastname at row 2. +ERROR: Cause: 必須です。 +ERROR: An error occurred on Number at row 3. +ERROR: Cause: 数字でなければなりません。 +``` + +## Warnings + +(TBD) diff --git a/website/docs/reference/record-import/fields/attachment.md b/website/docs/reference/record-import/fields/attachment.md new file mode 100644 index 0000000000..bd0a027815 --- /dev/null +++ b/website/docs/reference/record-import/fields/attachment.md @@ -0,0 +1,36 @@ +# Attachment + +## Command-line interface + +```shell +cli-kintone record import --app 8 --file-path records.csv --attachment-dir ./attachments +``` + +| Parameter name | Short name | Description | +| ------------------- | ---------- | ------------------------------------------------------ | +| `--attachments-dir` | | A directory name containing attachments to be uploaded | + +## Behavior + +An example CSV file contains attachments + +```csv +"Record_number","Created_by","Portfolio","UserPhoto" +"1","tasshi","Portfolio-1/Resume.pdf","UserPhoto-1/Photo1.png +UserPhoto-1/Photo2.png" +"15","tasshi","Portfolio-15/Profile.pdf","UserPhoto-15/Photo1.png" +``` + +- A relative path of the `--attachments-dir` +- Multiple values are separated by a new-line character (LF) +- The file specified by the value is uploaded +- The attached file has a name that equals the local one. + +## Upload procedure + +- Uploading files are processed on each record chunks +- Uploading files are performed before updating records +- An error occurs when the imported fields have an attachment field, but the `--attachments-dir` is not specified. +- Importing records aborts when the uploading files fail. Examples of uploading failure: + - The file does not exist + - The file size is over 1 GB ([Field Entry Limits](https://get.kintone.help/k/en/user/app_settings/form/form_parts/field_restriction.html)) diff --git a/website/docs/reference/record-import/fields/index.md b/website/docs/reference/record-import/fields/index.md new file mode 100644 index 0000000000..1a249a654a --- /dev/null +++ b/website/docs/reference/record-import/fields/index.md @@ -0,0 +1,61 @@ +# Field specifications + +Basically, the input should be the same as the `value` property of the [API request](https://kintone.dev/en/docs/kintone/overview/field-types/). + +## Record information + +| Field type | Input | +| ---------------- | ------------------- | +| Record number | Same as API request | +| Record ID | Not supported | +| Revision | Not supported | +| Created by | Same as API request | +| Created datetime | Same as API request | +| Updated by | Same as API request | +| Updated datetime | Same as API request | + +## General fields + +| Field type | Input | +| -------------------- | --------------------------------------------------------------------------------------- | +| Text | Same as API request | +| Text area | Same as API request | +| Rich text | Same as API request | +| Number | Same as API request | +| Calculated | Same as API request | +| Check box | Same as API request | +| Radio button | Same as API request | +| Multi-choice | Same as API request | +| Drop-down | Same as API request | +| User selection | [User selection, Department selection, and Group selection](./user-group-org-selection) | +| Department selection | [User selection, Department selection, and Group selection](./user-group-org-selection) | +| Group selection | [User selection, Department selection, and Group selection](./user-group-org-selection) | +| Date | `YYYY-MM-DD`
e.g. `2022-04-01` | +| Time | `HH:MM`
e.g. `09:30` | +| Date and time | - `YYYY-MM-DDTHH:MM:SS±HH:MM`
- `YYYY-MM-DDTHH:MM:SSZ`
e.g. `2022-04-11T07:00Z` | +| Link | Same as API request | +| Attachment | [Attachment](./attachment) | +| Lookup | Not supported | +| Table | [Table](./table) | +| Related records | Not supported | +| Category | Not supported | +| Status | Not supported | +| Assignee | Not supported | +| Label | Not supported | +| Blank space | Not supported | +| Border | Not supported | +| Group | Not supported | + +## How cli-kintone chooses the field to read from the CSV file + +When running the import command + +- Without the `--fields` option: + - All fields in the CSV file that exist on the Kintone app will be imported. +- With the `--fields` option: + - See the [Specify target fields](../target-fields) page. + +## How cli-kintone treats missing field/empty string in CSV + +- If the field is missing on the header of the CSV file => cli-kintone will ignore that field. +- If the field value in the row is an empty string => cli-kintone will add/update that field with an empty string. diff --git a/website/docs/reference/record-import/fields/table.md b/website/docs/reference/record-import/fields/table.md new file mode 100644 index 0000000000..3eb0fded42 --- /dev/null +++ b/website/docs/reference/record-import/fields/table.md @@ -0,0 +1,97 @@ +# Table + +## CSV file format + +### CSV file example + +```csv +"*","Text","Table","TextInTable" +"*","first","","alice" +,"first","","bob" +``` + +| \* | Text | Table | TextInTable | +| --- | ----- | ---------- | ----------- | +| \* | first | `` | alice | +| | first | `` | bob | + +### With multiple tables + +```csv +"*","Text","Table","TextInTable","Table_1","NumberInTable" +"*","first","","alice",, +,"first","","bob",, +,"first",,,"","10" +,"first",,,"","20" +``` + +| \* | Text | Table | TextInTable | Table_1 | NumberInTable | +| --- | ----- | ---------- | ----------- | ---------- | ------------- | +| \* | first | `` | alice | | | +| | first | `` | bob | | | +| | first | | | `` | 10 | +| | first | | | `` | 20 | + +### Specification + +The row where a record begins should have a PRIMARY_MARK(`*`) on the “\*“ field. + +The data of fields outside the Table should be specified in the row with PRIMARY_MARK(`*`) + +The data of fields outside the Table in other rows will be ignored. +For example: + +```csv +"*","Text","Number","Table","TextInTable" +"*","first","10","","alice" +,"second","20","","bob" +``` + +==> The record will be imported as follows: + +- Text: `first` +- Number: `10` +- TextInTable: `[ alice , bob ]` + +#### Rows in the Table + +The data of fields inside the Table should be specified with one or multiple rows. + +- If the row has a `` and without fields in the Table, an empty row will be imported. +- If the row has an empty `` + - If all fields in the table are empty, the row is ignored. + - If fields in the table have valid values, the row is added. + +For **upserting**, if the record has already existed, the imported rows are dependent on the `` + +- If `` on the CSV file exists on the record, update the row. +- If `` on the CSV file does not exist on the record, insert a new row. +- The rows on the record that are not specified in the CSV file will be deleted. + +For example, if the Table has five rows on kintone record, and the CSV has only three existing rows. + +→ After upserting, the Table remains only three rows. Two other rows will be deleted. + +#### How cli-kintone treats missing field/empty string in row + +When running the import command without the `--fields` option: + +- If the field inside the Table is missing on the CSV header => cli-kintone will ignore that field. +- If the field inside the Table value in the row is an empty string => cli-kintone will add/update that field with an empty string. + +With the [--fields](../target-fields) option and the specified field is a Table field + +- If the `` in the row is an empty string => cli-kintone will throw an error. +- If the field inside the Table is missing on the CSV header => cli-kintone will throw an error. +- If the field inside the Table value in the row is an empty string => cli-kintone will add/update that field with an empty string. + +For the field outside the Table, refer to [Fields](./). + +#### Errors + +| Cause | Message | +| ----------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------- | +| If `` on the CSV file is duplicated | `[520] [GAIA_SI01] Raw ID (code: Table) in a table is duplicated.` | +| If `` on the CSV file is a string, not a number | `[400] [CB_IJ01] Invalid JSON string.` | +| When running the import command with the `--fields` Table option and the field inside the table is missing on the CSV header. | `Error: The specified field "<>" does not exist on the CSV` | +| When running the import command with the `--fields` Table option and the `` in the row is an empty string | `Error: The specified field "Table" does not exist on the CSV` | diff --git a/website/docs/reference/record-import/fields/user-group-org-selection.md b/website/docs/reference/record-import/fields/user-group-org-selection.md new file mode 100644 index 0000000000..407ba87ca9 --- /dev/null +++ b/website/docs/reference/record-import/fields/user-group-org-selection.md @@ -0,0 +1,33 @@ +# User selection, Department selection, and Group selection + +## CSV file format + +### CSV file example + +```csv +"Record_number","User_selection","Group_selection","Department_selection" +"2","user01 +user02 +user03","Dev team1 +Dev team2","Develepment dept. +Sales dept." +"1","user02","Dev team1","Sales dept." +``` + +### User selection field + +- The column name should have a name which equals to the field code of the user selection field. +- The column should contains user's login name(s). +- Multi user names should be separated by a new-line character (LF) + +### Group selection field + +- The column name should have a name which equals to the field code of the group selection field. +- The column should group code(s). +- Multi groups should be separated by a new-line character (LF) + +### Department selection field + +- The column name should have a name which equals to the field code of the department selection field. +- The column should department code(s). +- Multi departments should be separated by a new-line character (LF) diff --git a/website/docs/reference/record-import/target-fields.md b/website/docs/reference/record-import/target-fields.md new file mode 100644 index 0000000000..3e45d89fb3 --- /dev/null +++ b/website/docs/reference/record-import/target-fields.md @@ -0,0 +1,108 @@ +# Specify target fields + +## Command-line interface + +```shell +cli-kintone record import --app 8 --file-path records.csv --fields 'Number,Text' +``` + +| Parameter name | Short name | Description | +| -------------- | ---------- | ------------------------------------------ | +| `--fields` | | Comma-separated field codes to be imported | + +:::info +When specifying `--fields` option, It will change the field's behavior described at: [Fields](./fields). + +Please check the below section for more details. +::: + +## Target fields variation + +### Specify target fields + +Only specified fields are imported + +```shell +cli-kintone record import --app 27 --file-path records.csv --fields "Record_number,Text" +``` + +### Specify a table field + +All fields on the table are imported + +```shell +cli-kintone record import --app 27 --file-path records.csv --fields Table +``` + +### The target fields do not include the update key + +The update key is appended to target fields automatically + +```shell +cli-kintone record import --app 27 --file-path records.csv \ + --update-key UniqueText \ + --fields Number +# The UniqueText field is appended to the target fields, and import is finished successfully +``` + +### --field option, kintone filed code, and CSV columns + +| --field parameter | Fields codes on the kintone app | Column names on the CSV | The expectation | +| ----------------- | ------------------------------- | ----------------------- | --------------------------------------------------------------------------------------------------- | +| A, B | A, B | A, B | Import A and B | +| A, B | A | A | An error occurs, because the kintone app have a field A and the CSV file does not have a column B | +| A, B | A, B | A | An error occues, because the CSV files does not have a column B | +| A, B | A | A, B | An error occues, because the kintone app does not have the field B | +| A | A, B | A | Import A | +| A | A | A, B | Import A | +| A | B | B | An error occurs, because the kintone app have the field B and the CSV file does not have a column A | +| not specified | A, B | A, B | Import A and B | +| not specified | A | A, B | Import A | + +### Errors + +#### Specified the field inside the table + +```shell +cli-kintone record import --app 27 --file-path records.csv --fields textInTable +Error: The specified field "textInTable" in a table cannot be specified to fields option +``` + +#### Specified the Table field with empty values + +```shell +# records.csv as below +# "*","Text_0","Table","Text","Number" +# "*","Alice",,, +cli-kintone record import --app 27 --file-path records.csv --fields Table +Error: The specified field "Table" does not exist on the CSV +``` + +#### Specified PRIMARY_MARK(`*`) + +```shell +cli-kintone record import --app 27 --file-path records.csv --fields '*' +Error:The specified field "*" does not exist on the app +``` + +#### Specified the field that does not exist on the Kintone app + +```shell +cli-kintone record import --app 27 --file-path records.csv --fields KintoneHyperField +Error:The specified field "KintoneHyperField" does not exist on the app +``` + +#### Specified unsupported field + +```shell +cli-kintone record import --app 27 --file-path records.csv --fields Category +Error:The specified field "Category" is not supported +``` + +#### Specified the field that does not exist on the CSV file + +```shell +# records.csv does not have Text column +cli-kintone record import --app 27 --file-path records.csv --fields Text,Number +Error: The specified field "Text" does not exist on the CSV +``` diff --git a/website/docs/reference/record-import/upsert.md b/website/docs/reference/record-import/upsert.md new file mode 100644 index 0000000000..9cef3c6427 --- /dev/null +++ b/website/docs/reference/record-import/upsert.md @@ -0,0 +1,53 @@ +# UPSERT: update or insert records + +## Concept + +| Term | Description | +| ---------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Update key | The field code binds the imported record and the record on the kintone. The following fields are supported:
- Record number field
- The following fields with "Prohibit duplicate values"
- Single-line text
- Number field | +| Upsert | Update the record if the record matching the update key exists. Otherwise, add a new record. | + +## Command-line interface + +```shell +// Specify update key +cli-kintone record import --app 8 --file-path records.csv --update-key companyName +``` + +| Parameter name | Short name | Description | +| -------------- | ---------- | ------------ | +| `--update-key` | | An updatekey | + +## Upserting records + +Users can specify an update key by `--update-key` option. + +- The tool looks up the matching records and performs the following: + - Update the record if the matching record exists + - Add a new record if no matching records exist +- Updating and updating perform in the sequence of the CSV order. +- A Record Number field is only evaluated for records to be updated when it is specified as "Key to Bulk Update". +- The following fields in records to be updated are ignored. + - Created by + - Created datetime + - Updated by + - Updated datetime + +An error occurs when the update key has the following condition + +- The key does not exist on the CSV file. +- The fields are not configured as “Prohibit duplicate values“ + +## Specifying record number field + +- The record number column can contain the app code, such as Task-1. Every row should contain the same app code. +- The app code is equal to the kintone app's one. + +## Errors + +- The field specified by the update key does not exist on the kintone app. +- The field specified by the update key is not supported; neither is a single-line text or a number field. +- The field specified by the update key is supported, but it does not have a setting "Prohibit duplicate values". +- When the update key is a record number field, record numbers are mixed, containing or not the app code. +- When the update key is a record number field, record numbers contain the app code other than kintone app's one. +- The field specified by the update key does not exists on the source file. diff --git a/website/docusaurus.config.ts b/website/docusaurus.config.ts index 90e4cc59c0..3d74578fcd 100644 --- a/website/docusaurus.config.ts +++ b/website/docusaurus.config.ts @@ -5,7 +5,7 @@ import type * as Preset from "@docusaurus/preset-classic"; const config: Config = { title: "cli-kintone", - tagline: "The CLI tool to import and export kintone records.", + tagline: "The CLI tool for importing and exporting Kintone records.", favicon: "img/cli-kintone_logo.svg", // Set the production url of your site here @@ -38,28 +38,24 @@ const config: Config = { routeBasePath: "/", sidebarPath: "./sidebars.ts", // Remove this to remove the "edit this page" links. - // TODO: Change branch to main - editUrl: - "https://github.com/kintone/cli-kintone/tree/docs/create-doc-site/website", + editUrl: "https://github.com/kintone/cli-kintone/tree/main/website", + // showLastUpdateTime: true, + // showLastUpdateAuthor: true, }, blog: { showReadingTime: true, // Remove this to remove the "edit this page" links. - // TODO: Change branch to main - editUrl: - "https://github.com/kintone/cli-kintone/tree/docs/create-doc-site/website", + editUrl: "https://github.com/kintone/cli-kintone/tree/main/website", }, theme: { - customCss: "./src/css/custom.css", + customCss: "./src/css/custom.scss", }, } satisfies Preset.Options, ], ], themeConfig: { - // Replace with your project's social card - // TODO: Change social card - image: "img/docusaurus-social-card.jpg", + image: "img/cli-kintone_social.png", colorMode: { defaultMode: "dark", disableSwitch: false, @@ -126,7 +122,7 @@ const config: Config = { href: "https://community.cybozu.dev/c/best-practices/8", }, { - label: "kintone developer forum (en)", + label: "Kintone Developer Forum (en)", href: "https://forum.kintone.dev/", }, { @@ -149,13 +145,15 @@ const config: Config = { ], }, ], - copyright: `Copyright © ${new Date().getFullYear()} Cybozu, Inc. Built with Docusaurus.`, + copyright: `Copyright © ${new Date().getFullYear()} Cybozu, Inc.`, }, prism: { theme: prismThemes.github, darkTheme: prismThemes.dracula, + additionalLanguages: ["bash", "powershell", "csv"], }, } satisfies Preset.ThemeConfig, + plugins: ["docusaurus-plugin-sass"], }; export default config; diff --git a/website/package.json b/website/package.json index 6d1ee25d7f..c59051ef10 100644 --- a/website/package.json +++ b/website/package.json @@ -14,23 +14,30 @@ "write-heading-ids": "docusaurus write-heading-ids", "typecheck": "tsc", "lint": "pnpm -w lint", - "fix": "pnpm -w fix" + "fix": "pnpm -w fix", + "update-credits": "ts-node scripts/update-credits.ts" }, "dependencies": { - "@docusaurus/core": "3.3.2", - "@docusaurus/preset-classic": "3.3.2", + "@docusaurus/core": "3.4.0", + "@docusaurus/preset-classic": "3.4.0", + "@docusaurus/theme-common": "^3.4.0", "@mdx-js/react": "^3.0.1", "clsx": "^2.1.1", + "docusaurus-plugin-sass": "^0.2.5", "prism-react-renderer": "^2.3.1", "react": "^18.3.1", - "react-dom": "^18.3.1" + "react-dom": "^18.3.1", + "sass": "^1.77.5" }, "devDependencies": { - "@docusaurus/eslint-plugin": "^3.3.2", - "@docusaurus/module-type-aliases": "3.3.2", - "@docusaurus/plugin-content-docs": "^3.3.2", - "@docusaurus/tsconfig": "3.3.2", - "@docusaurus/types": "3.3.2", + "@docusaurus/eslint-plugin": "^3.4.0", + "@docusaurus/module-type-aliases": "3.4.0", + "@docusaurus/plugin-content-docs": "^3.4.0", + "@docusaurus/tsconfig": "3.4.0", + "@docusaurus/types": "3.4.0", + "@octokit/rest": "^20.1.1", + "@types/node": "^18.19.34", + "ts-node": "^10.9.2", "typescript": "~5.4.5" }, "browserslist": { diff --git a/website/scripts/update-credits.ts b/website/scripts/update-credits.ts new file mode 100644 index 0000000000..39827f3ce3 --- /dev/null +++ b/website/scripts/update-credits.ts @@ -0,0 +1,34 @@ +// eslint-disable-next-line node/no-unpublished-import +import { Octokit } from "@octokit/rest"; +import * as fs from "fs/promises"; + +const ignoredUsers = [ + "renovate[bot]", + "github-actions[bot]", + "trigger-github-actions-release[bot]", + "renovate-bot", +]; + +(async () => { + const octokit = new Octokit(); + + // We use stats because the response of octokit.repos.listContributors is missing some contributors. + const resp = await octokit.repos.getContributorsStats({ + owner: "kintone", + repo: "cli-kintone", + }); + + const contributors = resp.data + .filter( + (c) => + c.author?.type === "User" && !ignoredUsers.includes(c.author.login), + ) + .sort((c1, c2) => c2.total - c1.total) + .map((c) => ({ + login: c.author?.login, + avatar_url: c.author?.avatar_url, + })); + + const json = JSON.stringify(contributors, null, 2); + await fs.writeFile("contributors.json", json + "\n"); +})(); diff --git a/website/src/components/HomepageFeatures/index.tsx b/website/src/components/HomepageFeatures/index.tsx index 4737ba606d..7ff864f27e 100644 --- a/website/src/components/HomepageFeatures/index.tsx +++ b/website/src/components/HomepageFeatures/index.tsx @@ -8,35 +8,37 @@ type FeatureItem = { description: JSX.Element; }; +// We use https://undraw.co/ illustrations. const FeatureList: FeatureItem[] = [ { title: "Easy to Use", // eslint-disable-next-line node/no-missing-require - Svg: require("@site/static/img/undraw_docusaurus_mountain.svg").default, + Svg: require("@site/static/img/undraw_well_done_re_3hpo.svg").default, description: ( <> - Docusaurus was designed from the ground up to be easily installed and - used to get your website up and running quickly. + The cli-kintone was designed for IT personnel and non-engineers. You + will get used to it quickly. ), }, { - title: "Focus on What Matters", - Svg: require("@site/static/img/undraw_docusaurus_tree.svg").default, + title: "Attachment field support", + Svg: require("@site/static/img/undraw_add_files_re_v09g.svg").default, description: ( <> - Docusaurus lets you focus on your docs, and we'll do the chores. Go - ahead and move your docs into the docs directory. + The cli-kintone supports Attachment fields. You can download or upload + files among with Kintone records. ), }, { - title: "Powered by React", - Svg: require("@site/static/img/undraw_docusaurus_react.svg").default, + title: "Suitable for automation", + Svg: require("@site/static/img/undraw_software_engineer_re_tnjc.svg") + .default, description: ( <> - Extend or customize your website layout by reusing React. Docusaurus can - be extended while reusing the same header and footer. + The cli-kintone works well with shell scripts. You can automate your + routine and regular tasks. ), }, diff --git a/website/src/components/credits/Author/img/cybozu_logo.png b/website/src/components/credits/Author/img/cybozu_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..6e97fbe45a9ed790353a9bdc54a5c01178ccd247 GIT binary patch literal 27114 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

OS1G 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 literal 0 HcmV?d00001 diff --git a/website/src/components/credits/Author/index.tsx b/website/src/components/credits/Author/index.tsx new file mode 100644 index 0000000000..894697383d --- /dev/null +++ b/website/src/components/credits/Author/index.tsx @@ -0,0 +1,18 @@ +import React from "react"; +import Link from "@docusaurus/Link"; +import styles from "./styles.module.scss"; + +const author = { + name: "Cybozu, Inc", + url: "https://cybozu.co.jp/", + logo: require("./img/cybozu_logo_wide.png").default, +}; + +export default function Author() { + return ( + + {`${author.logo} + {/*

{author.name}

*/} + + ); +} diff --git a/website/src/components/credits/Author/styles.module.scss b/website/src/components/credits/Author/styles.module.scss new file mode 100644 index 0000000000..929857242c --- /dev/null +++ b/website/src/components/credits/Author/styles.module.scss @@ -0,0 +1,8 @@ +.author { + display: flex; + flex-direction: column; + align-content: center; + align-items: center; + width: 400px; + margin: 20px; +} diff --git a/website/src/components/credits/ContributorsList/index.tsx b/website/src/components/credits/ContributorsList/index.tsx new file mode 100644 index 0000000000..26f4f02627 --- /dev/null +++ b/website/src/components/credits/ContributorsList/index.tsx @@ -0,0 +1,24 @@ +import React from "react"; +import Link from "@docusaurus/Link"; +import contributors from "../../../../contributors.json"; +import styles from "./styles.module.scss"; + +export default function ContributorsList() { + return ( +
    + {contributors.map((contributor) => ( +
  • + + {`${contributor.login} + {contributor.login} + +
  • + ))} +
+ ); +} diff --git a/website/src/components/credits/ContributorsList/styles.module.scss b/website/src/components/credits/ContributorsList/styles.module.scss new file mode 100644 index 0000000000..a200c1b7de --- /dev/null +++ b/website/src/components/credits/ContributorsList/styles.module.scss @@ -0,0 +1,17 @@ +ul.contributors { + list-style: none; + display: flex; + flex-wrap: wrap; + li { + width: 150px; + border: solid 1px; + margin: 10px; + border-radius: 10px; + overflow: hidden; + > a { + display: flex; + flex-direction: column; + text-align: center; + } + } +} diff --git a/website/src/css/custom.css b/website/src/css/custom.scss similarity index 81% rename from website/src/css/custom.css rename to website/src/css/custom.scss index 5953b46931..6313c438d3 100644 --- a/website/src/css/custom.css +++ b/website/src/css/custom.scss @@ -7,13 +7,13 @@ /* You can override the default Infima variables here. */ :root { /* https://docusaurus.io/docs/styling-layout#styling-your-site-with-infima */ - --ifm-color-primary: #c39800; - --ifm-color-primary-dark: #b08900; - --ifm-color-primary-darker: #a68100; - --ifm-color-primary-darkest: #896a00; - --ifm-color-primary-light: #d6a700; - --ifm-color-primary-lighter: #e0af00; - --ifm-color-primary-lightest: #fdc600; + --ifm-color-primary: #a67c00; + --ifm-color-primary-dark: #957000; + --ifm-color-primary-darker: #8d6900; + --ifm-color-primary-darkest: #745700; + --ifm-color-primary-light: #b78800; + --ifm-color-primary-lighter: #bf8f00; + --ifm-color-primary-lightest: #d8a100; --ifm-code-font-size: 95%; /* cybozu.com color */ diff --git a/website/src/pages/index.module.css b/website/src/pages/index.module.css index 9f71a5da77..6afbc3ca21 100644 --- a/website/src/pages/index.module.css +++ b/website/src/pages/index.module.css @@ -8,6 +8,9 @@ text-align: center; position: relative; overflow: hidden; + + background: #ffbf00; + color: #231200; } @media screen and (max-width: 996px) { diff --git a/website/static/img/cli-kintone_social.png b/website/static/img/cli-kintone_social.png new file mode 100644 index 0000000000000000000000000000000000000000..a605905c75782e7c9041cfd33ce5663c22f3712b GIT binary patch literal 226454 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�&C-J_Ft?ny=I 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 LSvVKzqcxFU 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

Ep!M0aXY|JFzfP~e{`zTST$61y7^(Mp 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 iJE*Dfdk@C8nb-e$rR9;ArU=sj0000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/website/static/img/undraw_add_files_re_v09g.svg b/website/static/img/undraw_add_files_re_v09g.svg new file mode 100644 index 0000000000..75947b0a9b --- /dev/null +++ b/website/static/img/undraw_add_files_re_v09g.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/static/img/undraw_add_files_re_v09g_light.svg b/website/static/img/undraw_add_files_re_v09g_light.svg new file mode 100644 index 0000000000..621efd895e --- /dev/null +++ b/website/static/img/undraw_add_files_re_v09g_light.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/static/img/undraw_attached_file_re_0n9b.svg b/website/static/img/undraw_attached_file_re_0n9b.svg new file mode 100644 index 0000000000..d7e7924637 --- /dev/null +++ b/website/static/img/undraw_attached_file_re_0n9b.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/static/img/undraw_attached_file_re_0n9b_light.svg b/website/static/img/undraw_attached_file_re_0n9b_light.svg new file mode 100644 index 0000000000..b3b41eaf78 --- /dev/null +++ b/website/static/img/undraw_attached_file_re_0n9b_light.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/static/img/undraw_data_processing_yrrv.svg b/website/static/img/undraw_data_processing_yrrv.svg new file mode 100644 index 0000000000..1227b90c20 --- /dev/null +++ b/website/static/img/undraw_data_processing_yrrv.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/static/img/undraw_data_processing_yrrv_light.svg b/website/static/img/undraw_data_processing_yrrv_light.svg new file mode 100644 index 0000000000..a5c6ace0b3 --- /dev/null +++ b/website/static/img/undraw_data_processing_yrrv_light.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/static/img/undraw_docusaurus_mountain.svg b/website/static/img/undraw_docusaurus_mountain.svg deleted file mode 100644 index af961c49a8..0000000000 --- a/website/static/img/undraw_docusaurus_mountain.svg +++ /dev/null @@ -1,171 +0,0 @@ - - Easy to Use - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/website/static/img/undraw_docusaurus_react.svg b/website/static/img/undraw_docusaurus_react.svg deleted file mode 100644 index 94b5cf08f8..0000000000 --- a/website/static/img/undraw_docusaurus_react.svg +++ /dev/null @@ -1,170 +0,0 @@ - - Powered by React - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/website/static/img/undraw_docusaurus_tree.svg b/website/static/img/undraw_docusaurus_tree.svg deleted file mode 100644 index d9161d3392..0000000000 --- a/website/static/img/undraw_docusaurus_tree.svg +++ /dev/null @@ -1,40 +0,0 @@ - - Focus on What Matters - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/website/static/img/undraw_folder_files_re_2cbm.svg b/website/static/img/undraw_folder_files_re_2cbm.svg new file mode 100644 index 0000000000..466e136d06 --- /dev/null +++ b/website/static/img/undraw_folder_files_re_2cbm.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/static/img/undraw_folder_files_re_2cbm_light.svg b/website/static/img/undraw_folder_files_re_2cbm_light.svg new file mode 100644 index 0000000000..58f4052992 --- /dev/null +++ b/website/static/img/undraw_folder_files_re_2cbm_light.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/static/img/undraw_my_files_swob.svg b/website/static/img/undraw_my_files_swob.svg new file mode 100644 index 0000000000..248964d957 --- /dev/null +++ b/website/static/img/undraw_my_files_swob.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/static/img/undraw_my_files_swob_light.svg b/website/static/img/undraw_my_files_swob_light.svg new file mode 100644 index 0000000000..466c7d379a --- /dev/null +++ b/website/static/img/undraw_my_files_swob_light.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/static/img/undraw_project_completed_re_jr7u.svg b/website/static/img/undraw_project_completed_re_jr7u.svg new file mode 100644 index 0000000000..4f3713a3de --- /dev/null +++ b/website/static/img/undraw_project_completed_re_jr7u.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/static/img/undraw_project_completed_re_jr7u_light.svg b/website/static/img/undraw_project_completed_re_jr7u_light.svg new file mode 100644 index 0000000000..1334d1dc2f --- /dev/null +++ b/website/static/img/undraw_project_completed_re_jr7u_light.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/static/img/undraw_software_engineer_re_tnjc.svg b/website/static/img/undraw_software_engineer_re_tnjc.svg new file mode 100644 index 0000000000..470eb5bfa0 --- /dev/null +++ b/website/static/img/undraw_software_engineer_re_tnjc.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/static/img/undraw_software_engineer_re_tnjc_light.svg b/website/static/img/undraw_software_engineer_re_tnjc_light.svg new file mode 100644 index 0000000000..5db848131e --- /dev/null +++ b/website/static/img/undraw_software_engineer_re_tnjc_light.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/static/img/undraw_well_done_re_3hpo.svg b/website/static/img/undraw_well_done_re_3hpo.svg new file mode 100644 index 0000000000..9776b11ead --- /dev/null +++ b/website/static/img/undraw_well_done_re_3hpo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/static/img/undraw_well_done_re_3hpo_light.svg b/website/static/img/undraw_well_done_re_3hpo_light.svg new file mode 100644 index 0000000000..ebcf8b30d9 --- /dev/null +++ b/website/static/img/undraw_well_done_re_3hpo_light.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/tsconfig.docusaurus.json b/website/tsconfig.docusaurus.json new file mode 100644 index 0000000000..1d63ef9e22 --- /dev/null +++ b/website/tsconfig.docusaurus.json @@ -0,0 +1,9 @@ +{ + // This file is not used in compilation. It is here just for a nice editor experience. + "extends": "@docusaurus/tsconfig", + "compilerOptions": { + "baseUrl": ".", + "types": ["docusaurus-plugin-sass"] + }, + "exclude": ["scripts"] +} diff --git a/website/tsconfig.json b/website/tsconfig.json index 314eab8a41..fb8c12e1f2 100644 --- a/website/tsconfig.json +++ b/website/tsconfig.json @@ -1,7 +1,10 @@ { - // This file is not used in compilation. It is here just for a nice editor experience. - "extends": "@docusaurus/tsconfig", - "compilerOptions": { - "baseUrl": "." - } + "references": [ + { + "path": "tsconfig.docusaurus.json" + }, + { + "path": "tsconfig.scripts.json" + } + ] } diff --git a/website/tsconfig.scripts.json b/website/tsconfig.scripts.json new file mode 100644 index 0000000000..9cc6a2f2ef --- /dev/null +++ b/website/tsconfig.scripts.json @@ -0,0 +1,15 @@ +{ + "compilerOptions": { + "module": "commonjs", + "resolveJsonModule": true, + "noEmit": true, + "forceConsistentCasingInFileNames": true, + "strict": true, + "skipLibCheck": true, + "jsx": "react" + }, + "ts-node": { + "files": true + }, + "include": ["scripts/**/*"] +}