diff --git a/Makefile b/Makefile index 05f893901e05..23f8d5d3b93a 100644 --- a/Makefile +++ b/Makefile @@ -166,5 +166,5 @@ destroy-dev-stack: .PHONY: generate-compliance-pages generate-compliance-pages: - node scripts/aws-compliance-scraper/scrape.cjs + node scripts/aws-compliance-scraper/scrape.js ./scripts/content/generate-compliance-pages.sh diff --git a/README.md b/README.md index bf754f0f3a93..41b9ba5bd003 100644 --- a/README.md +++ b/README.md @@ -211,7 +211,7 @@ search: In this case, the optional `search.keywords` field is included to cover the terms `data warehouse`, as those terms don't exist in the page's title or description. If it weren't, queries for `data warehouse` would fail to match this particular page. -Certain fields also rank higher than others in terms of their overall relevance. (Titles and keywords, for example, are considered more relevant than descriptions.) For a full list of these rankings, along with all of the rules we apply to the search index, see the [search app in pulumi/docs](https://github.com/pulumi/docs/blob/master/scripts/search/settings.cjs). +Certain fields also rank higher than others in terms of their overall relevance. (Titles and keywords, for example, are considered more relevant than descriptions.) For a full list of these rankings, along with all of the rules we apply to the search index, see the [search app in pulumi/docs](https://github.com/pulumi/docs/blob/master/scripts/search/settings.js). ### Keeping pages out of search results diff --git a/content/blog/lambdas-as-lambdas-the-magic-of-simple-serverless-functions/index.md b/content/blog/lambdas-as-lambdas-the-magic-of-simple-serverless-functions/index.md index 3b902d8dcfcd..d43e05d032a3 100644 --- a/content/blog/lambdas-as-lambdas-the-magic-of-simple-serverless-functions/index.md +++ b/content/blog/lambdas-as-lambdas-the-magic-of-simple-serverless-functions/index.md @@ -96,7 +96,7 @@ look at how they look in action: Let's still walk through it to see what's happening. It can be a little subtle because we are mixing *deployment-time* code -- code that -declares infrastructure as code resources -- and *runtime* code -- +declares infrastructure as code resources -- and *runtime *code -- application code that runs as a function. First, we're just defining two simple resources: 1) an `s3.Bucket`, diff --git a/content/blog/meet-the-pulumi-team-at-aws-reinvent/index.md b/content/blog/meet-the-pulumi-team-at-aws-reinvent/index.md index 5f402b8ba396..6b5492c50731 100644 --- a/content/blog/meet-the-pulumi-team-at-aws-reinvent/index.md +++ b/content/blog/meet-the-pulumi-team-at-aws-reinvent/index.md @@ -11,7 +11,7 @@ Heading to AWS re:Invent? Concerned about how you'll manage to get on bag? Or maybe you just like purple. Whatever the reason, the Pulumi team will be there all week at **Booth -316, Startup Central, Aria Quad,** and we'd love to chat with you about +316, Startup Central, Aria Quad, **and we'd love to chat with you about [AWS and Pulumi](/crosswalk/aws/). Catch up with us on serverless functions, [containers](/containers/) and diff --git a/content/blog/rabbitMQ-azure/index.md b/content/blog/rabbitMQ-azure/index.md index 943288160fe2..7120089539b6 100644 --- a/content/blog/rabbitMQ-azure/index.md +++ b/content/blog/rabbitMQ-azure/index.md @@ -70,11 +70,9 @@ We will start by defining a few constants, the constructor, an empty method call Now that we have our initial class, we can start writing methods for the resources we will be creating: - Resource groups: -
{{< gist ItayPodhajcer 4c57e537f0d9cc15b801035d556c2504 >}}
- - Private DNS zone: {{< gist ItayPodhajcer 52af6ba0a8f1a92d5352c3218505eefa >}} diff --git a/content/blog/snowflake-provider-launch/index.md b/content/blog/snowflake-provider-launch/index.md index f2924464804d..50d54c1e6fbb 100644 --- a/content/blog/snowflake-provider-launch/index.md +++ b/content/blog/snowflake-provider-launch/index.md @@ -29,5 +29,5 @@ Pulumi is bringing management of your Snowflake resources into the same place as - Create a service user and push the key into the secrets manager of your choice - Rotate keys -You can check out the details in the official [Snowflake Provider documentation](/registry/packages/snowflake/api-docs/provider/), with -references for Python, Go, TypeScript, and C#! +You can check out the details in the official [Snowflake Provider documentation +](/registry/packages/snowflake/api-docs/provider/), with references for Python, Go, TypeScript, and C#! diff --git a/content/blog/using-helm-and-pulumi-to-define-cloud-native-infrastructure-as-code/index.md b/content/blog/using-helm-and-pulumi-to-define-cloud-native-infrastructure-as-code/index.md index 3d40c679bbf2..b6df0b222fcf 100644 --- a/content/blog/using-helm-and-pulumi-to-define-cloud-native-infrastructure-as-code/index.md +++ b/content/blog/using-helm-and-pulumi-to-define-cloud-native-infrastructure-as-code/index.md @@ -42,7 +42,7 @@ Specifically, we: If you have the Azure command line, try [running the example](https://github.com/pulumi/examples/tree/master/classic-azure-ts-aks-mean) with `pulumi up`! -```javascript +{{< highlight javascript >}} import * as k8s from "@pulumi/kubernetes"; import * as azure from "@pulumi/azure"; import * as mongoHelpers from "./mongoHelpers"; @@ -90,7 +90,7 @@ const node = new k8s.helm.v2.Chart( }, { providers: { kubernetes: k8sProvider }, dependsOn: mongoConnStrings } ); -``` +{{< /highlight >}} Pulumi supports deploying resources to all the major cloud vendors, as well as Kubernetes. Using the Pulumi programming model, it is possible diff --git a/content/docs/esc/environments/rotation.md b/content/docs/esc/environments/rotation.md index 948e1b22ac01..aa77eac68d22 100644 --- a/content/docs/esc/environments/rotation.md +++ b/content/docs/esc/environments/rotation.md @@ -33,13 +33,13 @@ values: state: previous: accessKeyId: AKIA... - secretAccessKey: - fn::secret: + secretAccessKey: + fn::secret: ciphertext: ... current: accessKeyId: AKIA... - secretAccessKey: - fn::secret: + secretAccessKey: + fn::secret: ciphertext: ... ``` diff --git a/content/docs/iac/clouds/kubernetes/guides/configure-access-control.md b/content/docs/iac/clouds/kubernetes/guides/configure-access-control.md index a66f76eb0c52..fa85c01878e0 100644 --- a/content/docs/iac/clouds/kubernetes/guides/configure-access-control.md +++ b/content/docs/iac/clouds/kubernetes/guides/configure-access-control.md @@ -288,13 +288,13 @@ $ kubectl delete --namespace=`pulumi stack output appsNamespaceName` pod/nginx s For a complete example of this in action, see [Simplifying Kubernetes RBAC in Amazon EKS][simplify-rbac]. +[simplify-rbac]: /blog/simplify-kubernetes-rbac-in-amazon-eks-with-open-source-pulumi-packages/ {{% /choosable %}} See the [official Kubernetes RBAC docs][k8s-rbac-docs] for more details. -[simplify-rbac]: /blog/simplify-kubernetes-rbac-in-amazon-eks-with-open-source-pulumi-packages/ [crosswalk-identity]: /docs/clouds/kubernetes/guides/identity/ [k8s-rbac-docs]: https://kubernetes.io/docs/reference/access-authn-authz/rbac/ [crosswalk-configure-defaults]: /docs/clouds/kubernetes/guides/configure-defaults/ diff --git a/content/docs/iac/get-started/kubernetes/deploy-changes.md b/content/docs/iac/get-started/kubernetes/deploy-changes.md index bae2041455ba..c6628a844ba0 100644 --- a/content/docs/iac/get-started/kubernetes/deploy-changes.md +++ b/content/docs/iac/get-started/kubernetes/deploy-changes.md @@ -73,12 +73,12 @@ $ pulumi stack output ip > **If using Minikube:** Minikube does not support type `LoadBalancer`. Instead, forward the nginx service: > -> ```bash -> $ kubectl get service -> NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE -> kubernetes ClusterIP 10.96.0.1 443/TCP 44h -> nginx-9e5d5cd4 ClusterIP 10.103.199.118 80/TCP 6m47s -> ``` +> ```bash +> $ kubectl get service +> NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE +> kubernetes ClusterIP 10.96.0.1 443/TCP 44h +> nginx-9e5d5cd4 ClusterIP 10.103.199.118 80/TCP 6m47s +> ``` > > Note: The assigned name for this particular nginx service is `nginx-9e5d5cd4`; yours will be different. In a new terminal window, run: > diff --git a/content/docs/pulumi-cloud/access-management/access-tokens.md b/content/docs/pulumi-cloud/access-management/access-tokens.md index cfbea92997da..c49f2ac792ef 100644 --- a/content/docs/pulumi-cloud/access-management/access-tokens.md +++ b/content/docs/pulumi-cloud/access-management/access-tokens.md @@ -25,7 +25,8 @@ Pulumi offers three types of access tokens: 1. Personal tokens, which map to the permissions of an individual user. Personal tokens are available to all Pulumi Cloud users. 1. Organization tokens, which map to the permissions of either a regular organization member or an organization admin, depending on the scope of the token. Organization tokens are only available to Enterprise and Business Critical customers. -1. Team tokens, which map to the permissions of a team within an organization. For more information on using teams within your Pulumi Cloud organization, see [Teams & Role-based access control (RBAC)](/docs/pulumi-cloud/access-management/teams/). Team tokens are only available to Enterprise and Business Critical customers. +1. Team tokens, which map to the permissions of a team within an organization. For more information on using teams within your Pulumi Cloud organization, see [Teams & Role-based access control (RBAC) +](/docs/pulumi-cloud/access-management/teams/). Team tokens are only available to Enterprise and Business Critical customers. When using tokens, be mindful of the following security best practices: diff --git a/content/templates/container-service/_index.md b/content/templates/container-service/_index.md index 953814892355..d38453471cc0 100644 --- a/content/templates/container-service/_index.md +++ b/content/templates/container-service/_index.md @@ -13,7 +13,6 @@ weight: 1 [Containers](/containers/) are lightweight virtualized operating system environments in which developers can package and run an application and its dependencies as isolated runtime environments. The benefits of containers include better scalability, portability, and fault isolation. Docker is most commonly used to create container images. Containers are great for scenarios such as microservices, batch jobs, and migrating a legacy application. In the cloud, containers are typically run using container services that manage the container orchestration, cluster management, and compute for you. **On AWS,** these are the main ways to run containers: - | | | |-----------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------| | Amazon Elastic Container Service (ECS) | Fully managed container orchestration service created by AWS. Deploy containers to EC2 instances you manage or serverless instances from AWS Fargate. | diff --git a/cypress.config.cjs b/cypress.config.cjs deleted file mode 100644 index c57e63cbf6f2..000000000000 --- a/cypress.config.cjs +++ /dev/null @@ -1,7 +0,0 @@ -const { defineConfig } = require("cypress"); - -module.exports = defineConfig({ - e2e: { - baseUrl: "http://localhost:1313", - }, -}); diff --git a/cypress.config.ts b/cypress.config.ts new file mode 100644 index 000000000000..b87124e1e2cb --- /dev/null +++ b/cypress.config.ts @@ -0,0 +1,12 @@ +import { defineConfig } from "cypress"; + +export default defineConfig({ + e2e: { + // We've imported your old cypress plugins here. + // You may want to clean this up later by importing these. + setupNodeEvents(on, config) { + return require("./cypress/plugins/index.js")(on, config); + }, + baseUrl: "http://localhost:1313", + }, +}); diff --git a/cypress/plugins/index.js b/cypress/plugins/index.js new file mode 100644 index 000000000000..aa9918d21530 --- /dev/null +++ b/cypress/plugins/index.js @@ -0,0 +1,21 @@ +/// +// *********************************************************** +// This example plugins/index.js can be used to load plugins +// +// You can change the location of this file or turn off loading +// the plugins file with the 'pluginsFile' configuration option. +// +// You can read more here: +// https://on.cypress.io/plugins-guide +// *********************************************************** + +// This function is called when a project is opened or re-opened (e.g. due to +// the project's config changing) + +/** + * @type {Cypress.PluginConfig} + */ +module.exports = (on, config) => { + // `on` is used to hook into various events Cypress emits + // `config` is the resolved Cypress config +} diff --git a/package.json b/package.json index 4abee3922c3e..c83fa7c1a3d9 100644 --- a/package.json +++ b/package.json @@ -4,14 +4,9 @@ "private": true, "license": "Apache-2.0", "scripts": { - "minify-css": "node scripts/minify-css.cjs", - "lint-markdown": "tsx ./scripts/lint/lint-markdown.ts", - "build-search-index": "tsx ./scripts/search/main.ts", - "check-urls": "tsx ./scripts/search/check-urls.ts", - "update-search-index": "tsx ./scripts/search/update-search-index.ts", + "minify-css": "node scripts/minify-css.js", "prepare": "husky" }, - "type": "module", "dependencies": { "@aws-sdk/client-s3": "^3.427.0", "@fullhuman/postcss-purgecss": "^4.0.3", @@ -20,7 +15,6 @@ "@octokit/graphql": "^4.6.2", "@octokit/rest": "^18.5.3", "@slack/web-api": "^5.12.0", - "@types/node": "^22.13.1", "algoliasearch": "^4.17.0", "axios": "^1.7.4", "axios-retry": "^3.5.1", @@ -34,19 +28,18 @@ "http-server": "^0.12.1", "js-yaml": "^4.1.0", "jsdom": "^22.0.0", + "markdownlint": "^0.17.2", "parse-diff": "^0.8.1", "postcss": "^8.3.7", "postcss-cli": "^8.3.1", "sitemapper": "^3.2.2", "turndown": "^7.2.0", - "typedoc": "^0.27.0", - "typedoc-plugin-script-inject": "^1.0.0" + "typedoc": "^0.25.11", + "typedoc-plugin-script-inject": "^1.0.0", + "typescript": "^4.9.5" }, "devDependencies": { "husky": "^9.0.11", - "markdownlint": "^0.37.4", - "prettier": "^2.6.2", - "tsx": "^4.19.2", - "typescript": "^5.7.0" + "prettier": "^2.6.2" } } diff --git a/scripts/await-in-progress.cjs b/scripts/await-in-progress.js similarity index 100% rename from scripts/await-in-progress.cjs rename to scripts/await-in-progress.js diff --git a/scripts/aws-compliance-scraper/scrape.cjs b/scripts/aws-compliance-scraper/scrape.js similarity index 100% rename from scripts/aws-compliance-scraper/scrape.cjs rename to scripts/aws-compliance-scraper/scrape.js diff --git a/scripts/build-site.sh b/scripts/build-site.sh index 2588941f5329..cb7046577cb9 100755 --- a/scripts/build-site.sh +++ b/scripts/build-site.sh @@ -44,7 +44,7 @@ else fi # Generate docs JSON. -node scripts/content/generate-docs-content.cjs +node scripts/content/generate-docs-content.js # Purge unused CSS. yarn run minify-css diff --git a/scripts/ci-push.sh b/scripts/ci-push.sh index be13f81f2f35..fcb2cecdd9fb 100755 --- a/scripts/ci-push.sh +++ b/scripts/ci-push.sh @@ -9,7 +9,7 @@ source ./scripts/ci-login.sh ./scripts/generate-search-index.sh -node ./scripts/await-in-progress.cjs +node ./scripts/await-in-progress.js ./scripts/run-pulumi.sh update ./scripts/make-s3-redirects.sh diff --git a/scripts/ci-update-search-index.sh b/scripts/ci-update-search-index.sh index 068655e940b0..326f29b5f27e 100755 --- a/scripts/ci-update-search-index.sh +++ b/scripts/ci-update-search-index.sh @@ -2,4 +2,4 @@ # This script downloads the search indexes for registry and docs from pulumi.com then combines # the two indexes and pushes them to Algolia. -yarn run update-search-index "$1" +node ./scripts/search/update-search-index.js "$1" diff --git a/scripts/content/generate-docs-content.cjs b/scripts/content/generate-docs-content.js similarity index 100% rename from scripts/content/generate-docs-content.cjs rename to scripts/content/generate-docs-content.js diff --git a/scripts/detect-new-404s.cjs b/scripts/detect-new-404s.js similarity index 100% rename from scripts/detect-new-404s.cjs rename to scripts/detect-new-404s.js diff --git a/scripts/detect-new-404s.sh b/scripts/detect-new-404s.sh index 1bdde97e4b7c..09a2ba793cfe 100755 --- a/scripts/detect-new-404s.sh +++ b/scripts/detect-new-404s.sh @@ -11,4 +11,4 @@ s3_website_url="http://${destination_bucket}.s3-website.$(aws_region).amazonaws. echo "Checking ${s3_website_url} for new 404s..." # For now we don't want this to fail the build due to lots of flakiness, so always exit successfully. -node scripts/detect-new-404s.cjs "https://pulumi.com" "${s3_website_url}" || true +node scripts/detect-new-404s.js "https://pulumi.com" "${s3_website_url}" || true diff --git a/scripts/generate-search-index.sh b/scripts/generate-search-index.sh index 88aa1241ee71..7521ed0a676e 100755 --- a/scripts/generate-search-index.sh +++ b/scripts/generate-search-index.sh @@ -4,7 +4,7 @@ set -o errexit -o pipefail source ./scripts/common.sh -yarn run build-search-index +node ./scripts/search/main.js # Fetch the name of the bucket from the metadata file. destination_bucket="$(cat "$(origin_bucket_metadata_filepath)" | jq -r ".bucket")" diff --git a/scripts/get-module-diff-details.cjs b/scripts/get-module-diff-details.js similarity index 100% rename from scripts/get-module-diff-details.cjs rename to scripts/get-module-diff-details.js diff --git a/scripts/get-versions.cjs b/scripts/get-versions.js similarity index 100% rename from scripts/get-versions.cjs rename to scripts/get-versions.js diff --git a/scripts/link-checker/check-links.cjs b/scripts/link-checker/check-links.js similarity index 100% rename from scripts/link-checker/check-links.cjs rename to scripts/link-checker/check-links.js diff --git a/scripts/link-checker/check-links.sh b/scripts/link-checker/check-links.sh index c644f499ca23..06a31e5510e6 100755 --- a/scripts/link-checker/check-links.sh +++ b/scripts/link-checker/check-links.sh @@ -6,4 +6,4 @@ source ./scripts/common.sh echo "Checking links..." base_url="$1" -node "./scripts/link-checker/check-links.cjs" "$base_url" 2 +node "./scripts/link-checker/check-links.js" "$base_url" 2 diff --git a/scripts/lint.sh b/scripts/lint.sh index 1845763aae9a..3c37b303f950 100755 --- a/scripts/lint.sh +++ b/scripts/lint.sh @@ -2,7 +2,5 @@ set -o errexit -o pipefail -yarn run lint-markdown +node ./scripts/lint/lint-markdown.js yarn prettier --check . -# shellcheck disable=SC2046 # Intended splitting of file names -yarn tsc --project tsconfig.scripts.json --noEmit diff --git a/scripts/lint/lint-markdown.ts b/scripts/lint/lint-markdown.js similarity index 93% rename from scripts/lint/lint-markdown.ts rename to scripts/lint/lint-markdown.js index db8d15a833dd..fc5711cdb047 100644 --- a/scripts/lint/lint-markdown.ts +++ b/scripts/lint/lint-markdown.js @@ -1,10 +1,7 @@ -import * as fs from "fs"; -import * as yaml from "js-yaml"; -import * as markdownlint from "markdownlint/sync"; -import * as path from "path"; -import { fileURLToPath } from 'url'; - -const __dirname = path.dirname(fileURLToPath(import.meta.url)); +const fs = require("fs"); +const yaml = require("js-yaml"); +const markdownlint = require("markdownlint"); +const path = require("path"); /** * REGEX for grabbing the front matter of a Hugo markdown file. Example: @@ -257,9 +254,7 @@ const filesToLint = getMarkdownFiles(`../../content`); * * See: https://github.com/DavidAnson/markdownlint */ - -// Lint the markdown files. -const result = markdownlint.lint({ +const opts = { // The array of markdown files to lint. files: filesToLint.files, config: { @@ -279,6 +274,8 @@ const result = markdownlint.lint({ // Allow all code block styles in a file. Code block styles // are created equal and we shall not discriminate. MD046: false, + // Allow indents on unordered lists to be 4 spaces instead of 2. + MD007: { indent: 4 }, // Allow duplicate headings. MD024: false, // Allow headings to be indendented. @@ -291,29 +288,14 @@ const result = markdownlint.lint({ MD034: false, // Allow bold/italicized paragraphs MD036: false, - // Images should have alternate text (alt text) - MD045: false, - // Emphasis style - MD049: false, - // Strong style - MD050: false, - // Link fragments should be valid - MD051: false, - // Link and image reference definitions should be needed - MD053: false, - // Table pipe style - MD055: false, - // Table column count - MD056: false, }, customRules: [ { - parser: "markdownit", names: ["relref"], description: "Hugo relrefs are no longer supported. Use standard [Markdown](/links) instead", tags: ["hugo-relref"], function: (params, onError) => { - params.parsers.markdownit.tokens + params.tokens .filter(token => { return token.type === "inline"; }) @@ -328,7 +310,10 @@ const result = markdownlint.lint({ }, }, ], -}); +}; + +// Lint the markdown files. +const result = markdownlint.sync(opts); // Group the lint errors by file. const errors = groupLintErrorOutput(result); diff --git a/scripts/make-s3-redirects.cjs b/scripts/make-s3-redirects.js similarity index 100% rename from scripts/make-s3-redirects.cjs rename to scripts/make-s3-redirects.js diff --git a/scripts/make-s3-redirects.sh b/scripts/make-s3-redirects.sh index 85ef81f45f8c..fc31e81a1413 100755 --- a/scripts/make-s3-redirects.sh +++ b/scripts/make-s3-redirects.sh @@ -14,10 +14,10 @@ redirects_file="./redirects.txt" aws s3 cp "s3://${destination_bucket}/redirects.txt" "$redirects_file" --region "$(aws_region)" echo "Processing S3 redirects for ${destination_bucket}..." -node scripts/make-s3-redirects.cjs "${destination_bucket}" "${build_dir}/redirects.txt" "$(aws_region)" +node scripts/make-s3-redirects.js "${destination_bucket}" "${build_dir}/redirects.txt" "$(aws_region)" echo "Processing custom redirects in scripts/redirects..." ls -l "./scripts/redirects/" | tail -n +2 | awk '{print $9}' | while read line; do redirect_file="./scripts/redirects/$line" - node scripts/make-s3-redirects.cjs "${destination_bucket}" "${redirect_file}" "$(aws_region)" + node scripts/make-s3-redirects.js "${destination_bucket}" "${redirect_file}" "$(aws_region)" done diff --git a/scripts/minify-css.cjs b/scripts/minify-css.js similarity index 100% rename from scripts/minify-css.cjs rename to scripts/minify-css.js diff --git a/scripts/search/check-urls.ts b/scripts/search/check-urls.js similarity index 94% rename from scripts/search/check-urls.ts rename to scripts/search/check-urls.js index 9910d6a6049f..4efea068b517 100644 --- a/scripts/search/check-urls.ts +++ b/scripts/search/check-urls.js @@ -1,6 +1,6 @@ -import * as fs from "fs"; -import { default as axios } from "axios"; -import retry from 'axios-retry'; +const fs = require("fs"); +const axios = require("axios").default; +const retry = require("axios-retry"); async function checkSearchURLs(baseURL) { @@ -76,6 +76,6 @@ checkSearchURLs(process.argv[2] || "https://www.pulumi.com") }); // Exit non-zero when something goes wrong in the promise chain. -process.on("unhandledRejection", (err: string) => { - throw new Error(err); +process.on("unhandledRejection", error => { + throw new Error(error); }); diff --git a/scripts/search/check-urls.sh b/scripts/search/check-urls.sh index 342b9b1189f0..3f6d65b6d0a6 100755 --- a/scripts/search/check-urls.sh +++ b/scripts/search/check-urls.sh @@ -13,4 +13,4 @@ algolia objects browse "$index" \ --admin-api-key "$ALGOLIA_APP_ADMIN_KEY" \ --application-id "$ALGOLIA_APP_ID" > ./public/search-index.json -yarn run check-urls "$base_url" +node "./scripts/search/check-urls.js" "$base_url" diff --git a/scripts/search/main.ts b/scripts/search/main.js similarity index 92% rename from scripts/search/main.ts rename to scripts/search/main.js index 31c09f7573d6..74a870752039 100644 --- a/scripts/search/main.ts +++ b/scripts/search/main.js @@ -1,5 +1,5 @@ -import * as fs from "fs"; -import { getPrimaryObjects, getSecondaryObjects, getObjectID } from "./page"; +const fs = require("fs"); +const page = require("./page"); // As part of the Hugo build, we generate a JSON file at /index.json containing a record for every // page of the website. We use this file to generate primary search records for Algolia. @@ -9,12 +9,12 @@ const hugoPageItems = JSON.parse(fs.readFileSync(pathToFullSiteJSON, "utf-8").to // Generate a list of primary page objects. This list contains one record for every page of the site. console.log("\nBuilding search index..."); console.log(" ↳ Building primary page objects..."); -const primaryPageObjects = getPrimaryObjects(hugoPageItems); +const primaryPageObjects = page.getPrimaryObjects(hugoPageItems); // Generate a list of secondary objects. This list contains additional records for things like H2 // headings and other DOM-resident content that we can't get as easily by other means. console.log(" ↳ Building secondary page objects..."); -const secondaryPageObjects = getSecondaryObjects(primaryPageObjects); +const secondaryPageObjects = page.getSecondaryObjects(primaryPageObjects); // Incorporate any additional objects. This list is provided as a hand-crafted list for now, because pragmatism, // but it should probably be pulled out into a proper module at some point. @@ -93,7 +93,7 @@ const additionalObjects = [ }, ].map(item => { return { - "objectID": getObjectID({ href: item.href }), + "objectID": page.getObjectID({ href: item.href }), ...item, }; }); diff --git a/scripts/search/page.ts b/scripts/search/page.js similarity index 73% rename from scripts/search/page.ts rename to scripts/search/page.js index b9399cd81dfd..28e39fa74b30 100644 --- a/scripts/search/page.ts +++ b/scripts/search/page.js @@ -1,14 +1,16 @@ -import * as fs from "fs"; -import * as path from "path"; -import * as crypto from "crypto"; -import * as cheerio from "cheerio"; -import * as rank from "./rank"; +const fs = require("fs"); +const path = require("path"); +const crypto = require("crypto"); +const cheerio = require("cheerio"); +const rank = require("./rank"); + +module.exports = { // Return the top-level section the page belongs to. Note that these sections are used for // faceting (i.e., filtering the results returned by Algolia as well as how they appear in the // autocomplete UI), so changes to this code should be made extra care. (Any change made here // without an accompanying change to the UI will likely break the UI.) - export function getTopLevelSection({ href }) { + getTopLevelSection({ href }) { if (href.startsWith("/docs")) { return "Docs"; } else if (href.startsWith("/blog")) { @@ -24,17 +26,17 @@ import * as rank from "./rank"; } return "General"; - } + }, // Fetch a list of the explicit and implicit keywords associated with the page. - export function getKeywords(page) { + getKeywords(page) { return (page.params?.search?.keywords || []).concat(rank.getImplicitKeywords(page)); - } + }, // Fetch a summary of any DOM content to use for the index. Things like H2s, their immediately // following paragraphs, and any of their explicitly provided keywords (as we also support this // also) are included. - export function getDOMContent({ href }) { + getDOMContent({ href }) { // Assemble the local path to the file using its href. const filePath = path.join("public", href, "index.html"); @@ -45,7 +47,7 @@ import * as rank from "./rank"; const $ = cheerio.load(content, { _useHtmlParser2: true, decodeEntities: true - } as any /* We are using a hidden option: _useHtmlParser2: https://github.com/cheeriojs/cheerio/discussions/1271 */); + }); const subheads = []; @@ -77,20 +79,20 @@ import * as rank from "./rank"; }); return { subheads }; - } + }, // Return the page's (explicit or implicit) ranking. - export function getRank(page) { + getRank(page) { return rank.get(page); - } + }, // Return whether the specified page should be "boosted". - export function isBoosted(page) { + isBoosted(page) { return rank.isImplicitlyBoosted(page) || rank.isExplicitlyBoosted(page) || undefined; - } + }, // Fetch a list of primary objects. These objects are generated directly from Hugo-rendered JSON. - export function getPrimaryObjects(hugoPageItems) { + getPrimaryObjects(hugoPageItems) { return hugoPageItems // Exclude drafts, pages blocked from external search listings, those missing object IDs @@ -100,7 +102,7 @@ import * as rank from "./rank"; const isDraft = !!item.params.draft; const isBlockedFromExternalSearch = item.block_external_search_index === true; const isMissingObjectID = item.objectID === ""; - const isZeroRanked = getRank(item) === 0; + const isZeroRanked = this.getRank(item) === 0; const isRedirect = (item.params.redirect_to && item.params.redirect_to !== ""); if (isDraft || isBlockedFromExternalSearch || isRedirect || isMissingObjectID || isZeroRanked) { @@ -113,32 +115,32 @@ import * as rank from "./rank"; // Convert Hugo page items into Algolia index objects. .map(item => { return { - objectID: getObjectID(item), - section: getTopLevelSection(item), + objectID: this.getObjectID(item), + section: this.getTopLevelSection(item), title: item.title, h1: item.params.h1, description: item.params.meta_desc, href: item.href, authors: item.params.authors, tags: item.params.tags, - rank: getRank(item), - boosted: isBoosted(item), - keywords: getKeywords(item), - ancestors: makeAncestorsList(item.ancestors), + rank: this.getRank(item), + boosted: this.isBoosted(item), + keywords: this.getKeywords(item), + ancestors: this.makeAncestorsList(item.ancestors), }; }); - } + }, // Fetch a list of secondary objects. These are things like H2 headings (along with any // explicitly defined keywords, associated content, etc.) that we want to be findable in // addition to page titles, descriptions, and keywords. - export function getSecondaryObjects(sitePageObjects) { + getSecondaryObjects(sitePageObjects) { const secondaries = []; sitePageObjects .filter(pageObject => !pageObject.href.match(/registry|pkg|blog/)) .forEach(pageObject => { - const domContent = getDOMContent(pageObject); + const domContent = this.getDOMContent(pageObject); const ancestors = pageObject.ancestors; if (domContent.subheads) { @@ -146,9 +148,9 @@ import * as rank from "./rank"; const href = `${ pageObject.href }#${ subhead.anchor }`; secondaries.push({ - objectID: getObjectID({ href }), + objectID: this.getObjectID({ href }), section: pageObject.section, - ancestors: makeAncestorsList([ ...ancestors, pageObject.title ]), + ancestors: this.makeAncestorsList([ ...ancestors, pageObject.title ]), title: subhead.title, description: (subhead.content || "").substr(0, 200), href, @@ -159,25 +161,26 @@ import * as rank from "./rank"; }); return secondaries; + }, + + // Clean up (i.e., de-dupe, simplify, etc.) the items in a breadcrumb list. + makeAncestorsList(rawList) { + return [ ...new Set(rawList) ] + .filter(s => s?.trim() !== "") + .map(s => { + if (s === "Pulumi Registry") { + return "Registry"; + } + return s; + }); + }, + + // Every Algolia record requires a unique ID. Since every record should also have a unique URL, + // we use the URL to generate the unique ID. + // + // If, at some point, we find that we need to have two records pointing to the same URL, we can + // add another parameter to the list and hash both. + getObjectID({ href }) { + return crypto.createHash("md5").update(href).digest("hex"); } - -// Clean up (i.e., de-dupe, simplify, etc.) the items in a breadcrumb list. -export function makeAncestorsList(rawList: string[]) { - return Array.from(new Set(rawList).values()) - .filter(s => s?.trim() !== "") - .map(s => { - if (s === "Pulumi Registry") { - return "Registry"; - } - return s; - }); -} - -// Every Algolia record requires a unique ID. Since every record should also have a unique URL, -// we use the URL to generate the unique ID. -// -// If, at some point, we find that we need to have two records pointing to the same URL, we can -// add another parameter to the list and hash both. -export function getObjectID({ href }) { - return crypto.createHash("md5").update(href).digest("hex"); -} +}; diff --git a/scripts/search/rank.ts b/scripts/search/rank.js similarity index 95% rename from scripts/search/rank.ts rename to scripts/search/rank.js index a4d124485548..0890ea5835b5 100644 --- a/scripts/search/rank.ts +++ b/scripts/search/rank.js @@ -1,7 +1,9 @@ +module.exports = { + // Return the explicit or implicit rank for a given page. See the Algolia documentation to learn // more about how Algolia ranking and relevance work. // https://www.algolia.com/doc/guides/managing-results/must-do/custom-ranking/ - export function get(page) { + get(page) { // If the page is explicitly ranked zero, return zero. const explicitRank = this.getExplicitRank(page); @@ -16,21 +18,21 @@ // Otherwise, return its implicit rank. return this.getImplicitRank(page); - } + }, // Rank can be set at the page level as well (e.g., in YAML frontmatter: `search.rank: 123`). - export function getExplicitRank(page) { + getExplicitRank(page) { return page.params?.search?.rank; - } + }, // Pages can be boosted at the page level also (e.g., `search.boost: true`) - export function isExplicitlyBoosted(page) { + isExplicitlyBoosted(page) { return !!page.params?.search?.boost; - } + }, // Implicit keywords are derived from the page's URL. We do this to make string matches more // likely. (For example, to surface both AWS Classic and AWS Native for queries for 'aws'.) - export function getImplicitKeywords(page) { + getImplicitKeywords(page) { const match = page.href.match(/^\/registry\/packages\/(aws|aws-native|azure|azure-native|gcp|google-native|kubernetes)\/$/); if (match && match[1]) { @@ -40,12 +42,12 @@ } return []; - } + }, // Implicit rankings allow us to codify how relevant our pages are in relation to one another. // Rankings are applied in descending order numerically (i.e., for a given query, higher-ranked // pages will will show up before lower-ranked ones). - export function getImplicitRank(page) { + getImplicitRank(page) { // Get-started pages. if (page.href.match(/^\/docs\/clouds\/(aws|azure|gcp|kubernetes)\/get-started\//)) { @@ -163,9 +165,9 @@ if (page.href.startsWith("/blog")) { return 290; } - } + }, - export function isImplicitlyBoosted(page) { + isImplicitlyBoosted(page) { // Tier-1 provider pages also get boosted. if (page.href.match(/^\/registry\/packages\/(aws|azure-native|gcp|kubernetes)\/$/)) { @@ -174,3 +176,4 @@ return false; } +} diff --git a/scripts/search/registry.js b/scripts/search/registry.js new file mode 100644 index 000000000000..d15fc777b4da --- /dev/null +++ b/scripts/search/registry.js @@ -0,0 +1,86 @@ +const fs = require("fs"); +const path = require("path"); +const page = require("./page"); + +module.exports = { + + // Fetch a set of objects representing all Registry resources. + getObjects(pathToRegistryJSON, hugoPageItems) { + const registryPackageNames = fs.readdirSync(pathToRegistryJSON); + const registryItems = []; + + registryPackageNames + .map(providerJSON => { + const providerName = providerJSON.replace(".json", ""); + const providerResults = []; + + // API docs JSON doesn't contain proper provider/package names, so we obtain those + // from the Hugo-generated set. + const providerTitle = hugoPageItems.find(o => { + return o.href === `/registry/packages/${providerName}/`; + }).title; + + // Read the API docs JSON file. + const providerItems = JSON.parse( + fs.readFileSync(path.join(pathToRegistryJSON, providerJSON), "utf8").toString(), + ); + + // For every resource in that file, generate an individual search record, including + // tokens as keywords to make them easier to find by copy/paste. + function getMember(itemPath, item) { + + // Some of the items in our registry nav files contain trailing slashes, which + // don't play nicely with the string concatenation we do to build up our search + // URLs. So we strip them out to avoid ending up with doubles (and thus 404s). + item.link = item.link.replace(/\/+$/, ""); + + providerResults.push({ + title: `${item.name} (${itemPath.concat(item.name).join(".")})`, + description: `API documentation for the ${item.name} ${item.type} of the ${providerTitle} provider, including examples, input and output properties, lookup functions, and supporting types.`, + type: item.type, + href: `/registry/packages/${providerName}/api-docs/${itemPath.concat(item.link).slice(1).join("/").toLowerCase()}/`, + keywords: [ + item.name, + itemPath.concat(item.name).slice(1).join(" ").toLowerCase(), + itemPath.concat(item.name).join("."), + itemPath.concat(item.name).join(":"), + itemPath.concat(item.name).join(" "), + `${providerTitle} ${item.name}` + ], + ancestors: [ "Registry", providerTitle, "API Docs" ], + }); + + if (item.children) { + item.children.map(child => { + getMember([...itemPath, item.name], child); + }); + } + } + + providerItems.forEach(item => { + getMember([ providerName ], item); + }); + + return { + name: providerName, + items: providerResults, + }; + }) + .forEach(member => { + registryItems.push(...member.items); + }); + + return registryItems.map(item => { + return { + objectID: page.getObjectID(item), + title: item.title, + description: item.description, + section: "Registry", + href: item.href, + rank: page.getRank(item), + keywords: item.keywords, + ancestors: item.ancestors, + }; + }); + } +}; diff --git a/scripts/search/settings.js b/scripts/search/settings.js new file mode 100644 index 000000000000..120a5c7bb7fd --- /dev/null +++ b/scripts/search/settings.js @@ -0,0 +1,212 @@ +const page = require("./page"); + +// Algolia index settings. +// +// Changes to this file should be made with extreme care. +module.exports = { + + // Attributes for faceting are the properties to use for top-level filtering of results -- for + // example, whether a given record is returned for a "Docs" query, "Registry" query, and so on. + // https://www.algolia.com/doc/api-reference/api-parameters/attributesForFaceting/ + getAttributesForFaceting() { + return [ + "searchable(section)", + ]; + }, + + // Synonyms allow us to surface content that may not directly match users' queries. + // https://www.algolia.com/doc/api-reference/api-methods/save-synonyms/#save-synonyms + getSynonyms() { + return [ + [".NET", "dotnet"], + ["aws", "aws classic"], + ["azure", "azure native"], + ["azuread", "azure ad", "azure active directory"], + ["c#", "csharp"], + ["cfn", "cloudformation"], + ["config", "configuration"], + ["crossguard", "pac", "policy as code"], + ["crosswalk", "awsx"], + ["f#", "fsharp"], + ["gcp", "google cloud"], + ["how-to guide", "how to guide", "example"], + ["k8s", "kube", "kubernetes"], + ["openid connect", "oidc"], + ["org", "organization"], + ["provider", "package"], + ["pulumi service", "pulumi console", "pulumi cloud"], + ["rbac", "role based access control"], + ["saml", "sso"], + ["stack reference", "stackreference"], + ["tf", "terraform"], + ["vm", "virtual machine"], + ] + .map((synonyms, i) => { + return { + objectID: `synonym-${i}`, + type: "synonym", + synonyms, + }; + }); + }, + + // Searchable attributes control the fields that Algolia uses for query matching, as well as how + // relevant those fields are in relation to one another. + // + // The items in this list and their order are extremely significant. Do not adjust this list in + // any way unless you fully understand the implications of your change *and* you have verified + // the change on an index that isn't production. + // + // https://www.algolia.com/doc/guides/sending-and-managing-data/prepare-your-data/how-to/setting-searchable-attributes/#set-searchable-attributes-with-the-api + getSearchableAttributes() { + return [ + "title,h1", // Title and H1 are considered of equal relevance, so they're listed on the same level. + "keywords", // Keywords are treated as ordered. Those higher up in the list are considered more relevant. + "href", // Hrefs are considered searchable as well. (URLs often contain relevant keywords.) + "unordered(tags)", // Tags are treated as unordered. Unlike keywords, their order has no significance. + "ancestors", // Ancestors contains a list of the labels comprising a breadcrumb. (These often contain relevant keywords also.) + "description", // Descriptions occasionally contain relevant keywords, but often don't, so we place them further down in the list. + "section", // Section is the primary "facet" of a record -- Docs, Registry, Blog, Examples, etc. + "unordered(authors)", // Blog-post authors are occasionally useful for searching, but their order is considered irrelevant. + ]; + }, + + // Attributes to highlight contains the list of searchable attributes that might be used to highlight query matches in the UI. + // https://www.algolia.com/doc/api-reference/api-parameters/attributesToHighlight/ + getAttributesToHighlight() { + return [ + "title", + "h1", + "description", + ]; + }, + + // Custom rankings are the attributes that Algolia uses for determining relative ranking -- + // specifically for breaking ties between records that rank similarly for text matching. Similar + // to the above, order here is significant as well, so any changes here should be made with + // equal care. + // + // https://www.algolia.com/doc/guides/managing-results/must-do/custom-ranking/how-to/configure-custom-ranking + getCustomRanking() { + return [ + + // https://www.algolia.com/doc/guides/managing-results/must-do/custom-ranking/how-to/configure-custom-ranking/#configure-custom-ranking-with-the-api + "desc(rank)", + + // https://www.algolia.com/doc/guides/managing-results/must-do/custom-ranking/how-to/boost-or-penalize-some-records/#using-the-api + "desc(boosted)", + ]; + }, + + // Rules are explicit instructions that apply fine-grained control over how certain queries are handled. + // https://www.algolia.com/doc/guides/managing-results/rules/rules-overview/ + // https://www.algolia.com/doc/api-reference/api-methods/save-rule + getRules() { + return [ + + // When the query is for "cloud", deliver the Pulumi Cloud overview page as the top result. + { + objectID: "is-cloud", + enabled: true, + conditions: [ + { + anchoring: "is", + pattern: "cloud", + alternatives: false, + }, + ], + consequence: { + filterPromotes: true, + promote: [ + { + position: 0, + objectIDs: [ + page.getObjectID({ href: "/docs/pulumi-cloud/" }), + ], + }, + ], + }, + }, + + // When the query contains "awsx" and the section is Registry, return AWSx, API Gateway, and EKS as the top results. + { + objectID: "contains-awsx-and-is-registry", + enabled: true, + conditions: [ + { + anchoring: "contains", + pattern: "awsx", + alternatives: true, + filters: "(\"section\":\"Registry\")" + } + ], + consequence: { + filterPromotes: true, + promote: [ + { + position: 0, + objectIDs: [ + page.getObjectID({ href: "/registry/packages/awsx/" }), + page.getObjectID({ href: "/registry/packages/aws-apigateway/" }), + page.getObjectID({ href: "/registry/packages/eks/" }), + ], + }, + ], + }, + }, + + // When the query contains "awsx" and the section is Docs, return the AWS Guides as the top result. + { + objectID: "contains-awsx-and-is-docs", + enabled: true, + conditions: [ + { + anchoring: "contains", + pattern: "awsx", + alternatives: true, + filters: "(\"section\":\"Docs\")" + } + ], + consequence: { + filterPromotes: true, + promote: [ + { + position: 0, + objectIDs: [ + page.getObjectID({ href: "/docs/iac/clouds/aws/guides/" }), + ], + }, + ], + }, + }, + + // When the query contains "awsx" and the section is "Docs or Registry", return the Guides, AWSx, API Gateway, and EKS. + { + objectID: "contains-awsx-and-is-docs-or-registry", + enabled: true, + conditions: [ + { + anchoring: "contains", + pattern: "awsx", + alternatives: true, + filters: "(\"section\":\"Docs\" OR \"section\":\"Registry\")" + } + ], + consequence: { + filterPromotes: true, + promote: [ + { + position: 0, + objectIDs: [ + page.getObjectID({ href: "/docs/iac/clouds/aws/guides/" }), + page.getObjectID({ href: "/registry/packages/awsx/" }), + page.getObjectID({ href: "/registry/packages/aws-apigateway/" }), + page.getObjectID({ href: "/registry/packages/eks/" }), + ], + }, + ], + }, + }, + ]; + }, +}; diff --git a/scripts/search/settings.ts b/scripts/search/settings.ts deleted file mode 100644 index a6f77260b0e7..000000000000 --- a/scripts/search/settings.ts +++ /dev/null @@ -1,211 +0,0 @@ -import { Rule, Synonym } from '@algolia/client-search'; -import * as page from "./page"; - -// Algolia index settings. -// -// Changes to this file should be made with extreme care. - -// Attributes for faceting are the properties to use for top-level filtering of results -- for -// example, whether a given record is returned for a "Docs" query, "Registry" query, and so on. -// https://www.algolia.com/doc/api-reference/api-parameters/attributesForFaceting/ -export function getAttributesForFaceting() { - return [ - "searchable(section)", - ]; -} - -// Synonyms allow us to surface content that may not directly match users' queries. -// https://www.algolia.com/doc/api-reference/api-methods/save-synonyms/#save-synonyms -export function getSynonyms(): Synonym[] { - return [ - [".NET", "dotnet"], - ["aws", "aws classic"], - ["azure", "azure native"], - ["azuread", "azure ad", "azure active directory"], - ["c#", "csharp"], - ["cfn", "cloudformation"], - ["config", "configuration"], - ["crossguard", "pac", "policy as code"], - ["crosswalk", "awsx"], - ["f#", "fsharp"], - ["gcp", "google cloud"], - ["how-to guide", "how to guide", "example"], - ["k8s", "kube", "kubernetes"], - ["openid connect", "oidc"], - ["org", "organization"], - ["provider", "package"], - ["pulumi service", "pulumi console", "pulumi cloud"], - ["rbac", "role based access control"], - ["saml", "sso"], - ["stack reference", "stackreference"], - ["tf", "terraform"], - ["vm", "virtual machine"], - ] - .map((synonyms, i) => { - return { - objectID: `synonym-${i}`, - type: "synonym", - synonyms, - }; - }); -} - -// Searchable attributes control the fields that Algolia uses for query matching, as well as how -// relevant those fields are in relation to one another. -// -// The items in this list and their order are extremely significant. Do not adjust this list in -// any way unless you fully understand the implications of your change *and* you have verified -// the change on an index that isn't production. -// -// https://www.algolia.com/doc/guides/sending-and-managing-data/prepare-your-data/how-to/setting-searchable-attributes/#set-searchable-attributes-with-the-api -export function getSearchableAttributes() { - return [ - "title,h1", // Title and H1 are considered of equal relevance, so they're listed on the same level. - "keywords", // Keywords are treated as ordered. Those higher up in the list are considered more relevant. - "href", // Hrefs are considered searchable as well. (URLs often contain relevant keywords.) - "unordered(tags)", // Tags are treated as unordered. Unlike keywords, their order has no significance. - "ancestors", // Ancestors contains a list of the labels comprising a breadcrumb. (These often contain relevant keywords also.) - "description", // Descriptions occasionally contain relevant keywords, but often don't, so we place them further down in the list. - "section", // Section is the primary "facet" of a record -- Docs, Registry, Blog, Examples, etc. - "unordered(authors)", // Blog-post authors are occasionally useful for searching, but their order is considered irrelevant. - ]; -} - -// Attributes to highlight contains the list of searchable attributes that might be used to highlight query matches in the UI. -// https://www.algolia.com/doc/api-reference/api-parameters/attributesToHighlight/ -export function getAttributesToHighlight() { - return [ - "title", - "h1", - "description", - ]; -} - -// Custom rankings are the attributes that Algolia uses for determining relative ranking -- -// specifically for breaking ties between records that rank similarly for text matching. Similar -// to the above, order here is significant as well, so any changes here should be made with -// equal care. -// -// https://www.algolia.com/doc/guides/managing-results/must-do/custom-ranking/how-to/configure-custom-ranking -export function getCustomRanking() { - return [ - - // https://www.algolia.com/doc/guides/managing-results/must-do/custom-ranking/how-to/configure-custom-ranking/#configure-custom-ranking-with-the-api - "desc(rank)", - - // https://www.algolia.com/doc/guides/managing-results/must-do/custom-ranking/how-to/boost-or-penalize-some-records/#using-the-api - "desc(boosted)", - ]; -} - -// Rules are explicit instructions that apply fine-grained control over how certain queries are handled. -// https://www.algolia.com/doc/guides/managing-results/rules/rules-overview/ -// https://www.algolia.com/doc/api-reference/api-methods/save-rule -export function getRules(): Rule[] { - return [ - - // When the query is for "cloud", deliver the Pulumi Cloud overview page as the top result. - { - objectID: "is-cloud", - enabled: true, - conditions: [ - { - anchoring: "is", - pattern: "cloud", - alternatives: false, - }, - ], - consequence: { - filterPromotes: true, - promote: [ - { - position: 0, - objectIDs: [ - page.getObjectID({ href: "/docs/pulumi-cloud/" }), - ], - }, - ], - }, - }, - - // When the query contains "awsx" and the section is Registry, return AWSx, API Gateway, and EKS as the top results. - { - objectID: "contains-awsx-and-is-registry", - enabled: true, - conditions: [ - { - anchoring: "contains", - pattern: "awsx", - alternatives: true, - filters: "(\"section\":\"Registry\")" - } - ], - consequence: { - filterPromotes: true, - promote: [ - { - position: 0, - objectIDs: [ - page.getObjectID({ href: "/registry/packages/awsx/" }), - page.getObjectID({ href: "/registry/packages/aws-apigateway/" }), - page.getObjectID({ href: "/registry/packages/eks/" }), - ], - }, - ], - }, - }, - - // When the query contains "awsx" and the section is Docs, return the AWS Guides as the top result. - { - objectID: "contains-awsx-and-is-docs", - enabled: true, - conditions: [ - { - anchoring: "contains", - pattern: "awsx", - alternatives: true, - filters: "(\"section\":\"Docs\")" - } - ], - consequence: { - filterPromotes: true, - promote: [ - { - position: 0, - objectIDs: [ - page.getObjectID({ href: "/docs/iac/clouds/aws/guides/" }), - ], - }, - ], - }, - }, - - // When the query contains "awsx" and the section is "Docs or Registry", return the Guides, AWSx, API Gateway, and EKS. - { - objectID: "contains-awsx-and-is-docs-or-registry", - enabled: true, - conditions: [ - { - anchoring: "contains", - pattern: "awsx", - alternatives: true, - filters: "(\"section\":\"Docs\" OR \"section\":\"Registry\")" - } - ], - consequence: { - filterPromotes: true, - promote: [ - { - position: 0, - objectIDs: [ - page.getObjectID({ href: "/docs/iac/clouds/aws/guides/" }), - page.getObjectID({ href: "/registry/packages/awsx/" }), - page.getObjectID({ href: "/registry/packages/aws-apigateway/" }), - page.getObjectID({ href: "/registry/packages/eks/" }), - ], - }, - ], - }, - }, - ]; -} diff --git a/scripts/search/update-search-index.ts b/scripts/search/update-search-index.js similarity index 94% rename from scripts/search/update-search-index.ts rename to scripts/search/update-search-index.js index 6f30bf612701..14af3a04663d 100644 --- a/scripts/search/update-search-index.ts +++ b/scripts/search/update-search-index.js @@ -1,6 +1,6 @@ -import { default as axios } from "axios"; -import * as settings from "./settings"; -import * as algoliasearch from "algoliasearch"; +const axios = require('axios'); +const settings = require("./settings"); +const algoliasearch = require("algoliasearch"); // URL of the JSON file const registrySearchIndexUrl = "https://www.pulumi.com/registry/search-index.json"; @@ -19,7 +19,7 @@ if (!config.appID || !config.searchAPIKey || !config.adminAPIKey || !config.inde } // Initialize the Algolia search client. -const client = algoliasearch.default(config.appID, config.adminAPIKey); +const client = algoliasearch(config.appID, config.adminAPIKey); const algoliaIndex = client.initIndex(config.indexName); async function publishIndex() { @@ -100,4 +100,4 @@ async function publishIndex() { await updateIndex(allObjects); } -publishIndex(); +publishIndex(); \ No newline at end of file diff --git a/scripts/sync-and-test-bucket.sh b/scripts/sync-and-test-bucket.sh index 472d24f1ccd7..bc58d4ebb8a2 100755 --- a/scripts/sync-and-test-bucket.sh +++ b/scripts/sync-and-test-bucket.sh @@ -37,7 +37,7 @@ destination_bucket_uri="s3://${destination_bucket}" # Translate Hugo redirects into a file we'll use for making 301 redirects later. Note that # we do this before syncing the site, as having the redirects file available for reference # can be helpful for debugging purposes. -node scripts/translate-redirects.cjs "$build_dir" "$(pulumi -C infrastructure config get redirectDomain 2>/dev/null || echo '')" +node scripts/translate-redirects.js "$build_dir" "$(pulumi -C infrastructure config get redirectDomain 2>/dev/null || echo '')" # Make the bucket. If this fails, there are two explanations, given the way we're naming # our buckets: either a previous run failed at some point after creating the bucket, in diff --git a/scripts/translate-redirects.cjs b/scripts/translate-redirects.js similarity index 100% rename from scripts/translate-redirects.cjs rename to scripts/translate-redirects.js diff --git a/theme/package.json b/theme/package.json index 542f4731fe6f..8dc0f35df702 100644 --- a/theme/package.json +++ b/theme/package.json @@ -30,8 +30,8 @@ "sass": "^1.38.2", "sass-loader": "^12.1.0", "terser-webpack-plugin": "^5.2.0", - "ts-loader": "^9.5.2", - "typescript": "^5.7.0", + "ts-loader": "^9.2.5", + "typescript": "^3.9.0", "webpack": "^5.76.0", "webpack-cli": "^4.8.0", "webpack-shell-plugin-next": "^2.2.2" diff --git a/theme/src/ts/algolia/utils.ts b/theme/src/ts/algolia/utils.ts index 8fb8be07c5f9..c9760ec520f6 100644 --- a/theme/src/ts/algolia/utils.ts +++ b/theme/src/ts/algolia/utils.ts @@ -49,7 +49,7 @@ export function getTagsPlugin(baseTags) { { sourceId: "section", getTag: ({ item }) => { - return item as any; + return item; }, }, ]; diff --git a/theme/yarn.lock b/theme/yarn.lock index d340b7f362f4..1b8cc257b675 100644 --- a/theme/yarn.lock +++ b/theme/yarn.lock @@ -2293,11 +2293,6 @@ source-map@^0.6.0, source-map@^0.6.1: resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== -source-map@^0.7.4: - version "0.7.4" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.4.tgz#a9bbe705c9d8846f4e08ff6765acf0f1b0898656" - integrity sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA== - spawn-command@^0.0.2-1: version "0.0.2-1" resolved "https://registry.yarnpkg.com/spawn-command/-/spawn-command-0.0.2-1.tgz#62f5e9466981c1b796dc5929937e11c9c6921bd0" @@ -2486,16 +2481,15 @@ tree-kill@^1.2.2: resolved "https://registry.yarnpkg.com/tree-kill/-/tree-kill-1.2.2.tgz#4ca09a9092c88b73a7cdc5e8a01b507b0790a0cc" integrity sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A== -ts-loader@^9.5.2: - version "9.5.2" - resolved "https://registry.yarnpkg.com/ts-loader/-/ts-loader-9.5.2.tgz#1f3d7f4bb709b487aaa260e8f19b301635d08020" - integrity sha512-Qo4piXvOTWcMGIgRiuFa6nHNm+54HbYaZCKqc9eeZCLRy3XqafQgwX2F7mofrbJG3g7EEb+lkiR+z2Lic2s3Zw== +ts-loader@^9.2.5: + version "9.2.6" + resolved "https://registry.yarnpkg.com/ts-loader/-/ts-loader-9.2.6.tgz#9937c4dd0a1e3dbbb5e433f8102a6601c6615d74" + integrity sha512-QMTC4UFzHmu9wU2VHZEmWWE9cUajjfcdcws+Gh7FhiO+Dy0RnR1bNz0YCHqhI0yRowCE9arVnNxYHqELOy9Hjw== dependencies: chalk "^4.1.0" enhanced-resolve "^5.0.0" micromatch "^4.0.0" semver "^7.3.4" - source-map "^0.7.4" tslib@^1.9.0: version "1.14.1" @@ -2507,10 +2501,10 @@ type-fest@^0.6.0: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== -typescript@^5.7.0: - version "5.7.3" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.7.3.tgz#919b44a7dbb8583a9b856d162be24a54bf80073e" - integrity sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw== +typescript@^3.9.0: + version "3.9.10" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.9.10.tgz#70f3910ac7a51ed6bef79da7800690b19bf778b8" + integrity sha512-w6fIxVE/H1PkLKcCPsFqKE7Kv7QUwhU8qQY2MueZXWx5cPZdwFupLgKK3vntcK98BtNHZtAF4LA/yl2a7k8R6Q== uniqs@^2.0.0: version "2.0.0" diff --git a/tsconfig.scripts.json b/tsconfig.scripts.json deleted file mode 100644 index 7da7af50f903..000000000000 --- a/tsconfig.scripts.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "compilerOptions": { - "module": "preserve" - }, - "include": ["scripts"], - "exclude": ["node_modules"] -} diff --git a/yarn.lock b/yarn.lock index 02629eda660c..90efc3f48592 100644 --- a/yarn.lock +++ b/yarn.lock @@ -672,12 +672,12 @@ "@colors/colors@1.5.0": version "1.5.0" - resolved "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz" + resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9" integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ== "@cypress/request@^3.0.0": version "3.0.1" - resolved "https://registry.npmjs.org/@cypress/request/-/request-3.0.1.tgz" + resolved "https://registry.yarnpkg.com/@cypress/request/-/request-3.0.1.tgz#72d7d5425236a2413bd3d8bb66d02d9dc3168960" integrity sha512-TWivJlJi8ZDx2wGOw1dbLuHJKUYX7bWySw377nlnGOW3hP9/MUKIsEdXT/YngWxVdgNCHRBmFlBipE+5/2ZZlQ== dependencies: aws-sign2 "~0.7.0" @@ -707,126 +707,6 @@ debug "^3.1.0" lodash.once "^4.1.1" -"@esbuild/aix-ppc64@0.23.1": - version "0.23.1" - resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.23.1.tgz#51299374de171dbd80bb7d838e1cfce9af36f353" - integrity sha512-6VhYk1diRqrhBAqpJEdjASR/+WVRtfjpqKuNw11cLiaWpAT/Uu+nokB+UJnevzy/P9C/ty6AOe0dwueMrGh/iQ== - -"@esbuild/android-arm64@0.23.1": - version "0.23.1" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.23.1.tgz#58565291a1fe548638adb9c584237449e5e14018" - integrity sha512-xw50ipykXcLstLeWH7WRdQuysJqejuAGPd30vd1i5zSyKK3WE+ijzHmLKxdiCMtH1pHz78rOg0BKSYOSB/2Khw== - -"@esbuild/android-arm@0.23.1": - version "0.23.1" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.23.1.tgz#5eb8c652d4c82a2421e3395b808e6d9c42c862ee" - integrity sha512-uz6/tEy2IFm9RYOyvKl88zdzZfwEfKZmnX9Cj1BHjeSGNuGLuMD1kR8y5bteYmwqKm1tj8m4cb/aKEorr6fHWQ== - -"@esbuild/android-x64@0.23.1": - version "0.23.1" - resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.23.1.tgz#ae19d665d2f06f0f48a6ac9a224b3f672e65d517" - integrity sha512-nlN9B69St9BwUoB+jkyU090bru8L0NA3yFvAd7k8dNsVH8bi9a8cUAUSEcEEgTp2z3dbEDGJGfP6VUnkQnlReg== - -"@esbuild/darwin-arm64@0.23.1": - version "0.23.1" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.23.1.tgz#05b17f91a87e557b468a9c75e9d85ab10c121b16" - integrity sha512-YsS2e3Wtgnw7Wq53XXBLcV6JhRsEq8hkfg91ESVadIrzr9wO6jJDMZnCQbHm1Guc5t/CdDiFSSfWP58FNuvT3Q== - -"@esbuild/darwin-x64@0.23.1": - version "0.23.1" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.23.1.tgz#c58353b982f4e04f0d022284b8ba2733f5ff0931" - integrity sha512-aClqdgTDVPSEGgoCS8QDG37Gu8yc9lTHNAQlsztQ6ENetKEO//b8y31MMu2ZaPbn4kVsIABzVLXYLhCGekGDqw== - -"@esbuild/freebsd-arm64@0.23.1": - version "0.23.1" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.23.1.tgz#f9220dc65f80f03635e1ef96cfad5da1f446f3bc" - integrity sha512-h1k6yS8/pN/NHlMl5+v4XPfikhJulk4G+tKGFIOwURBSFzE8bixw1ebjluLOjfwtLqY0kewfjLSrO6tN2MgIhA== - -"@esbuild/freebsd-x64@0.23.1": - version "0.23.1" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.23.1.tgz#69bd8511fa013b59f0226d1609ac43f7ce489730" - integrity sha512-lK1eJeyk1ZX8UklqFd/3A60UuZ/6UVfGT2LuGo3Wp4/z7eRTRYY+0xOu2kpClP+vMTi9wKOfXi2vjUpO1Ro76g== - -"@esbuild/linux-arm64@0.23.1": - version "0.23.1" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.23.1.tgz#8050af6d51ddb388c75653ef9871f5ccd8f12383" - integrity sha512-/93bf2yxencYDnItMYV/v116zff6UyTjo4EtEQjUBeGiVpMmffDNUyD9UN2zV+V3LRV3/on4xdZ26NKzn6754g== - -"@esbuild/linux-arm@0.23.1": - version "0.23.1" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.23.1.tgz#ecaabd1c23b701070484990db9a82f382f99e771" - integrity sha512-CXXkzgn+dXAPs3WBwE+Kvnrf4WECwBdfjfeYHpMeVxWE0EceB6vhWGShs6wi0IYEqMSIzdOF1XjQ/Mkm5d7ZdQ== - -"@esbuild/linux-ia32@0.23.1": - version "0.23.1" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.23.1.tgz#3ed2273214178109741c09bd0687098a0243b333" - integrity sha512-VTN4EuOHwXEkXzX5nTvVY4s7E/Krz7COC8xkftbbKRYAl96vPiUssGkeMELQMOnLOJ8k3BY1+ZY52tttZnHcXQ== - -"@esbuild/linux-loong64@0.23.1": - version "0.23.1" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.23.1.tgz#a0fdf440b5485c81b0fbb316b08933d217f5d3ac" - integrity sha512-Vx09LzEoBa5zDnieH8LSMRToj7ir/Jeq0Gu6qJ/1GcBq9GkfoEAoXvLiW1U9J1qE/Y/Oyaq33w5p2ZWrNNHNEw== - -"@esbuild/linux-mips64el@0.23.1": - version "0.23.1" - resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.23.1.tgz#e11a2806346db8375b18f5e104c5a9d4e81807f6" - integrity sha512-nrFzzMQ7W4WRLNUOU5dlWAqa6yVeI0P78WKGUo7lg2HShq/yx+UYkeNSE0SSfSure0SqgnsxPvmAUu/vu0E+3Q== - -"@esbuild/linux-ppc64@0.23.1": - version "0.23.1" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.23.1.tgz#06a2744c5eaf562b1a90937855b4d6cf7c75ec96" - integrity sha512-dKN8fgVqd0vUIjxuJI6P/9SSSe/mB9rvA98CSH2sJnlZ/OCZWO1DJvxj8jvKTfYUdGfcq2dDxoKaC6bHuTlgcw== - -"@esbuild/linux-riscv64@0.23.1": - version "0.23.1" - resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.23.1.tgz#65b46a2892fc0d1af4ba342af3fe0fa4a8fe08e7" - integrity sha512-5AV4Pzp80fhHL83JM6LoA6pTQVWgB1HovMBsLQ9OZWLDqVY8MVobBXNSmAJi//Csh6tcY7e7Lny2Hg1tElMjIA== - -"@esbuild/linux-s390x@0.23.1": - version "0.23.1" - resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.23.1.tgz#e71ea18c70c3f604e241d16e4e5ab193a9785d6f" - integrity sha512-9ygs73tuFCe6f6m/Tb+9LtYxWR4c9yg7zjt2cYkjDbDpV/xVn+68cQxMXCjUpYwEkze2RcU/rMnfIXNRFmSoDw== - -"@esbuild/linux-x64@0.23.1": - version "0.23.1" - resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.23.1.tgz#d47f97391e80690d4dfe811a2e7d6927ad9eed24" - integrity sha512-EV6+ovTsEXCPAp58g2dD68LxoP/wK5pRvgy0J/HxPGB009omFPv3Yet0HiaqvrIrgPTBuC6wCH1LTOY91EO5hQ== - -"@esbuild/netbsd-x64@0.23.1": - version "0.23.1" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.23.1.tgz#44e743c9778d57a8ace4b72f3c6b839a3b74a653" - integrity sha512-aevEkCNu7KlPRpYLjwmdcuNz6bDFiE7Z8XC4CPqExjTvrHugh28QzUXVOZtiYghciKUacNktqxdpymplil1beA== - -"@esbuild/openbsd-arm64@0.23.1": - version "0.23.1" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-arm64/-/openbsd-arm64-0.23.1.tgz#05c5a1faf67b9881834758c69f3e51b7dee015d7" - integrity sha512-3x37szhLexNA4bXhLrCC/LImN/YtWis6WXr1VESlfVtVeoFJBRINPJ3f0a/6LV8zpikqoUg4hyXw0sFBt5Cr+Q== - -"@esbuild/openbsd-x64@0.23.1": - version "0.23.1" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.23.1.tgz#2e58ae511bacf67d19f9f2dcd9e8c5a93f00c273" - integrity sha512-aY2gMmKmPhxfU+0EdnN+XNtGbjfQgwZj43k8G3fyrDM/UdZww6xrWxmDkuz2eCZchqVeABjV5BpildOrUbBTqA== - -"@esbuild/sunos-x64@0.23.1": - version "0.23.1" - resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.23.1.tgz#adb022b959d18d3389ac70769cef5a03d3abd403" - integrity sha512-RBRT2gqEl0IKQABT4XTj78tpk9v7ehp+mazn2HbUeZl1YMdaGAQqhapjGTCe7uw7y0frDi4gS0uHzhvpFuI1sA== - -"@esbuild/win32-arm64@0.23.1": - version "0.23.1" - resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.23.1.tgz#84906f50c212b72ec360f48461d43202f4c8b9a2" - integrity sha512-4O+gPR5rEBe2FpKOVyiJ7wNDPA8nGzDuJ6gN4okSA1gEOYZ67N8JPk58tkWtdtPeLz7lBnY6I5L3jdsr3S+A6A== - -"@esbuild/win32-ia32@0.23.1": - version "0.23.1" - resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.23.1.tgz#5e3eacc515820ff729e90d0cb463183128e82fac" - integrity sha512-BcaL0Vn6QwCwre3Y717nVHZbAa4UBEigzFm6VdsVdT/MbZ38xoj1X9HPkZhbmaBGUD1W8vxAfffbDe8bA6AKnQ== - -"@esbuild/win32-x64@0.23.1": - version "0.23.1" - resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.23.1.tgz#81fd50d11e2c32b2d6241470e3185b70c7b30699" - integrity sha512-BHpFFeslkWrXWyUPnbKm+xYYVYruCinGcftSBaa8zoF9hZO4BcSCFUvHVTtzpIY6YzUnYtuEhZ+C9iEXjxnasg== - "@fullhuman/postcss-purgecss@^4.0.3": version "4.1.3" resolved "https://registry.npmjs.org/@fullhuman/postcss-purgecss/-/postcss-purgecss-4.1.3.tgz" @@ -834,18 +714,9 @@ dependencies: purgecss "^4.1.3" -"@gerrit0/mini-shiki@^1.24.0": - version "1.27.2" - resolved "https://registry.npmjs.org/@gerrit0/mini-shiki/-/mini-shiki-1.27.2.tgz" - integrity sha512-GeWyHz8ao2gBiUW4OJnQDxXQnFgZQwwQk05t/CVVgNBN7/rK8XZ7xY6YhLVv9tH3VppWWmr9DCl3MwemB/i+Og== - dependencies: - "@shikijs/engine-oniguruma" "^1.27.2" - "@shikijs/types" "^1.27.2" - "@shikijs/vscode-textmate" "^10.0.1" - "@growthbook/growthbook@^1.2.1": version "1.2.1" - resolved "https://registry.npmjs.org/@growthbook/growthbook/-/growthbook-1.2.1.tgz" + resolved "https://registry.yarnpkg.com/@growthbook/growthbook/-/growthbook-1.2.1.tgz#efc236afec8aa061d306d72ab1c9fa67697e513e" integrity sha512-V0of0mGXZ69poOTPoZ8TFkJkPpC9T766NZiJ1qwzwFAl8ZsuunmguC6RP4muri4q5DRPDzf3lRUSWLk0g8bdbw== dependencies: dom-mutator "^0.6.0" @@ -1004,27 +875,6 @@ dependencies: "@octokit/openapi-types" "^13.11.0" -"@shikijs/engine-oniguruma@^1.27.2": - version "1.29.2" - resolved "https://registry.npmjs.org/@shikijs/engine-oniguruma/-/engine-oniguruma-1.29.2.tgz" - integrity sha512-7iiOx3SG8+g1MnlzZVDYiaeHe7Ez2Kf2HrJzdmGwkRisT7r4rak0e655AcM/tF9JG/kg5fMNYlLLKglbN7gBqA== - dependencies: - "@shikijs/types" "1.29.2" - "@shikijs/vscode-textmate" "^10.0.1" - -"@shikijs/types@1.29.2", "@shikijs/types@^1.27.2": - version "1.29.2" - resolved "https://registry.npmjs.org/@shikijs/types/-/types-1.29.2.tgz" - integrity sha512-VJjK0eIijTZf0QSTODEXCqinjBn0joAHQ+aPSBzrv4O2d/QSbsMw+ZeSRx03kV34Hy7NzUvV/7NqfYGRLrASmw== - dependencies: - "@shikijs/vscode-textmate" "^10.0.1" - "@types/hast" "^3.0.4" - -"@shikijs/vscode-textmate@^10.0.1": - version "10.0.1" - resolved "https://registry.npmjs.org/@shikijs/vscode-textmate/-/vscode-textmate-10.0.1.tgz" - integrity sha512-fTIQwLF+Qhuws31iw7Ncl1R3HUDtGwIipiJ9iU+UsDUwMhegFcQKQHd51nZjb7CArq0MvON8rbgCGQYWHUKAdg== - "@sindresorhus/is@^4.0.0": version "4.6.0" resolved "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz" @@ -1521,20 +1371,6 @@ "@types/node" "*" "@types/responselike" "*" -"@types/debug@^4.0.0": - version "4.1.12" - resolved "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz" - integrity sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ== - dependencies: - "@types/ms" "*" - -"@types/hast@^3.0.4": - version "3.0.4" - resolved "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz" - integrity sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ== - dependencies: - "@types/unist" "*" - "@types/http-cache-semantics@*": version "4.0.1" resolved "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz" @@ -1547,11 +1383,6 @@ dependencies: "@types/node" "*" -"@types/katex@^0.16.0": - version "0.16.7" - resolved "https://registry.npmjs.org/@types/katex/-/katex-0.16.7.tgz" - integrity sha512-HMwFiRujE5PjrgwHQ25+bsLJgowjGjm5Z8FVSf0N6PwgJrwxH0QxzHYDcKsTfV3wva0vzrpqMTJS2jXPr5BMEQ== - "@types/keyv@*": version "3.1.4" resolved "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz" @@ -1559,17 +1390,10 @@ dependencies: "@types/node" "*" -"@types/ms@*": - version "2.1.0" - resolved "https://registry.npmjs.org/@types/ms/-/ms-2.1.0.tgz" - integrity sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA== - -"@types/node@*", "@types/node@>=8.9.0", "@types/node@^22.13.1": - version "22.13.1" - resolved "https://registry.npmjs.org/@types/node/-/node-22.13.1.tgz" - integrity sha512-jK8uzQlrvXqEU91UxiK5J7pKHyzgnI1Qnl0QDHIgVGuolJhRb9EEl28Cj9b3rGR8B2lhFCtvIm5os8lFnO/1Ew== - dependencies: - undici-types "~6.20.0" +"@types/node@*", "@types/node@>=8.9.0": + version "18.7.18" + resolved "https://registry.npmjs.org/@types/node/-/node-18.7.18.tgz" + integrity sha512-m+6nTEOadJZuTPkKR/SYK3A2d7FZrgElol9UP1Kae90VVU4a6mxnPuLiIW1m4Cq4gZ/nWb9GrdVXJCoCazDAbg== "@types/responselike@*", "@types/responselike@^1.0.0": version "1.0.0" @@ -1585,7 +1409,7 @@ "@types/sinonjs__fake-timers@8.1.1": version "8.1.1" - resolved "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.1.tgz" + resolved "https://registry.yarnpkg.com/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.1.tgz#b49c2c70150141a15e0fa7e79cf1f92a72934ce3" integrity sha512-0kSuKjAS0TrGLJ0M/+8MaFkGsQhZpB6pxOmvS3K8FYI72K//YmdfoW9X2qPsAKh1mkwxGD5zib9s1FIFed6E8g== "@types/sizzle@^2.3.2": @@ -1593,14 +1417,9 @@ resolved "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.3.tgz" integrity sha512-JYM8x9EGF163bEyhdJBpR2QX1R5naCJHC8ucJylJ3w9/CVBaskdQ8WqBf8MmQrd1kRvp/a4TS8HJ+bxzR7ZJYQ== -"@types/unist@*", "@types/unist@^2.0.0": - version "2.0.11" - resolved "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz" - integrity sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA== - "@types/yauzl@^2.9.1": version "2.10.3" - resolved "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz" + resolved "https://registry.yarnpkg.com/@types/yauzl/-/yauzl-2.10.3.tgz#e9b2808b4f109504a03cda958259876f61017999" integrity sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q== dependencies: "@types/node" "*" @@ -1624,7 +1443,7 @@ agent-base@6: aggregate-error@^3.0.0: version "3.1.0" - resolved "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== dependencies: clean-stack "^2.0.0" @@ -1652,12 +1471,12 @@ algoliasearch@^4.17.0: ansi-colors@^4.1.1: version "4.1.3" - resolved "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.3.tgz#37611340eb2243e70cc604cad35d63270d48781b" integrity sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw== ansi-escapes@^4.3.0: version "4.3.2" - resolved "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== dependencies: type-fest "^0.21.3" @@ -1677,6 +1496,11 @@ ansi-regex@^5.0.1: resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== +ansi-sequence-parser@^1.1.0: + version "1.1.1" + resolved "https://registry.npmjs.org/ansi-sequence-parser/-/ansi-sequence-parser-1.1.1.tgz" + integrity sha512-vJXt3yiaUL4UU546s3rPXlsry/RnM730G1+HkpKE012AN0sx1eOrxSu95oKDIonskeLTijMgqWZ3uDEe3NFvyg== + ansi-styles@^1.1.0: version "1.1.0" resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-1.1.0.tgz" @@ -1704,7 +1528,7 @@ anymatch@~3.1.2: arch@^2.2.0: version "2.2.0" - resolved "https://registry.npmjs.org/arch/-/arch-2.2.0.tgz" + resolved "https://registry.yarnpkg.com/arch/-/arch-2.2.0.tgz#1bc47818f305764f23ab3306b0bfc086c5a29d11" integrity sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ== argparse@^1.0.7: @@ -1716,7 +1540,7 @@ argparse@^1.0.7: argparse@^2.0.1: version "2.0.1" - resolved "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== array-union@^2.1.0: @@ -1738,7 +1562,7 @@ assert-plus@1.0.0, assert-plus@^1.0.0: astral-regex@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== async@^2.6.4: @@ -1790,7 +1614,7 @@ axios@^0.21.1: axios@^1.7.4: version "1.7.4" - resolved "https://registry.npmjs.org/axios/-/axios-1.7.4.tgz" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.7.4.tgz#4c8ded1b43683c8dd362973c393f3ede24052aa2" integrity sha512-DukmaFRnY6AzAALSH4J2M3k6PkaC+MfaAGdEERRWcC9q3/TWQwLpHR8ZRLKTdQ3aBDL64EdluRDjJqKw+BPZEw== dependencies: follow-redirects "^1.15.6" @@ -1804,7 +1628,7 @@ balanced-match@^1.0.0: base64-js@^1.3.1: version "1.5.1" - resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== basic-auth@^1.0.3: @@ -1851,7 +1675,7 @@ binary-extensions@^2.0.0: blob-util@^2.0.2: version "2.0.2" - resolved "https://registry.npmjs.org/blob-util/-/blob-util-2.0.2.tgz" + resolved "https://registry.yarnpkg.com/blob-util/-/blob-util-2.0.2.tgz#3b4e3c281111bb7f11128518006cdc60b403a1eb" integrity sha512-T7JQa+zsXXEa6/8ZhHcQEW1UFfVM49Ts65uBkFL6fz2QmrElqmbajIDJvuA0tEhRe5eIjpV9ZF+0RfZR9voJFQ== bluebird@^2.3.5, bluebird@^2.6.2, bluebird@^2.8.1, bluebird@^2.8.2: @@ -1946,7 +1770,7 @@ buffer-from@^1.0.0: buffer@^5.7.1: version "5.7.1" - resolved "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== dependencies: base64-js "^1.3.1" @@ -2060,21 +1884,6 @@ char-spinner@^1.0.1: resolved "https://registry.npmjs.org/char-spinner/-/char-spinner-1.0.1.tgz" integrity sha512-acv43vqJ0+N0rD+Uw3pDHSxP30FHrywu2NO6/wBaHChJIizpDeBUd6NjqhNhy9LGaEAhZAXn46QzmlAvIWd16g== -character-entities-legacy@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz" - integrity sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ== - -character-entities@^2.0.0: - version "2.0.2" - resolved "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz" - integrity sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ== - -character-reference-invalid@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz" - integrity sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw== - check-more-types@^2.24.0: version "2.24.0" resolved "https://registry.npmjs.org/check-more-types/-/check-more-types-2.24.0.tgz" @@ -2082,7 +1891,7 @@ check-more-types@^2.24.0: cheerio-select@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/cheerio-select/-/cheerio-select-2.1.0.tgz#4d8673286b8126ca2a8e42740d5e3c4884ae21b4" integrity sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g== dependencies: boolbase "^1.0.0" @@ -2094,7 +1903,7 @@ cheerio-select@^2.1.0: cheerio@^1.0.0-rc.12: version "1.0.0-rc.12" - resolved "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.12.tgz" + resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-1.0.0-rc.12.tgz#788bf7466506b1c6bf5fae51d24a2c4d62e47683" integrity sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q== dependencies: cheerio-select "^2.1.0" @@ -2122,24 +1931,24 @@ chokidar@^3.3.0: ci-info@^3.2.0: version "3.9.0" - resolved "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.9.0.tgz#4279a62028a7b1f262f3473fc9605f5e218c59b4" integrity sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ== clean-stack@^2.0.0: version "2.2.0" - resolved "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz" + resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== cli-cursor@^3.1.0: version "3.1.0" - resolved "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== dependencies: restore-cursor "^3.1.0" cli-table3@~0.6.1: version "0.6.5" - resolved "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.5.tgz" + resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.6.5.tgz#013b91351762739c16a9567c21a04632e449bf2f" integrity sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ== dependencies: string-width "^4.2.0" @@ -2155,7 +1964,7 @@ cli-table@~0.3.1: cli-truncate@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-2.1.0.tgz#c39e28bf05edcde5be3b98992a22deed5a2b93c7" integrity sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg== dependencies: slice-ansi "^3.0.0" @@ -2196,7 +2005,7 @@ colord@^2.9.1: colorette@^2.0.16: version "2.0.20" - resolved "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.20.tgz#9eb793e6833067f7235902fcd3b09917a000a95a" integrity sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w== colors@1.0.3: @@ -2227,7 +2036,7 @@ combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6: commander@^6.2.1: version "6.2.1" - resolved "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz" + resolved "https://registry.yarnpkg.com/commander/-/commander-6.2.1.tgz#0792eb682dfbc325999bb2b84fddddba110ac73c" integrity sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA== commander@^7.2.0: @@ -2235,7 +2044,7 @@ commander@^7.2.0: resolved "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz" integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== -commander@^8.0.0, commander@^8.3.0: +commander@^8.0.0: version "8.3.0" resolved "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz" integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww== @@ -2296,7 +2105,7 @@ corser@^2.0.1: cross-spawn@^7.0.0: version "7.0.3" - resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== dependencies: path-key "^3.1.0" @@ -2321,7 +2130,7 @@ css-select@^4.1.3: css-select@^5.1.0: version "5.1.0" - resolved "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-5.1.0.tgz#b8ebd6554c3637ccc76688804ad3f6a6fdaea8a6" integrity sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg== dependencies: boolbase "^1.0.0" @@ -2413,7 +2222,7 @@ cssstyle@^3.0.0: cypress@^13.13.1: version "13.13.1" - resolved "https://registry.npmjs.org/cypress/-/cypress-13.13.1.tgz" + resolved "https://registry.yarnpkg.com/cypress/-/cypress-13.13.1.tgz#860c1142a6e58ea412a764f0ce6ad07567721129" integrity sha512-8F9UjL5MDUdgC/S5hr8CGLHbS5gGht5UOV184qc2pFny43fnkoaKxlzH/U6//zmGu/xRTaKimNfjknLT8+UDFg== dependencies: "@cypress/request" "^3.0.0" @@ -2482,7 +2291,7 @@ date-fns@^2.16.1: dayjs@^1.10.4: version "1.11.12" - resolved "https://registry.npmjs.org/dayjs/-/dayjs-1.11.12.tgz" + resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.12.tgz#5245226cc7f40a15bf52e0b99fd2a04669ccac1d" integrity sha512-Rt2g+nTbLlDWZTwwrIXjy9MeiZmSDI375FvZs72ngxx8PDC6YXOeR3q5LAuPzjZQxhiWdRKac7RKV+YyQYfYIg== debug@4, debug@^4.1.1: @@ -2506,16 +2315,9 @@ debug@^3.1.0, debug@^3.2.7: dependencies: ms "^2.1.1" -debug@^4.0.0: - version "4.4.0" - resolved "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz" - integrity sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA== - dependencies: - ms "^2.1.3" - debug@^4.3.4: version "4.3.5" - resolved "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.5.tgz#e83444eceb9fedd4a1da56d671ae2446a01a6e1e" integrity sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg== dependencies: ms "2.1.2" @@ -2525,13 +2327,6 @@ decimal.js@^10.4.3: resolved "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz" integrity sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA== -decode-named-character-reference@^1.0.0: - version "1.0.2" - resolved "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz" - integrity sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg== - dependencies: - character-entities "^2.0.0" - decompress-response@^6.0.0: version "6.0.0" resolved "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz" @@ -2566,23 +2361,11 @@ deprecation@^2.0.0, deprecation@^2.3.1: resolved "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz" integrity sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ== -dequal@^2.0.0: - version "2.0.3" - resolved "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz" - integrity sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA== - dev-null@^0.1.1: version "0.1.1" resolved "https://registry.npmjs.org/dev-null/-/dev-null-0.1.1.tgz" integrity sha512-nMNZG0zfMgmdv8S5O0TM5cpwNbGKRGPCxVsr0SmA3NZZy9CYBbuNLL0PD3Acx9e5LIUgwONXtM9kM6RlawPxEQ== -devlop@^1.0.0: - version "1.1.0" - resolved "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz" - integrity sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA== - dependencies: - dequal "^2.0.0" - dir-glob@^3.0.1: version "3.0.1" resolved "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz" @@ -2592,7 +2375,7 @@ dir-glob@^3.0.1: dom-mutator@^0.6.0: version "0.6.0" - resolved "https://registry.npmjs.org/dom-mutator/-/dom-mutator-0.6.0.tgz" + resolved "https://registry.yarnpkg.com/dom-mutator/-/dom-mutator-0.6.0.tgz#079d7a4b3e8981a562cd777548b99baab51d65c5" integrity sha512-iCt9o0aYfXMUkz/43ZOAUFQYotjGB+GNbYJiJdz4TgXkyToXbbRy5S6FbTp72lRBtfpUMwEc1KmpFEU4CZeoNg== dom-serializer@^1.0.1: @@ -2606,7 +2389,7 @@ dom-serializer@^1.0.1: dom-serializer@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-2.0.0.tgz#e41b802e1eedf9f6cae183ce5e622d789d7d8e53" integrity sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg== dependencies: domelementtype "^2.3.0" @@ -2634,7 +2417,7 @@ domhandler@^4.2.0, domhandler@^4.3.1: domhandler@^5.0.2, domhandler@^5.0.3: version "5.0.3" - resolved "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-5.0.3.tgz#cc385f7f751f1d1fc650c21374804254538c7d31" integrity sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w== dependencies: domelementtype "^2.3.0" @@ -2650,7 +2433,7 @@ domutils@^2.8.0: domutils@^3.0.1: version "3.1.0" - resolved "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-3.1.0.tgz#c47f551278d3dc4b0b1ab8cbb42d751a6f0d824e" integrity sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA== dependencies: dom-serializer "^2.0.0" @@ -2699,7 +2482,7 @@ end-of-stream@^1.1.0: enquirer@^2.3.6: version "2.4.1" - resolved "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz" + resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.4.1.tgz#93334b3fbd74fc7097b224ab4a8fb7e40bf4ae56" integrity sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ== dependencies: ansi-colors "^4.1.1" @@ -2715,6 +2498,11 @@ entities@^4.2.0, entities@^4.4.0: resolved "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz" integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== +entities@~2.0.0: + version "2.0.3" + resolved "https://registry.npmjs.org/entities/-/entities-2.0.3.tgz" + integrity sha512-MyoZ0jgnLvB2X3Lg5HqpFmn1kybDiIfEQmKzTb5apr51Rb+T3KdmMiqa70T+bhGnyv7bQ6WMj2QMHpGMmlrUYQ== + eol@~0.2.0: version "0.2.0" resolved "https://registry.npmjs.org/eol/-/eol-0.2.0.tgz" @@ -2732,36 +2520,6 @@ errors@^0.2.0: resolved "https://registry.npmjs.org/errors/-/errors-0.2.0.tgz" integrity sha512-W0w4yTo+twP/wGTF25kBGAXroAHzvxZvEDHJsCixlWS8lf8li0aZDhT+hz0mHQwsSW5esD5jyTQkaqA0ZHF83A== -esbuild@~0.23.0: - version "0.23.1" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.23.1.tgz#40fdc3f9265ec0beae6f59824ade1bd3d3d2dab8" - integrity sha512-VVNz/9Sa0bs5SELtn3f7qhJCDPCF5oMEl5cO9/SSinpE9hbPVvxbd572HH5AKiP7WD8INO53GgfDDhRjkylHEg== - optionalDependencies: - "@esbuild/aix-ppc64" "0.23.1" - "@esbuild/android-arm" "0.23.1" - "@esbuild/android-arm64" "0.23.1" - "@esbuild/android-x64" "0.23.1" - "@esbuild/darwin-arm64" "0.23.1" - "@esbuild/darwin-x64" "0.23.1" - "@esbuild/freebsd-arm64" "0.23.1" - "@esbuild/freebsd-x64" "0.23.1" - "@esbuild/linux-arm" "0.23.1" - "@esbuild/linux-arm64" "0.23.1" - "@esbuild/linux-ia32" "0.23.1" - "@esbuild/linux-loong64" "0.23.1" - "@esbuild/linux-mips64el" "0.23.1" - "@esbuild/linux-ppc64" "0.23.1" - "@esbuild/linux-riscv64" "0.23.1" - "@esbuild/linux-s390x" "0.23.1" - "@esbuild/linux-x64" "0.23.1" - "@esbuild/netbsd-x64" "0.23.1" - "@esbuild/openbsd-arm64" "0.23.1" - "@esbuild/openbsd-x64" "0.23.1" - "@esbuild/sunos-x64" "0.23.1" - "@esbuild/win32-arm64" "0.23.1" - "@esbuild/win32-ia32" "0.23.1" - "@esbuild/win32-x64" "0.23.1" - escalade@^3.1.1: version "3.1.1" resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz" @@ -2779,7 +2537,7 @@ esprima@^4.0.0: eventemitter2@6.4.7: version "6.4.7" - resolved "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.7.tgz" + resolved "https://registry.yarnpkg.com/eventemitter2/-/eventemitter2-6.4.7.tgz#a7f6c4d7abf28a14c1ef3442f21cb306a054271d" integrity sha512-tYUSVOGeQPKt/eC1ABfhHy5Xd96N3oIijJvN3O9+TsC28T5V9yX9oEfEK5faP0EFSNVOG97qtAS68GBrQB2hDg== eventemitter3@^3.1.0: @@ -2794,7 +2552,7 @@ eventemitter3@^4.0.0, eventemitter3@^4.0.4: execa@4.1.0: version "4.1.0" - resolved "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz" + resolved "https://registry.yarnpkg.com/execa/-/execa-4.1.0.tgz#4e5491ad1572f2f17a77d388c6c857135b22847a" integrity sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA== dependencies: cross-spawn "^7.0.0" @@ -2816,7 +2574,7 @@ executable@^4.1.1: extend-shallow@^2.0.1: version "2.0.1" - resolved "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" integrity sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug== dependencies: is-extendable "^0.1.0" @@ -2833,7 +2591,7 @@ extend@^3.0.0, extend@~3.0.2: extract-zip@2.0.1: version "2.0.1" - resolved "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-2.0.1.tgz#663dca56fe46df890d5f131ef4a06d22bb8ba13a" integrity sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg== dependencies: debug "^4.1.1" @@ -2886,7 +2644,7 @@ fd-slicer@~1.1.0: figures@^3.2.0: version "3.2.0" - resolved "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz" + resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== dependencies: escape-string-regexp "^1.0.5" @@ -2905,7 +2663,7 @@ follow-redirects@^1.0.0, follow-redirects@^1.14.0: follow-redirects@^1.15.6: version "1.15.6" - resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.6.tgz#7f815c0cda4249c74ff09e95ef97c23b5fd0399b" integrity sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA== forever-agent@~0.6.1: @@ -2976,11 +2734,6 @@ fsevents@~2.3.2: resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz" integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== -fsevents@~2.3.3: - version "2.3.3" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" - integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== - function-bind@^1.1.1: version "1.1.1" resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz" @@ -3012,13 +2765,6 @@ get-stream@^5.0.0, get-stream@^5.1.0: dependencies: pump "^3.0.0" -get-tsconfig@^4.7.5: - version "4.10.0" - resolved "https://registry.yarnpkg.com/get-tsconfig/-/get-tsconfig-4.10.0.tgz#403a682b373a823612475a4c2928c7326fc0f6bb" - integrity sha512-kGzZ3LWWQcGIAmg6iWvXn0ei6WDtV26wzHRMwDSzmAbcXrTEXxHy6IehI6/4eT6VRKyMP1eF1VqwrVUmE/LR7A== - dependencies: - resolve-pkg-maps "^1.0.0" - getos@^3.2.1: version "3.2.1" resolved "https://registry.npmjs.org/getos/-/getos-3.2.1.tgz" @@ -3054,7 +2800,7 @@ glob@^7.1.7, glob@^7.2.0: global-dirs@^3.0.0: version "3.0.1" - resolved "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.1.tgz" + resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-3.0.1.tgz#0c488971f066baceda21447aecb1a8b911d22485" integrity sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA== dependencies: ini "2.0.0" @@ -3095,7 +2841,7 @@ graceful-fs@^4.1.6, graceful-fs@^4.2.0: gray-matter@^4.0.3: version "4.0.3" - resolved "https://registry.npmjs.org/gray-matter/-/gray-matter-4.0.3.tgz" + resolved "https://registry.yarnpkg.com/gray-matter/-/gray-matter-4.0.3.tgz#e893c064825de73ea1f5f7d88c7a9f7274288798" integrity sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q== dependencies: js-yaml "^3.13.1" @@ -3155,7 +2901,7 @@ html-encoding-sniffer@^3.0.0: htmlparser2@^8.0.1: version "8.0.2" - resolved "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-8.0.2.tgz#f002151705b383e62433b5cf466f5b716edaec21" integrity sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA== dependencies: domelementtype "^2.3.0" @@ -3234,7 +2980,7 @@ https-proxy-agent@^5.0.1: human-signals@^1.1.1: version "1.1.1" - resolved "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw== humanize-duration@^3.9.1: @@ -3256,7 +3002,7 @@ iconv-lite@0.6.3: ieee754@^1.1.13: version "1.2.1" - resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== ignore@^5.2.0: @@ -3266,7 +3012,7 @@ ignore@^5.2.0: indent-string@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== inflight@^1.0.4: @@ -3284,22 +3030,9 @@ inherits@2, inherits@^2.0.3, inherits@~2.0.1, inherits@~2.0.3: ini@2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/ini/-/ini-2.0.0.tgz#e5fd556ecdd5726be978fa1001862eacb0a94bc5" integrity sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA== -is-alphabetical@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.1.tgz" - integrity sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ== - -is-alphanumerical@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz" - integrity sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw== - dependencies: - is-alphabetical "^2.0.0" - is-decimal "^2.0.0" - is-binary-path@~2.1.0: version "2.1.0" resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz" @@ -3314,19 +3047,14 @@ is-browser@^2.0.1: is-ci@^3.0.1: version "3.0.1" - resolved "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz" + resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-3.0.1.tgz#db6ecbed1bd659c43dac0f45661e7674103d1867" integrity sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ== dependencies: ci-info "^3.2.0" -is-decimal@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.1.tgz" - integrity sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A== - is-extendable@^0.1.0: version "0.1.1" - resolved "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" integrity sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw== is-extglob@^2.1.1: @@ -3351,14 +3079,9 @@ is-gzip@2.0.0: resolved "https://registry.npmjs.org/is-gzip/-/is-gzip-2.0.0.tgz" integrity sha512-jtO4Njg6q58zDo/Pu4027beSZ0VdsZlt8/5Moco6yAg+DIxb5BK/xUYqYG2+MD4+piKldXJNHxRkhEYI2fvrxA== -is-hexadecimal@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz" - integrity sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg== - is-installed-globally@~0.4.0: version "0.4.0" - resolved "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz" + resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.4.0.tgz#9a0fd407949c30f86eb6959ef1b7994ed0b7b520" integrity sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ== dependencies: global-dirs "^3.0.0" @@ -3376,7 +3099,7 @@ is-object@^1.0.1: is-path-inside@^3.0.2: version "3.0.3" - resolved "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== is-plain-object@^5.0.0: @@ -3401,7 +3124,7 @@ is-stream@^1.0.1, is-stream@^1.1.0: is-stream@^2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== is-string@^1.0.4: @@ -3418,7 +3141,7 @@ is-typedarray@~1.0.0: is-unicode-supported@^0.1.0: version "0.1.0" - resolved "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz" + resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== isarray@0.0.1: @@ -3456,7 +3179,7 @@ js-yaml@^3.13.1: js-yaml@^4.1.0: version "4.1.0" - resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== dependencies: argparse "^2.0.1" @@ -3510,6 +3233,11 @@ json-stringify-safe@~5.0.1: resolved "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz" integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== +jsonc-parser@^3.2.0: + version "3.2.1" + resolved "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.1.tgz" + integrity sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA== + jsonfile@^6.0.1: version "6.1.0" resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz" @@ -3529,13 +3257,6 @@ jsprim@^2.0.2: json-schema "0.4.0" verror "1.10.0" -katex@^0.16.0: - version "0.16.21" - resolved "https://registry.npmjs.org/katex/-/katex-0.16.21.tgz" - integrity sha512-XvqR7FgOHtWupfMiigNzmh+MgUVmDGU2kXZm899ZkPfcuoPuFxyHmXsgATDpFZDAXCI8tvinaVcDo8PIIJSo4A== - dependencies: - commander "^8.3.0" - keyv@^4.0.0: version "4.5.0" resolved "https://registry.npmjs.org/keyv/-/keyv-4.5.0.tgz" @@ -3545,7 +3266,7 @@ keyv@^4.0.0: kind-of@^6.0.0, kind-of@^6.0.2: version "6.0.3" - resolved "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== lazy-ass@^1.6.0: @@ -3571,16 +3292,16 @@ link-types@^1.1.0: resolved "https://registry.npmjs.org/link-types/-/link-types-1.1.0.tgz" integrity sha512-6R1evfF/YPACIF01Lb2Dm0v2GZbJo06+wX5v1TByKt2drvkI2A2LlOgAOG1T/rxTlGEO4rdOlSrQabxmy7tfNg== -linkify-it@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.0.tgz" - integrity sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ== +linkify-it@^2.0.0: + version "2.2.0" + resolved "https://registry.npmjs.org/linkify-it/-/linkify-it-2.2.0.tgz" + integrity sha512-GnAl/knGn+i1U/wjBz3akz2stz+HrHLsxMwHQGofCDfPvlf+gDKN58UtfmUquTY4/MXeE2x7k19KQmeoZi94Iw== dependencies: - uc.micro "^2.0.0" + uc.micro "^1.0.1" listr2@^3.8.3: version "3.14.0" - resolved "https://registry.npmjs.org/listr2/-/listr2-3.14.0.tgz" + resolved "https://registry.yarnpkg.com/listr2/-/listr2-3.14.0.tgz#23101cc62e1375fd5836b248276d1d2b51fdbe9e" integrity sha512-TyWI8G99GX9GjE54cJ+RrNMcIFBfwMPxc3XTFiAYGN4s10hWROGtOg7+O6u6LE3mNkyld7RSLE6nrKBvTfcs3g== dependencies: cli-truncate "^2.1.0" @@ -3624,7 +3345,7 @@ lodash@^4.17.14, lodash@^4.17.21: log-symbols@^4.0.0: version "4.1.0" - resolved "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== dependencies: chalk "^4.1.0" @@ -3632,7 +3353,7 @@ log-symbols@^4.0.0: log-update@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/log-update/-/log-update-4.0.0.tgz#589ecd352471f2a1c0c570287543a64dfd20e0a1" integrity sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg== dependencies: ansi-escapes "^4.3.0" @@ -3658,32 +3379,28 @@ lunr@^2.3.9: resolved "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz" integrity sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow== -markdown-it@14.1.0, markdown-it@^14.1.0: - version "14.1.0" - resolved "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.0.tgz" - integrity sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg== +markdown-it@10.0.0: + version "10.0.0" + resolved "https://registry.npmjs.org/markdown-it/-/markdown-it-10.0.0.tgz" + integrity sha512-YWOP1j7UbDNz+TumYP1kpwnP0aEa711cJjrAQrzd0UXlbJfc5aAq0F/PZHjiioqDC1NKgvIMX+o+9Bk7yuM2dg== dependencies: - argparse "^2.0.1" - entities "^4.4.0" - linkify-it "^5.0.0" - mdurl "^2.0.0" - punycode.js "^2.3.1" - uc.micro "^2.1.0" - -markdownlint@^0.37.4: - version "0.37.4" - resolved "https://registry.npmjs.org/markdownlint/-/markdownlint-0.37.4.tgz" - integrity sha512-u00joA/syf3VhWh6/ybVFkib5Zpj2e5KB/cfCei8fkSRuums6nyisTWGqjTWIOFoFwuXoTBQQiqlB4qFKp8ncQ== - dependencies: - markdown-it "14.1.0" - micromark "4.0.1" - micromark-core-commonmark "2.0.2" - micromark-extension-directive "3.0.2" - micromark-extension-gfm-autolink-literal "2.1.0" - micromark-extension-gfm-footnote "2.1.0" - micromark-extension-gfm-table "2.1.0" - micromark-extension-math "3.1.0" - micromark-util-types "2.0.1" + argparse "^1.0.7" + entities "~2.0.0" + linkify-it "^2.0.0" + mdurl "^1.0.1" + uc.micro "^1.0.5" + +markdownlint@^0.17.2: + version "0.17.2" + resolved "https://registry.npmjs.org/markdownlint/-/markdownlint-0.17.2.tgz" + integrity sha512-vsxopn0qEdm0P2XI3S9sVA+jvjKjR8lHZ+0FKlusth+1UK9tI29mRFkKeZPERmbWsMehJcogfMieBUkMgNEFkQ== + dependencies: + markdown-it "10.0.0" + +marked@^4.3.0: + version "4.3.0" + resolved "https://registry.npmjs.org/marked/-/marked-4.3.0.tgz" + integrity sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A== maybe-callback@^2.1.0: version "2.1.0" @@ -3695,14 +3412,14 @@ mdn-data@2.0.14: resolved "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz" integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow== -mdurl@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/mdurl/-/mdurl-2.0.0.tgz" - integrity sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w== +mdurl@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz" + integrity sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g== merge-stream@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== merge2@^1.3.0, merge2@^1.4.1: @@ -3710,251 +3427,6 @@ merge2@^1.3.0, merge2@^1.4.1: resolved "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz" integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== -micromark-core-commonmark@2.0.2, micromark-core-commonmark@^2.0.0: - version "2.0.2" - resolved "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.2.tgz" - integrity sha512-FKjQKbxd1cibWMM1P9N+H8TwlgGgSkWZMmfuVucLCHaYqeSvJ0hFeHsIa65pA2nYbes0f8LDHPMrd9X7Ujxg9w== - dependencies: - decode-named-character-reference "^1.0.0" - devlop "^1.0.0" - micromark-factory-destination "^2.0.0" - micromark-factory-label "^2.0.0" - micromark-factory-space "^2.0.0" - micromark-factory-title "^2.0.0" - micromark-factory-whitespace "^2.0.0" - micromark-util-character "^2.0.0" - micromark-util-chunked "^2.0.0" - micromark-util-classify-character "^2.0.0" - micromark-util-html-tag-name "^2.0.0" - micromark-util-normalize-identifier "^2.0.0" - micromark-util-resolve-all "^2.0.0" - micromark-util-subtokenize "^2.0.0" - micromark-util-symbol "^2.0.0" - micromark-util-types "^2.0.0" - -micromark-extension-directive@3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/micromark-extension-directive/-/micromark-extension-directive-3.0.2.tgz" - integrity sha512-wjcXHgk+PPdmvR58Le9d7zQYWy+vKEU9Se44p2CrCDPiLr2FMyiT4Fyb5UFKFC66wGB3kPlgD7q3TnoqPS7SZA== - dependencies: - devlop "^1.0.0" - micromark-factory-space "^2.0.0" - micromark-factory-whitespace "^2.0.0" - micromark-util-character "^2.0.0" - micromark-util-symbol "^2.0.0" - micromark-util-types "^2.0.0" - parse-entities "^4.0.0" - -micromark-extension-gfm-autolink-literal@2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-2.1.0.tgz" - integrity sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw== - dependencies: - micromark-util-character "^2.0.0" - micromark-util-sanitize-uri "^2.0.0" - micromark-util-symbol "^2.0.0" - micromark-util-types "^2.0.0" - -micromark-extension-gfm-footnote@2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-2.1.0.tgz" - integrity sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw== - dependencies: - devlop "^1.0.0" - micromark-core-commonmark "^2.0.0" - micromark-factory-space "^2.0.0" - micromark-util-character "^2.0.0" - micromark-util-normalize-identifier "^2.0.0" - micromark-util-sanitize-uri "^2.0.0" - micromark-util-symbol "^2.0.0" - micromark-util-types "^2.0.0" - -micromark-extension-gfm-table@2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-2.1.0.tgz" - integrity sha512-Ub2ncQv+fwD70/l4ou27b4YzfNaCJOvyX4HxXU15m7mpYY+rjuWzsLIPZHJL253Z643RpbcP1oeIJlQ/SKW67g== - dependencies: - devlop "^1.0.0" - micromark-factory-space "^2.0.0" - micromark-util-character "^2.0.0" - micromark-util-symbol "^2.0.0" - micromark-util-types "^2.0.0" - -micromark-extension-math@3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/micromark-extension-math/-/micromark-extension-math-3.1.0.tgz" - integrity sha512-lvEqd+fHjATVs+2v/8kg9i5Q0AP2k85H0WUOwpIVvUML8BapsMvh1XAogmQjOCsLpoKRCVQqEkQBB3NhVBcsOg== - dependencies: - "@types/katex" "^0.16.0" - devlop "^1.0.0" - katex "^0.16.0" - micromark-factory-space "^2.0.0" - micromark-util-character "^2.0.0" - micromark-util-symbol "^2.0.0" - micromark-util-types "^2.0.0" - -micromark-factory-destination@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.1.tgz" - integrity sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA== - dependencies: - micromark-util-character "^2.0.0" - micromark-util-symbol "^2.0.0" - micromark-util-types "^2.0.0" - -micromark-factory-label@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.1.tgz" - integrity sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg== - dependencies: - devlop "^1.0.0" - micromark-util-character "^2.0.0" - micromark-util-symbol "^2.0.0" - micromark-util-types "^2.0.0" - -micromark-factory-space@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz" - integrity sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg== - dependencies: - micromark-util-character "^2.0.0" - micromark-util-types "^2.0.0" - -micromark-factory-title@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.1.tgz" - integrity sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw== - dependencies: - micromark-factory-space "^2.0.0" - micromark-util-character "^2.0.0" - micromark-util-symbol "^2.0.0" - micromark-util-types "^2.0.0" - -micromark-factory-whitespace@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.1.tgz" - integrity sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ== - dependencies: - micromark-factory-space "^2.0.0" - micromark-util-character "^2.0.0" - micromark-util-symbol "^2.0.0" - micromark-util-types "^2.0.0" - -micromark-util-character@^2.0.0: - version "2.1.1" - resolved "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz" - integrity sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q== - dependencies: - micromark-util-symbol "^2.0.0" - micromark-util-types "^2.0.0" - -micromark-util-chunked@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.1.tgz" - integrity sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA== - dependencies: - micromark-util-symbol "^2.0.0" - -micromark-util-classify-character@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.1.tgz" - integrity sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q== - dependencies: - micromark-util-character "^2.0.0" - micromark-util-symbol "^2.0.0" - micromark-util-types "^2.0.0" - -micromark-util-combine-extensions@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.1.tgz" - integrity sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg== - dependencies: - micromark-util-chunked "^2.0.0" - micromark-util-types "^2.0.0" - -micromark-util-decode-numeric-character-reference@^2.0.0: - version "2.0.2" - resolved "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.2.tgz" - integrity sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw== - dependencies: - micromark-util-symbol "^2.0.0" - -micromark-util-encode@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.1.tgz" - integrity sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw== - -micromark-util-html-tag-name@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.1.tgz" - integrity sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA== - -micromark-util-normalize-identifier@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.1.tgz" - integrity sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q== - dependencies: - micromark-util-symbol "^2.0.0" - -micromark-util-resolve-all@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.1.tgz" - integrity sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg== - dependencies: - micromark-util-types "^2.0.0" - -micromark-util-sanitize-uri@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.1.tgz" - integrity sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ== - dependencies: - micromark-util-character "^2.0.0" - micromark-util-encode "^2.0.0" - micromark-util-symbol "^2.0.0" - -micromark-util-subtokenize@^2.0.0: - version "2.0.4" - resolved "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.0.4.tgz" - integrity sha512-N6hXjrin2GTJDe3MVjf5FuXpm12PGm80BrUAeub9XFXca8JZbP+oIwY4LJSVwFUCL1IPm/WwSVUN7goFHmSGGQ== - dependencies: - devlop "^1.0.0" - micromark-util-chunked "^2.0.0" - micromark-util-symbol "^2.0.0" - micromark-util-types "^2.0.0" - -micromark-util-symbol@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz" - integrity sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q== - -micromark-util-types@2.0.1, micromark-util-types@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.1.tgz" - integrity sha512-534m2WhVTddrcKVepwmVEVnUAmtrx9bfIjNoQHRqfnvdaHQiFytEhJoTgpWJvDEXCO5gLTQh3wYC1PgOJA4NSQ== - -micromark@4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/micromark/-/micromark-4.0.1.tgz" - integrity sha512-eBPdkcoCNvYcxQOAKAlceo5SNdzZWfF+FcSupREAzdAh9rRmE239CEQAiTwIgblwnoM8zzj35sZ5ZwvSEOF6Kw== - dependencies: - "@types/debug" "^4.0.0" - debug "^4.0.0" - decode-named-character-reference "^1.0.0" - devlop "^1.0.0" - micromark-core-commonmark "^2.0.0" - micromark-factory-space "^2.0.0" - micromark-util-character "^2.0.0" - micromark-util-chunked "^2.0.0" - micromark-util-combine-extensions "^2.0.0" - micromark-util-decode-numeric-character-reference "^2.0.0" - micromark-util-encode "^2.0.0" - micromark-util-normalize-identifier "^2.0.0" - micromark-util-resolve-all "^2.0.0" - micromark-util-sanitize-uri "^2.0.0" - micromark-util-subtokenize "^2.0.0" - micromark-util-symbol "^2.0.0" - micromark-util-types "^2.0.0" - micromatch@^4.0.4: version "4.0.5" resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz" @@ -3982,7 +3454,7 @@ mime@^1.3.4, mime@^1.6.0: mimic-fn@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== mimic-response@^1.0.0: @@ -4002,10 +3474,10 @@ minimatch@^3.1.1: dependencies: brace-expansion "^1.1.7" -minimatch@^9.0.5: - version "9.0.5" - resolved "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz" - integrity sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow== +minimatch@^9.0.3: + version "9.0.3" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz" + integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg== dependencies: brace-expansion "^2.0.1" @@ -4016,7 +3488,7 @@ minimist@^1.1.0, minimist@^1.2.5, minimist@^1.2.6: minimist@^1.2.8: version "1.2.8" - resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== mkdirp@^0.5.6: @@ -4036,7 +3508,7 @@ ms@2.1.2: resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== -ms@^2.1.1, ms@^2.1.3: +ms@^2.1.1: version "2.1.3" resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== @@ -4091,7 +3563,7 @@ normalize-url@^6.0.1: npm-run-path@^4.0.0: version "4.0.1" - resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== dependencies: path-key "^3.0.0" @@ -4132,7 +3604,7 @@ once@^1.3.0, once@^1.3.1, once@^1.4.0: onetime@^5.1.0: version "5.1.2" - resolved "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== dependencies: mimic-fn "^2.1.0" @@ -4186,7 +3658,7 @@ p-limit@^3.1.0: p-map@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== dependencies: aggregate-error "^3.0.0" @@ -4224,22 +3696,9 @@ parse-domain@~0.2.0: resolved "https://registry.npmjs.org/parse-domain/-/parse-domain-0.2.2.tgz" integrity sha512-AtlCTd18kw7oMd4MBTOqW+tQP6FklBdGZsA6xxYs86C/DvIeJv7dl9Sm6I5e33SWN7NEQ8en3CYGpkXS1O0qDg== -parse-entities@^4.0.0: - version "4.0.2" - resolved "https://registry.npmjs.org/parse-entities/-/parse-entities-4.0.2.tgz" - integrity sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw== - dependencies: - "@types/unist" "^2.0.0" - character-entities-legacy "^3.0.0" - character-reference-invalid "^2.0.0" - decode-named-character-reference "^1.0.0" - is-alphanumerical "^2.0.0" - is-decimal "^2.0.0" - is-hexadecimal "^2.0.0" - parse5-htmlparser2-tree-adapter@^7.0.0: version "7.0.0" - resolved "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.0.0.tgz" + resolved "https://registry.yarnpkg.com/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.0.0.tgz#23c2cc233bcf09bb7beba8b8a69d46b08c62c2f1" integrity sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g== dependencies: domhandler "^5.0.2" @@ -4266,7 +3725,7 @@ path-is-absolute@^1.0.0: path-key@^3.0.0, path-key@^3.1.0: version "3.1.1" - resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== path-type@^4.0.0: @@ -4568,7 +4027,7 @@ prettier@^2.6.2: pretty-bytes@^5.6.0: version "5.6.0" - resolved "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz" + resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.6.0.tgz#356256f643804773c82f64723fe78c92c62beaeb" integrity sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg== pretty-hrtime@^1.0.3: @@ -4583,12 +4042,12 @@ process-nextick-args@~2.0.0: process@^0.11.10: version "0.11.10" - resolved "https://registry.npmjs.org/process/-/process-0.11.10.tgz" + resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A== proxy-from-env@1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.0.0.tgz#33c50398f70ea7eb96d21f7b817630a55791c7ee" integrity sha512-F2JHgJQ1iqwnHDcQjVBsq3n/uoaFL+iPW/eAeL7kVxy/2RrWaN4WroKjjvbsoRtv0ftelNyC01bjRhn/bhcf4A== proxy-from-env@^1.1.0: @@ -4619,11 +4078,6 @@ pump@^3.0.0: end-of-stream "^1.1.0" once "^1.3.1" -punycode.js@^2.3.1: - version "2.3.1" - resolved "https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz" - integrity sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA== - punycode@^2.1.1: version "2.1.1" resolved "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz" @@ -4646,7 +4100,7 @@ purgecss@^4.1.3: qs@6.10.4: version "6.10.4" - resolved "https://registry.npmjs.org/qs/-/qs-6.10.4.tgz" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.10.4.tgz#6a3003755add91c0ec9eacdc5f878b034e73f9e7" integrity sha512-OQiU+C+Ds5qiH91qh/mg0w+8nwQuLjM4F4M/PbmhDOoYehPh+Fb0bDjtR1sOvy7YKxvj28Y/M0PhP5uVX0kB+g== dependencies: side-channel "^1.0.4" @@ -4737,11 +4191,6 @@ resolve-alpn@^1.0.0: resolved "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz" integrity sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g== -resolve-pkg-maps@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz#616b3dc2c57056b5588c31cdf4b3d64db133720f" - integrity sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw== - responselike@^2.0.0: version "2.0.1" resolved "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz" @@ -4751,7 +4200,7 @@ responselike@^2.0.0: restore-cursor@^3.1.0: version "3.1.0" - resolved "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== dependencies: onetime "^5.1.0" @@ -4769,7 +4218,7 @@ reusify@^1.0.4: rfdc@^1.3.0: version "1.4.1" - resolved "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz" + resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.4.1.tgz#778f76c4fb731d93414e8f925fbecf64cce7f6ca" integrity sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA== robot-directives@~0.3.0: @@ -4816,7 +4265,7 @@ rxjs@^6.6.3: rxjs@^7.5.1: version "7.8.1" - resolved "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.1.tgz#6f6f3d99ea8044291efd92e7c7fcf562c4057543" integrity sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg== dependencies: tslib "^2.1.0" @@ -4850,7 +4299,7 @@ saxes@^6.0.0: section-matter@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/section-matter/-/section-matter-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/section-matter/-/section-matter-1.0.0.tgz#e9041953506780ec01d59f292a19c7b850b84167" integrity sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA== dependencies: extend-shallow "^2.0.1" @@ -4868,21 +4317,31 @@ semver@^5.0.1: semver@^7.5.3: version "7.6.3" - resolved "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.3.tgz#980f7b5550bc175fb4dc09403085627f9eb33143" integrity sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A== shebang-command@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== dependencies: shebang-regex "^3.0.0" shebang-regex@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== +shiki@^0.14.7: + version "0.14.7" + resolved "https://registry.npmjs.org/shiki/-/shiki-0.14.7.tgz" + integrity sha512-dNPAPrxSc87ua2sKJ3H5dQ/6ZaY8RNnaAqK+t0eG7p0Soi2ydiqbGOTaZCqaYvA/uZYfS1LJnemt3Q+mSfcPCg== + dependencies: + ansi-sequence-parser "^1.1.0" + jsonc-parser "^3.2.0" + vscode-oniguruma "^1.7.0" + vscode-textmate "^8.0.0" + side-channel@^1.0.4: version "1.0.4" resolved "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz" @@ -4914,7 +4373,7 @@ slash@^3.0.0: slice-ansi@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-3.0.0.tgz#31ddc10930a1b7e0b67b08c96c2f49b77a789787" integrity sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ== dependencies: ansi-styles "^4.0.0" @@ -4923,7 +4382,7 @@ slice-ansi@^3.0.0: slice-ansi@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== dependencies: ansi-styles "^4.0.0" @@ -5041,12 +4500,12 @@ strip-ansi@^6.0.0, strip-ansi@^6.0.1: strip-bom-string@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/strip-bom-string/-/strip-bom-string-1.0.0.tgz#e5211e9224369fbb81d633a2f00044dc8cedad92" integrity sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g== strip-final-newline@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== strnum@^1.0.5: @@ -5152,7 +4611,7 @@ tmp@0.0.x: tmp@~0.2.3: version "0.2.3" - resolved "https://registry.npmjs.org/tmp/-/tmp-0.2.3.tgz" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.3.tgz#eb783cc22bc1e8bebd0671476d46ea4eb32a79ae" integrity sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w== to-regex-range@^5.0.1: @@ -5182,7 +4641,7 @@ tough-cookie@^4.1.2: tough-cookie@^4.1.3: version "4.1.4" - resolved "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.4.tgz" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.1.4.tgz#945f1461b45b5a8c76821c33ea49c3ac192c1b36" integrity sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag== dependencies: psl "^1.1.33" @@ -5214,7 +4673,7 @@ tslib@^1.11.1, tslib@^1.9.0: tslib@^2.1.0: version "2.6.3" - resolved "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.3.tgz#0438f810ad7a9edcde7a241c3d80db693c8cbfe0" integrity sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ== tslib@^2.3.1, tslib@^2.5.0: @@ -5222,16 +4681,6 @@ tslib@^2.3.1, tslib@^2.5.0: resolved "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz" integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== -tsx@^4.19.2: - version "4.19.2" - resolved "https://registry.yarnpkg.com/tsx/-/tsx-4.19.2.tgz#2d7814783440e0ae42354d0417d9c2989a2ae92c" - integrity sha512-pOUl6Vo2LUq/bSa8S5q7b91cgNSjctn9ugq/+Mvow99qW6x/UZYwzxy/3NmqoT66eHYfCVvFvACC58UBPFf28g== - dependencies: - esbuild "~0.23.0" - get-tsconfig "^4.7.5" - optionalDependencies: - fsevents "~2.3.3" - tunnel-agent@^0.6.0: version "0.6.0" resolved "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz" @@ -5253,7 +4702,7 @@ tweetnacl@^0.14.3, tweetnacl@~0.14.0: type-fest@^0.21.3: version "0.21.3" - resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== typedarray@^0.0.6: @@ -5266,31 +4715,25 @@ typedoc-plugin-script-inject@^1.0.0: resolved "https://registry.npmjs.org/typedoc-plugin-script-inject/-/typedoc-plugin-script-inject-1.0.0.tgz" integrity sha512-dxzZbuUzyJHhSxf5FGzPz6DW3Hys3pXppwgZCFW7Jne9k0cZ8g4Tll/J5FAbIJiqSgsk/Gs17JtzT2ZyriWfMw== -typedoc@^0.27.0: - version "0.27.7" - resolved "https://registry.npmjs.org/typedoc/-/typedoc-0.27.7.tgz" - integrity sha512-K/JaUPX18+61W3VXek1cWC5gwmuLvYTOXJzBvD9W7jFvbPnefRnCHQCEPw7MSNrP/Hj7JJrhZtDDLKdcYm6ucg== +typedoc@^0.25.11: + version "0.25.11" + resolved "https://registry.npmjs.org/typedoc/-/typedoc-0.25.11.tgz" + integrity sha512-5MbI1W/FOG6oXsd8bdssQidSTeKh8Kt3xA5uKVzI+K99uzP8EGN45uPnPvQesyaWdD+89s4wCQdtWEd8QUbiRg== dependencies: - "@gerrit0/mini-shiki" "^1.24.0" lunr "^2.3.9" - markdown-it "^14.1.0" - minimatch "^9.0.5" - yaml "^2.6.1" + marked "^4.3.0" + minimatch "^9.0.3" + shiki "^0.14.7" -typescript@^5.7.0: - version "5.7.3" - resolved "https://registry.npmjs.org/typescript/-/typescript-5.7.3.tgz" - integrity sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw== +typescript@^4.9.5: + version "4.9.5" + resolved "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz" + integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== -uc.micro@^2.0.0, uc.micro@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz" - integrity sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A== - -undici-types@~6.20.0: - version "6.20.0" - resolved "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz" - integrity sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg== +uc.micro@^1.0.1, uc.micro@^1.0.5: + version "1.0.6" + resolved "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz" + integrity sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA== union@~0.5.0: version "0.5.0" @@ -5388,6 +4831,16 @@ verror@1.10.0: core-util-is "1.0.2" extsprintf "^1.2.0" +vscode-oniguruma@^1.7.0: + version "1.7.0" + resolved "https://registry.npmjs.org/vscode-oniguruma/-/vscode-oniguruma-1.7.0.tgz" + integrity sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA== + +vscode-textmate@^8.0.0: + version "8.0.0" + resolved "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-8.0.0.tgz" + integrity sha512-AFbieoL7a5LMqcnOF04ji+rpXadgOXnZsxQr//r83kLPr7biP7am3g9zbaZIaBGwBRWeSvoMD4mgPdX3e4NWBg== + w3c-xmlserializer@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-4.0.0.tgz" @@ -5435,7 +4888,7 @@ whatwg-url@^5.0.0: which@^2.0.1: version "2.0.2" - resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== dependencies: isexe "^2.0.0" @@ -5449,7 +4902,7 @@ win-release@^1.0.0: wrap-ansi@^6.2.0: version "6.2.0" - resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== dependencies: ansi-styles "^4.0.0" @@ -5518,11 +4971,6 @@ yaml@^1.10.2: resolved "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz" integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== -yaml@^2.6.1: - version "2.7.0" - resolved "https://registry.npmjs.org/yaml/-/yaml-2.7.0.tgz" - integrity sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA== - yargs-parser@^20.2.2: version "20.2.9" resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz"