diff --git a/.github/docs.js b/.github/docs.js
deleted file mode 100644
index 581bc87..0000000
--- a/.github/docs.js
+++ /dev/null
@@ -1,28 +0,0 @@
-import fs from "node:fs";
-import prettier from "prettier";
-
-const START = "";
-const END = "";
-
-// read docs files
-const docs = ["docs/drive-picker.md", "docs/drive-picker-docs-view.md"]
- .map((file) => {
- const anchor = file.split("/").pop().replace(/\.md$/, "");
- return `\n${fs.readFileSync(file, "utf-8")}`;
- })
- .join("\n")
- .replace(/^(#+)/gm, (_, p1) => `${p1}#`)
- .trim();
-
-// insert into README.md
-const readme = fs.readFileSync("README.md", "utf-8");
-
-const startIdx = readme.indexOf(START) + START.length;
-const endIdx = readme.indexOf(END);
-
-const updated = await prettier.format(
- `${readme.substring(0, startIdx)}\n${docs}\n${readme.substring(endIdx)}`,
- { parser: "markdown" },
-);
-
-fs.writeFileSync("README.md", updated);
diff --git a/.gitignore b/.gitignore
index 0579dc8..e18c9bb 100644
--- a/.gitignore
+++ b/.gitignore
@@ -13,8 +13,8 @@ coverage
dist
dist-ssr
*.local
-
-# Editor directories and files
+*storybook.log
+storybook-static
!.vscode/extensions.json
.idea
.DS_Store
@@ -24,6 +24,5 @@ dist-ssr
*.sln
*.sw?
*.tgz
-*storybook.log
docs/**/*.md
diff --git a/.storybook/main.ts b/.storybook/main.ts
index c610d3b..d29b9ed 100644
--- a/.storybook/main.ts
+++ b/.storybook/main.ts
@@ -17,8 +17,12 @@
import type { StorybookConfig } from "@storybook/web-components-vite";
const config: StorybookConfig = {
- stories: ["../src/**/*.mdx", "../src/**/*.stories.@(js|jsx|mjs|ts|tsx)"],
- addons: ["@storybook/addon-actions", "@storybook/addon-essentials"],
+ stories: [
+ "**/*.mdx",
+ "../src/**/*.mdx",
+ "../src/**/*.stories.@(js|jsx|mjs|ts|tsx)",
+ ],
+ addons: ["@storybook/addon-essentials"],
framework: {
name: "@storybook/web-components-vite",
options: {},
diff --git a/.storybook/page.mdx b/.storybook/page.mdx
new file mode 100644
index 0000000..8a8159c
--- /dev/null
+++ b/.storybook/page.mdx
@@ -0,0 +1,9 @@
+import { Meta, Canvas, Controls, Stories } from "@storybook/blocks";
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.storybook/preview.ts b/.storybook/preview.ts
index f40e398..fb63bad 100644
--- a/.storybook/preview.ts
+++ b/.storybook/preview.ts
@@ -15,8 +15,7 @@
*/
import type { Preview } from "@storybook/web-components";
-// @ts-ignore
-import DocumentationTemplate from "./DocumentationTemplate.mdx";
+import Page from "./page.mdx";
const preview: Preview = {
parameters: {
@@ -27,12 +26,10 @@ const preview: Preview = {
},
},
docs: {
- stories: {
- inline: false,
- },
- page: DocumentationTemplate,
+ page: Page,
},
},
+ tags: ["autodocs"],
};
export default preview;
diff --git a/.vscode/settings.json b/.vscode/settings.json
index 90200c3..61d9d9f 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -2,5 +2,17 @@
"editor.defaultFormatter": "biomejs.biome",
"[markdown]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
+ },
+ "[javascript]": {
+ "editor.defaultFormatter": "biomejs.biome"
+ },
+ "[typescript]": {
+ "editor.defaultFormatter": "biomejs.biome"
+ },
+ "[json]": {
+ "editor.defaultFormatter": "biomejs.biome"
+ },
+ "[mdx]": {
+ "editor.defaultFormatter": "esbenp.prettier-vscode"
}
}
diff --git a/README.md b/README.md
index d73c5a3..813779d 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-
+
[](https://www.npmjs.com/package/@googleworkspace/drive-picker-element)
[](https://github.com/googleworkspace/drive-picker-element/actions/workflows/test.yml)
@@ -6,7 +6,16 @@
## Description
-A Web Component for [Google Drive Picker].
+The [Google Drive Picker] web components provides a convenient way to integrate the Google Picker API into your web applications. The Google Picker API is a JavaScript API that allows users to select or upload Google Drive files. This component acts as a "File Open" dialog for accessing and interacting with files stored on Google Drive.
+
+## Index
+
+- [Install](#install)
+- [Usage](#usage)
+- [Support](#support)
+- [Reference](#reference)
+ - [``](#drive-picker)
+ - [``](#drive-picker-docs-view)
## Install
@@ -21,7 +30,7 @@ yarn add @googleworkspace/drive-picker-element
```
```sh
-pnpm add @googleworkspace/drive-picker-element
+pnpm i @googleworkspace/drive-picker-element
```
## Usage
@@ -32,130 +41,95 @@ import "@googleworkspace/drive-picker-element";
```html
-
-
-
+
```
-See the components and the official reference documentation for more details:
-
-| Status | Component | Reference Docs |
-| ----------------------------------------------------------------------------- | ------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- |
-| ✅ | [\](#drive-picker) | [PickerBuilder API Reference](https://developers.google.com/drive/picker/reference#picker-builder) |
-| ✅ | [\](#drive-picker-docs-view) | [DocsView API Reference](https://developers.google.com/drive/picker/reference#docs-view) |
-| ❌ - [ToDo](https://github.com/googleworkspace/drive-picker-element/issues/4) | [\](#drive-picker-docs-view) | [DocsUploadView API Reference](https://developers.google.com/drive/picker/reference#docs-upload-view) |
-
-To report issues or feature requests for the underlying Drive Picker, please use the [issue tracker](https://developers.google.com/drive/picker/support#developer_product_feedback).
-
-
-
-
-
-## drive-picker
-
-The `drive-picker` web component provides a convenient way to integrate the Google Picker API into your web applications. The Google Picker API is a JavaScript API that allows users to select or upload Google Drive files. This component acts as a "File Open" dialog for accessing and interacting with files stored on Google Drive.
-
-Features:
-
-- Provides a similar look-and-feel to the Google Drive UI.
-- Offers several views showing previews and thumbnail images of Drive files.
-- Displays as an inline, modal window, ensuring users never leave the main application.
-
-Note: The Google Picker API does not support file organization, moving, or copying. For these operations, you should use either the Google Drive API or the Drive UI.
-
-### Example
-
-```html
-
-
-
-```
+> Note: If you wish to register the component with a different name, `import { DrivePickerElement, DrivePickerDocsViewElement } from @googleworkspace/drive-picker-element/drive-picker` and call `customElements.define()` manually.
-### Properties
+## Support
-| Property | Attribute | Type | Default | Description |
-| -------------- | ---------------- | ---------------------- | -------------------------------------------- | ----------------------------------------------------- |
-| `appId` | `app-id` | `string` | | The Google Drive app ID. |
-| `clientId` | `client-id` | `string` | | The Google API client ID. |
-| `developerKey` | `developerKey` | `string \| undefined` | | The Google API developer key. |
-| `height` | `height` | `number \| undefined` | | The height of the picker dialog. |
-| `hideTitleBar` | `hide-title-bar` | `boolean \| undefined` | | Whether to hide the title bar of the picker dialog. |
-| `locale` | `locale` | `string \| undefined` | | The locale of the picker dialog. |
-| `maxItems` | `max-items` | `number \| undefined` | | The maximum number of items that the user can select. |
-| `multiselect` | `multiselect` | `boolean \| undefined` | | Whether the user can select multiple items. |
-| `oauthToken` | `oauth-token` | `string \| undefined` | | The OAuth token to authenticate the user. |
-| `origin` | `origin` | `string \| undefined` | | The origin of the picker dialog. |
-| `relayUrl` | `relay-url` | `string \| undefined` | | The relay URL to use for cross-origin communication. |
-| `scope` | `scope` | `string` | "https://www.googleapis.com/auth/drive.file" | The scope of the OAuth token. |
-| `title` | `title` | `string` | "" | The title of the picker dialog. |
-| `visible` | `visible` | `boolean` | true | Whether the picker dialog is visible. |
-| `width` | `width` | `number \| undefined` | | The width of the picker dialog. |
+To report issues or feature requests for the underlying Drive Picker, please use the [Google Picker issue tracker](https://developers.google.com/drive/picker/support#developer_product_feedback). For all other issues, please use the [GitHub issue tracker](https://github.com/googleworkspace/drive-picker-element/issues).
-### Methods
+## Reference
-| Method | Type |
-| --------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
-| `addEventListener` | `(type: "cancel" \| "picked", listener: (ev: CustomEvent): void, options?: boolean \| AddEventListenerOptions \| undefined) => void` |
-| `removeEventListener` | `(type: "cancel" \| "picked", listener: (ev: CustomEvent): void, options?: boolean \| EventListenerOptions \| undefined) => void` |
-
-### Events
-
-| Event | Type | Description |
-| -------- | ------------------------------------------- | -------------------------------------------------- |
-| `cancel` | `CustomEvent` | Triggered when the user cancels the picker dialog. |
-| `picked` | `CustomEvent` | Triggered when the user picks one or more items. |
-
-### Slots
-
-| Name | Description |
-| ---- | ------------------------------------------------------------------------------------------------------------------------------ |
-| | The View elements to display in the picker. Each View element should implement a property `view` of type `google.picker.View`. |
-
-
-
-## drive-picker-docs-view
-
-The `drive-picker-docs-view` element is used to define a view for the Google Drive Picker.
-
-### Example
-
-```html
-
-```
+
-### Properties
-
-| Property | Attribute | Modifiers | Type | Default | Description |
-| --------------------- | ----------------------- | --------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| `enableDrives` | `enable-drives` | | `boolean \| undefined` | | Indicates whether to enable drives in the view. |
-| `includeFolders` | `include-folders` | | `boolean \| undefined` | | Indicates whether to include folders in the view. |
-| `label` | `label` | | `string \| undefined` | | |
-| `mimeTypes` | `mime-types` | | `string \| undefined` | | The MIME types to filter the view by. |
-| `mode` | `mode` | | `"GRID" \| "LIST"` | "GRID" | The mode of the view. This should be one of the values of the `google.picker.DocsViewMode` enum. |
-| `ownedByMe` | `owned-by-me` | | `boolean \| undefined` | | Indicates whether to show only files owned by the user in the view. |
-| `parent` | `parent` | | `string \| undefined` | | The ID of the parent folder to restrict the view to. |
-| `query` | `query` | | `string \| undefined` | | The query string to filter the view by. |
-| `selectFolderEnabled` | `select-folder-enabled` | | `boolean \| undefined` | | Indicates whether selecting folders is enabled in the view. |
-| `starred` | `starred` | | `boolean \| undefined` | | Indicates whether to show only starred files in the view. |
-| `view` | | readonly | `DocsView` | | Gets the Google Drive Picker view based on the current property values. |
-| `viewId` | `view-id` | | `"DOCS" \| "DOCS_IMAGES" \| "DOCS_IMAGES_AND_VIDEOS" \| "DOCS_VIDEOS" \| "DOCUMENTS" \| "DRAWINGS" \| "FOLDERS" \| "FORMS" \| "PDFS" \| "PRESENTATIONS" \| "SPREADSHEETS" \| "IMAGE_SEARCH" \| ... 7 more ... \| "YOUTUBE"` | "DOCS" | The ID of the view. This should be one of the values of the
`google.picker.ViewId` enum.
Note: The default value is `DOCS` which corresponds to the
`google.picker.ViewId.DOCS` enum value in the Google Drive Picker API and
corresponsds to all Google Drive document types. |
+### ``
+
+The `drive-picker` web component provides a convenient way to declaratively
+build
+[`google.picker.Picker`](https://developers.google.com/drive/picker/reference/picker)
+by using the component attributes and
+[`google.picker.PickerBuilder`](https://developers.google.com/drive/picker/reference/picker.pickerbuilder)
+and load OAuth tokens.
+
+#### Attributes
+
+| Name | Type | Description |
+| ---------------- | ---------------------------- | --------------------------------------------------- |
+| `app-id` | `string` | The Google Drive app ID. |
+| `client-id` | `string` | The OAuth 2.0 client ID. |
+| `developer-key` | `string` | The API key for accessing Google Picker API. |
+| `hide-title-bar` | `"default"\|"true"\|"false"` | Hides the title bar of the picker if set to true. |
+| `locale` | `string` | The locale to use for the picker. |
+| `max-items` | `number` | The maximum number of items that can be selected. |
+| `mine-only` | `boolean` | If set to true, only shows files owned by the user. |
+| `multiselect` | `boolean` | Enables multiple file selection if set to true. |
+| `nav-hidden` | `boolean` | Hides the navigation pane if set to true. |
+| `oauth-token` | `string` | The OAuth 2.0 token for authentication. |
+| `origin` | `string` | The origin parameter for the picker. |
+| `relay-url` | `string` | The relay URL for the picker. |
+| `scope` | `string` | The OAuth 2.0 scope for the picker. |
+| `title` | `string` | The title of the picker. |
+
+#### Events
+
+| Name | Type | Description |
+| ---------------------- | ------------- | ---------------------------------------------------------------------------------- |
+| `picker:authenticated` | `CustomEvent` | Triggered when the user authenticates with the provided OAuth client ID and scope. |
+| `picker:canceled` | \`\` | Triggered when the user cancels the picker dialog. |
+| `picker:picked` | \`\` | Triggered when the user picks one or more items. |
+| `picker:loaded` | \`\` | Triggered when the picker is loaded. |
+
+#### Slots
+
+| Name | Description |
+| ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
+| default | The default slot contains View elements to display in the picker. Each View element should implement a property `view` of type `google.picker.View`. |
+
+#### Properties
+
+| Name | Type | Description |
+| --------- | --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
+| `visible` | `boolean` | Controls the visibility of the picker after the picker dialog has been
closed. If any of the attributes change, the picker will be rebuilt and
the visibility will be reset. |
+
+### ``
+
+The `drive-picker-docs-view` element is used to define a [`google.picker.DocsView`](https://developers.google.com/drive/picker/reference/picker.docsview).
+
+#### Attributes
+
+| Name | Type | Description |
+| ----------------------- | ---------------------------- | ------------------------------------------------------------------------------------------------------------------- |
+| `enable-drives` | `"default"\|"true"\|"false"` | Whether to allow the user to select files from shared drives. |
+| `include-folders` | `"default"\|"true"\|"false"` | Whether to include folders in the view. |
+| `mime-types` | `string` | A comma-separated list of MIME types to filter the view. |
+| `mode` | `string` | The mode of the view. |
+| `owned-by-me` | `"default"\|"true"\|"false"` | Whether to show files owned by the user. |
+| `parent` | `string` | The ID of the folder to view. |
+| `query` | `string` | The query string to filter the view. |
+| `select-folder-enabled` | `"default"\|"true"\|"false"` | Whether to allow the user to select folders. |
+| `starred` | `"default"\|"true"\|"false"` | Whether to show starred files. |
+| `view-id` | `string` | The `keyof typeof google.picker.ViewId`. For example, `"DOCS"`, which is equivalent to `google.picker.ViewId.DOCS`. |
+
+#### Properties
+
+| Name | Type | Description |
+| ------ | ------------------------ | ------------------------------------------------------------------------ |
+| `view` | `google.picker.DocsView` | Gets the Google Drive Picker view based on the current attribute values. |
-## Development
-
-```sh
-pnpm install
-pnpm build
-pnpm serve
-pnpm storybook
-```
-
[Google Drive Picker]: https://developers.google.com/drive/picker/guides/overview
+[Google Drive Picker Reference]: https://developers.google.com/drive/picker/reference/picker
diff --git a/biome.json b/biome.json
index ec6ded2..8719650 100644
--- a/biome.json
+++ b/biome.json
@@ -1,10 +1,5 @@
{
"organizeImports": { "enabled": true },
- "formatter": {
- "indentStyle": "tab",
- "indentWidth": 2,
- "ignore": ["*.json"]
- },
"linter": {
"enabled": true,
"rules": {
diff --git a/src/drive-picker/drive-picker.test.ts b/cem.config.js
similarity index 82%
rename from src/drive-picker/drive-picker.test.ts
rename to cem.config.js
index b0b4f01..57f45f2 100644
--- a/src/drive-picker/drive-picker.test.ts
+++ b/cem.config.js
@@ -14,9 +14,7 @@
* limitations under the License.
*/
-import { expect } from "@open-wc/testing";
-import "./drive-picker-element";
-
-it("skeleton", () => {
- expect(1 + 2).equal(3);
-});
+export default {
+ globs: ["src/**/*.ts"],
+ exclude: ["src/**/utils.ts", "src/stories/**/*"],
+};
diff --git a/custom-elements.json b/custom-elements.json
index 505545b..934bf3f 100644
--- a/custom-elements.json
+++ b/custom-elements.json
@@ -4,100 +4,23 @@
"modules": [
{
"kind": "javascript-module",
- "path": "dist/drive-picker.js",
- "declarations": [
- {
- "kind": "variable",
- "name": "DrivePickerElement",
- "default": "class extends LitElement { constructor() { super(...arguments); this.scope = \"https://www.googleapis.com/auth/drive.file\"; this.title = \"\"; this.visible = true; } /** * The `google.Picker.View` objects to display in the picker as defined by the slot elements. */ get views() { return nestedViews(this) ?? [new google.picker.DocsView()]; } async connectedCallback() { super.connectedCallback(); await loadApi(); this.observer = new MutationObserver((mutations) => { const filteredMutations = mutations.filter( (mutation) => mutation.type === \"childList\" || mutation.type === \"attributes\" && mutation.target !== this ); if (filteredMutations.length) { this.requestUpdate(); } }); this.observer?.observe(this, { childList: true, subtree: true, attributes: true }); } update(changedProperties) { if (!(changedProperties.size === 1 && changedProperties.has(\"visible\"))) { this.picker?.dispose(); this.picker = void 0; } if (changedProperties.has(\"oauthToken\")) { this._oauthToken = this.oauthToken; } if (this.visible && changedProperties.has(\"clientId\") || changedProperties.has(\"scope\") || !this._oauthToken) { retrieveAccessToken(this.clientId, this.scope).then((oauthToken) => { this._oauthToken = oauthToken; this.requestUpdate(); }); } super.update(changedProperties); } render() { if (!this.picker) { this.build(); } this.picker?.setVisible(this.visible); return html``; } build() { if (!this._oauthToken) { return; } let builder = new google.picker.PickerBuilder().setOAuthToken(this._oauthToken).setCallback((data) => { this.callbackToDispatchEvent(data); }); for (const view of this.views) { builder = builder.addView(view); } builder = setBuilderProperties(builder, this); this.picker = builder.build(); } callbackToDispatchEvent(data) { this.visible = Boolean(this.picker?.isVisible()); this.dispatch(data.action, data); } disconnectedCallback() { this.picker?.dispose(); super.disconnectedCallback(); } dispatch(type, detail) { return this.dispatchEvent(new CustomEvent(type, { detail })); } createRenderRoot() { return this; } }"
- }
- ],
+ "path": "src/index.ts",
+ "declarations": [],
"exports": [
{
- "kind": "js",
- "name": "DrivePickerElement",
+ "kind": "custom-element-definition",
+ "name": "drive-picker",
"declaration": {
"name": "DrivePickerElement",
- "module": "dist/drive-picker.js"
+ "module": "/src/drive-picker"
}
- }
- ]
- },
- {
- "kind": "javascript-module",
- "path": "dist/drive-picker.stories.js",
- "declarations": [
- {
- "kind": "variable",
- "name": "drive_picker_stories_default",
- "default": "meta"
- },
- {
- "kind": "variable",
- "name": "Primary",
- "type": {
- "text": "object"
- },
- "default": "{ args: { visible: true, clientId: \"675807958095-nsptdcn5qdb6pl44cge1c6ghact9t5q0.apps.googleusercontent.com\", developerKey: \"AIzaSyAdqZwr-cdocUdGbt9l0zc5s58jnrGseOY\", appId: \"675807958095\" } }"
},
{
- "kind": "variable",
- "name": "DocsView",
- "type": {
- "text": "object"
- },
- "default": "{ args: { visible: true, clientId: \"675807958095-nsptdcn5qdb6pl44cge1c6ghact9t5q0.apps.googleusercontent.com\", developerKey: \"AIzaSyAdqZwr-cdocUdGbt9l0zc5s58jnrGseOY\", appId: \"675807958095\" }, render: (props) => drivePickerTemplate( props, html2`` ) }"
- }
- ],
- "exports": [
- {
- "kind": "js",
- "name": "DocsView",
- "declaration": {
- "name": "DocsView",
- "module": "dist/drive-picker.stories.js"
- }
- },
- {
- "kind": "js",
- "name": "Primary",
- "declaration": {
- "name": "Primary",
- "module": "dist/drive-picker.stories.js"
- }
- },
- {
- "kind": "js",
- "name": "default",
- "declaration": {
- "name": "drive_picker_stories_default",
- "module": "dist/drive-picker.stories.js"
- }
- }
- ]
- },
- {
- "kind": "javascript-module",
- "path": "dist/index.js",
- "declarations": [
- {
- "kind": "variable",
- "name": "DrivePickerElement",
- "default": "class extends LitElement { constructor() { super(...arguments); this.scope = \"https://www.googleapis.com/auth/drive.file\"; this.title = \"\"; this.visible = true; } /** * The `google.Picker.View` objects to display in the picker as defined by the slot elements. */ get views() { return nestedViews(this) ?? [new google.picker.DocsView()]; } async connectedCallback() { super.connectedCallback(); await loadApi(); this.observer = new MutationObserver((mutations) => { const filteredMutations = mutations.filter( (mutation) => mutation.type === \"childList\" || mutation.type === \"attributes\" && mutation.target !== this ); if (filteredMutations.length) { this.requestUpdate(); } }); this.observer?.observe(this, { childList: true, subtree: true, attributes: true }); } update(changedProperties) { if (!(changedProperties.size === 1 && changedProperties.has(\"visible\"))) { this.picker?.dispose(); this.picker = void 0; } if (changedProperties.has(\"oauthToken\")) { this._oauthToken = this.oauthToken; } if (this.visible && changedProperties.has(\"clientId\") || changedProperties.has(\"scope\") || !this._oauthToken) { retrieveAccessToken(this.clientId, this.scope).then((oauthToken) => { this._oauthToken = oauthToken; this.requestUpdate(); }); } super.update(changedProperties); } render() { if (!this.picker) { this.build(); } this.picker?.setVisible(this.visible); return html``; } build() { if (!this._oauthToken) { return; } let builder = new google.picker.PickerBuilder().setOAuthToken(this._oauthToken).setCallback((data) => { this.callbackToDispatchEvent(data); }); for (const view of this.views) { builder = builder.addView(view); } builder = setBuilderProperties(builder, this); this.picker = builder.build(); } callbackToDispatchEvent(data) { this.visible = Boolean(this.picker?.isVisible()); this.dispatch(data.action, data); } disconnectedCallback() { this.picker?.dispose(); super.disconnectedCallback(); } dispatch(type, detail) { return this.dispatchEvent(new CustomEvent(type, { detail })); } createRenderRoot() { return this; } }"
- },
- {
- "kind": "variable",
- "name": "DrivePickerDocsViewElement",
- "default": "class extends LitElement2 { constructor() { super(...arguments); this.viewId = \"DOCS\"; this.mode = \"GRID\"; } /** * Gets the Google Drive Picker view based on the current property values. * @returns {google.picker.DocsView} The Google Drive picker view. */ get view() { const view = new google.picker.DocsView( this.viewId && google.picker.ViewId[this.viewId] ); if (this.label) { view.setLabel(this.label); } if (this.enableDrives !== void 0) { view.setEnableDrives(this.enableDrives); } if (this.includeFolders !== void 0) { view.setIncludeFolders(this.includeFolders); } if (this.mimeTypes) { view.setMimeTypes(this.mimeTypes); } if (this.mode) { view.setMode(google.picker.DocsViewMode[this.mode]); } if (this.ownedByMe !== void 0) { view.setOwnedByMe(this.ownedByMe); } if (this.parent) { view.setParent(this.parent); } if (this.query) { view.setQuery(this.query); } if (this.selectFolderEnabled !== void 0) { view.setSelectFolderEnabled(this.selectFolderEnabled); } if (this.starred !== void 0) { view.setStarred(this.starred); } return view; } }"
- }
- ],
- "exports": [
- {
- "kind": "js",
- "name": "DrivePickerDocsViewElement",
+ "kind": "custom-element-definition",
+ "name": "drive-picker-docs-view",
"declaration": {
"name": "DrivePickerDocsViewElement",
- "module": "dist/index.js"
+ "module": "/src/drive-picker"
}
},
{
@@ -105,213 +28,28 @@
"name": "DrivePickerElement",
"declaration": {
"name": "DrivePickerElement",
- "module": "dist/index.js"
- }
- }
- ]
- },
- {
- "kind": "javascript-module",
- "path": "dist/types.js",
- "declarations": [],
- "exports": []
- },
- {
- "kind": "javascript-module",
- "path": "src/index.ts",
- "declarations": [],
- "exports": [
- {
- "kind": "js",
- "name": "*",
- "declaration": {
- "name": "*",
- "package": "./drive-picker"
- }
- }
- ]
- },
- {
- "kind": "javascript-module",
- "path": "src/utils.ts",
- "declarations": [
- {
- "kind": "function",
- "name": "loadApi",
- "parameters": [
- {
- "name": "api",
- "default": "\"client:picker\""
- }
- ]
- },
- {
- "kind": "function",
- "name": "retrieveAccessToken",
- "return": {
- "type": {
- "text": "Promise"
- }
- },
- "parameters": [
- {
- "name": "clientId",
- "type": {
- "text": "string"
- }
- },
- {
- "name": "scope",
- "type": {
- "text": "string"
- }
- }
- ]
- },
- {
- "kind": "function",
- "name": "injectScript",
- "return": {
- "type": {
- "text": "Promise"
- }
- },
- "parameters": [
- {
- "name": "src",
- "type": {
- "text": "string"
- }
- }
- ]
- }
- ],
- "exports": [
- {
- "kind": "js",
- "name": "loadApi",
- "declaration": {
- "name": "loadApi",
- "module": "src/utils.ts"
- }
- },
- {
- "kind": "js",
- "name": "retrieveAccessToken",
- "declaration": {
- "name": "retrieveAccessToken",
- "module": "src/utils.ts"
+ "module": "src/index.ts"
}
},
{
"kind": "js",
- "name": "injectScript",
+ "name": "DrivePickerDocsViewElement",
"declaration": {
- "name": "injectScript",
- "module": "src/utils.ts"
+ "name": "DrivePickerDocsViewElement",
+ "module": "src/index.ts"
}
}
]
},
{
"kind": "javascript-module",
- "path": "src/drive-picker/drive-picker-docs-view.ts",
+ "path": "src/drive-picker/drive-picker-docs-view-element.ts",
"declarations": [
{
"kind": "class",
- "description": "The `drive-picker-docs-view` element is used to define a view for the Google Drive Picker.",
+ "description": "The `drive-picker-docs-view` element is used to define a [`google.picker.DocsView`](https://developers.google.com/drive/picker/reference/picker.docsview).",
"name": "DrivePickerDocsViewElement",
"members": [
- {
- "kind": "field",
- "name": "label",
- "type": {
- "text": "string | undefined"
- },
- "attribute": "label"
- },
- {
- "kind": "field",
- "name": "viewId",
- "type": {
- "text": "ViewId"
- },
- "default": "\"DOCS\"",
- "attribute": "view-id"
- },
- {
- "kind": "field",
- "name": "mimeTypes",
- "type": {
- "text": "string | undefined"
- },
- "attribute": "mime-types"
- },
- {
- "kind": "field",
- "name": "query",
- "type": {
- "text": "string | undefined"
- },
- "attribute": "query"
- },
- {
- "kind": "field",
- "name": "enableDrives",
- "type": {
- "text": "boolean | undefined"
- },
- "attribute": "enable-drives"
- },
- {
- "kind": "field",
- "name": "includeFolders",
- "type": {
- "text": "boolean | undefined"
- },
- "attribute": "include-folders"
- },
- {
- "kind": "field",
- "name": "selectFolderEnabled",
- "type": {
- "text": "boolean | undefined"
- },
- "attribute": "select-folder-enabled"
- },
- {
- "kind": "field",
- "name": "mode",
- "type": {
- "text": "DocsViewMode"
- },
- "default": "\"GRID\"",
- "attribute": "mode"
- },
- {
- "kind": "field",
- "name": "ownedByMe",
- "type": {
- "text": "boolean | undefined"
- },
- "attribute": "owned-by-me"
- },
- {
- "kind": "field",
- "name": "parent",
- "type": {
- "text": "string | undefined"
- },
- "attribute": "parent"
- },
- {
- "kind": "field",
- "name": "starred",
- "type": {
- "text": "boolean | undefined"
- },
- "attribute": "starred"
- },
{
"kind": "field",
"name": "view",
@@ -319,99 +57,98 @@
"text": "google.picker.DocsView"
},
"privacy": "public",
- "description": "Gets the Google Drive Picker view based on the current property values.",
+ "description": "Gets the Google Drive Picker view based on the current attribute values.",
"return": {
"type": {
"text": "google.picker.DocsView"
}
},
"readonly": true
+ },
+ {
+ "kind": "field",
+ "name": "viewId",
+ "type": {
+ "text": "google.picker.ViewId | undefined"
+ },
+ "privacy": "private",
+ "readonly": true
}
],
"attributes": [
{
- "name": "label",
+ "name": "enable-drives",
"type": {
- "text": "string | undefined"
+ "text": "\"default\"|\"true\"|\"false\""
},
- "fieldName": "label"
+ "description": "Whether to allow the user to select files from shared drives."
},
{
- "name": "view-id",
+ "name": "include-folders",
"type": {
- "text": "ViewId"
+ "text": "\"default\"|\"true\"|\"false\""
},
- "default": "\"DOCS\"",
- "fieldName": "viewId"
+ "description": "Whether to include folders in the view."
},
{
"name": "mime-types",
"type": {
- "text": "string | undefined"
- },
- "fieldName": "mimeTypes"
- },
- {
- "name": "query",
- "type": {
- "text": "string | undefined"
+ "text": "string"
},
- "fieldName": "query"
+ "description": "A comma-separated list of MIME types to filter the view."
},
{
- "name": "enable-drives",
+ "name": "mode",
"type": {
- "text": "boolean | undefined"
+ "text": "string"
},
- "fieldName": "enableDrives"
+ "description": "The mode of the view."
},
{
- "name": "include-folders",
+ "name": "owned-by-me",
"type": {
- "text": "boolean | undefined"
+ "text": "\"default\"|\"true\"|\"false\""
},
- "fieldName": "includeFolders"
+ "description": "Whether to show files owned by the user."
},
{
- "name": "select-folder-enabled",
+ "name": "parent",
"type": {
- "text": "boolean | undefined"
+ "text": "string"
},
- "fieldName": "selectFolderEnabled"
+ "description": "The ID of the folder to view."
},
{
- "name": "mode",
+ "name": "query",
"type": {
- "text": "DocsViewMode"
+ "text": "string"
},
- "default": "\"GRID\"",
- "fieldName": "mode"
+ "description": "The query string to filter the view."
},
{
- "name": "owned-by-me",
+ "name": "select-folder-enabled",
"type": {
- "text": "boolean | undefined"
+ "text": "\"default\"|\"true\"|\"false\""
},
- "fieldName": "ownedByMe"
+ "description": "Whether to allow the user to select folders."
},
{
- "name": "parent",
+ "name": "starred",
"type": {
- "text": "string | undefined"
+ "text": "\"default\"|\"true\"|\"false\""
},
- "fieldName": "parent"
+ "description": "Whether to show starred files."
},
{
- "name": "starred",
+ "name": "view-id",
"type": {
- "text": "boolean | undefined"
+ "text": "string"
},
- "fieldName": "starred"
+ "description": "The `keyof typeof google.picker.ViewId`. For example, `\"DOCS\"`, which is equivalent to `google.picker.ViewId.DOCS`."
}
],
"superclass": {
- "name": "LitElement",
- "package": "lit"
+ "name": "HTMLElement"
},
"tagName": "drive-picker-docs-view",
"customElement": true
@@ -423,86 +160,22 @@
"name": "DrivePickerDocsViewElement",
"declaration": {
"name": "DrivePickerDocsViewElement",
- "module": "src/drive-picker/drive-picker-docs-view.ts"
- }
- },
- {
- "kind": "custom-element-definition",
- "name": "drive-picker-docs-view",
- "declaration": {
- "name": "DrivePickerDocsViewElement",
- "module": "src/drive-picker/drive-picker-docs-view.ts"
+ "module": "src/drive-picker/drive-picker-docs-view-element.ts"
}
}
]
},
{
"kind": "javascript-module",
- "path": "src/drive-picker/drive-picker.stories.ts",
- "declarations": [
- {
- "kind": "variable",
- "name": "meta",
- "type": {
- "text": "Meta"
- },
- "default": "{ title: \"Drive Picker\", tags: [\"autodocs\"], decorators: [withActions], parameters: { actions: { handles: [\"picked\", \"cancel\"] }, }, render: (props: DrivePickerElementProps) => drivePickerTemplate(props), argTypes: { appId: { control: \"text\" }, clientId: { control: \"text\" }, oauthToken: { control: \"text\" }, visible: { control: \"boolean\" }, }, args: { visible: true, }, }"
- },
- {
- "kind": "variable",
- "name": "Primary",
- "type": {
- "text": "Story"
- },
- "default": "{ args: { visible: true, clientId: \"675807958095-nsptdcn5qdb6pl44cge1c6ghact9t5q0.apps.googleusercontent.com\", developerKey: \"AIzaSyAdqZwr-cdocUdGbt9l0zc5s58jnrGseOY\", appId: \"675807958095\", }, }"
- },
- {
- "kind": "variable",
- "name": "DocsView",
- "type": {
- "text": "Story"
- },
- "default": "{ args: { visible: true, clientId: \"675807958095-nsptdcn5qdb6pl44cge1c6ghact9t5q0.apps.googleusercontent.com\", developerKey: \"AIzaSyAdqZwr-cdocUdGbt9l0zc5s58jnrGseOY\", appId: \"675807958095\", }, render: (props: DrivePickerElementProps) => drivePickerTemplate( props, html`` ), }"
- }
- ],
- "exports": [
- {
- "kind": "js",
- "name": "default",
- "declaration": {
- "name": "meta",
- "module": "src/drive-picker/drive-picker.stories.ts"
- }
- },
- {
- "kind": "js",
- "name": "Primary",
- "declaration": {
- "name": "Primary",
- "module": "src/drive-picker/drive-picker.stories.ts"
- }
- },
- {
- "kind": "js",
- "name": "DocsView",
- "declaration": {
- "name": "DocsView",
- "module": "src/drive-picker/drive-picker.stories.ts"
- }
- }
- ]
- },
- {
- "kind": "javascript-module",
- "path": "src/drive-picker/drive-picker.ts",
+ "path": "src/drive-picker/drive-picker-element.ts",
"declarations": [
{
"kind": "class",
- "description": "The `drive-picker` web component provides a convenient way to integrate the Google Picker API into your web applications. The Google Picker API is a JavaScript API that allows users to select or upload Google Drive files. This component acts as a \"File Open\" dialog for accessing and interacting with files stored on Google Drive.\n\nFeatures:\n- Provides a similar look-and-feel to the Google Drive UI.\n- Offers several views showing previews and thumbnail images of Drive files.\n- Displays as an inline, modal window, ensuring users never leave the main application.\n\nNote: The Google Picker API does not support file organization, moving, or copying. For these operations, you should use either the Google Drive API or the Drive UI.",
+ "description": "The `drive-picker` web component provides a convenient way to declaratively\nbuild\n[`google.picker.Picker`](https://developers.google.com/drive/picker/reference/picker)\nby using the component attributes and\n[`google.picker.PickerBuilder`](https://developers.google.com/drive/picker/reference/picker.pickerbuilder)\nand load OAuth tokens.",
"name": "DrivePickerElement",
"slots": [
{
- "description": "The View elements to display in the picker. Each View element should implement a property `view` of type `google.picker.View`.",
+ "description": "The default slot contains View elements to display in the picker. Each View element should implement a property `view` of type `google.picker.View`.",
"name": ""
}
],
@@ -521,134 +194,23 @@
"type": {
"text": "MutationObserver | undefined"
},
- "privacy": "protected"
- },
- {
- "kind": "field",
- "name": "_oauthToken",
- "type": {
- "text": "string | undefined"
- },
"privacy": "private"
},
{
"kind": "field",
- "name": "appId",
+ "name": "google",
"type": {
- "text": "string"
+ "text": "typeof google | undefined"
},
- "description": "The Google Drive app ID.",
- "attribute": "app-id"
- },
- {
- "kind": "field",
- "name": "clientId",
- "type": {
- "text": "string"
- },
- "description": "The Google API client ID.",
- "attribute": "client-id"
- },
- {
- "kind": "field",
- "name": "developerKey",
- "type": {
- "text": "string | undefined"
- },
- "description": "The Google API developer key.",
- "attribute": "developerKey"
- },
- {
- "kind": "field",
- "name": "height",
- "type": {
- "text": "number | undefined"
- },
- "description": "The height of the picker dialog.",
- "attribute": "height"
- },
- {
- "kind": "field",
- "name": "hideTitleBar",
- "type": {
- "text": "boolean | undefined"
- },
- "description": "Whether to hide the title bar of the picker dialog.",
- "attribute": "hide-title-bar"
- },
- {
- "kind": "field",
- "name": "locale",
- "type": {
- "text": "string | undefined"
- },
- "description": "The locale of the picker dialog.",
- "attribute": "locale"
- },
- {
- "kind": "field",
- "name": "maxItems",
- "type": {
- "text": "number | undefined"
- },
- "description": "The maximum number of items that the user can select.",
- "attribute": "max-items"
- },
- {
- "kind": "field",
- "name": "multiselect",
- "type": {
- "text": "boolean | undefined"
- },
- "description": "Whether the user can select multiple items.",
- "attribute": "multiselect"
- },
- {
- "kind": "field",
- "name": "oauthToken",
- "type": {
- "text": "string | undefined"
- },
- "description": "The OAuth token to authenticate the user.",
- "attribute": "oauth-token"
- },
- {
- "kind": "field",
- "name": "origin",
- "type": {
- "text": "string | undefined"
- },
- "description": "The origin of the picker dialog.",
- "attribute": "origin"
- },
- {
- "kind": "field",
- "name": "relayUrl",
- "type": {
- "text": "string | undefined"
- },
- "description": "The relay URL to use for cross-origin communication.",
- "attribute": "relay-url"
- },
- {
- "kind": "field",
- "name": "scope",
- "type": {
- "text": "string"
- },
- "default": "\"https://www.googleapis.com/auth/drive.file\"",
- "description": "The scope of the OAuth token.",
- "attribute": "scope"
+ "privacy": "private"
},
{
"kind": "field",
- "name": "title",
+ "name": "loading",
"type": {
- "text": "string"
+ "text": "Promise | undefined"
},
- "default": "\"\"",
- "description": "The title of the picker dialog.",
- "attribute": "title"
+ "privacy": "private"
},
{
"kind": "field",
@@ -656,34 +218,24 @@
"type": {
"text": "boolean"
},
- "default": "true",
- "description": "Whether the picker dialog is visible.",
- "attribute": "visible",
- "reflects": true
+ "privacy": "public",
+ "description": "Controls the visibility of the picker after the picker dialog has been\nclosed. If any of the attributes change, the picker will be rebuilt and\nthe visibility will be reset."
},
{
- "kind": "field",
- "name": "width",
- "type": {
- "text": "number | undefined"
- },
- "description": "The width of the picker dialog.",
- "attribute": "width"
+ "kind": "method",
+ "name": "build",
+ "privacy": "private"
},
{
"kind": "field",
"name": "views",
"type": {
- "text": "View[]"
+ "text": "(View | google.picker.ViewId)[]"
},
+ "privacy": "private",
"description": "The `google.Picker.View` objects to display in the picker as defined by the slot elements.",
"readonly": true
},
- {
- "kind": "method",
- "name": "build",
- "privacy": "private"
- },
{
"kind": "method",
"name": "callbackToDispatchEvent",
@@ -696,41 +248,33 @@
}
}
]
- },
- {
- "kind": "method",
- "name": "dispatch",
- "privacy": "private",
- "parameters": [
- {
- "name": "type",
- "type": {
- "text": "\"cancel\" | \"picked\""
- }
- },
- {
- "name": "detail",
- "type": {
- "text": "google.picker.ResponseObject"
- }
- }
- ]
}
],
"events": [
{
- "name": "type",
+ "name": "picker:authenticated",
+ "type": {
+ "text": "CustomEvent"
+ },
+ "description": "Triggered when the user authenticates with the provided OAuth client ID and scope."
+ },
+ {
+ "name": "eventType",
"type": {
"text": "CustomEvent"
}
},
{
"description": "Triggered when the user cancels the picker dialog.",
- "name": "cancel"
+ "name": "picker:canceled"
},
{
"description": "Triggered when the user picks one or more items.",
- "name": "picked"
+ "name": "picker:picked"
+ },
+ {
+ "description": "Triggered when the picker is loaded.",
+ "name": "picker:loaded"
}
],
"attributes": [
@@ -739,128 +283,102 @@
"type": {
"text": "string"
},
- "description": "The Google Drive app ID.",
- "fieldName": "appId"
+ "description": "The Google Drive app ID."
},
{
"name": "client-id",
"type": {
"text": "string"
},
- "description": "The Google API client ID.",
- "fieldName": "clientId"
+ "description": "The OAuth 2.0 client ID."
},
{
- "name": "developerKey",
+ "name": "developer-key",
"type": {
- "text": "string | undefined"
- },
- "description": "The Google API developer key.",
- "fieldName": "developerKey"
- },
- {
- "name": "height",
- "type": {
- "text": "number | undefined"
+ "text": "string"
},
- "description": "The height of the picker dialog.",
- "fieldName": "height"
+ "description": "The API key for accessing Google Picker API."
},
{
"name": "hide-title-bar",
"type": {
- "text": "boolean | undefined"
+ "text": "\"default\"|\"true\"|\"false\""
},
- "description": "Whether to hide the title bar of the picker dialog.",
- "fieldName": "hideTitleBar"
+ "description": "Hides the title bar of the picker if set to true."
},
{
"name": "locale",
"type": {
- "text": "string | undefined"
+ "text": "string"
},
- "description": "The locale of the picker dialog.",
- "fieldName": "locale"
+ "description": "The locale to use for the picker."
},
{
"name": "max-items",
"type": {
- "text": "number | undefined"
+ "text": "number"
},
- "description": "The maximum number of items that the user can select.",
- "fieldName": "maxItems"
+ "description": "The maximum number of items that can be selected."
},
{
- "name": "multiselect",
+ "name": "mine-only",
"type": {
- "text": "boolean | undefined"
+ "text": "boolean"
},
- "description": "Whether the user can select multiple items.",
- "fieldName": "multiselect"
+ "description": "If set to true, only shows files owned by the user."
},
{
- "name": "oauth-token",
+ "name": "multiselect",
"type": {
- "text": "string | undefined"
+ "text": "boolean"
},
- "description": "The OAuth token to authenticate the user.",
- "fieldName": "oauthToken"
+ "description": "Enables multiple file selection if set to true."
},
{
- "name": "origin",
+ "name": "nav-hidden",
"type": {
- "text": "string | undefined"
+ "text": "boolean"
},
- "description": "The origin of the picker dialog.",
- "fieldName": "origin"
+ "description": "Hides the navigation pane if set to true."
},
{
- "name": "relay-url",
+ "name": "oauth-token",
"type": {
- "text": "string | undefined"
+ "text": "string"
},
- "description": "The relay URL to use for cross-origin communication.",
- "fieldName": "relayUrl"
+ "description": "The OAuth 2.0 token for authentication."
},
{
- "name": "scope",
+ "name": "origin",
"type": {
"text": "string"
},
- "default": "\"https://www.googleapis.com/auth/drive.file\"",
- "description": "The scope of the OAuth token.",
- "fieldName": "scope"
+ "description": "The origin parameter for the picker."
},
{
- "name": "title",
+ "name": "relay-url",
"type": {
"text": "string"
},
- "default": "\"\"",
- "description": "The title of the picker dialog.",
- "fieldName": "title"
+ "description": "The relay URL for the picker."
},
{
- "name": "visible",
+ "name": "scope",
"type": {
- "text": "boolean"
+ "text": "string"
},
- "default": "true",
- "description": "Whether the picker dialog is visible.",
- "fieldName": "visible"
+ "description": "The OAuth 2.0 scope for the picker."
},
{
- "name": "width",
+ "name": "title",
"type": {
- "text": "number | undefined"
+ "text": "string"
},
- "description": "The width of the picker dialog.",
- "fieldName": "width"
+ "description": "The title of the picker."
}
],
"superclass": {
- "name": "LitElement",
- "package": "lit"
+ "name": "HTMLElement"
},
"tagName": "drive-picker",
"customElement": true
@@ -872,15 +390,7 @@
"name": "DrivePickerElement",
"declaration": {
"name": "DrivePickerElement",
- "module": "src/drive-picker/drive-picker.ts"
- }
- },
- {
- "kind": "custom-element-definition",
- "name": "drive-picker",
- "declaration": {
- "name": "DrivePickerElement",
- "module": "src/drive-picker/drive-picker.ts"
+ "module": "src/drive-picker/drive-picker-element.ts"
}
}
]
@@ -895,15 +405,7 @@
"name": "DrivePickerElement",
"declaration": {
"name": "DrivePickerElement",
- "module": "\"./drive-picker\""
- }
- },
- {
- "kind": "js",
- "name": "DrivePickerElementProps",
- "declaration": {
- "name": "DrivePickerElementProps",
- "module": "\"./drive-picker\""
+ "module": "\"./drive-picker-element\""
}
},
{
@@ -911,15 +413,7 @@
"name": "DrivePickerDocsViewElement",
"declaration": {
"name": "DrivePickerDocsViewElement",
- "module": "\"./drive-picker-docs-view\""
- }
- },
- {
- "kind": "js",
- "name": "DrivePickerDocsViewElementProps",
- "declaration": {
- "name": "DrivePickerDocsViewElementProps",
- "module": "\"./drive-picker-docs-view\""
+ "module": "\"./drive-picker-docs-view-element\""
}
}
]
@@ -929,24 +423,6 @@
"path": "src/drive-picker/types.ts",
"declarations": [],
"exports": []
- },
- {
- "kind": "javascript-module",
- "path": "coverage/lcov-report/block-navigation.js",
- "declarations": [],
- "exports": []
- },
- {
- "kind": "javascript-module",
- "path": "coverage/lcov-report/prettify.js",
- "declarations": [],
- "exports": []
- },
- {
- "kind": "javascript-module",
- "path": "coverage/lcov-report/sorter.js",
- "declarations": [],
- "exports": []
}
]
}
diff --git a/examples/drive-picker.html b/examples/drive-picker.html
deleted file mode 100644
index de30bbe..0000000
--- a/examples/drive-picker.html
+++ /dev/null
@@ -1,40 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/docs/logo.jpg b/logo.jpg
similarity index 100%
rename from docs/logo.jpg
rename to logo.jpg
diff --git a/package.json b/package.json
index 3e5b16e..d1b0266 100644
--- a/package.json
+++ b/package.json
@@ -9,134 +9,105 @@
"url": "https://justin.poehnelt.com"
},
"type": "module",
- "main": "dist/index.js",
- "module": "dist/index.js",
- "types": "dist/index.d.ts",
+ "exports": {
+ ".": {
+ "browser": "./dist/index.iife.min.js",
+ "types": "./dist/index.d.ts",
+ "import": "./dist/index.js"
+ },
+ "./drive-picker": {
+ "types": "./dist/drive-picker/index.d.ts",
+ "import": "./dist/drive-picker/index.js"
+ },
+ "./package.json": "./package.json"
+ },
+ "files": ["dist", "src", "custom-elements.json"],
"homepage": "https://github.com/googleworkspace/drive-picker-element",
"repository": {
"type": "git",
"url": "https://github.com/googleworkspace/drive-picker-element.git"
},
"scripts": {
- "prepare": "husky",
"build": "wireit",
- "build:docs": "wireit",
- "serve": "wireit",
"check": "tsc --noEmit",
+ "format": "biome check --fix .",
"lint": "biome check .",
- "format": "biome check --write .",
- "test": "wireit",
- "storybook": "storybook dev -p 6006",
- "build-storybook": "storybook build"
- },
- "dependencies": {
- "lit": "^3.1.2"
+ "prepack": "pnpm build",
+ "prepare": "husky",
+ "storybook": "wireit",
+ "test": "echo \"No tests yet.\""
},
"devDependencies": {
"@biomejs/biome": "1.8.3",
- "@chromatic-com/storybook": "^1.5.0",
"@custom-elements-manifest/analyzer": "^0.10.2",
- "@open-wc/lit-helpers": "^0.7.0",
- "@open-wc/testing": "^4.0.0",
- "@storybook/addon-actions": "^8.1.9",
- "@storybook/addon-essentials": "^8.1.9",
- "@storybook/addon-links": "^8.1.9",
- "@storybook/blocks": "^8.1.9",
- "@storybook/test": "^8.1.9",
- "@storybook/web-components": "^8.1.9",
- "@storybook/web-components-vite": "^8.1.9",
+ "@storybook/addon-essentials": "^8.4.4",
+ "@storybook/blocks": "^8.4.4",
+ "@storybook/csf": "^0.1.11",
+ "@storybook/types": "^8.4.4",
+ "@storybook/web-components": "^8.4.4",
+ "@storybook/web-components-vite": "^8.4.4",
"@types/gapi": "^0.0.47",
"@types/google.accounts": "^0.0.14",
"@types/google.picker": "^0.0.44",
+ "@types/mdast": "^4.0.4",
+ "@types/memoizee": "^0.4.11",
"@types/mocha": "^10.0.6",
"@types/node": "^22.4.1",
- "@web/dev-server": "^0.4.5",
- "@web/test-runner": "^0.18.2",
- "@web/test-runner-playwright": "^0.11.0",
- "chai": "^5.1.1",
+ "@types/unist": "^3.0.3",
+ "browserslist": "^4.24.0",
+ "browserslist-to-esbuild": "^2.1.1",
+ "custom-elements-manifest": "^2.1.0",
"husky": "^9.1.4",
"lint-staged": "^15.2.9",
- "playwright": "^1.44.0",
+ "mdast-util-from-markdown": "^2.0.2",
"prettier": "^3.3.3",
- "storybook": "^8.1.9",
+ "remark": "^15.0.1",
+ "remark-behead": "^3.1.0",
+ "remark-gfm": "^4.0.0",
+ "remark-github": "^12.0.0",
+ "remark-toc": "^9.0.0",
+ "storybook": "^8.4.4",
"tsup": "^8.0.2",
- "typescript": "^5.2.2",
- "web-component-analyzer": "^2.0.0",
+ "tsx": "^4.19.2",
+ "typescript": "^5.6.3",
"wireit": "^0.14.4"
},
- "customElements": "custom-elements.json",
+ "customElements": "dist/custom-elements.json",
"wireit": {
"build": {
- "clean": true,
- "command": "tsup --dts --format esm --target es2020 --splitting false --sourcemap src/**/*.ts",
"dependencies": [
- "build:vscode",
- "build:docs"
- ],
- "files": [
- "src/**/*.ts"
- ],
- "output": [
- "dist/**/*.js",
- "dist/**/*.d.ts"
+ "build:components",
+ "build:manifest",
+ "build:readme",
+ "build:storybook"
]
},
- "build:json": {
- "command": "cem analyze --litelement --outdir dist --exclude '**/*.test.ts'",
- "files": [
- "src/**/*.ts"
- ],
- "output": [
- "dist/custom-elements.json"
- ]
+ "build:components": {
+ "command": "tsup",
+ "files": ["src/**/*.ts", "tsup.config.ts"],
+ "output": ["dist/**/*.(js|ts|map)"]
},
- "build:vscode": {
- "command": "wca src --outFile dist/custom-data-vscode.json --format vscode",
- "files": [
- "src/**/*.ts"
- ],
- "output": [
- "dist/custom-data-vscode.json"
- ]
+ "build:manifest": {
+ "command": "cem analyze --config cem.config.js && biome check --fix custom-elements.json",
+ "files": ["src/**/*.ts", "cem.config.js"],
+ "output": ["custom-elements.json"]
},
- "build:docs": {
+ "build:readme": {
"clean": false,
- "command": "wca src --outDir docs --format 'md' --visibility 'public' --inlineTypes && node ./.github/docs.js",
- "dependencies": [
- "build:docs-wca"
- ],
- "files": [
- "docs/**/*.md",
- "README.md"
- ],
- "output": [
- "README.md"
- ]
+ "command": "tsx ./scripts/docs.ts",
+ "files": ["custom-elements.json", "scripts/**/*.ts", "README.md"],
+ "output": ["README.md"],
+ "dependencies": ["build:manifest"]
},
- "build:docs-wca": {
- "command": "wca src --outDir docs --format 'md' --visibility 'public' --inlineTypes",
- "files": [
- "src/**/*.ts"
- ],
- "output": [
- "docs/*.md"
- ]
+ "build:storybook": {
+ "command": "storybook build",
+ "files": ["src/**/*.ts", "stories/**/*.ts"],
+ "output": ["dist/storybook"]
},
- "serve": {
- "command": "wds --node-resolve --watch --open examples/drive-picker.html",
- "dependencies": [
- {
- "cascade": true,
- "script": "build"
- }
- ],
- "service": true
- },
- "test": {
- "command": "wtr dist/*.test.js --node-resolve --coverage --reporter spec --playwright --browsers chromium",
- "dependencies": [
- "build"
- ]
+ "storybook": {
+ "service": true,
+ "command": "storybook dev -p 6006",
+ "dependencies": ["build:manifest"]
}
},
"husky": {
@@ -145,7 +116,7 @@
}
},
"lint-staged": {
- "*": "pnpm build:docs && pnpm format && pnpm lint && pnpm check"
+ "*": "pnpm build && pnpm format && pnpm lint && pnpm check"
},
"publishConfig": {
"access": "public",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 3b25d5c..e606c4e 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -4,48 +4,31 @@ settings:
autoInstallPeers: true
excludeLinksFromLockfile: false
-dependencies:
- lit:
- specifier: ^3.1.2
- version: 3.1.3
-
devDependencies:
'@biomejs/biome':
specifier: 1.8.3
version: 1.8.3
- '@chromatic-com/storybook':
- specifier: ^1.5.0
- version: 1.9.0(react@18.3.1)
'@custom-elements-manifest/analyzer':
specifier: ^0.10.2
version: 0.10.2
- '@open-wc/lit-helpers':
- specifier: ^0.7.0
- version: 0.7.0(lit@3.1.3)
- '@open-wc/testing':
- specifier: ^4.0.0
- version: 4.0.0
- '@storybook/addon-actions':
- specifier: ^8.1.9
- version: 8.4.1(storybook@8.4.1)
'@storybook/addon-essentials':
- specifier: ^8.1.9
- version: 8.4.1(@types/react@18.3.12)(storybook@8.4.1)
- '@storybook/addon-links':
- specifier: ^8.1.9
- version: 8.4.1(react@18.3.1)(storybook@8.4.1)
+ specifier: ^8.4.4
+ version: 8.4.4(@types/react@18.3.12)(storybook@8.4.4)
'@storybook/blocks':
- specifier: ^8.1.9
- version: 8.4.1(react-dom@18.3.1)(react@18.3.1)(storybook@8.4.1)
- '@storybook/test':
- specifier: ^8.1.9
- version: 8.4.1(storybook@8.4.1)
+ specifier: ^8.4.4
+ version: 8.4.4(react-dom@18.3.1)(react@18.3.1)(storybook@8.4.4)
+ '@storybook/csf':
+ specifier: ^0.1.11
+ version: 0.1.11
+ '@storybook/types':
+ specifier: ^8.4.4
+ version: 8.4.4(storybook@8.4.4)
'@storybook/web-components':
- specifier: ^8.1.9
- version: 8.4.1(lit@3.1.3)(storybook@8.4.1)
+ specifier: ^8.4.4
+ version: 8.4.4(lit@3.2.1)(storybook@8.4.4)
'@storybook/web-components-vite':
- specifier: ^8.1.9
- version: 8.4.1(lit@3.1.3)(storybook@8.4.1)(vite@5.4.10)
+ specifier: ^8.4.4
+ version: 8.4.4(lit@3.2.1)(storybook@8.4.4)(vite@5.4.11)
'@types/gapi':
specifier: ^0.0.47
version: 0.0.47
@@ -55,89 +38,75 @@ devDependencies:
'@types/google.picker':
specifier: ^0.0.44
version: 0.0.44
+ '@types/mdast':
+ specifier: ^4.0.4
+ version: 4.0.4
+ '@types/memoizee':
+ specifier: ^0.4.11
+ version: 0.4.11
'@types/mocha':
specifier: ^10.0.6
version: 10.0.6
'@types/node':
specifier: ^22.4.1
version: 22.4.1
- '@web/dev-server':
- specifier: ^0.4.5
- version: 0.4.5
- '@web/test-runner':
- specifier: ^0.18.2
- version: 0.18.2
- '@web/test-runner-playwright':
- specifier: ^0.11.0
- version: 0.11.0
- chai:
- specifier: ^5.1.1
- version: 5.1.1
+ '@types/unist':
+ specifier: ^3.0.3
+ version: 3.0.3
+ browserslist:
+ specifier: ^4.24.0
+ version: 4.24.0
+ browserslist-to-esbuild:
+ specifier: ^2.1.1
+ version: 2.1.1(browserslist@4.24.0)
+ custom-elements-manifest:
+ specifier: ^2.1.0
+ version: 2.1.0
husky:
specifier: ^9.1.4
version: 9.1.4
lint-staged:
specifier: ^15.2.9
version: 15.2.9
- playwright:
- specifier: ^1.44.0
- version: 1.44.0
+ mdast-util-from-markdown:
+ specifier: ^2.0.2
+ version: 2.0.2
prettier:
specifier: ^3.3.3
version: 3.3.3
+ remark:
+ specifier: ^15.0.1
+ version: 15.0.1
+ remark-behead:
+ specifier: ^3.1.0
+ version: 3.1.0
+ remark-gfm:
+ specifier: ^4.0.0
+ version: 4.0.0
+ remark-github:
+ specifier: ^12.0.0
+ version: 12.0.0
+ remark-toc:
+ specifier: ^9.0.0
+ version: 9.0.0
storybook:
- specifier: ^8.1.9
- version: 8.4.1(prettier@3.3.3)
+ specifier: ^8.4.4
+ version: 8.4.4(prettier@3.3.3)
tsup:
specifier: ^8.0.2
version: 8.0.2(typescript@5.6.3)
+ tsx:
+ specifier: ^4.19.2
+ version: 4.19.2
typescript:
- specifier: ^5.2.2
+ specifier: ^5.6.3
version: 5.6.3
- web-component-analyzer:
- specifier: ^2.0.0
- version: 2.0.0
wireit:
specifier: ^0.14.4
version: 0.14.4
packages:
- /@75lb/deep-merge@1.1.1:
- resolution: {integrity: sha512-xvgv6pkMGBA6GwdyJbNAnDmfAIR/DfWhrj9jgWh3TY7gRm3KO46x/GPjRg6wJ0nOepwqrNxFfojebh0Df4h4Tw==}
- engines: {node: '>=12.17'}
- dependencies:
- lodash.assignwith: 4.2.0
- typical: 7.1.1
- dev: true
-
- /@adobe/css-tools@4.4.0:
- resolution: {integrity: sha512-Ff9+ksdQQB3rMncgqDK78uLznstjyfIf2Arnh22pW8kBpLs6rpKDwgnZT46hin5Hl1WzazzK64DOrhSwYpS7bQ==}
- dev: true
-
- /@babel/code-frame@7.24.2:
- resolution: {integrity: sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==}
- engines: {node: '>=6.9.0'}
- dependencies:
- '@babel/highlight': 7.24.5
- picocolors: 1.0.1
- dev: true
-
- /@babel/helper-validator-identifier@7.24.5:
- resolution: {integrity: sha512-3q93SSKX2TWCG30M2G2kwaKeTYgEUp5Snjuj8qm729SObL6nbtUldAi37qbxkD5gg3xnBio+f9nqpSepGZMvxA==}
- engines: {node: '>=6.9.0'}
- dev: true
-
- /@babel/highlight@7.24.5:
- resolution: {integrity: sha512-8lLmua6AVh/8SLJRRVD6V8p73Hir9w5mJrhE+IPpILG31KKlI9iz5zmBYKcWPS59qSfgP9RaSBQSHHE81WKuEw==}
- engines: {node: '>=6.9.0'}
- dependencies:
- '@babel/helper-validator-identifier': 7.24.5
- chalk: 2.4.2
- js-tokens: 4.0.0
- picocolors: 1.0.1
- dev: true
-
/@babel/runtime@7.26.0:
resolution: {integrity: sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==}
engines: {node: '>=6.9.0'}
@@ -233,21 +202,6 @@ packages:
dev: true
optional: true
- /@chromatic-com/storybook@1.9.0(react@18.3.1):
- resolution: {integrity: sha512-vYQ+TcfktEE3GHnLZXHCzXF/sN9dw+KivH8a5cmPyd9YtQs7fZtHrEgsIjWpYycXiweKMo1Lm1RZsjxk8DH3rA==}
- engines: {node: '>=16.0.0', yarn: '>=1.22.18'}
- dependencies:
- chromatic: 11.16.3
- filesize: 10.1.6
- jsonfile: 6.1.0
- react-confetti: 6.1.0(react@18.3.1)
- strip-ansi: 7.1.0
- transitivePeerDependencies:
- - '@chromatic-com/cypress'
- - '@chromatic-com/playwright'
- - react
- dev: true
-
/@custom-elements-manifest/analyzer@0.10.2:
resolution: {integrity: sha512-YkfAfaNGSulnXxyIAHU3K8Z7bYGmIU2MlPvEaQPXnWUaIFMo0p3VEVYvByvENnVCQKPPDyjlkCm73u/zRnRvMA==}
hasBin: true
@@ -288,6 +242,24 @@ packages:
dev: true
optional: true
+ /@esbuild/aix-ppc64@0.23.1:
+ resolution: {integrity: sha512-6VhYk1diRqrhBAqpJEdjASR/+WVRtfjpqKuNw11cLiaWpAT/Uu+nokB+UJnevzy/P9C/ty6AOe0dwueMrGh/iQ==}
+ engines: {node: '>=18'}
+ cpu: [ppc64]
+ os: [aix]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/aix-ppc64@0.24.0:
+ resolution: {integrity: sha512-WtKdFM7ls47zkKHFVzMz8opM7LkcsIp9amDUBIAWirg70RM71WRSjdILPsY5Uv1D42ZpUfaPILDlfactHgsRkw==}
+ engines: {node: '>=18'}
+ cpu: [ppc64]
+ os: [aix]
+ requiresBuild: true
+ dev: true
+ optional: true
+
/@esbuild/android-arm64@0.19.12:
resolution: {integrity: sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==}
engines: {node: '>=12'}
@@ -306,6 +278,24 @@ packages:
dev: true
optional: true
+ /@esbuild/android-arm64@0.23.1:
+ resolution: {integrity: sha512-xw50ipykXcLstLeWH7WRdQuysJqejuAGPd30vd1i5zSyKK3WE+ijzHmLKxdiCMtH1pHz78rOg0BKSYOSB/2Khw==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [android]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/android-arm64@0.24.0:
+ resolution: {integrity: sha512-Vsm497xFM7tTIPYK9bNTYJyF/lsP590Qc1WxJdlB6ljCbdZKU9SY8i7+Iin4kyhV/KV5J2rOKsBQbB77Ab7L/w==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [android]
+ requiresBuild: true
+ dev: true
+ optional: true
+
/@esbuild/android-arm@0.19.12:
resolution: {integrity: sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==}
engines: {node: '>=12'}
@@ -324,6 +314,24 @@ packages:
dev: true
optional: true
+ /@esbuild/android-arm@0.23.1:
+ resolution: {integrity: sha512-uz6/tEy2IFm9RYOyvKl88zdzZfwEfKZmnX9Cj1BHjeSGNuGLuMD1kR8y5bteYmwqKm1tj8m4cb/aKEorr6fHWQ==}
+ engines: {node: '>=18'}
+ cpu: [arm]
+ os: [android]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/android-arm@0.24.0:
+ resolution: {integrity: sha512-arAtTPo76fJ/ICkXWetLCc9EwEHKaeya4vMrReVlEIUCAUncH7M4bhMQ+M9Vf+FFOZJdTNMXNBrWwW+OXWpSew==}
+ engines: {node: '>=18'}
+ cpu: [arm]
+ os: [android]
+ requiresBuild: true
+ dev: true
+ optional: true
+
/@esbuild/android-x64@0.19.12:
resolution: {integrity: sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==}
engines: {node: '>=12'}
@@ -342,6 +350,24 @@ packages:
dev: true
optional: true
+ /@esbuild/android-x64@0.23.1:
+ resolution: {integrity: sha512-nlN9B69St9BwUoB+jkyU090bru8L0NA3yFvAd7k8dNsVH8bi9a8cUAUSEcEEgTp2z3dbEDGJGfP6VUnkQnlReg==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [android]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/android-x64@0.24.0:
+ resolution: {integrity: sha512-t8GrvnFkiIY7pa7mMgJd7p8p8qqYIz1NYiAoKc75Zyv73L3DZW++oYMSHPRarcotTKuSs6m3hTOa5CKHaS02TQ==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [android]
+ requiresBuild: true
+ dev: true
+ optional: true
+
/@esbuild/darwin-arm64@0.19.12:
resolution: {integrity: sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==}
engines: {node: '>=12'}
@@ -360,6 +386,24 @@ packages:
dev: true
optional: true
+ /@esbuild/darwin-arm64@0.23.1:
+ resolution: {integrity: sha512-YsS2e3Wtgnw7Wq53XXBLcV6JhRsEq8hkfg91ESVadIrzr9wO6jJDMZnCQbHm1Guc5t/CdDiFSSfWP58FNuvT3Q==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [darwin]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/darwin-arm64@0.24.0:
+ resolution: {integrity: sha512-CKyDpRbK1hXwv79soeTJNHb5EiG6ct3efd/FTPdzOWdbZZfGhpbcqIpiD0+vwmpu0wTIL97ZRPZu8vUt46nBSw==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [darwin]
+ requiresBuild: true
+ dev: true
+ optional: true
+
/@esbuild/darwin-x64@0.19.12:
resolution: {integrity: sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==}
engines: {node: '>=12'}
@@ -378,6 +422,24 @@ packages:
dev: true
optional: true
+ /@esbuild/darwin-x64@0.23.1:
+ resolution: {integrity: sha512-aClqdgTDVPSEGgoCS8QDG37Gu8yc9lTHNAQlsztQ6ENetKEO//b8y31MMu2ZaPbn4kVsIABzVLXYLhCGekGDqw==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [darwin]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/darwin-x64@0.24.0:
+ resolution: {integrity: sha512-rgtz6flkVkh58od4PwTRqxbKH9cOjaXCMZgWD905JOzjFKW+7EiUObfd/Kav+A6Gyud6WZk9w+xu6QLytdi2OA==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [darwin]
+ requiresBuild: true
+ dev: true
+ optional: true
+
/@esbuild/freebsd-arm64@0.19.12:
resolution: {integrity: sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==}
engines: {node: '>=12'}
@@ -396,6 +458,24 @@ packages:
dev: true
optional: true
+ /@esbuild/freebsd-arm64@0.23.1:
+ resolution: {integrity: sha512-h1k6yS8/pN/NHlMl5+v4XPfikhJulk4G+tKGFIOwURBSFzE8bixw1ebjluLOjfwtLqY0kewfjLSrO6tN2MgIhA==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [freebsd]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/freebsd-arm64@0.24.0:
+ resolution: {integrity: sha512-6Mtdq5nHggwfDNLAHkPlyLBpE5L6hwsuXZX8XNmHno9JuL2+bg2BX5tRkwjyfn6sKbxZTq68suOjgWqCicvPXA==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [freebsd]
+ requiresBuild: true
+ dev: true
+ optional: true
+
/@esbuild/freebsd-x64@0.19.12:
resolution: {integrity: sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==}
engines: {node: '>=12'}
@@ -414,6 +494,24 @@ packages:
dev: true
optional: true
+ /@esbuild/freebsd-x64@0.23.1:
+ resolution: {integrity: sha512-lK1eJeyk1ZX8UklqFd/3A60UuZ/6UVfGT2LuGo3Wp4/z7eRTRYY+0xOu2kpClP+vMTi9wKOfXi2vjUpO1Ro76g==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [freebsd]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/freebsd-x64@0.24.0:
+ resolution: {integrity: sha512-D3H+xh3/zphoX8ck4S2RxKR6gHlHDXXzOf6f/9dbFt/NRBDIE33+cVa49Kil4WUjxMGW0ZIYBYtaGCa2+OsQwQ==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [freebsd]
+ requiresBuild: true
+ dev: true
+ optional: true
+
/@esbuild/linux-arm64@0.19.12:
resolution: {integrity: sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==}
engines: {node: '>=12'}
@@ -432,6 +530,24 @@ packages:
dev: true
optional: true
+ /@esbuild/linux-arm64@0.23.1:
+ resolution: {integrity: sha512-/93bf2yxencYDnItMYV/v116zff6UyTjo4EtEQjUBeGiVpMmffDNUyD9UN2zV+V3LRV3/on4xdZ26NKzn6754g==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/linux-arm64@0.24.0:
+ resolution: {integrity: sha512-TDijPXTOeE3eaMkRYpcy3LarIg13dS9wWHRdwYRnzlwlA370rNdZqbcp0WTyyV/k2zSxfko52+C7jU5F9Tfj1g==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
/@esbuild/linux-arm@0.19.12:
resolution: {integrity: sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==}
engines: {node: '>=12'}
@@ -450,6 +566,24 @@ packages:
dev: true
optional: true
+ /@esbuild/linux-arm@0.23.1:
+ resolution: {integrity: sha512-CXXkzgn+dXAPs3WBwE+Kvnrf4WECwBdfjfeYHpMeVxWE0EceB6vhWGShs6wi0IYEqMSIzdOF1XjQ/Mkm5d7ZdQ==}
+ engines: {node: '>=18'}
+ cpu: [arm]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/linux-arm@0.24.0:
+ resolution: {integrity: sha512-gJKIi2IjRo5G6Glxb8d3DzYXlxdEj2NlkixPsqePSZMhLudqPhtZ4BUrpIuTjJYXxvF9njql+vRjB2oaC9XpBw==}
+ engines: {node: '>=18'}
+ cpu: [arm]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
/@esbuild/linux-ia32@0.19.12:
resolution: {integrity: sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==}
engines: {node: '>=12'}
@@ -468,6 +602,24 @@ packages:
dev: true
optional: true
+ /@esbuild/linux-ia32@0.23.1:
+ resolution: {integrity: sha512-VTN4EuOHwXEkXzX5nTvVY4s7E/Krz7COC8xkftbbKRYAl96vPiUssGkeMELQMOnLOJ8k3BY1+ZY52tttZnHcXQ==}
+ engines: {node: '>=18'}
+ cpu: [ia32]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/linux-ia32@0.24.0:
+ resolution: {integrity: sha512-K40ip1LAcA0byL05TbCQ4yJ4swvnbzHscRmUilrmP9Am7//0UjPreh4lpYzvThT2Quw66MhjG//20mrufm40mA==}
+ engines: {node: '>=18'}
+ cpu: [ia32]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
/@esbuild/linux-loong64@0.19.12:
resolution: {integrity: sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==}
engines: {node: '>=12'}
@@ -486,6 +638,24 @@ packages:
dev: true
optional: true
+ /@esbuild/linux-loong64@0.23.1:
+ resolution: {integrity: sha512-Vx09LzEoBa5zDnieH8LSMRToj7ir/Jeq0Gu6qJ/1GcBq9GkfoEAoXvLiW1U9J1qE/Y/Oyaq33w5p2ZWrNNHNEw==}
+ engines: {node: '>=18'}
+ cpu: [loong64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/linux-loong64@0.24.0:
+ resolution: {integrity: sha512-0mswrYP/9ai+CU0BzBfPMZ8RVm3RGAN/lmOMgW4aFUSOQBjA31UP8Mr6DDhWSuMwj7jaWOT0p0WoZ6jeHhrD7g==}
+ engines: {node: '>=18'}
+ cpu: [loong64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
/@esbuild/linux-mips64el@0.19.12:
resolution: {integrity: sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==}
engines: {node: '>=12'}
@@ -504,6 +674,24 @@ packages:
dev: true
optional: true
+ /@esbuild/linux-mips64el@0.23.1:
+ resolution: {integrity: sha512-nrFzzMQ7W4WRLNUOU5dlWAqa6yVeI0P78WKGUo7lg2HShq/yx+UYkeNSE0SSfSure0SqgnsxPvmAUu/vu0E+3Q==}
+ engines: {node: '>=18'}
+ cpu: [mips64el]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/linux-mips64el@0.24.0:
+ resolution: {integrity: sha512-hIKvXm0/3w/5+RDtCJeXqMZGkI2s4oMUGj3/jM0QzhgIASWrGO5/RlzAzm5nNh/awHE0A19h/CvHQe6FaBNrRA==}
+ engines: {node: '>=18'}
+ cpu: [mips64el]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
/@esbuild/linux-ppc64@0.19.12:
resolution: {integrity: sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==}
engines: {node: '>=12'}
@@ -522,6 +710,24 @@ packages:
dev: true
optional: true
+ /@esbuild/linux-ppc64@0.23.1:
+ resolution: {integrity: sha512-dKN8fgVqd0vUIjxuJI6P/9SSSe/mB9rvA98CSH2sJnlZ/OCZWO1DJvxj8jvKTfYUdGfcq2dDxoKaC6bHuTlgcw==}
+ engines: {node: '>=18'}
+ cpu: [ppc64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/linux-ppc64@0.24.0:
+ resolution: {integrity: sha512-HcZh5BNq0aC52UoocJxaKORfFODWXZxtBaaZNuN3PUX3MoDsChsZqopzi5UupRhPHSEHotoiptqikjN/B77mYQ==}
+ engines: {node: '>=18'}
+ cpu: [ppc64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
/@esbuild/linux-riscv64@0.19.12:
resolution: {integrity: sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==}
engines: {node: '>=12'}
@@ -540,6 +746,24 @@ packages:
dev: true
optional: true
+ /@esbuild/linux-riscv64@0.23.1:
+ resolution: {integrity: sha512-5AV4Pzp80fhHL83JM6LoA6pTQVWgB1HovMBsLQ9OZWLDqVY8MVobBXNSmAJi//Csh6tcY7e7Lny2Hg1tElMjIA==}
+ engines: {node: '>=18'}
+ cpu: [riscv64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/linux-riscv64@0.24.0:
+ resolution: {integrity: sha512-bEh7dMn/h3QxeR2KTy1DUszQjUrIHPZKyO6aN1X4BCnhfYhuQqedHaa5MxSQA/06j3GpiIlFGSsy1c7Gf9padw==}
+ engines: {node: '>=18'}
+ cpu: [riscv64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
/@esbuild/linux-s390x@0.19.12:
resolution: {integrity: sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==}
engines: {node: '>=12'}
@@ -558,6 +782,24 @@ packages:
dev: true
optional: true
+ /@esbuild/linux-s390x@0.23.1:
+ resolution: {integrity: sha512-9ygs73tuFCe6f6m/Tb+9LtYxWR4c9yg7zjt2cYkjDbDpV/xVn+68cQxMXCjUpYwEkze2RcU/rMnfIXNRFmSoDw==}
+ engines: {node: '>=18'}
+ cpu: [s390x]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/linux-s390x@0.24.0:
+ resolution: {integrity: sha512-ZcQ6+qRkw1UcZGPyrCiHHkmBaj9SiCD8Oqd556HldP+QlpUIe2Wgn3ehQGVoPOvZvtHm8HPx+bH20c9pvbkX3g==}
+ engines: {node: '>=18'}
+ cpu: [s390x]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
/@esbuild/linux-x64@0.19.12:
resolution: {integrity: sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==}
engines: {node: '>=12'}
@@ -576,9 +818,27 @@ packages:
dev: true
optional: true
- /@esbuild/netbsd-x64@0.19.12:
- resolution: {integrity: sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==}
- engines: {node: '>=12'}
+ /@esbuild/linux-x64@0.23.1:
+ resolution: {integrity: sha512-EV6+ovTsEXCPAp58g2dD68LxoP/wK5pRvgy0J/HxPGB009omFPv3Yet0HiaqvrIrgPTBuC6wCH1LTOY91EO5hQ==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/linux-x64@0.24.0:
+ resolution: {integrity: sha512-vbutsFqQ+foy3wSSbmjBXXIJ6PL3scghJoM8zCL142cGaZKAdCZHyf+Bpu/MmX9zT9Q0zFBVKb36Ma5Fzfa8xA==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/netbsd-x64@0.19.12:
+ resolution: {integrity: sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==}
+ engines: {node: '>=12'}
cpu: [x64]
os: [netbsd]
requiresBuild: true
@@ -594,6 +854,42 @@ packages:
dev: true
optional: true
+ /@esbuild/netbsd-x64@0.23.1:
+ resolution: {integrity: sha512-aevEkCNu7KlPRpYLjwmdcuNz6bDFiE7Z8XC4CPqExjTvrHugh28QzUXVOZtiYghciKUacNktqxdpymplil1beA==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [netbsd]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/netbsd-x64@0.24.0:
+ resolution: {integrity: sha512-hjQ0R/ulkO8fCYFsG0FZoH+pWgTTDreqpqY7UnQntnaKv95uP5iW3+dChxnx7C3trQQU40S+OgWhUVwCjVFLvg==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [netbsd]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/openbsd-arm64@0.23.1:
+ resolution: {integrity: sha512-3x37szhLexNA4bXhLrCC/LImN/YtWis6WXr1VESlfVtVeoFJBRINPJ3f0a/6LV8zpikqoUg4hyXw0sFBt5Cr+Q==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [openbsd]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/openbsd-arm64@0.24.0:
+ resolution: {integrity: sha512-MD9uzzkPQbYehwcN583yx3Tu5M8EIoTD+tUgKF982WYL9Pf5rKy9ltgD0eUgs8pvKnmizxjXZyLt0z6DC3rRXg==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [openbsd]
+ requiresBuild: true
+ dev: true
+ optional: true
+
/@esbuild/openbsd-x64@0.19.12:
resolution: {integrity: sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==}
engines: {node: '>=12'}
@@ -612,6 +908,24 @@ packages:
dev: true
optional: true
+ /@esbuild/openbsd-x64@0.23.1:
+ resolution: {integrity: sha512-aY2gMmKmPhxfU+0EdnN+XNtGbjfQgwZj43k8G3fyrDM/UdZww6xrWxmDkuz2eCZchqVeABjV5BpildOrUbBTqA==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [openbsd]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/openbsd-x64@0.24.0:
+ resolution: {integrity: sha512-4ir0aY1NGUhIC1hdoCzr1+5b43mw99uNwVzhIq1OY3QcEwPDO3B7WNXBzaKY5Nsf1+N11i1eOfFcq+D/gOS15Q==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [openbsd]
+ requiresBuild: true
+ dev: true
+ optional: true
+
/@esbuild/sunos-x64@0.19.12:
resolution: {integrity: sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==}
engines: {node: '>=12'}
@@ -630,6 +944,24 @@ packages:
dev: true
optional: true
+ /@esbuild/sunos-x64@0.23.1:
+ resolution: {integrity: sha512-RBRT2gqEl0IKQABT4XTj78tpk9v7ehp+mazn2HbUeZl1YMdaGAQqhapjGTCe7uw7y0frDi4gS0uHzhvpFuI1sA==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [sunos]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/sunos-x64@0.24.0:
+ resolution: {integrity: sha512-jVzdzsbM5xrotH+W5f1s+JtUy1UWgjU0Cf4wMvffTB8m6wP5/kx0KiaLHlbJO+dMgtxKV8RQ/JvtlFcdZ1zCPA==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [sunos]
+ requiresBuild: true
+ dev: true
+ optional: true
+
/@esbuild/win32-arm64@0.19.12:
resolution: {integrity: sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==}
engines: {node: '>=12'}
@@ -648,6 +980,24 @@ packages:
dev: true
optional: true
+ /@esbuild/win32-arm64@0.23.1:
+ resolution: {integrity: sha512-4O+gPR5rEBe2FpKOVyiJ7wNDPA8nGzDuJ6gN4okSA1gEOYZ67N8JPk58tkWtdtPeLz7lBnY6I5L3jdsr3S+A6A==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [win32]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/win32-arm64@0.24.0:
+ resolution: {integrity: sha512-iKc8GAslzRpBytO2/aN3d2yb2z8XTVfNV0PjGlCxKo5SgWmNXx82I/Q3aG1tFfS+A2igVCY97TJ8tnYwpUWLCA==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [win32]
+ requiresBuild: true
+ dev: true
+ optional: true
+
/@esbuild/win32-ia32@0.19.12:
resolution: {integrity: sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==}
engines: {node: '>=12'}
@@ -666,6 +1016,24 @@ packages:
dev: true
optional: true
+ /@esbuild/win32-ia32@0.23.1:
+ resolution: {integrity: sha512-BcaL0Vn6QwCwre3Y717nVHZbAa4UBEigzFm6VdsVdT/MbZ38xoj1X9HPkZhbmaBGUD1W8vxAfffbDe8bA6AKnQ==}
+ engines: {node: '>=18'}
+ cpu: [ia32]
+ os: [win32]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/win32-ia32@0.24.0:
+ resolution: {integrity: sha512-vQW36KZolfIudCcTnaTpmLQ24Ha1RjygBo39/aLkM2kmjkWmZGEJ5Gn9l5/7tzXA42QGIoWbICfg6KLLkIw6yw==}
+ engines: {node: '>=18'}
+ cpu: [ia32]
+ os: [win32]
+ requiresBuild: true
+ dev: true
+ optional: true
+
/@esbuild/win32-x64@0.19.12:
resolution: {integrity: sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==}
engines: {node: '>=12'}
@@ -684,11 +1052,23 @@ packages:
dev: true
optional: true
- /@esm-bundle/chai@4.3.4-fix.0:
- resolution: {integrity: sha512-26SKdM4uvDWlY8/OOOxSB1AqQWeBosCX3wRYUZO7enTAj03CtVxIiCimYVG2WpULcyV51qapK4qTovwkUr5Mlw==}
- dependencies:
- '@types/chai': 4.3.16
+ /@esbuild/win32-x64@0.23.1:
+ resolution: {integrity: sha512-BHpFFeslkWrXWyUPnbKm+xYYVYruCinGcftSBaa8zoF9hZO4BcSCFUvHVTtzpIY6YzUnYtuEhZ+C9iEXjxnasg==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [win32]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/win32-x64@0.24.0:
+ resolution: {integrity: sha512-7IAFPrjSQIJrGsK6flwg7NFmwBoSTyF3rl7If0hNUFQU4ilTsEPL6GuMuU9BfIWVVGuRnuIidkSMC+c0Otu8IA==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [win32]
+ requiresBuild: true
dev: true
+ optional: true
/@github/catalyst@1.6.0:
resolution: {integrity: sha512-u8A+DameixqpeyHzvnJWTGj+wfiskQOYHzSiJscCWVfMkIT3rxnbHMtGh3lMthaRY21nbUOK71WcsCnCrXhBJQ==}
@@ -742,11 +1122,13 @@ packages:
/@lit-labs/ssr-dom-shim@1.2.0:
resolution: {integrity: sha512-yWJKmpGE6lUURKAaIltoPIE/wrbY3TEkqQt+X0m+7fQNnAv0keydnYvbiJFP1PnMhizmIWRWOG5KLhYyc/xl+g==}
+ dev: true
/@lit/reactive-element@2.0.4:
resolution: {integrity: sha512-GFn91inaUa2oHLak8awSIigYz0cU0Payr1rcFsrkf5OJ5eSPxElyZfKh0f2p9FsTiZWXQdWGJeXZICEfXXYSXQ==}
dependencies:
'@lit-labs/ssr-dom-shim': 1.2.0
+ dev: true
/@mdx-js/react@3.1.0(@types/react@18.3.12)(react@18.3.1):
resolution: {integrity: sha512-QjHtSaoameoalGnKDT3FoIl4+9RwyTmo9ZJGBdLOks/YOiWHoRDI3PUwEzOE7kEmGcV3AFcp9K6dYu9rEuKLAQ==}
@@ -780,59 +1162,6 @@ packages:
fastq: 1.17.1
dev: true
- /@open-wc/dedupe-mixin@1.4.0:
- resolution: {integrity: sha512-Sj7gKl1TLcDbF7B6KUhtvr+1UCxdhMbNY5KxdU5IfMFWqL8oy1ZeAcCANjoB1TL0AJTcPmcCFsCbHf8X2jGDUA==}
- dev: true
-
- /@open-wc/lit-helpers@0.7.0(lit@3.1.3):
- resolution: {integrity: sha512-4NBlx5ve0EvZplCRJbESm0MdMbRCw16alP2y76KAAAwzmFFXXrUj5hFwhw55+sSg5qaRRx6sY+s7usKgnNo3TQ==}
- peerDependencies:
- lit: ^2.0.0 || ^3.0.0
- dependencies:
- lit: 3.1.3
- dev: true
-
- /@open-wc/scoped-elements@3.0.5:
- resolution: {integrity: sha512-q4U+hFTQQRyorJILOpmBm6PY2hgjCnQe214nXJNjbJMQ9EvT55oyZ7C8BY5aFYJkytUyBoawlMpZt4F2xjdzHw==}
- dependencies:
- '@open-wc/dedupe-mixin': 1.4.0
- lit: 3.1.3
- dev: true
-
- /@open-wc/semantic-dom-diff@0.20.1:
- resolution: {integrity: sha512-mPF/RPT2TU7Dw41LEDdaeP6eyTOWBD4z0+AHP4/d0SbgcfJZVRymlIB6DQmtz0fd2CImIS9kszaMmwMt92HBPA==}
- dependencies:
- '@types/chai': 4.3.16
- '@web/test-runner-commands': 0.9.0
- transitivePeerDependencies:
- - bufferutil
- - supports-color
- - utf-8-validate
- dev: true
-
- /@open-wc/testing-helpers@3.0.1:
- resolution: {integrity: sha512-hyNysSatbgT2FNxHJsS3rGKcLEo6+HwDFu1UQL6jcSQUabp/tj3PyX7UnXL3H5YGv0lJArdYLSnvjLnjn3O2fw==}
- dependencies:
- '@open-wc/scoped-elements': 3.0.5
- lit: 3.1.3
- lit-html: 3.1.3
- dev: true
-
- /@open-wc/testing@4.0.0:
- resolution: {integrity: sha512-KI70O0CJEpBWs3jrTju4BFCy7V/d4tFfYWkg8pMzncsDhD7TYNHLw5cy+s1FHXIgVFetnMDhPpwlKIPvtTQW7w==}
- dependencies:
- '@esm-bundle/chai': 4.3.4-fix.0
- '@open-wc/semantic-dom-diff': 0.20.1
- '@open-wc/testing-helpers': 3.0.1
- '@types/chai-dom': 1.11.3
- '@types/sinon-chai': 3.2.12
- chai-a11y-axe: 1.5.0
- transitivePeerDependencies:
- - bufferutil
- - supports-color
- - utf-8-validate
- dev: true
-
/@pkgjs/parseargs@0.11.0:
resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==}
engines: {node: '>=14'}
@@ -840,56 +1169,6 @@ packages:
dev: true
optional: true
- /@puppeteer/browsers@2.2.3:
- resolution: {integrity: sha512-bJ0UBsk0ESOs6RFcLXOt99a3yTDcOKlzfjad+rhFwdaG1Lu/Wzq58GHYCDTlZ9z6mldf4g+NTb+TXEfe0PpnsQ==}
- engines: {node: '>=18'}
- hasBin: true
- dependencies:
- debug: 4.3.4
- extract-zip: 2.0.1
- progress: 2.0.3
- proxy-agent: 6.4.0
- semver: 7.6.0
- tar-fs: 3.0.5
- unbzip2-stream: 1.4.3
- yargs: 17.7.2
- transitivePeerDependencies:
- - supports-color
- dev: true
-
- /@rollup/plugin-node-resolve@15.2.3(rollup@4.17.2):
- resolution: {integrity: sha512-j/lym8nf5E21LwBT4Df1VD6hRO2L2iwUeUmP7litikRsVp1H6NWx20NEp0Y7su+7XGc476GnXXc4kFeZNGmaSQ==}
- engines: {node: '>=14.0.0'}
- peerDependencies:
- rollup: ^2.78.0||^3.0.0||^4.0.0
- peerDependenciesMeta:
- rollup:
- optional: true
- dependencies:
- '@rollup/pluginutils': 5.1.0(rollup@4.17.2)
- '@types/resolve': 1.20.2
- deepmerge: 4.3.1
- is-builtin-module: 3.2.1
- is-module: 1.0.0
- resolve: 1.22.8
- rollup: 4.17.2
- dev: true
-
- /@rollup/pluginutils@5.1.0(rollup@4.17.2):
- resolution: {integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==}
- engines: {node: '>=14.0.0'}
- peerDependencies:
- rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0
- peerDependenciesMeta:
- rollup:
- optional: true
- dependencies:
- '@types/estree': 1.0.5
- estree-walker: 2.0.2
- picomatch: 2.3.1
- rollup: 4.17.2
- dev: true
-
/@rollup/rollup-android-arm-eabi@4.17.2:
resolution: {integrity: sha512-NM0jFxY8bB8QLkoKxIQeObCaDlJKewVlIEkuyYKm5An1tdVZ966w2+MPQ2l8LBZLjR+SgyV+nRkTIunzOYBMLQ==}
cpu: [arm]
@@ -898,8 +1177,8 @@ packages:
dev: true
optional: true
- /@rollup/rollup-android-arm-eabi@4.24.3:
- resolution: {integrity: sha512-ufb2CH2KfBWPJok95frEZZ82LtDl0A6QKTa8MoM+cWwDZvVGl5/jNb79pIhRvAalUu+7LD91VYR0nwRD799HkQ==}
+ /@rollup/rollup-android-arm-eabi@4.27.2:
+ resolution: {integrity: sha512-Tj+j7Pyzd15wAdSJswvs5CJzJNV+qqSUcr/aCD+jpQSBtXvGnV0pnrjoc8zFTe9fcKCatkpFpOO7yAzpO998HA==}
cpu: [arm]
os: [android]
requiresBuild: true
@@ -914,8 +1193,8 @@ packages:
dev: true
optional: true
- /@rollup/rollup-android-arm64@4.24.3:
- resolution: {integrity: sha512-iAHpft/eQk9vkWIV5t22V77d90CRofgR2006UiCjHcHJFVI1E0oBkQIAbz+pLtthFw3hWEmVB4ilxGyBf48i2Q==}
+ /@rollup/rollup-android-arm64@4.27.2:
+ resolution: {integrity: sha512-xsPeJgh2ThBpUqlLgRfiVYBEf/P1nWlWvReG+aBWfNv3XEBpa6ZCmxSVnxJgLgkNz4IbxpLy64h2gCmAAQLneQ==}
cpu: [arm64]
os: [android]
requiresBuild: true
@@ -930,8 +1209,8 @@ packages:
dev: true
optional: true
- /@rollup/rollup-darwin-arm64@4.24.3:
- resolution: {integrity: sha512-QPW2YmkWLlvqmOa2OwrfqLJqkHm7kJCIMq9kOz40Zo9Ipi40kf9ONG5Sz76zszrmIZZ4hgRIkez69YnTHgEz1w==}
+ /@rollup/rollup-darwin-arm64@4.27.2:
+ resolution: {integrity: sha512-KnXU4m9MywuZFedL35Z3PuwiTSn/yqRIhrEA9j+7OSkji39NzVkgxuxTYg5F8ryGysq4iFADaU5osSizMXhU2A==}
cpu: [arm64]
os: [darwin]
requiresBuild: true
@@ -946,24 +1225,24 @@ packages:
dev: true
optional: true
- /@rollup/rollup-darwin-x64@4.24.3:
- resolution: {integrity: sha512-KO0pN5x3+uZm1ZXeIfDqwcvnQ9UEGN8JX5ufhmgH5Lz4ujjZMAnxQygZAVGemFWn+ZZC0FQopruV4lqmGMshow==}
+ /@rollup/rollup-darwin-x64@4.27.2:
+ resolution: {integrity: sha512-Hj77A3yTvUeCIx/Vi+4d4IbYhyTwtHj07lVzUgpUq9YpJSEiGJj4vXMKwzJ3w5zp5v3PFvpJNgc/J31smZey6g==}
cpu: [x64]
os: [darwin]
requiresBuild: true
dev: true
optional: true
- /@rollup/rollup-freebsd-arm64@4.24.3:
- resolution: {integrity: sha512-CsC+ZdIiZCZbBI+aRlWpYJMSWvVssPuWqrDy/zi9YfnatKKSLFCe6fjna1grHuo/nVaHG+kiglpRhyBQYRTK4A==}
+ /@rollup/rollup-freebsd-arm64@4.27.2:
+ resolution: {integrity: sha512-RjgKf5C3xbn8gxvCm5VgKZ4nn0pRAIe90J0/fdHUsgztd3+Zesb2lm2+r6uX4prV2eUByuxJNdt647/1KPRq5g==}
cpu: [arm64]
os: [freebsd]
requiresBuild: true
dev: true
optional: true
- /@rollup/rollup-freebsd-x64@4.24.3:
- resolution: {integrity: sha512-F0nqiLThcfKvRQhZEzMIXOQG4EeX61im61VYL1jo4eBxv4aZRmpin6crnBJQ/nWnCsjH5F6J3W6Stdm0mBNqBg==}
+ /@rollup/rollup-freebsd-x64@4.27.2:
+ resolution: {integrity: sha512-duq21FoXwQtuws+V9H6UZ+eCBc7fxSpMK1GQINKn3fAyd9DFYKPJNcUhdIKOrMFjLEJgQskoMoiuizMt+dl20g==}
cpu: [x64]
os: [freebsd]
requiresBuild: true
@@ -978,8 +1257,8 @@ packages:
dev: true
optional: true
- /@rollup/rollup-linux-arm-gnueabihf@4.24.3:
- resolution: {integrity: sha512-KRSFHyE/RdxQ1CSeOIBVIAxStFC/hnBgVcaiCkQaVC+EYDtTe4X7z5tBkFyRoBgUGtB6Xg6t9t2kulnX6wJc6A==}
+ /@rollup/rollup-linux-arm-gnueabihf@4.27.2:
+ resolution: {integrity: sha512-6npqOKEPRZkLrMcvyC/32OzJ2srdPzCylJjiTJT2c0bwwSGm7nz2F9mNQ1WrAqCBZROcQn91Fno+khFhVijmFA==}
cpu: [arm]
os: [linux]
requiresBuild: true
@@ -994,8 +1273,8 @@ packages:
dev: true
optional: true
- /@rollup/rollup-linux-arm-musleabihf@4.24.3:
- resolution: {integrity: sha512-h6Q8MT+e05zP5BxEKz0vi0DhthLdrNEnspdLzkoFqGwnmOzakEHSlXfVyA4HJ322QtFy7biUAVFPvIDEDQa6rw==}
+ /@rollup/rollup-linux-arm-musleabihf@4.27.2:
+ resolution: {integrity: sha512-V9Xg6eXtgBtHq2jnuQwM/jr2mwe2EycnopO8cbOvpzFuySCGtKlPCI3Hj9xup/pJK5Q0388qfZZy2DqV2J8ftw==}
cpu: [arm]
os: [linux]
requiresBuild: true
@@ -1010,8 +1289,8 @@ packages:
dev: true
optional: true
- /@rollup/rollup-linux-arm64-gnu@4.24.3:
- resolution: {integrity: sha512-fKElSyXhXIJ9pqiYRqisfirIo2Z5pTTve5K438URf08fsypXrEkVmShkSfM8GJ1aUyvjakT+fn2W7Czlpd/0FQ==}
+ /@rollup/rollup-linux-arm64-gnu@4.27.2:
+ resolution: {integrity: sha512-uCFX9gtZJoQl2xDTpRdseYuNqyKkuMDtH6zSrBTA28yTfKyjN9hQ2B04N5ynR8ILCoSDOrG/Eg+J2TtJ1e/CSA==}
cpu: [arm64]
os: [linux]
requiresBuild: true
@@ -1026,8 +1305,8 @@ packages:
dev: true
optional: true
- /@rollup/rollup-linux-arm64-musl@4.24.3:
- resolution: {integrity: sha512-YlddZSUk8G0px9/+V9PVilVDC6ydMz7WquxozToozSnfFK6wa6ne1ATUjUvjin09jp34p84milxlY5ikueoenw==}
+ /@rollup/rollup-linux-arm64-musl@4.27.2:
+ resolution: {integrity: sha512-/PU9P+7Rkz8JFYDHIi+xzHabOu9qEWR07L5nWLIUsvserrxegZExKCi2jhMZRd0ATdboKylu/K5yAXbp7fYFvA==}
cpu: [arm64]
os: [linux]
requiresBuild: true
@@ -1042,8 +1321,8 @@ packages:
dev: true
optional: true
- /@rollup/rollup-linux-powerpc64le-gnu@4.24.3:
- resolution: {integrity: sha512-yNaWw+GAO8JjVx3s3cMeG5Esz1cKVzz8PkTJSfYzE5u7A+NvGmbVFEHP+BikTIyYWuz0+DX9kaA3pH9Sqxp69g==}
+ /@rollup/rollup-linux-powerpc64le-gnu@4.27.2:
+ resolution: {integrity: sha512-eCHmol/dT5odMYi/N0R0HC8V8QE40rEpkyje/ZAXJYNNoSfrObOvG/Mn+s1F/FJyB7co7UQZZf6FuWnN6a7f4g==}
cpu: [ppc64]
os: [linux]
requiresBuild: true
@@ -1058,8 +1337,8 @@ packages:
dev: true
optional: true
- /@rollup/rollup-linux-riscv64-gnu@4.24.3:
- resolution: {integrity: sha512-lWKNQfsbpv14ZCtM/HkjCTm4oWTKTfxPmr7iPfp3AHSqyoTz5AgLemYkWLwOBWc+XxBbrU9SCokZP0WlBZM9lA==}
+ /@rollup/rollup-linux-riscv64-gnu@4.27.2:
+ resolution: {integrity: sha512-DEP3Njr9/ADDln3kNi76PXonLMSSMiCir0VHXxmGSHxCxDfQ70oWjHcJGfiBugzaqmYdTC7Y+8Int6qbnxPBIQ==}
cpu: [riscv64]
os: [linux]
requiresBuild: true
@@ -1074,8 +1353,8 @@ packages:
dev: true
optional: true
- /@rollup/rollup-linux-s390x-gnu@4.24.3:
- resolution: {integrity: sha512-HoojGXTC2CgCcq0Woc/dn12wQUlkNyfH0I1ABK4Ni9YXyFQa86Fkt2Q0nqgLfbhkyfQ6003i3qQk9pLh/SpAYw==}
+ /@rollup/rollup-linux-s390x-gnu@4.27.2:
+ resolution: {integrity: sha512-NHGo5i6IE/PtEPh5m0yw5OmPMpesFnzMIS/lzvN5vknnC1sXM5Z/id5VgcNPgpD+wHmIcuYYgW+Q53v+9s96lQ==}
cpu: [s390x]
os: [linux]
requiresBuild: true
@@ -1090,8 +1369,8 @@ packages:
dev: true
optional: true
- /@rollup/rollup-linux-x64-gnu@4.24.3:
- resolution: {integrity: sha512-mnEOh4iE4USSccBOtcrjF5nj+5/zm6NcNhbSEfR3Ot0pxBwvEn5QVUXcuOwwPkapDtGZ6pT02xLoPaNv06w7KQ==}
+ /@rollup/rollup-linux-x64-gnu@4.27.2:
+ resolution: {integrity: sha512-PaW2DY5Tan+IFvNJGHDmUrORadbe/Ceh8tQxi8cmdQVCCYsLoQo2cuaSj+AU+YRX8M4ivS2vJ9UGaxfuNN7gmg==}
cpu: [x64]
os: [linux]
requiresBuild: true
@@ -1106,8 +1385,8 @@ packages:
dev: true
optional: true
- /@rollup/rollup-linux-x64-musl@4.24.3:
- resolution: {integrity: sha512-rMTzawBPimBQkG9NKpNHvquIUTQPzrnPxPbCY1Xt+mFkW7pshvyIS5kYgcf74goxXOQk0CP3EoOC1zcEezKXhw==}
+ /@rollup/rollup-linux-x64-musl@4.27.2:
+ resolution: {integrity: sha512-dOlWEMg2gI91Qx5I/HYqOD6iqlJspxLcS4Zlg3vjk1srE67z5T2Uz91yg/qA8sY0XcwQrFzWWiZhMNERylLrpQ==}
cpu: [x64]
os: [linux]
requiresBuild: true
@@ -1122,8 +1401,8 @@ packages:
dev: true
optional: true
- /@rollup/rollup-win32-arm64-msvc@4.24.3:
- resolution: {integrity: sha512-2lg1CE305xNvnH3SyiKwPVsTVLCg4TmNCF1z7PSHX2uZY2VbUpdkgAllVoISD7JO7zu+YynpWNSKAtOrX3AiuA==}
+ /@rollup/rollup-win32-arm64-msvc@4.27.2:
+ resolution: {integrity: sha512-euMIv/4x5Y2/ImlbGl88mwKNXDsvzbWUlT7DFky76z2keajCtcbAsN9LUdmk31hAoVmJJYSThgdA0EsPeTr1+w==}
cpu: [arm64]
os: [win32]
requiresBuild: true
@@ -1138,8 +1417,8 @@ packages:
dev: true
optional: true
- /@rollup/rollup-win32-ia32-msvc@4.24.3:
- resolution: {integrity: sha512-9SjYp1sPyxJsPWuhOCX6F4jUMXGbVVd5obVpoVEi8ClZqo52ViZewA6eFz85y8ezuOA+uJMP5A5zo6Oz4S5rVQ==}
+ /@rollup/rollup-win32-ia32-msvc@4.27.2:
+ resolution: {integrity: sha512-RsnE6LQkUHlkC10RKngtHNLxb7scFykEbEwOFDjr3CeCMG+Rr+cKqlkKc2/wJ1u4u990urRHCbjz31x84PBrSQ==}
cpu: [ia32]
os: [win32]
requiresBuild: true
@@ -1154,156 +1433,138 @@ packages:
dev: true
optional: true
- /@rollup/rollup-win32-x64-msvc@4.24.3:
- resolution: {integrity: sha512-HGZgRFFYrMrP3TJlq58nR1xy8zHKId25vhmm5S9jETEfDf6xybPxsavFTJaufe2zgOGYJBskGlj49CwtEuFhWQ==}
+ /@rollup/rollup-win32-x64-msvc@4.27.2:
+ resolution: {integrity: sha512-foJM5vv+z2KQmn7emYdDLyTbkoO5bkHZE1oth2tWbQNGW7mX32d46Hz6T0MqXdWS2vBZhaEtHqdy9WYwGfiliA==}
cpu: [x64]
os: [win32]
requiresBuild: true
dev: true
optional: true
- /@storybook/addon-actions@8.4.1(storybook@8.4.1):
- resolution: {integrity: sha512-D6KohTIA4JCHNol1X7Whp4LpOVU4cS5FfyOorwYo/WIzpHrUYc4Pw/+ex6DOmU/kgrk14mr8d9obVehKW7iNtA==}
+ /@storybook/addon-actions@8.4.4(storybook@8.4.4):
+ resolution: {integrity: sha512-+Dd6alcieS6UN7IKhXLuhyQYQMu9HG/Tdr790a4EOQKpJM1NxIMuPuUH3fAoKfa9VhtI1BxTBr7zNtzg9Akqhg==}
peerDependencies:
- storybook: ^8.4.1
+ storybook: ^8.4.4
dependencies:
'@storybook/global': 5.0.0
'@types/uuid': 9.0.8
dequal: 2.0.3
polished: 4.3.1
- storybook: 8.4.1(prettier@3.3.3)
+ storybook: 8.4.4(prettier@3.3.3)
uuid: 9.0.1
dev: true
- /@storybook/addon-backgrounds@8.4.1(storybook@8.4.1):
- resolution: {integrity: sha512-DIT1E9R9Sds8KTC+0m2X5cVa8hTNcKY1XKYTI9QdzQvdZzOt+K93AJqq2x8k5glingqUVpB6v2fSDmCUXp4+4g==}
+ /@storybook/addon-backgrounds@8.4.4(storybook@8.4.4):
+ resolution: {integrity: sha512-asaGD4ruIPFthyhpByQSJagvtNN7EGKdHj5yMnsMvkSXnN0r1uVkI2/Z37hmLt02Qbzf6OQiBPW5TDL+X+EEBg==}
peerDependencies:
- storybook: ^8.4.1
+ storybook: ^8.4.4
dependencies:
'@storybook/global': 5.0.0
memoizerific: 1.11.3
- storybook: 8.4.1(prettier@3.3.3)
+ storybook: 8.4.4(prettier@3.3.3)
ts-dedent: 2.2.0
dev: true
- /@storybook/addon-controls@8.4.1(storybook@8.4.1):
- resolution: {integrity: sha512-3ahbYdDx7iFUd4X1KelMSuPqVnladc0bH4m6DQZyN+wkRxdRlOD6iOGuOe2qi1Gv0b2VuVAt253i75tK/TPNLw==}
+ /@storybook/addon-controls@8.4.4(storybook@8.4.4):
+ resolution: {integrity: sha512-FbZRbwJQggLz6M3zB6scCp1SDGwQ5zdiD6sjBilZzgGO5rBFqG0A8PoOyr4iPrLU2y/NZBdRrJBD+6MkaJ+yzw==}
peerDependencies:
- storybook: ^8.4.1
+ storybook: ^8.4.4
dependencies:
'@storybook/global': 5.0.0
dequal: 2.0.3
- storybook: 8.4.1(prettier@3.3.3)
+ storybook: 8.4.4(prettier@3.3.3)
ts-dedent: 2.2.0
dev: true
- /@storybook/addon-docs@8.4.1(@types/react@18.3.12)(storybook@8.4.1):
- resolution: {integrity: sha512-yPD/NssJf7pMJzaKvma02C6yX8ykPVnEjhRbNYcBNM8s8g/cT5JkROvIB+FOb4T81yhdfbGg9bGkpAXGX270IQ==}
+ /@storybook/addon-docs@8.4.4(@types/react@18.3.12)(storybook@8.4.4):
+ resolution: {integrity: sha512-wuHaStfpd2rkAN5Lf0qmvE3JKTHTEDbnAMTvfs9inzGBL0iAwBLjW48/ll7lLkJ2E3k/FQtaevNpuc7C52u1Bw==}
peerDependencies:
- storybook: ^8.4.1
+ storybook: ^8.4.4
dependencies:
'@mdx-js/react': 3.1.0(@types/react@18.3.12)(react@18.3.1)
- '@storybook/blocks': 8.4.1(react-dom@18.3.1)(react@18.3.1)(storybook@8.4.1)
- '@storybook/csf-plugin': 8.4.1(storybook@8.4.1)
- '@storybook/react-dom-shim': 8.4.1(react-dom@18.3.1)(react@18.3.1)(storybook@8.4.1)
+ '@storybook/blocks': 8.4.4(react-dom@18.3.1)(react@18.3.1)(storybook@8.4.4)
+ '@storybook/csf-plugin': 8.4.4(storybook@8.4.4)
+ '@storybook/react-dom-shim': 8.4.4(react-dom@18.3.1)(react@18.3.1)(storybook@8.4.4)
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
- storybook: 8.4.1(prettier@3.3.3)
+ storybook: 8.4.4(prettier@3.3.3)
ts-dedent: 2.2.0
transitivePeerDependencies:
- '@types/react'
- - webpack-sources
dev: true
- /@storybook/addon-essentials@8.4.1(@types/react@18.3.12)(storybook@8.4.1):
- resolution: {integrity: sha512-Hmb5fpVzQgyCacDtHeE7HJqIfolzeOnedsLyJVYVpKns/uOWXqpDuU8Fc0s3yTjr1QPIRKtbqV1STxoyXj2how==}
+ /@storybook/addon-essentials@8.4.4(@types/react@18.3.12)(storybook@8.4.4):
+ resolution: {integrity: sha512-0ObUQ98zZkeWqP2k3Un5jny3WxT3THgUKZUGD+mR8eq6CuTmJ3bUXWzDHreuDxQwgr8s5f04XD8IcRvjZ9IRgA==}
peerDependencies:
- storybook: ^8.4.1
- dependencies:
- '@storybook/addon-actions': 8.4.1(storybook@8.4.1)
- '@storybook/addon-backgrounds': 8.4.1(storybook@8.4.1)
- '@storybook/addon-controls': 8.4.1(storybook@8.4.1)
- '@storybook/addon-docs': 8.4.1(@types/react@18.3.12)(storybook@8.4.1)
- '@storybook/addon-highlight': 8.4.1(storybook@8.4.1)
- '@storybook/addon-measure': 8.4.1(storybook@8.4.1)
- '@storybook/addon-outline': 8.4.1(storybook@8.4.1)
- '@storybook/addon-toolbars': 8.4.1(storybook@8.4.1)
- '@storybook/addon-viewport': 8.4.1(storybook@8.4.1)
- storybook: 8.4.1(prettier@3.3.3)
+ storybook: ^8.4.4
+ dependencies:
+ '@storybook/addon-actions': 8.4.4(storybook@8.4.4)
+ '@storybook/addon-backgrounds': 8.4.4(storybook@8.4.4)
+ '@storybook/addon-controls': 8.4.4(storybook@8.4.4)
+ '@storybook/addon-docs': 8.4.4(@types/react@18.3.12)(storybook@8.4.4)
+ '@storybook/addon-highlight': 8.4.4(storybook@8.4.4)
+ '@storybook/addon-measure': 8.4.4(storybook@8.4.4)
+ '@storybook/addon-outline': 8.4.4(storybook@8.4.4)
+ '@storybook/addon-toolbars': 8.4.4(storybook@8.4.4)
+ '@storybook/addon-viewport': 8.4.4(storybook@8.4.4)
+ storybook: 8.4.4(prettier@3.3.3)
ts-dedent: 2.2.0
transitivePeerDependencies:
- '@types/react'
- - webpack-sources
dev: true
- /@storybook/addon-highlight@8.4.1(storybook@8.4.1):
- resolution: {integrity: sha512-BBkUd6+i7lUEWZwoJDlUIwrs7EXkk+EoREUi27iiA1Lilw+NNhoC3kcBmj3+MccjRyeMeIWAgYyXF5qeB2s/JQ==}
+ /@storybook/addon-highlight@8.4.4(storybook@8.4.4):
+ resolution: {integrity: sha512-k7EUxiMe8RCasmgfa6ZKx7UG6kU9RooTYGwqY5TG5xAQOzDwKn4qom+OYkT/9/6lORhJrUe2GgQLCrq/WGpS1A==}
peerDependencies:
- storybook: ^8.4.1
- dependencies:
- '@storybook/global': 5.0.0
- storybook: 8.4.1(prettier@3.3.3)
- dev: true
-
- /@storybook/addon-links@8.4.1(react@18.3.1)(storybook@8.4.1):
- resolution: {integrity: sha512-wg83rNKo6mq5apV7f1qMn4q8xZ8wVx/42EEWxTOmnM37Q5kXltEBu+rUyBpPNDU8zBuXr/MRKIhK5h2k4WfWcg==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta
- storybook: ^8.4.1
- peerDependenciesMeta:
- react:
- optional: true
+ storybook: ^8.4.4
dependencies:
- '@storybook/csf': 0.1.11
'@storybook/global': 5.0.0
- react: 18.3.1
- storybook: 8.4.1(prettier@3.3.3)
- ts-dedent: 2.2.0
+ storybook: 8.4.4(prettier@3.3.3)
dev: true
- /@storybook/addon-measure@8.4.1(storybook@8.4.1):
- resolution: {integrity: sha512-Pg1ROj29hKt7grL/HmbIJ10WrkZf1Unx35SsP373bkPQ1ggYi9oxGqtfNchTF2zCb1xUpIikLYSJgkwdjqWxhA==}
+ /@storybook/addon-measure@8.4.4(storybook@8.4.4):
+ resolution: {integrity: sha512-KsjrwrXwrI+z7hKKfjyY1w1b0gLSLZmp15vIRJMELybWV0+4bZFLJGwMBOQFx+aWBED8yZrRV9OjTmoczawsZg==}
peerDependencies:
- storybook: ^8.4.1
+ storybook: ^8.4.4
dependencies:
'@storybook/global': 5.0.0
- storybook: 8.4.1(prettier@3.3.3)
+ storybook: 8.4.4(prettier@3.3.3)
tiny-invariant: 1.3.3
dev: true
- /@storybook/addon-outline@8.4.1(storybook@8.4.1):
- resolution: {integrity: sha512-LPZ0gGHfbru66Lkw1whnc3F/r1hfnoORBoF98Hp+cjH34gR4t8te6xq5qSiupRUULGdSLdBRs/4EGRBeELfVjQ==}
+ /@storybook/addon-outline@8.4.4(storybook@8.4.4):
+ resolution: {integrity: sha512-CVS1dm6BNUWKGrJj9E1ThBp5Khe6Yw+Hhz6OFxrPZfoTr6RstwoTmvSpKjDUCn8zj6ujoORdiQUh1FsHOxAPBg==}
peerDependencies:
- storybook: ^8.4.1
+ storybook: ^8.4.4
dependencies:
'@storybook/global': 5.0.0
- storybook: 8.4.1(prettier@3.3.3)
+ storybook: 8.4.4(prettier@3.3.3)
ts-dedent: 2.2.0
dev: true
- /@storybook/addon-toolbars@8.4.1(storybook@8.4.1):
- resolution: {integrity: sha512-yrzX6BFeJM5KFY0+ZAYfRax2QgWi2e5vF6yPz+MGIPr4nhHay0wTkOHhkBhIPBjQO9x0vqc7MS2EBDydCBWqlg==}
+ /@storybook/addon-toolbars@8.4.4(storybook@8.4.4):
+ resolution: {integrity: sha512-ENPshJMDpfzOJ4Tgm1hSzQoaEmgDxCtP6C8LKk4MOd3X92MJ7p6kfb3y3R1BLg4E/g90qp6lKPFdcohS2tKCgQ==}
peerDependencies:
- storybook: ^8.4.1
+ storybook: ^8.4.4
dependencies:
- storybook: 8.4.1(prettier@3.3.3)
+ storybook: 8.4.4(prettier@3.3.3)
dev: true
- /@storybook/addon-viewport@8.4.1(storybook@8.4.1):
- resolution: {integrity: sha512-O6DcuUfXQTytjl7mj4ld4ZX9x2pUUWKUx1TxiuMuH0EKb612RyYcdpXpDQQwsIzLV/f2BOetk9jmO2/MymfbWQ==}
+ /@storybook/addon-viewport@8.4.4(storybook@8.4.4):
+ resolution: {integrity: sha512-SRHJlLhf3tu7+sYNfVIYTeMegn6aiv4HGX97ZLvL76NWWBU8BntQ1LKMki7475mWiZNUFMoYYPsHlG+HU9FAtg==}
peerDependencies:
- storybook: ^8.4.1
+ storybook: ^8.4.4
dependencies:
memoizerific: 1.11.3
- storybook: 8.4.1(prettier@3.3.3)
+ storybook: 8.4.4(prettier@3.3.3)
dev: true
- /@storybook/blocks@8.4.1(react-dom@18.3.1)(react@18.3.1)(storybook@8.4.1):
- resolution: {integrity: sha512-C4w5T5fhg0iONXozHQ1bh9im2Lr1BiY7Bj/9XoFjkc5YeCzxlMpujFA6Nmo4ToUFW90QbvKN7/QVhbrtY9O1Jg==}
+ /@storybook/blocks@8.4.4(react-dom@18.3.1)(react@18.3.1)(storybook@8.4.4):
+ resolution: {integrity: sha512-LwM3guL7uWpYR1a/SY0KZjCUskTKEaS22eF7GK8iXAV5BY4KpKr6ArW4O9orK29KtFwKhDZQLcMcECsOJBVk/A==}
peerDependencies:
react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta
react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta
- storybook: ^8.4.1
+ storybook: ^8.4.4
peerDependenciesMeta:
react:
optional: true
@@ -1314,35 +1575,33 @@ packages:
'@storybook/icons': 1.2.12(react-dom@18.3.1)(react@18.3.1)
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
- storybook: 8.4.1(prettier@3.3.3)
+ storybook: 8.4.4(prettier@3.3.3)
ts-dedent: 2.2.0
dev: true
- /@storybook/builder-vite@8.4.1(storybook@8.4.1)(vite@5.4.10):
- resolution: {integrity: sha512-//v2S+/huVTZB1tqVH7hpGQtEaRUFyhVFuf4Qk+xPuJItE6sgY4z8Iaz5vONTNMUouei867CXQRPQr3gCa3QVQ==}
+ /@storybook/builder-vite@8.4.4(storybook@8.4.4)(vite@5.4.11):
+ resolution: {integrity: sha512-UfPzE0p2xvBK7sA853N3VN+Plfw6/DIVppwbgsaRdzie52QXZQrl60u0igD47DHi6+xbqCBWDz7up4h3k00Z5A==}
peerDependencies:
- storybook: ^8.4.1
+ storybook: ^8.4.4
vite: ^4.0.0 || ^5.0.0
dependencies:
- '@storybook/csf-plugin': 8.4.1(storybook@8.4.1)
+ '@storybook/csf-plugin': 8.4.4(storybook@8.4.4)
browser-assert: 1.2.1
- storybook: 8.4.1(prettier@3.3.3)
+ storybook: 8.4.4(prettier@3.3.3)
ts-dedent: 2.2.0
- vite: 5.4.10(@types/node@22.4.1)
- transitivePeerDependencies:
- - webpack-sources
+ vite: 5.4.11(@types/node@22.4.1)
dev: true
- /@storybook/components@8.4.1(storybook@8.4.1):
- resolution: {integrity: sha512-bMPclbBhrWxhFlwqrC/h4fPLl05ouoi5D8SkQTHjeVxWN9eDnMVi76xM0YDct302Z3f0x5S3plIulp+4XRxrvg==}
+ /@storybook/components@8.4.4(storybook@8.4.4):
+ resolution: {integrity: sha512-0BSZVmsk23C0BSRKx3liZSVQFXtoF86XQFdNQxjrXIwdHIEN7TcL3DwcxeVUU5ilGp7HeDgAydGNIPGgTeEe6g==}
peerDependencies:
storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0
dependencies:
- storybook: 8.4.1(prettier@3.3.3)
+ storybook: 8.4.4(prettier@3.3.3)
dev: true
- /@storybook/core@8.4.1(prettier@3.3.3):
- resolution: {integrity: sha512-q3Q4OFBj7MHHbIFYk/Beejlqv5j7CC3+VWhGcr0TK3SGvdCIZ7EliYuc5JIOgDlEPsnTIk+lkgWI4LAA9mLzSw==}
+ /@storybook/core@8.4.4(prettier@3.3.3):
+ resolution: {integrity: sha512-WjTmJpsHsFCd7tQ/8jFpDWjhntauXcWYYTcEZk56Pq4miyNrrXhV0S80Gxv3Uvzk0jocgtT2AKf8rQuH2UkQEg==}
peerDependencies:
prettier: ^2 || ^3
peerDependenciesMeta:
@@ -1352,30 +1611,28 @@ packages:
'@storybook/csf': 0.1.11
better-opn: 3.0.2
browser-assert: 1.2.1
- esbuild: 0.19.12
- esbuild-register: 3.6.0(esbuild@0.19.12)
+ esbuild: 0.24.0
+ esbuild-register: 3.6.0(esbuild@0.24.0)
jsdoc-type-pratt-parser: 4.1.0
prettier: 3.3.3
process: 0.11.10
recast: 0.23.9
- semver: 7.6.2
+ semver: 7.6.3
util: 0.12.5
- ws: 8.17.0
+ ws: 8.18.0
transitivePeerDependencies:
- bufferutil
- supports-color
- utf-8-validate
dev: true
- /@storybook/csf-plugin@8.4.1(storybook@8.4.1):
- resolution: {integrity: sha512-MdQkyq6mJ31lBsWCG9VNtx8O0oLSc5h4kvWDPyIP6Dn58K0Hv2z9qvxxSvtFjXA7ES9X+ivjorTke1kearifhg==}
+ /@storybook/csf-plugin@8.4.4(storybook@8.4.4):
+ resolution: {integrity: sha512-4+6SUhp5sEJN9BY5RuxcFKvJbOqCzIUp9oHSSz36hkP07a4QH+SwxfEd0U7JRfmPpB63L+izywTzWhdADiAMOQ==}
peerDependencies:
- storybook: ^8.4.1
+ storybook: ^8.4.4
dependencies:
- storybook: 8.4.1(prettier@3.3.3)
- unplugin: 1.15.0
- transitivePeerDependencies:
- - webpack-sources
+ storybook: 8.4.4(prettier@3.3.3)
+ unplugin: 1.16.0
dev: true
/@storybook/csf@0.1.11:
@@ -1399,691 +1656,183 @@ packages:
react-dom: 18.3.1(react@18.3.1)
dev: true
- /@storybook/instrumenter@8.4.1(storybook@8.4.1):
- resolution: {integrity: sha512-MgrhrLVW78jqno+Dh9h9Es06Ja3867TlrIUd8B3K3U1hsCFUQuFKXJBuGjNJF8U0QJY/aSIRnAgUBurHdVkPcw==}
- peerDependencies:
- storybook: ^8.4.1
- dependencies:
- '@storybook/global': 5.0.0
- '@vitest/utils': 2.1.4
- storybook: 8.4.1(prettier@3.3.3)
- dev: true
-
- /@storybook/manager-api@8.4.1(storybook@8.4.1):
- resolution: {integrity: sha512-7hb2k4zsp6lREGZbQ85QOlsC8EIMZXuY9Pg12VUgaZd+LmLjLuaqtrxRz3SwIgIWsRpFun9AHO0X37DmYNGTSw==}
+ /@storybook/manager-api@8.4.4(storybook@8.4.4):
+ resolution: {integrity: sha512-rmNPcbEyzakEHoaecUbhkW7WWOkyZ0z7ywH4d5/s0ZuQS57Px2N+ZLVgRJwYK+YNHiJYqDf1BTln9YJ/Mt1L6Q==}
peerDependencies:
storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0
dependencies:
- storybook: 8.4.1(prettier@3.3.3)
+ storybook: 8.4.4(prettier@3.3.3)
dev: true
- /@storybook/preview-api@8.4.1(storybook@8.4.1):
- resolution: {integrity: sha512-VdnESYfXCUasNtMd5s1Q8DPqMnAUdpROn8mE8UAD79Cy7DSNesI1q0SATuJqh5iYCT/+3Tpjfghsr2zC/mOh8w==}
+ /@storybook/preview-api@8.4.4(storybook@8.4.4):
+ resolution: {integrity: sha512-iZrWQcjRBqBHFdDXVxGpw6mHBZMCMYqhWXdyJ0d1S2y3PwcfOjkcXlQ1UiAenFHlA6dKrcYw8luKUQTL9bKReA==}
peerDependencies:
storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0
dependencies:
- storybook: 8.4.1(prettier@3.3.3)
+ storybook: 8.4.4(prettier@3.3.3)
dev: true
- /@storybook/react-dom-shim@8.4.1(react-dom@18.3.1)(react@18.3.1)(storybook@8.4.1):
- resolution: {integrity: sha512-XhvuqkpqtcUjDA8XE4osq140SCddX3VHMdj+IwlrMdoSl32CAya01TH5YDDx6YMy6hM/QQbyVKaemG7RB/oU4Q==}
+ /@storybook/react-dom-shim@8.4.4(react-dom@18.3.1)(react@18.3.1)(storybook@8.4.4):
+ resolution: {integrity: sha512-kufv2FDK3kjADBo+/aKHsUn9T5E4p9IBAmCoIvXBGRDumPRds7Pt3MB4ODKlg+IumR7LMEq0jTJkn27ZRTuUmw==}
peerDependencies:
react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta
react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta
- storybook: ^8.4.1
+ storybook: ^8.4.4
dependencies:
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
- storybook: 8.4.1(prettier@3.3.3)
+ storybook: 8.4.4(prettier@3.3.3)
dev: true
- /@storybook/test@8.4.1(storybook@8.4.1):
- resolution: {integrity: sha512-najn9kCxB8NaHykhD7Fv+Iq0FnxmIJYOJlYiI8NMgVLwaSDFf6gnqAY6HHVPRqkhej8TuT1L2e2RxKqzWEB+mA==}
+ /@storybook/theming@8.4.4(storybook@8.4.4):
+ resolution: {integrity: sha512-iq4yt3Fx35ZV5owNC//E6G+QPV19xHHVN2Ugi3p7KOSFK3chuXX9mxZ1rfir+t+U30a5EPOEnlsY3/1LXn7aTw==}
peerDependencies:
- storybook: ^8.4.1
+ storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0
dependencies:
- '@storybook/csf': 0.1.11
- '@storybook/global': 5.0.0
- '@storybook/instrumenter': 8.4.1(storybook@8.4.1)
- '@testing-library/dom': 10.4.0
- '@testing-library/jest-dom': 6.5.0
- '@testing-library/user-event': 14.5.2(@testing-library/dom@10.4.0)
- '@vitest/expect': 2.0.5
- '@vitest/spy': 2.0.5
- storybook: 8.4.1(prettier@3.3.3)
+ storybook: 8.4.4(prettier@3.3.3)
dev: true
- /@storybook/theming@8.4.1(storybook@8.4.1):
- resolution: {integrity: sha512-Sz24isryVFZaVahXkjgnCsMAQqQeeKg41AtLsldlYdesIo6fr5tc6/SkTUy+CYadK4Dkhqp+vVRDnwToYYRGhA==}
+ /@storybook/types@8.4.4(storybook@8.4.4):
+ resolution: {integrity: sha512-NUeIhecJ+i2ul/u/ftV+f9gBT2cUOuLjgy1a+l0UbJd7n3wwN17vX2zrrDkrGG3dp3edr8bWMGjAN3WERJje1A==}
peerDependencies:
storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0
dependencies:
- storybook: 8.4.1(prettier@3.3.3)
+ storybook: 8.4.4(prettier@3.3.3)
dev: true
- /@storybook/web-components-vite@8.4.1(lit@3.1.3)(storybook@8.4.1)(vite@5.4.10):
- resolution: {integrity: sha512-Mne1LaQzcnDHHKz8BfWB86syyl/ReipvPdRt1/DeluFmfNzcwlSYrt2BfBMPKuKWzkyvsY4xaFdo0oF4GkG1aQ==}
+ /@storybook/web-components-vite@8.4.4(lit@3.2.1)(storybook@8.4.4)(vite@5.4.11):
+ resolution: {integrity: sha512-9iufvCB/Qp2pNEam8V471WVhlG1aQ/kwqyubJBraBjGeQ/eKobK+dt08OSF+8YKciqIX65CIZ4ubKlIYhBsBfA==}
engines: {node: '>=18.0.0'}
peerDependencies:
- storybook: ^8.4.1
+ storybook: ^8.4.4
dependencies:
- '@storybook/builder-vite': 8.4.1(storybook@8.4.1)(vite@5.4.10)
- '@storybook/web-components': 8.4.1(lit@3.1.3)(storybook@8.4.1)
+ '@storybook/builder-vite': 8.4.4(storybook@8.4.4)(vite@5.4.11)
+ '@storybook/web-components': 8.4.4(lit@3.2.1)(storybook@8.4.4)
magic-string: 0.30.12
- storybook: 8.4.1(prettier@3.3.3)
+ storybook: 8.4.4(prettier@3.3.3)
transitivePeerDependencies:
- lit
- vite
- - webpack-sources
dev: true
- /@storybook/web-components@8.4.1(lit@3.1.3)(storybook@8.4.1):
- resolution: {integrity: sha512-FSO9zXFtejb2YobnoSR9rtyu1WW6+pPz6j5Y9GxOh4RAyM+Euhi0HxiPDWxiBD16/vrxRwQIyh8EFbKYL1JyMg==}
+ /@storybook/web-components@8.4.4(lit@3.2.1)(storybook@8.4.4):
+ resolution: {integrity: sha512-L8z6Rg2u9LexleGq3uX7aDd+UZKx9T3ofUfS/yjC6UiSAh6JaBDs1EtpScjNvaXGh8oLdDVk0iQTxR2qCfqaBw==}
engines: {node: '>=18.0.0'}
peerDependencies:
lit: ^2.0.0 || ^3.0.0
- storybook: ^8.4.1
+ storybook: ^8.4.4
dependencies:
- '@storybook/components': 8.4.1(storybook@8.4.1)
+ '@storybook/components': 8.4.4(storybook@8.4.4)
'@storybook/global': 5.0.0
- '@storybook/manager-api': 8.4.1(storybook@8.4.1)
- '@storybook/preview-api': 8.4.1(storybook@8.4.1)
- '@storybook/theming': 8.4.1(storybook@8.4.1)
- lit: 3.1.3
- storybook: 8.4.1(prettier@3.3.3)
+ '@storybook/manager-api': 8.4.4(storybook@8.4.4)
+ '@storybook/preview-api': 8.4.4(storybook@8.4.4)
+ '@storybook/theming': 8.4.4(storybook@8.4.4)
+ lit: 3.2.1
+ storybook: 8.4.4(prettier@3.3.3)
tiny-invariant: 1.3.3
ts-dedent: 2.2.0
dev: true
- /@testing-library/dom@10.4.0:
- resolution: {integrity: sha512-pemlzrSESWbdAloYml3bAJMEfNh1Z7EduzqPKprCH5S341frlpYnUEW0H72dLxa6IsYr+mPno20GiSm+h9dEdQ==}
- engines: {node: '>=18'}
- dependencies:
- '@babel/code-frame': 7.24.2
- '@babel/runtime': 7.26.0
- '@types/aria-query': 5.0.4
- aria-query: 5.3.0
- chalk: 4.1.2
- dom-accessibility-api: 0.5.16
- lz-string: 1.5.0
- pretty-format: 27.5.1
- dev: true
-
- /@testing-library/jest-dom@6.5.0:
- resolution: {integrity: sha512-xGGHpBXYSHUUr6XsKBfs85TWlYKpTc37cSBBVrXcib2MkHLboWlkClhWF37JKlDb9KEq3dHs+f2xR7XJEWGBxA==}
- engines: {node: '>=14', npm: '>=6', yarn: '>=1'}
- dependencies:
- '@adobe/css-tools': 4.4.0
- aria-query: 5.3.2
- chalk: 3.0.0
- css.escape: 1.5.1
- dom-accessibility-api: 0.6.3
- lodash: 4.17.21
- redent: 3.0.0
- dev: true
-
- /@testing-library/user-event@14.5.2(@testing-library/dom@10.4.0):
- resolution: {integrity: sha512-YAh82Wh4TIrxYLmfGcixwD18oIjyC1pFQC2Y01F2lzV2HTMiYrI0nze0FD0ocB//CKS/7jIUgae+adPqxK5yCQ==}
- engines: {node: '>=12', npm: '>=6'}
- peerDependencies:
- '@testing-library/dom': '>=7.21.4'
+ /@types/debug@4.1.12:
+ resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==}
dependencies:
- '@testing-library/dom': 10.4.0
+ '@types/ms': 0.7.34
dev: true
- /@tootallnate/quickjs-emscripten@0.23.0:
- resolution: {integrity: sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==}
+ /@types/estree@1.0.5:
+ resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==}
dev: true
- /@types/accepts@1.3.7:
- resolution: {integrity: sha512-Pay9fq2lM2wXPWbteBsRAGiWH2hig4ZE2asK+mm7kUzlxRTfL961rj89I6zV/E3PcIkDqyuBEcMxFT7rccugeQ==}
- dependencies:
- '@types/node': 22.4.1
+ /@types/estree@1.0.6:
+ resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==}
dev: true
- /@types/aria-query@5.0.4:
- resolution: {integrity: sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==}
+ /@types/gapi@0.0.47:
+ resolution: {integrity: sha512-/ZsLuq6BffMgbKMtZyDZ8vwQvTyKhKQ1G2K6VyWCgtHHhfSSXbk4+4JwImZiTjWNXfI2q1ZStAwFFHSkNoTkHA==}
dev: true
- /@types/babel__code-frame@7.0.6:
- resolution: {integrity: sha512-Anitqkl3+KrzcW2k77lRlg/GfLZLWXBuNgbEcIOU6M92yw42vsd3xV/Z/yAHEj8m+KUjL6bWOVOFqX8PFPJ4LA==}
+ /@types/google.accounts@0.0.14:
+ resolution: {integrity: sha512-HqIVkVzpiLWhlajhQQd4rIV7czanFvXblJI2J1fSrL+VKQuQwwZ63m35D/mI0flsqKE6p/hNrAG0Yn4FD6JvNA==}
dev: true
- /@types/body-parser@1.19.5:
- resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==}
- dependencies:
- '@types/connect': 3.4.38
- '@types/node': 22.4.1
+ /@types/google.picker@0.0.44:
+ resolution: {integrity: sha512-/YbgUisLlNH3boqxKWPNHFZnp1u53mPpe2OgkZlyG+obYKpuziToVlONR8btlY7spzLkbR428xoO447n7rS+JA==}
dev: true
- /@types/chai-dom@1.11.3:
- resolution: {integrity: sha512-EUEZI7uID4ewzxnU7DJXtyvykhQuwe+etJ1wwOiJyQRTH/ifMWKX+ghiXkxCUvNJ6IQDodf0JXhuP6zZcy2qXQ==}
+ /@types/mdast@4.0.4:
+ resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==}
dependencies:
- '@types/chai': 4.3.16
+ '@types/unist': 3.0.3
dev: true
- /@types/chai@4.3.16:
- resolution: {integrity: sha512-PatH4iOdyh3MyWtmHVFXLWCCIhUbopaltqddG9BzB+gMIzee2MJrvd+jouii9Z3wzQJruGWAm7WOMjgfG8hQlQ==}
+ /@types/mdx@2.0.13:
+ resolution: {integrity: sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==}
dev: true
- /@types/co-body@6.1.3:
- resolution: {integrity: sha512-UhuhrQ5hclX6UJctv5m4Rfp52AfG9o9+d9/HwjxhVB5NjXxr5t9oKgJxN8xRHgr35oo8meUEHUPFWiKg6y71aA==}
- dependencies:
- '@types/node': 22.4.1
- '@types/qs': 6.9.15
+ /@types/memoizee@0.4.11:
+ resolution: {integrity: sha512-2gyorIBZu8GoDr9pYjROkxWWcFtHCquF7TVbN2I+/OvgZhnIGQS0vX5KJz4lXNKb8XOSfxFOSG5OLru1ESqLUg==}
dev: true
- /@types/command-line-args@5.2.3:
- resolution: {integrity: sha512-uv0aG6R0Y8WHZLTamZwtfsDLVRnOa+n+n5rEvFWL5Na5gZ8V2Teab/duDPFzIIIhs9qizDpcavCusCLJZu62Kw==}
+ /@types/mocha@10.0.6:
+ resolution: {integrity: sha512-dJvrYWxP/UcXm36Qn36fxhUKu8A/xMRXVT2cliFF1Z7UA9liG5Psj3ezNSZw+5puH2czDXRLcXQxf8JbJt0ejg==}
dev: true
- /@types/connect@3.4.38:
- resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==}
- dependencies:
- '@types/node': 22.4.1
+ /@types/ms@0.7.34:
+ resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==}
dev: true
- /@types/content-disposition@0.5.8:
- resolution: {integrity: sha512-QVSSvno3dE0MgO76pJhmv4Qyi/j0Yk9pBp0Y7TJ2Tlj+KCgJWY6qX7nnxCOLkZ3VYRSIk1WTxCvwUSdx6CCLdg==}
+ /@types/node@22.4.1:
+ resolution: {integrity: sha512-1tbpb9325+gPnKK0dMm+/LMriX0vKxf6RnB0SZUqfyVkQ4fMgUSySqhxE/y8Jvs4NyF1yHzTfG9KlnkIODxPKg==}
+ dependencies:
+ undici-types: 6.19.8
dev: true
- /@types/convert-source-map@2.0.3:
- resolution: {integrity: sha512-ag0BfJLZf6CQz8VIuRIEYQ5Ggwk/82uvTQf27RcpyDNbY0Vw49LIPqAxk5tqYfrCs9xDaIMvl4aj7ZopnYL8bA==}
+ /@types/prop-types@15.7.13:
+ resolution: {integrity: sha512-hCZTSvwbzWGvhqxp/RqVqwU999pBf2vp7hzIjiYOsl8wqOmUxkQ6ddw1cV3l8811+kdUFus/q4d1Y3E3SyEifA==}
dev: true
- /@types/cookies@0.9.0:
- resolution: {integrity: sha512-40Zk8qR147RABiQ7NQnBzWzDcjKzNrntB5BAmeGCb2p/MIyOE+4BVvc17wumsUqUw00bJYqoXFHYygQnEFh4/Q==}
+ /@types/react@18.3.12:
+ resolution: {integrity: sha512-D2wOSq/d6Agt28q7rSI3jhU7G6aiuzljDGZ2hTZHIkrTLUI+AF3WMeKkEZ9nN2fkBAlcktT6vcZjDFiIhMYEQw==}
dependencies:
- '@types/connect': 3.4.38
- '@types/express': 4.17.21
- '@types/keygrip': 1.0.6
- '@types/node': 22.4.1
+ '@types/prop-types': 15.7.13
+ csstype: 3.1.3
dev: true
- /@types/debounce@1.2.4:
- resolution: {integrity: sha512-jBqiORIzKDOToaF63Fm//haOCHuwQuLa2202RK4MozpA6lh93eCBc+/8+wZn5OzjJt3ySdc+74SXWXB55Ewtyw==}
+ /@types/trusted-types@2.0.7:
+ resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==}
dev: true
- /@types/estree@1.0.5:
- resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==}
+ /@types/ungap__structured-clone@1.2.0:
+ resolution: {integrity: sha512-ZoaihZNLeZSxESbk9PUAPZOlSpcKx81I1+4emtULDVmBLkYutTcMlCj2K9VNlf9EWODxdO6gkAqEaLorXwZQVA==}
dev: true
- /@types/estree@1.0.6:
- resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==}
+ /@types/unist@2.0.11:
+ resolution: {integrity: sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==}
dev: true
- /@types/express-serve-static-core@4.19.0:
- resolution: {integrity: sha512-bGyep3JqPCRry1wq+O5n7oiBgGWmeIJXPjXXCo8EK0u8duZGSYar7cGqd3ML2JUsLGeB7fmc06KYo9fLGWqPvQ==}
- dependencies:
- '@types/node': 22.4.1
- '@types/qs': 6.9.15
- '@types/range-parser': 1.2.7
- '@types/send': 0.17.4
+ /@types/unist@3.0.3:
+ resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==}
dev: true
- /@types/express@4.17.21:
- resolution: {integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==}
- dependencies:
- '@types/body-parser': 1.19.5
- '@types/express-serve-static-core': 4.19.0
- '@types/qs': 6.9.15
- '@types/serve-static': 1.15.7
+ /@types/uuid@9.0.8:
+ resolution: {integrity: sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==}
dev: true
- /@types/gapi@0.0.47:
- resolution: {integrity: sha512-/ZsLuq6BffMgbKMtZyDZ8vwQvTyKhKQ1G2K6VyWCgtHHhfSSXbk4+4JwImZiTjWNXfI2q1ZStAwFFHSkNoTkHA==}
+ /@ungap/structured-clone@1.2.0:
+ resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==}
dev: true
- /@types/google.accounts@0.0.14:
- resolution: {integrity: sha512-HqIVkVzpiLWhlajhQQd4rIV7czanFvXblJI2J1fSrL+VKQuQwwZ63m35D/mI0flsqKE6p/hNrAG0Yn4FD6JvNA==}
+ /@web/config-loader@0.1.3:
+ resolution: {integrity: sha512-XVKH79pk4d3EHRhofete8eAnqto1e8mCRAqPV00KLNFzCWSe8sWmLnqKCqkPNARC6nksMaGrATnA5sPDRllMpQ==}
+ engines: {node: '>=10.0.0'}
+ dependencies:
+ semver: 7.6.2
dev: true
- /@types/google.picker@0.0.44:
- resolution: {integrity: sha512-/YbgUisLlNH3boqxKWPNHFZnp1u53mPpe2OgkZlyG+obYKpuziToVlONR8btlY7spzLkbR428xoO447n7rS+JA==}
- dev: true
-
- /@types/http-assert@1.5.5:
- resolution: {integrity: sha512-4+tE/lwdAahgZT1g30Jkdm9PzFRde0xwxBNUyRsCitRvCQB90iuA2uJYdUnhnANRcqGXaWOGY4FEoxeElNAK2g==}
- dev: true
-
- /@types/http-errors@2.0.4:
- resolution: {integrity: sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==}
- dev: true
-
- /@types/istanbul-lib-coverage@2.0.6:
- resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==}
- dev: true
-
- /@types/istanbul-lib-report@3.0.3:
- resolution: {integrity: sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==}
- dependencies:
- '@types/istanbul-lib-coverage': 2.0.6
- dev: true
-
- /@types/istanbul-reports@3.0.4:
- resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==}
- dependencies:
- '@types/istanbul-lib-report': 3.0.3
- dev: true
-
- /@types/keygrip@1.0.6:
- resolution: {integrity: sha512-lZuNAY9xeJt7Bx4t4dx0rYCDqGPW8RXhQZK1td7d4H6E9zYbLoOtjBvfwdTKpsyxQI/2jv+armjX/RW+ZNpXOQ==}
- dev: true
-
- /@types/koa-compose@3.2.8:
- resolution: {integrity: sha512-4Olc63RY+MKvxMwVknCUDhRQX1pFQoBZ/lXcRLP69PQkEpze/0cr8LNqJQe5NFb/b19DWi2a5bTi2VAlQzhJuA==}
- dependencies:
- '@types/koa': 2.15.0
- dev: true
-
- /@types/koa@2.15.0:
- resolution: {integrity: sha512-7QFsywoE5URbuVnG3loe03QXuGajrnotr3gQkXcEBShORai23MePfFYdhz90FEtBBpkyIYQbVD+evKtloCgX3g==}
- dependencies:
- '@types/accepts': 1.3.7
- '@types/content-disposition': 0.5.8
- '@types/cookies': 0.9.0
- '@types/http-assert': 1.5.5
- '@types/http-errors': 2.0.4
- '@types/keygrip': 1.0.6
- '@types/koa-compose': 3.2.8
- '@types/node': 22.4.1
- dev: true
-
- /@types/mdx@2.0.13:
- resolution: {integrity: sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==}
- dev: true
-
- /@types/mime@1.3.5:
- resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==}
- dev: true
-
- /@types/mocha@10.0.6:
- resolution: {integrity: sha512-dJvrYWxP/UcXm36Qn36fxhUKu8A/xMRXVT2cliFF1Z7UA9liG5Psj3ezNSZw+5puH2czDXRLcXQxf8JbJt0ejg==}
- dev: true
-
- /@types/node@22.4.1:
- resolution: {integrity: sha512-1tbpb9325+gPnKK0dMm+/LMriX0vKxf6RnB0SZUqfyVkQ4fMgUSySqhxE/y8Jvs4NyF1yHzTfG9KlnkIODxPKg==}
- dependencies:
- undici-types: 6.19.8
- dev: true
-
- /@types/parse5@6.0.3:
- resolution: {integrity: sha512-SuT16Q1K51EAVPz1K29DJ/sXjhSQ0zjvsypYJ6tlwVsRV9jwW5Adq2ch8Dq8kDBCkYnELS7N7VNCSB5nC56t/g==}
- dev: true
-
- /@types/prop-types@15.7.13:
- resolution: {integrity: sha512-hCZTSvwbzWGvhqxp/RqVqwU999pBf2vp7hzIjiYOsl8wqOmUxkQ6ddw1cV3l8811+kdUFus/q4d1Y3E3SyEifA==}
- dev: true
-
- /@types/qs@6.9.15:
- resolution: {integrity: sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg==}
- dev: true
-
- /@types/range-parser@1.2.7:
- resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==}
- dev: true
-
- /@types/react@18.3.12:
- resolution: {integrity: sha512-D2wOSq/d6Agt28q7rSI3jhU7G6aiuzljDGZ2hTZHIkrTLUI+AF3WMeKkEZ9nN2fkBAlcktT6vcZjDFiIhMYEQw==}
- dependencies:
- '@types/prop-types': 15.7.13
- csstype: 3.1.3
- dev: true
-
- /@types/resolve@1.20.2:
- resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==}
- dev: true
-
- /@types/send@0.17.4:
- resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==}
- dependencies:
- '@types/mime': 1.3.5
- '@types/node': 22.4.1
- dev: true
-
- /@types/serve-static@1.15.7:
- resolution: {integrity: sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==}
- dependencies:
- '@types/http-errors': 2.0.4
- '@types/node': 22.4.1
- '@types/send': 0.17.4
- dev: true
-
- /@types/sinon-chai@3.2.12:
- resolution: {integrity: sha512-9y0Gflk3b0+NhQZ/oxGtaAJDvRywCa5sIyaVnounqLvmf93yBF4EgIRspePtkMs3Tr844nCclYMlcCNmLCvjuQ==}
- dependencies:
- '@types/chai': 4.3.16
- '@types/sinon': 17.0.3
- dev: true
-
- /@types/sinon@17.0.3:
- resolution: {integrity: sha512-j3uovdn8ewky9kRBG19bOwaZbexJu/XjtkHyjvUgt4xfPFz18dcORIMqnYh66Fx3Powhcr85NT5+er3+oViapw==}
- dependencies:
- '@types/sinonjs__fake-timers': 8.1.5
- dev: true
-
- /@types/sinonjs__fake-timers@8.1.5:
- resolution: {integrity: sha512-mQkU2jY8jJEF7YHjHvsQO8+3ughTL1mcnn96igfhONmR+fUPSKIkefQYpSe8bsly2Ep7oQbn/6VG5/9/0qcArQ==}
- dev: true
-
- /@types/trusted-types@2.0.7:
- resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==}
-
- /@types/uuid@9.0.8:
- resolution: {integrity: sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==}
- dev: true
-
- /@types/ws@7.4.7:
- resolution: {integrity: sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==}
- dependencies:
- '@types/node': 22.4.1
- dev: true
-
- /@types/yauzl@2.10.3:
- resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==}
- requiresBuild: true
- dependencies:
- '@types/node': 22.4.1
- dev: true
- optional: true
-
- /@vitest/expect@2.0.5:
- resolution: {integrity: sha512-yHZtwuP7JZivj65Gxoi8upUN2OzHTi3zVfjwdpu2WrvCZPLwsJ2Ey5ILIPccoW23dd/zQBlJ4/dhi7DWNyXCpA==}
- dependencies:
- '@vitest/spy': 2.0.5
- '@vitest/utils': 2.0.5
- chai: 5.1.1
- tinyrainbow: 1.2.0
- dev: true
-
- /@vitest/pretty-format@2.0.5:
- resolution: {integrity: sha512-h8k+1oWHfwTkyTkb9egzwNMfJAEx4veaPSnMeKbVSjp4euqGSbQlm5+6VHwTr7u4FJslVVsUG5nopCaAYdOmSQ==}
- dependencies:
- tinyrainbow: 1.2.0
- dev: true
-
- /@vitest/pretty-format@2.1.4:
- resolution: {integrity: sha512-L95zIAkEuTDbUX1IsjRl+vyBSLh3PwLLgKpghl37aCK9Jvw0iP+wKwIFhfjdUtA2myLgjrG6VU6JCFLv8q/3Ww==}
- dependencies:
- tinyrainbow: 1.2.0
- dev: true
-
- /@vitest/spy@2.0.5:
- resolution: {integrity: sha512-c/jdthAhvJdpfVuaexSrnawxZz6pywlTPe84LUB2m/4t3rl2fTo9NFGBG4oWgaD+FTgDDV8hJ/nibT7IfH3JfA==}
- dependencies:
- tinyspy: 3.0.2
- dev: true
-
- /@vitest/utils@2.0.5:
- resolution: {integrity: sha512-d8HKbqIcya+GR67mkZbrzhS5kKhtp8dQLcmRZLGTscGVg7yImT82cIrhtn2L8+VujWcy6KZweApgNmPsTAO/UQ==}
- dependencies:
- '@vitest/pretty-format': 2.0.5
- estree-walker: 3.0.3
- loupe: 3.1.1
- tinyrainbow: 1.2.0
- dev: true
-
- /@vitest/utils@2.1.4:
- resolution: {integrity: sha512-MXDnZn0Awl2S86PSNIim5PWXgIAx8CIkzu35mBdSApUip6RFOGXBCf3YFyeEu8n1IHk4bWD46DeYFu9mQlFIRg==}
- dependencies:
- '@vitest/pretty-format': 2.1.4
- loupe: 3.1.2
- tinyrainbow: 1.2.0
- dev: true
-
- /@web/browser-logs@0.4.0:
- resolution: {integrity: sha512-/EBiDAUCJ2DzZhaFxTPRIznEPeafdLbXShIL6aTu7x73x7ZoxSDv7DGuTsh2rWNMUa4+AKli4UORrpyv6QBOiA==}
- engines: {node: '>=18.0.0'}
- dependencies:
- errorstacks: 2.4.1
- dev: true
-
- /@web/config-loader@0.1.3:
- resolution: {integrity: sha512-XVKH79pk4d3EHRhofete8eAnqto1e8mCRAqPV00KLNFzCWSe8sWmLnqKCqkPNARC6nksMaGrATnA5sPDRllMpQ==}
- engines: {node: '>=10.0.0'}
- dependencies:
- semver: 7.6.2
- dev: true
-
- /@web/config-loader@0.3.1:
- resolution: {integrity: sha512-IYjHXUgSGGNpO3YJQ9foLcazbJlAWDdJGRe9be7aOhon0Nd6Na5JIOJAej7jsMu76fKHr4b4w2LfIdNQ4fJ8pA==}
- engines: {node: '>=18.0.0'}
- dev: true
-
- /@web/dev-server-core@0.7.2:
- resolution: {integrity: sha512-Q/0jpF13Ipk+qGGQ+Yx/FW1TQBYazpkfgYHHo96HBE7qv4V4KKHqHglZcSUxti/zd4bToxX1cFTz8dmbTlb8JA==}
- engines: {node: '>=18.0.0'}
- dependencies:
- '@types/koa': 2.15.0
- '@types/ws': 7.4.7
- '@web/parse5-utils': 2.1.0
- chokidar: 3.6.0
- clone: 2.1.2
- es-module-lexer: 1.5.2
- get-stream: 6.0.1
- is-stream: 2.0.1
- isbinaryfile: 5.0.2
- koa: 2.15.3
- koa-etag: 4.0.0
- koa-send: 5.0.1
- koa-static: 5.0.0
- lru-cache: 8.0.5
- mime-types: 2.1.35
- parse5: 6.0.1
- picomatch: 2.3.1
- ws: 7.5.9
- transitivePeerDependencies:
- - bufferutil
- - supports-color
- - utf-8-validate
- dev: true
-
- /@web/dev-server-rollup@0.6.3:
- resolution: {integrity: sha512-dzMwQRBk9Rhpfoo7vvQGvRP18sDELejJCwxsMdt509aLouIB6fviv0i87DJQWbXH24hBeq6+jSILI3JTtVaPZQ==}
- engines: {node: '>=18.0.0'}
- dependencies:
- '@rollup/plugin-node-resolve': 15.2.3(rollup@4.17.2)
- '@web/dev-server-core': 0.7.2
- nanocolors: 0.2.13
- parse5: 6.0.1
- rollup: 4.17.2
- whatwg-url: 11.0.0
- transitivePeerDependencies:
- - bufferutil
- - supports-color
- - utf-8-validate
- dev: true
-
- /@web/dev-server@0.4.5:
- resolution: {integrity: sha512-R11sODOLFcm51f2uir51KE4QXRSYakDaeBeJdrUutPCmYUDEk86GjYBR3R1wslimnwGPIjhFDsXNMfASxYfgAQ==}
- engines: {node: '>=18.0.0'}
- hasBin: true
- dependencies:
- '@babel/code-frame': 7.24.2
- '@types/command-line-args': 5.2.3
- '@web/config-loader': 0.3.1
- '@web/dev-server-core': 0.7.2
- '@web/dev-server-rollup': 0.6.3
- camelcase: 6.3.0
- command-line-args: 5.2.1
- command-line-usage: 7.0.1
- debounce: 1.2.1
- deepmerge: 4.3.1
- ip: 2.0.1
- nanocolors: 0.2.13
- open: 8.4.2
- portfinder: 1.0.32
- transitivePeerDependencies:
- - bufferutil
- - supports-color
- - utf-8-validate
- dev: true
-
- /@web/parse5-utils@2.1.0:
- resolution: {integrity: sha512-GzfK5disEJ6wEjoPwx8AVNwUe9gYIiwc+x//QYxYDAFKUp4Xb1OJAGLc2l2gVrSQmtPGLKrTRcW90Hv4pEq1qA==}
- engines: {node: '>=18.0.0'}
- dependencies:
- '@types/parse5': 6.0.3
- parse5: 6.0.1
- dev: true
-
- /@web/test-runner-chrome@0.16.0:
- resolution: {integrity: sha512-Edc6Y49aVB6k18S5IOj9OCX3rEf8F3jptIu0p95+imqxmcutFEh1GNmlAk2bQGnXS0U6uVY7Xbf61fiaXUQqhg==}
- engines: {node: '>=18.0.0'}
- dependencies:
- '@web/test-runner-core': 0.13.2
- '@web/test-runner-coverage-v8': 0.8.0
- async-mutex: 0.4.0
- chrome-launcher: 0.15.2
- puppeteer-core: 22.8.2
- transitivePeerDependencies:
- - bufferutil
- - supports-color
- - utf-8-validate
- dev: true
-
- /@web/test-runner-commands@0.9.0:
- resolution: {integrity: sha512-zeLI6QdH0jzzJMDV5O42Pd8WLJtYqovgdt0JdytgHc0d1EpzXDsc7NTCJSImboc2NcayIsWAvvGGeRF69SMMYg==}
- engines: {node: '>=18.0.0'}
- dependencies:
- '@web/test-runner-core': 0.13.2
- mkdirp: 1.0.4
- transitivePeerDependencies:
- - bufferutil
- - supports-color
- - utf-8-validate
- dev: true
-
- /@web/test-runner-core@0.13.2:
- resolution: {integrity: sha512-G0D3mv9jvR+5xILENchPP9v1ZjBf3QVlzarMLR5jedCNbgntzcayF0LeW5wh5uyafGZJH28cYm9jGrJvGipoPQ==}
- engines: {node: '>=18.0.0'}
- dependencies:
- '@babel/code-frame': 7.24.2
- '@types/babel__code-frame': 7.0.6
- '@types/co-body': 6.1.3
- '@types/convert-source-map': 2.0.3
- '@types/debounce': 1.2.4
- '@types/istanbul-lib-coverage': 2.0.6
- '@types/istanbul-reports': 3.0.4
- '@web/browser-logs': 0.4.0
- '@web/dev-server-core': 0.7.2
- chokidar: 3.6.0
- cli-cursor: 3.1.0
- co-body: 6.1.0
- convert-source-map: 2.0.0
- debounce: 1.2.1
- dependency-graph: 0.11.0
- globby: 11.1.0
- ip: 2.0.1
- istanbul-lib-coverage: 3.2.2
- istanbul-lib-report: 3.0.1
- istanbul-reports: 3.1.7
- log-update: 4.0.0
- nanocolors: 0.2.13
- nanoid: 3.3.7
- open: 8.4.2
- picomatch: 2.3.1
- source-map: 0.7.4
- transitivePeerDependencies:
- - bufferutil
- - supports-color
- - utf-8-validate
- dev: true
-
- /@web/test-runner-coverage-v8@0.8.0:
- resolution: {integrity: sha512-PskiucYpjUtgNfR2zF2AWqWwjXL7H3WW/SnCAYmzUrtob7X9o/+BjdyZ4wKbOxWWSbJO4lEdGIDLu+8X2Xw+lA==}
- engines: {node: '>=18.0.0'}
- dependencies:
- '@web/test-runner-core': 0.13.2
- istanbul-lib-coverage: 3.2.2
- lru-cache: 8.0.5
- picomatch: 2.3.1
- v8-to-istanbul: 9.2.0
- transitivePeerDependencies:
- - bufferutil
- - supports-color
- - utf-8-validate
- dev: true
-
- /@web/test-runner-mocha@0.9.0:
- resolution: {integrity: sha512-ZL9F6FXd0DBQvo/h/+mSfzFTSRVxzV9st/AHhpgABtUtV/AIpVE9to6+xdkpu6827kwjezdpuadPfg+PlrBWqQ==}
- engines: {node: '>=18.0.0'}
- dependencies:
- '@web/test-runner-core': 0.13.2
- transitivePeerDependencies:
- - bufferutil
- - supports-color
- - utf-8-validate
- dev: true
-
- /@web/test-runner-playwright@0.11.0:
- resolution: {integrity: sha512-s+f43DSAcssKYVOD9SuzueUcctJdHzq1by45gAnSCKa9FQcaTbuYe8CzmxA21g+NcL5+ayo4z+MA9PO4H+PssQ==}
- engines: {node: '>=18.0.0'}
- dependencies:
- '@web/test-runner-core': 0.13.2
- '@web/test-runner-coverage-v8': 0.8.0
- playwright: 1.44.0
- transitivePeerDependencies:
- - bufferutil
- - supports-color
- - utf-8-validate
- dev: true
-
- /@web/test-runner@0.18.2:
- resolution: {integrity: sha512-jA+957ic31aG/f1mr1b+HYzf/uTu4QsvFhyVgTKi2s5YQYGBbtfzx9PnYi47MVC9K9OHRbW8cq2Urds9qwSU3w==}
- engines: {node: '>=18.0.0'}
- hasBin: true
- dependencies:
- '@web/browser-logs': 0.4.0
- '@web/config-loader': 0.3.1
- '@web/dev-server': 0.4.5
- '@web/test-runner-chrome': 0.16.0
- '@web/test-runner-commands': 0.9.0
- '@web/test-runner-core': 0.13.2
- '@web/test-runner-mocha': 0.9.0
- camelcase: 6.3.0
- command-line-args: 5.1.2
- command-line-usage: 7.0.1
- convert-source-map: 2.0.0
- diff: 5.2.0
- globby: 11.1.0
- nanocolors: 0.2.13
- portfinder: 1.0.32
- source-map: 0.7.4
- transitivePeerDependencies:
- - bufferutil
- - supports-color
- - utf-8-validate
- dev: true
-
- /accepts@1.3.8:
- resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==}
- engines: {node: '>= 0.6'}
- dependencies:
- mime-types: 2.1.35
- negotiator: 0.6.3
- dev: true
-
- /acorn@8.14.0:
- resolution: {integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==}
- engines: {node: '>=0.4.0'}
- hasBin: true
- dev: true
-
- /agent-base@7.1.1:
- resolution: {integrity: sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==}
- engines: {node: '>= 14'}
- dependencies:
- debug: 4.3.4
- transitivePeerDependencies:
- - supports-color
- dev: true
-
- /ansi-escapes@4.3.2:
- resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==}
- engines: {node: '>=8'}
- dependencies:
- type-fest: 0.21.3
+ /acorn@8.14.0:
+ resolution: {integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==}
+ engines: {node: '>=0.4.0'}
+ hasBin: true
dev: true
/ansi-escapes@7.0.0:
@@ -2103,13 +1852,6 @@ packages:
engines: {node: '>=12'}
dev: true
- /ansi-styles@3.2.1:
- resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==}
- engines: {node: '>=4'}
- dependencies:
- color-convert: 1.9.3
- dev: true
-
/ansi-styles@4.3.0:
resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
engines: {node: '>=8'}
@@ -2117,11 +1859,6 @@ packages:
color-convert: 2.0.1
dev: true
- /ansi-styles@5.2.0:
- resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==}
- engines: {node: '>=10'}
- dev: true
-
/ansi-styles@6.2.1:
resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==}
engines: {node: '>=12'}
@@ -2139,17 +1876,6 @@ packages:
picomatch: 2.3.1
dev: true
- /aria-query@5.3.0:
- resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==}
- dependencies:
- dequal: 2.0.3
- dev: true
-
- /aria-query@5.3.2:
- resolution: {integrity: sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==}
- engines: {node: '>= 0.4'}
- dev: true
-
/array-back@3.1.0:
resolution: {integrity: sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==}
engines: {node: '>=6'}
@@ -2165,40 +1891,11 @@ packages:
engines: {node: '>=8'}
dev: true
- /assertion-error@2.0.1:
- resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==}
- engines: {node: '>=12'}
- dev: true
-
- /ast-types@0.13.4:
- resolution: {integrity: sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==}
- engines: {node: '>=4'}
- dependencies:
- tslib: 2.6.2
- dev: true
-
/ast-types@0.16.1:
resolution: {integrity: sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg==}
engines: {node: '>=4'}
dependencies:
- tslib: 2.6.2
- dev: true
-
- /astral-regex@2.0.0:
- resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==}
- engines: {node: '>=8'}
- dev: true
-
- /async-mutex@0.4.0:
- resolution: {integrity: sha512-eJFZ1YhRR8UN8eBLoNzcDPcy/jqjsg6I1AP+KvWQX80BqOSW1oJPJXDylPUEeMr2ZQvHgnQ//Lp6f3RQ1zI7HA==}
- dependencies:
- tslib: 2.6.2
- dev: true
-
- /async@2.6.4:
- resolution: {integrity: sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==}
- dependencies:
- lodash: 4.17.21
+ tslib: 2.8.1
dev: true
/available-typed-arrays@1.0.7:
@@ -2208,66 +1905,14 @@ packages:
possible-typed-array-names: 1.0.0
dev: true
- /axe-core@4.9.1:
- resolution: {integrity: sha512-QbUdXJVTpvUTHU7871ppZkdOLBeGUKBQWHkHrvN2V9IQWGMt61zf3B45BtzjxEJzYuj0JBjBZP/hmYS/R9pmAw==}
- engines: {node: '>=4'}
- dev: true
-
- /b4a@1.6.6:
- resolution: {integrity: sha512-5Tk1HLk6b6ctmjIkAcU/Ujv/1WqiDl0F0JdRCR80VsOcUlHcu7pWeWRlOqQLHfDEsVx9YH/aif5AG4ehoCtTmg==}
+ /bail@2.0.2:
+ resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==}
dev: true
/balanced-match@1.0.2:
resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
dev: true
- /bare-events@2.2.2:
- resolution: {integrity: sha512-h7z00dWdG0PYOQEvChhOSWvOfkIKsdZGkWr083FgN/HyoQuebSew/cgirYqh9SCuy/hRvxc5Vy6Fw8xAmYHLkQ==}
- requiresBuild: true
- dev: true
- optional: true
-
- /bare-fs@2.3.0:
- resolution: {integrity: sha512-TNFqa1B4N99pds2a5NYHR15o0ZpdNKbAeKTE/+G6ED/UeOavv8RY3dr/Fu99HW3zU3pXpo2kDNO8Sjsm2esfOw==}
- requiresBuild: true
- dependencies:
- bare-events: 2.2.2
- bare-path: 2.1.2
- bare-stream: 1.0.0
- dev: true
- optional: true
-
- /bare-os@2.3.0:
- resolution: {integrity: sha512-oPb8oMM1xZbhRQBngTgpcQ5gXw6kjOaRsSWsIeNyRxGed2w/ARyP7ScBYpWR1qfX2E5rS3gBw6OWcSQo+s+kUg==}
- requiresBuild: true
- dev: true
- optional: true
-
- /bare-path@2.1.2:
- resolution: {integrity: sha512-o7KSt4prEphWUHa3QUwCxUI00R86VdjiuxmJK0iNVDHYPGo+HsDaVCnqCmPbf/MiW1ok8F4p3m8RTHlWk8K2ig==}
- requiresBuild: true
- dependencies:
- bare-os: 2.3.0
- dev: true
- optional: true
-
- /bare-stream@1.0.0:
- resolution: {integrity: sha512-KhNUoDL40iP4gFaLSsoGE479t0jHijfYdIcxRn/XtezA2BaUD0NRf/JGRpsMq6dMNM+SrCrB0YSSo/5wBY4rOQ==}
- requiresBuild: true
- dependencies:
- streamx: 2.16.1
- dev: true
- optional: true
-
- /base64-js@1.5.1:
- resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
- dev: true
-
- /basic-ftp@5.0.5:
- resolution: {integrity: sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg==}
- engines: {node: '>=10.0.0'}
- dev: true
-
/better-opn@3.0.2:
resolution: {integrity: sha512-aVNobHnJqLiUelTaHat9DZ1qM2w0C0Eym4LPI/3JxOnSokGVdsl1T1kN7TFvsEAD8G47A6VKQ0TVHqbBnYMJlQ==}
engines: {node: '>=12.0.0'}
@@ -2304,20 +1949,26 @@ packages:
resolution: {integrity: sha512-nfulgvOR6S4gt9UKCeGJOuSGBPGiFT6oQ/2UBnvTY/5aQ1PnksW72fhZkM30DzoRRv2WpwZf1vHHEr3mtuXIWQ==}
dev: true
- /buffer-crc32@0.2.13:
- resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==}
- dev: true
-
- /buffer@5.7.1:
- resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==}
+ /browserslist-to-esbuild@2.1.1(browserslist@4.24.0):
+ resolution: {integrity: sha512-KN+mty6C3e9AN8Z5dI1xeN15ExcRNeISoC3g7V0Kax/MMF9MSoYA2G7lkTTcVUFntiEjkpI0HNgqJC1NjdyNUw==}
+ engines: {node: '>=18'}
+ hasBin: true
+ peerDependencies:
+ browserslist: '*'
dependencies:
- base64-js: 1.5.1
- ieee754: 1.2.1
+ browserslist: 4.24.0
+ meow: 13.2.0
dev: true
- /builtin-modules@3.3.0:
- resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==}
- engines: {node: '>=6'}
+ /browserslist@4.24.0:
+ resolution: {integrity: sha512-Rmb62sR1Zpjql25eSanFGEhAxcFwfA1K0GuQcLoaJBAcENegrQut3hYdhXFF1obQfiDyqIW/cLM5HSJ/9k884A==}
+ engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
+ hasBin: true
+ dependencies:
+ caniuse-lite: 1.0.30001669
+ electron-to-chromium: 1.5.41
+ node-releases: 2.0.18
+ update-browserslist-db: 1.1.1(browserslist@4.24.0)
dev: true
/bundle-require@4.1.0(esbuild@0.19.12):
@@ -2330,24 +1981,11 @@ packages:
load-tsconfig: 0.2.5
dev: true
- /bytes@3.1.2:
- resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==}
- engines: {node: '>= 0.8'}
- dev: true
-
/cac@6.7.14:
resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==}
engines: {node: '>=8'}
dev: true
- /cache-content-type@1.0.1:
- resolution: {integrity: sha512-IKufZ1o4Ut42YUrZSo8+qnMTrFuKkvyoLXUywKz9GJ5BrhOFGhLdkx9sG4KAnVvbY6kEcSFjLQul+DVmBm2bgA==}
- engines: {node: '>= 6.0.0'}
- dependencies:
- mime-types: 2.1.35
- ylru: 1.4.0
- dev: true
-
/call-bind@1.0.7:
resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==}
engines: {node: '>= 0.4'}
@@ -2359,58 +1997,12 @@ packages:
set-function-length: 1.2.2
dev: true
- /camelcase@6.3.0:
- resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==}
- engines: {node: '>=10'}
- dev: true
-
- /chai-a11y-axe@1.5.0:
- resolution: {integrity: sha512-V/Vg/zJDr9aIkaHJ2KQu7lGTQQm5ZOH4u1k5iTMvIXuSVlSuUo0jcSpSqf9wUn9zl6oQXa4e4E0cqH18KOgKlQ==}
- dependencies:
- axe-core: 4.9.1
- dev: true
-
- /chai@5.1.1:
- resolution: {integrity: sha512-pT1ZgP8rPNqUgieVaEY+ryQr6Q4HXNg8Ei9UnLUrjN4IA7dvQC5JB+/kxVcPNDHyBcc/26CXPkbNzq3qwrOEKA==}
- engines: {node: '>=12'}
- dependencies:
- assertion-error: 2.0.1
- check-error: 2.1.1
- deep-eql: 5.0.1
- loupe: 3.1.1
- pathval: 2.0.0
- dev: true
-
- /chalk-template@0.4.0:
- resolution: {integrity: sha512-/ghrgmhfY8RaSdeo43hNXxpoHAtxdbskUHjPpfqUWGttFgycUhYPGx3YZBCnUCvOa7Doivn1IZec3DEGFoMgLg==}
- engines: {node: '>=12'}
- dependencies:
- chalk: 4.1.2
- dev: true
-
- /chalk@2.4.2:
- resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==}
- engines: {node: '>=4'}
- dependencies:
- ansi-styles: 3.2.1
- escape-string-regexp: 1.0.5
- supports-color: 5.5.0
+ /caniuse-lite@1.0.30001669:
+ resolution: {integrity: sha512-DlWzFDJqstqtIVx1zeSpIMLjunf5SmwOw0N2Ck/QSQdS8PLS4+9HrLaYei4w8BIAL7IB/UEDu889d8vhCTPA0w==}
dev: true
- /chalk@3.0.0:
- resolution: {integrity: sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==}
- engines: {node: '>=8'}
- dependencies:
- ansi-styles: 4.3.0
- supports-color: 7.2.0
- dev: true
-
- /chalk@4.1.2:
- resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
- engines: {node: '>=10'}
- dependencies:
- ansi-styles: 4.3.0
- supports-color: 7.2.0
+ /ccount@2.0.1:
+ resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==}
dev: true
/chalk@5.3.0:
@@ -2418,9 +2010,8 @@ packages:
engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
dev: true
- /check-error@2.1.1:
- resolution: {integrity: sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==}
- engines: {node: '>= 16'}
+ /character-entities@2.0.2:
+ resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==}
dev: true
/chokidar@3.5.2:
@@ -2453,50 +2044,6 @@ packages:
fsevents: 2.3.3
dev: true
- /chromatic@11.16.3:
- resolution: {integrity: sha512-bckarRbZ3M1BvsmhLqEMschuQPk2FlSD9cvy8383JwoVvaIqLr0dv1tI/DPM4LMuXOjTjeBSZZINVH9r3RMiiA==}
- hasBin: true
- peerDependencies:
- '@chromatic-com/cypress': ^0.*.* || ^1.0.0
- '@chromatic-com/playwright': ^0.*.* || ^1.0.0
- peerDependenciesMeta:
- '@chromatic-com/cypress':
- optional: true
- '@chromatic-com/playwright':
- optional: true
- dev: true
-
- /chrome-launcher@0.15.2:
- resolution: {integrity: sha512-zdLEwNo3aUVzIhKhTtXfxhdvZhUghrnmkvcAq2NoDd+LeOHKf03H5jwZ8T/STsAlzyALkBVK552iaG1fGf1xVQ==}
- engines: {node: '>=12.13.0'}
- hasBin: true
- dependencies:
- '@types/node': 22.4.1
- escape-string-regexp: 4.0.0
- is-wsl: 2.2.0
- lighthouse-logger: 1.4.2
- transitivePeerDependencies:
- - supports-color
- dev: true
-
- /chromium-bidi@0.5.19(devtools-protocol@0.0.1273771):
- resolution: {integrity: sha512-UA6zL77b7RYCjJkZBsZ0wlvCTD+jTjllZ8f6wdO4buevXgTZYjV+XLB9CiEa2OuuTGGTLnI7eN9I60YxuALGQg==}
- peerDependencies:
- devtools-protocol: '*'
- dependencies:
- devtools-protocol: 0.0.1273771
- mitt: 3.0.1
- urlpattern-polyfill: 10.0.0
- zod: 3.22.4
- dev: true
-
- /cli-cursor@3.1.0:
- resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==}
- engines: {node: '>=8'}
- dependencies:
- restore-cursor: 3.1.0
- dev: true
-
/cli-cursor@5.0.0:
resolution: {integrity: sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==}
engines: {node: '>=18'}
@@ -2512,40 +2059,6 @@ packages:
string-width: 7.2.0
dev: true
- /cliui@8.0.1:
- resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==}
- engines: {node: '>=12'}
- dependencies:
- string-width: 4.2.3
- strip-ansi: 6.0.1
- wrap-ansi: 7.0.0
- dev: true
-
- /clone@2.1.2:
- resolution: {integrity: sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==}
- engines: {node: '>=0.8'}
- dev: true
-
- /co-body@6.1.0:
- resolution: {integrity: sha512-m7pOT6CdLN7FuXUcpuz/8lfQ/L77x8SchHCF4G0RBTJO20Wzmhn5Sp4/5WsKy8OSpifBSUrmg83qEqaDHdyFuQ==}
- dependencies:
- inflation: 2.1.0
- qs: 6.12.1
- raw-body: 2.5.2
- type-is: 1.6.18
- dev: true
-
- /co@4.6.0:
- resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==}
- engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'}
- dev: true
-
- /color-convert@1.9.3:
- resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==}
- dependencies:
- color-name: 1.1.3
- dev: true
-
/color-convert@2.0.1:
resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
engines: {node: '>=7.0.0'}
@@ -2553,10 +2066,6 @@ packages:
color-name: 1.1.4
dev: true
- /color-name@1.1.3:
- resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==}
- dev: true
-
/color-name@1.1.4:
resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
dev: true
@@ -2575,26 +2084,6 @@ packages:
typical: 4.0.0
dev: true
- /command-line-args@5.2.1:
- resolution: {integrity: sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==}
- engines: {node: '>=4.0.0'}
- dependencies:
- array-back: 3.1.0
- find-replace: 3.0.0
- lodash.camelcase: 4.3.0
- typical: 4.0.0
- dev: true
-
- /command-line-usage@7.0.1:
- resolution: {integrity: sha512-NCyznE//MuTjwi3y84QVUGEOT+P5oto1e1Pk/jFPVdPPfsG03qpTIl3yw6etR+v73d0lXsoojRpvbru2sqePxQ==}
- engines: {node: '>=12.20.0'}
- dependencies:
- array-back: 6.2.2
- chalk-template: 0.4.0
- table-layout: 3.0.2
- typical: 7.1.1
- dev: true
-
/commander@12.1.0:
resolution: {integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==}
engines: {node: '>=18'}
@@ -2610,30 +2099,6 @@ packages:
engines: {node: '>= 12.0.0'}
dev: true
- /content-disposition@0.5.4:
- resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==}
- engines: {node: '>= 0.6'}
- dependencies:
- safe-buffer: 5.2.1
- dev: true
-
- /content-type@1.0.5:
- resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==}
- engines: {node: '>= 0.6'}
- dev: true
-
- /convert-source-map@2.0.0:
- resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==}
- dev: true
-
- /cookies@0.9.1:
- resolution: {integrity: sha512-TG2hpqe4ELx54QER/S3HQ9SRVnQnGBtKUz5bLQWtYAQ+o6GpgMs6sYUvaiJjVxb+UXwhRhAEP3m7LbsIZ77Hmw==}
- engines: {node: '>= 0.8'}
- dependencies:
- depd: 2.0.0
- keygrip: 1.1.0
- dev: true
-
/cross-spawn@7.0.3:
resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==}
engines: {node: '>= 8'}
@@ -2643,10 +2108,6 @@ packages:
which: 2.0.2
dev: true
- /css.escape@1.5.1:
- resolution: {integrity: sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==}
- dev: true
-
/csstype@3.1.3:
resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==}
dev: true
@@ -2655,28 +2116,17 @@ packages:
resolution: {integrity: sha512-j59k0ExGCKA8T6Mzaq+7axc+KVHwpEphEERU7VZ99260npu/p/9kd+Db+I3cGKxHkM5y6q5gnlXn00mzRQkX2A==}
dev: true
- /data-uri-to-buffer@6.0.2:
- resolution: {integrity: sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==}
- engines: {node: '>= 14'}
+ /custom-elements-manifest@2.1.0:
+ resolution: {integrity: sha512-4TU+YhBQpCGYWonsZVTOPx6aYJXenOiSRT7TNGvDB7ipa4SZSJKed1DYXG77XKL9JFZ86sDSDVkwgv1mqw3V3A==}
dev: true
/debounce@1.2.1:
resolution: {integrity: sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==}
dev: true
- /debug@2.6.9:
- resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==}
- peerDependencies:
- supports-color: '*'
- peerDependenciesMeta:
- supports-color:
- optional: true
- dependencies:
- ms: 2.0.0
- dev: true
-
- /debug@3.2.7:
- resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==}
+ /debug@4.3.4:
+ resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==}
+ engines: {node: '>=6.0'}
peerDependencies:
supports-color: '*'
peerDependenciesMeta:
@@ -2686,8 +2136,8 @@ packages:
ms: 2.1.2
dev: true
- /debug@4.3.4:
- resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==}
+ /debug@4.3.6:
+ resolution: {integrity: sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==}
engines: {node: '>=6.0'}
peerDependencies:
supports-color: '*'
@@ -2698,8 +2148,8 @@ packages:
ms: 2.1.2
dev: true
- /debug@4.3.6:
- resolution: {integrity: sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==}
+ /debug@4.3.7:
+ resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==}
engines: {node: '>=6.0'}
peerDependencies:
supports-color: '*'
@@ -2707,21 +2157,13 @@ packages:
supports-color:
optional: true
dependencies:
- ms: 2.1.2
+ ms: 2.1.3
dev: true
- /deep-eql@5.0.1:
- resolution: {integrity: sha512-nwQCf6ne2gez3o1MxWifqkciwt0zhl0LO1/UwVu4uMBuPmflWM4oQ70XMqHqnBJA+nhzncaqL9HVL6KkHJ28lw==}
- engines: {node: '>=6'}
- dev: true
-
- /deep-equal@1.0.1:
- resolution: {integrity: sha512-bHtC0iYvWhyaTzvV3CZgPeZQqCOBGyGsVV7v4eevpdkLHfiSrXUdBG+qAuSz4RI70sszvjQ1QSZ98An1yNwpSw==}
- dev: true
-
- /deepmerge@4.3.1:
- resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==}
- engines: {node: '>=0.10.0'}
+ /decode-named-character-reference@1.0.2:
+ resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==}
+ dependencies:
+ character-entities: 2.0.2
dev: true
/define-data-property@1.1.4:
@@ -2738,51 +2180,15 @@ packages:
engines: {node: '>=8'}
dev: true
- /degenerator@5.0.1:
- resolution: {integrity: sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==}
- engines: {node: '>= 14'}
- dependencies:
- ast-types: 0.13.4
- escodegen: 2.1.0
- esprima: 4.0.1
- dev: true
-
- /delegates@1.0.0:
- resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==}
- dev: true
-
- /depd@1.1.2:
- resolution: {integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==}
- engines: {node: '>= 0.6'}
- dev: true
-
- /depd@2.0.0:
- resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==}
- engines: {node: '>= 0.8'}
- dev: true
-
- /dependency-graph@0.11.0:
- resolution: {integrity: sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==}
- engines: {node: '>= 0.6.0'}
- dev: true
-
/dequal@2.0.3:
resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==}
engines: {node: '>=6'}
dev: true
- /destroy@1.2.0:
- resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==}
- engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16}
- dev: true
-
- /devtools-protocol@0.0.1273771:
- resolution: {integrity: sha512-QDbb27xcTVReQQW/GHJsdQqGKwYBE7re7gxehj467kKP2DKuYBUj6i2k5LRiAC66J1yZG/9gsxooz/s9pcm0Og==}
- dev: true
-
- /diff@5.2.0:
- resolution: {integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==}
- engines: {node: '>=0.3.1'}
+ /devlop@1.1.0:
+ resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==}
+ dependencies:
+ dequal: 2.0.3
dev: true
/dir-glob@3.0.1:
@@ -2792,20 +2198,12 @@ packages:
path-type: 4.0.0
dev: true
- /dom-accessibility-api@0.5.16:
- resolution: {integrity: sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==}
- dev: true
-
- /dom-accessibility-api@0.6.3:
- resolution: {integrity: sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w==}
- dev: true
-
/eastasianwidth@0.2.0:
resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==}
dev: true
- /ee-first@1.1.1:
- resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==}
+ /electron-to-chromium@1.5.41:
+ resolution: {integrity: sha512-dfdv/2xNjX0P8Vzme4cfzHqnPm5xsZXwsolTYr0eyW18IUmNyG08vL+fttvinTfhKfIKdRoqkDIC9e9iWQCNYQ==}
dev: true
/emoji-regex@10.3.0:
@@ -2820,26 +2218,11 @@ packages:
resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==}
dev: true
- /encodeurl@1.0.2:
- resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==}
- engines: {node: '>= 0.8'}
- dev: true
-
- /end-of-stream@1.4.4:
- resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==}
- dependencies:
- once: 1.4.0
- dev: true
-
/environment@1.1.0:
resolution: {integrity: sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==}
engines: {node: '>=18'}
dev: true
- /errorstacks@2.4.1:
- resolution: {integrity: sha512-jE4i0SMYevwu/xxAuzhly/KTwtj0xDhbzB6m1xPImxTkw8wcCbgarOQPfCVMi5JKVyW7in29pNJCCJrry3Ynnw==}
- dev: true
-
/es-define-property@1.0.0:
resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==}
engines: {node: '>= 0.4'}
@@ -2856,17 +2239,13 @@ packages:
resolution: {integrity: sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==}
dev: true
- /es-module-lexer@1.5.2:
- resolution: {integrity: sha512-l60ETUTmLqbVbVHv1J4/qj+M8nq7AwMzEcg3kmJDt9dCNrTk+yHcYFf/Kw75pMDwd9mPcIGCG5LcS20SxYRzFA==}
- dev: true
-
- /esbuild-register@3.6.0(esbuild@0.19.12):
+ /esbuild-register@3.6.0(esbuild@0.24.0):
resolution: {integrity: sha512-H2/S7Pm8a9CL1uhp9OvjwrBh5Pvx0H8qVOxNu8Wed9Y7qv56MPtq+GGM8RJpq6glYJn9Wspr8uw7l55uyinNeg==}
peerDependencies:
esbuild: '>=0.12 <1'
dependencies:
- debug: 4.3.6
- esbuild: 0.19.12
+ debug: 4.3.7
+ esbuild: 0.24.0
transitivePeerDependencies:
- supports-color
dev: true
@@ -2930,38 +2309,81 @@ packages:
'@esbuild/sunos-x64': 0.21.5
'@esbuild/win32-arm64': 0.21.5
'@esbuild/win32-ia32': 0.21.5
- '@esbuild/win32-x64': 0.21.5
- dev: true
-
- /escalade@3.1.2:
- resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==}
- engines: {node: '>=6'}
- dev: true
-
- /escape-html@1.0.3:
- resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==}
- dev: true
-
- /escape-string-regexp@1.0.5:
- resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==}
- engines: {node: '>=0.8.0'}
- dev: true
-
- /escape-string-regexp@4.0.0:
- resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
- engines: {node: '>=10'}
+ '@esbuild/win32-x64': 0.21.5
dev: true
- /escodegen@2.1.0:
- resolution: {integrity: sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==}
- engines: {node: '>=6.0'}
+ /esbuild@0.23.1:
+ resolution: {integrity: sha512-VVNz/9Sa0bs5SELtn3f7qhJCDPCF5oMEl5cO9/SSinpE9hbPVvxbd572HH5AKiP7WD8INO53GgfDDhRjkylHEg==}
+ engines: {node: '>=18'}
hasBin: true
- dependencies:
- esprima: 4.0.1
- estraverse: 5.3.0
- esutils: 2.0.3
+ requiresBuild: true
optionalDependencies:
- source-map: 0.6.1
+ '@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
+ dev: true
+
+ /esbuild@0.24.0:
+ resolution: {integrity: sha512-FuLPevChGDshgSicjisSooU0cemp/sGXR841D5LHMB7mTVOmsEHcAxaH3irL53+8YDIeVNQEySh4DaYU/iuPqQ==}
+ engines: {node: '>=18'}
+ hasBin: true
+ requiresBuild: true
+ optionalDependencies:
+ '@esbuild/aix-ppc64': 0.24.0
+ '@esbuild/android-arm': 0.24.0
+ '@esbuild/android-arm64': 0.24.0
+ '@esbuild/android-x64': 0.24.0
+ '@esbuild/darwin-arm64': 0.24.0
+ '@esbuild/darwin-x64': 0.24.0
+ '@esbuild/freebsd-arm64': 0.24.0
+ '@esbuild/freebsd-x64': 0.24.0
+ '@esbuild/linux-arm': 0.24.0
+ '@esbuild/linux-arm64': 0.24.0
+ '@esbuild/linux-ia32': 0.24.0
+ '@esbuild/linux-loong64': 0.24.0
+ '@esbuild/linux-mips64el': 0.24.0
+ '@esbuild/linux-ppc64': 0.24.0
+ '@esbuild/linux-riscv64': 0.24.0
+ '@esbuild/linux-s390x': 0.24.0
+ '@esbuild/linux-x64': 0.24.0
+ '@esbuild/netbsd-x64': 0.24.0
+ '@esbuild/openbsd-arm64': 0.24.0
+ '@esbuild/openbsd-x64': 0.24.0
+ '@esbuild/sunos-x64': 0.24.0
+ '@esbuild/win32-arm64': 0.24.0
+ '@esbuild/win32-ia32': 0.24.0
+ '@esbuild/win32-x64': 0.24.0
+ dev: true
+
+ /escalade@3.2.0:
+ resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==}
+ engines: {node: '>=6'}
+ dev: true
+
+ /escape-string-regexp@5.0.0:
+ resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==}
+ engines: {node: '>=12'}
dev: true
/esprima@4.0.1:
@@ -2970,31 +2392,6 @@ packages:
hasBin: true
dev: true
- /estraverse@5.3.0:
- resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==}
- engines: {node: '>=4.0'}
- dev: true
-
- /estree-walker@2.0.2:
- resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==}
- dev: true
-
- /estree-walker@3.0.3:
- resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==}
- dependencies:
- '@types/estree': 1.0.5
- dev: true
-
- /esutils@2.0.3:
- resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==}
- engines: {node: '>=0.10.0'}
- dev: true
-
- /etag@1.8.1:
- resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==}
- engines: {node: '>= 0.6'}
- dev: true
-
/eventemitter3@5.0.1:
resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==}
dev: true
@@ -3029,22 +2426,8 @@ packages:
strip-final-newline: 3.0.0
dev: true
- /extract-zip@2.0.1:
- resolution: {integrity: sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==}
- engines: {node: '>= 10.17.0'}
- hasBin: true
- dependencies:
- debug: 4.3.4
- get-stream: 5.2.0
- yauzl: 2.10.0
- optionalDependencies:
- '@types/yauzl': 2.10.3
- transitivePeerDependencies:
- - supports-color
- dev: true
-
- /fast-fifo@1.3.2:
- resolution: {integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==}
+ /extend@3.0.2:
+ resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==}
dev: true
/fast-glob@3.3.2:
@@ -3064,17 +2447,6 @@ packages:
reusify: 1.0.4
dev: true
- /fd-slicer@1.1.0:
- resolution: {integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==}
- dependencies:
- pend: 1.2.0
- dev: true
-
- /filesize@10.1.6:
- resolution: {integrity: sha512-sJslQKU2uM33qH5nqewAwVB2QgR6w1aMNsYUp3aN5rMRyXEwJGmZvaWzeJFNTOXWlHQyBFCWrdj3fV/fsTOX8w==}
- engines: {node: '>= 10.4.0'}
- dev: true
-
/fill-range@7.0.1:
resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==}
engines: {node: '>=8'}
@@ -3110,28 +2482,6 @@ packages:
signal-exit: 4.1.0
dev: true
- /fresh@0.5.2:
- resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==}
- engines: {node: '>= 0.6'}
- dev: true
-
- /fs-extra@11.2.0:
- resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==}
- engines: {node: '>=14.14'}
- dependencies:
- graceful-fs: 4.2.11
- jsonfile: 6.1.0
- universalify: 2.0.1
- dev: true
-
- /fsevents@2.3.2:
- resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==}
- engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
- os: [darwin]
- requiresBuild: true
- dev: true
- optional: true
-
/fsevents@2.3.3:
resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
@@ -3144,20 +2494,11 @@ packages:
resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==}
dev: true
- /get-caller-file@2.0.5:
- resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==}
- engines: {node: 6.* || 8.* || >= 10.*}
- dev: true
-
/get-east-asian-width@1.2.0:
resolution: {integrity: sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA==}
engines: {node: '>=18'}
dev: true
- /get-func-name@2.0.2:
- resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==}
- dev: true
-
/get-intrinsic@1.2.4:
resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==}
engines: {node: '>= 0.4'}
@@ -3169,13 +2510,6 @@ packages:
hasown: 2.0.2
dev: true
- /get-stream@5.2.0:
- resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==}
- engines: {node: '>=8'}
- dependencies:
- pump: 3.0.0
- dev: true
-
/get-stream@6.0.1:
resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==}
engines: {node: '>=10'}
@@ -3186,16 +2520,14 @@ packages:
engines: {node: '>=16'}
dev: true
- /get-uri@6.0.3:
- resolution: {integrity: sha512-BzUrJBS9EcUb4cFol8r4W3v1cPsSyajLSthNkz5BxbpDcHN5tIrM10E2eNvfnvBn3DaT3DUgx0OpsBKkaOpanw==}
- engines: {node: '>= 14'}
+ /get-tsconfig@4.8.1:
+ resolution: {integrity: sha512-k9PN+cFBmaLWtVz29SkUoqU5O0slLuHJXt/2P+tMVFT+phsSGXGkp9t3rQIqdz0e+06EHNGs3oM6ZX1s2zHxRg==}
dependencies:
- basic-ftp: 5.0.5
- data-uri-to-buffer: 6.0.2
- debug: 4.3.4
- fs-extra: 11.2.0
- transitivePeerDependencies:
- - supports-color
+ resolve-pkg-maps: 1.0.0
+ dev: true
+
+ /github-slugger@2.0.0:
+ resolution: {integrity: sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==}
dev: true
/glob-parent@5.1.2:
@@ -3251,16 +2583,6 @@ packages:
resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
dev: true
- /has-flag@3.0.0:
- resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==}
- engines: {node: '>=4'}
- dev: true
-
- /has-flag@4.0.0:
- resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
- engines: {node: '>=8'}
- dev: true
-
/has-property-descriptors@1.0.2:
resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==}
dependencies:
@@ -3291,70 +2613,6 @@ packages:
function-bind: 1.1.2
dev: true
- /html-escaper@2.0.2:
- resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==}
- dev: true
-
- /http-assert@1.5.0:
- resolution: {integrity: sha512-uPpH7OKX4H25hBmU6G1jWNaqJGpTXxey+YOUizJUAgu0AjLUeC8D73hTrhvDS5D+GJN1DN1+hhc/eF/wpxtp0w==}
- engines: {node: '>= 0.8'}
- dependencies:
- deep-equal: 1.0.1
- http-errors: 1.8.1
- dev: true
-
- /http-errors@1.6.3:
- resolution: {integrity: sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==}
- engines: {node: '>= 0.6'}
- dependencies:
- depd: 1.1.2
- inherits: 2.0.3
- setprototypeof: 1.1.0
- statuses: 1.5.0
- dev: true
-
- /http-errors@1.8.1:
- resolution: {integrity: sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==}
- engines: {node: '>= 0.6'}
- dependencies:
- depd: 1.1.2
- inherits: 2.0.4
- setprototypeof: 1.2.0
- statuses: 1.5.0
- toidentifier: 1.0.1
- dev: true
-
- /http-errors@2.0.0:
- resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==}
- engines: {node: '>= 0.8'}
- dependencies:
- depd: 2.0.0
- inherits: 2.0.4
- setprototypeof: 1.2.0
- statuses: 2.0.1
- toidentifier: 1.0.1
- dev: true
-
- /http-proxy-agent@7.0.2:
- resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==}
- engines: {node: '>= 14'}
- dependencies:
- agent-base: 7.1.1
- debug: 4.3.4
- transitivePeerDependencies:
- - supports-color
- dev: true
-
- /https-proxy-agent@7.0.4:
- resolution: {integrity: sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==}
- engines: {node: '>= 14'}
- dependencies:
- agent-base: 7.1.1
- debug: 4.3.4
- transitivePeerDependencies:
- - supports-color
- dev: true
-
/human-signals@2.1.0:
resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==}
engines: {node: '>=10.17.0'}
@@ -3371,52 +2629,15 @@ packages:
hasBin: true
dev: true
- /iconv-lite@0.4.24:
- resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==}
- engines: {node: '>=0.10.0'}
- dependencies:
- safer-buffer: 2.1.2
- dev: true
-
- /ieee754@1.2.1:
- resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==}
- dev: true
-
/ignore@5.3.1:
resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==}
engines: {node: '>= 4'}
dev: true
- /indent-string@4.0.0:
- resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==}
- engines: {node: '>=8'}
- dev: true
-
- /inflation@2.1.0:
- resolution: {integrity: sha512-t54PPJHG1Pp7VQvxyVCJ9mBbjG3Hqryges9bXoOO6GExCPa+//i/d5GSuFtpx3ALLd7lgIAur6zrIlBQyJuMlQ==}
- engines: {node: '>= 0.8.0'}
- dev: true
-
- /inherits@2.0.3:
- resolution: {integrity: sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==}
- dev: true
-
/inherits@2.0.4:
resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
dev: true
- /ip-address@9.0.5:
- resolution: {integrity: sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==}
- engines: {node: '>= 12'}
- dependencies:
- jsbn: 1.1.0
- sprintf-js: 1.1.3
- dev: true
-
- /ip@2.0.1:
- resolution: {integrity: sha512-lJUL9imLTNi1ZfXT+DU6rBBdbiKGBuay9B6xGSPVjUeQwaH1RIGqef8RZkUtHioLmSNpPR5M4HVKJGm1j8FWVQ==}
- dev: true
-
/is-arguments@1.1.1:
resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==}
engines: {node: '>= 0.4'}
@@ -3432,24 +2653,11 @@ packages:
binary-extensions: 2.3.0
dev: true
- /is-builtin-module@3.2.1:
- resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==}
- engines: {node: '>=6'}
- dependencies:
- builtin-modules: 3.3.0
- dev: true
-
/is-callable@1.2.7:
resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==}
engines: {node: '>= 0.4'}
dev: true
- /is-core-module@2.13.1:
- resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==}
- dependencies:
- hasown: 2.0.2
- dev: true
-
/is-docker@2.2.1:
resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==}
engines: {node: '>=8'}
@@ -3492,15 +2700,16 @@ packages:
is-extglob: 2.1.1
dev: true
- /is-module@1.0.0:
- resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==}
- dev: true
-
/is-number@7.0.0:
resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
engines: {node: '>=0.12.0'}
dev: true
+ /is-plain-obj@4.1.0:
+ resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==}
+ engines: {node: '>=12'}
+ dev: true
+
/is-stream@2.0.1:
resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==}
engines: {node: '>=8'}
@@ -3525,37 +2734,10 @@ packages:
is-docker: 2.2.1
dev: true
- /isbinaryfile@5.0.2:
- resolution: {integrity: sha512-GvcjojwonMjWbTkfMpnVHVqXW/wKMYDfEpY94/8zy8HFMOqb/VL6oeONq9v87q4ttVlaTLnGXnJD4B5B1OTGIg==}
- engines: {node: '>= 18.0.0'}
- dev: true
-
/isexe@2.0.0:
resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
dev: true
- /istanbul-lib-coverage@3.2.2:
- resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==}
- engines: {node: '>=8'}
- dev: true
-
- /istanbul-lib-report@3.0.1:
- resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==}
- engines: {node: '>=10'}
- dependencies:
- istanbul-lib-coverage: 3.2.2
- make-dir: 4.0.0
- supports-color: 7.2.0
- dev: true
-
- /istanbul-reports@3.1.7:
- resolution: {integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==}
- engines: {node: '>=8'}
- dependencies:
- html-escaper: 2.0.2
- istanbul-lib-report: 3.0.1
- dev: true
-
/jackspeak@2.3.6:
resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==}
engines: {node: '>=14'}
@@ -3574,10 +2756,6 @@ packages:
resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
dev: true
- /jsbn@1.1.0:
- resolution: {integrity: sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==}
- dev: true
-
/jsdoc-type-pratt-parser@4.1.0:
resolution: {integrity: sha512-Hicd6JK5Njt2QB6XYFS7ok9e37O8AYk3jTcppG4YVQnYjOemymvTcmc7OWsmq/Qqj5TdRFO5/x/tIPmBeRtGHg==}
engines: {node: '>=12.0.0'}
@@ -3587,289 +2765,532 @@ packages:
resolution: {integrity: sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==}
dev: true
- /jsonfile@6.1.0:
- resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==}
+ /lilconfig@3.1.1:
+ resolution: {integrity: sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==}
+ engines: {node: '>=14'}
+ dev: true
+
+ /lilconfig@3.1.2:
+ resolution: {integrity: sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==}
+ engines: {node: '>=14'}
+ dev: true
+
+ /lines-and-columns@1.2.4:
+ resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==}
+ dev: true
+
+ /lint-staged@15.2.9:
+ resolution: {integrity: sha512-BZAt8Lk3sEnxw7tfxM7jeZlPRuT4M68O0/CwZhhaw6eeWu0Lz5eERE3m386InivXB64fp/mDID452h48tvKlRQ==}
+ engines: {node: '>=18.12.0'}
+ hasBin: true
dependencies:
- universalify: 2.0.1
- optionalDependencies:
- graceful-fs: 4.2.11
+ chalk: 5.3.0
+ commander: 12.1.0
+ debug: 4.3.6
+ execa: 8.0.1
+ lilconfig: 3.1.2
+ listr2: 8.2.4
+ micromatch: 4.0.7
+ pidtree: 0.6.0
+ string-argv: 0.3.2
+ yaml: 2.5.0
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /listr2@8.2.4:
+ resolution: {integrity: sha512-opevsywziHd3zHCVQGAj8zu+Z3yHNkkoYhWIGnq54RrCVwLz0MozotJEDnKsIBLvkfLGN6BLOyAeRrYI0pKA4g==}
+ engines: {node: '>=18.0.0'}
+ dependencies:
+ cli-truncate: 4.0.0
+ colorette: 2.0.20
+ eventemitter3: 5.0.1
+ log-update: 6.1.0
+ rfdc: 1.4.1
+ wrap-ansi: 9.0.0
+ dev: true
+
+ /lit-element@4.1.1:
+ resolution: {integrity: sha512-HO9Tkkh34QkTeUmEdNYhMT8hzLid7YlMlATSi1q4q17HE5d9mrrEHJ/o8O2D0cMi182zK1F3v7x0PWFjrhXFew==}
+ dependencies:
+ '@lit-labs/ssr-dom-shim': 1.2.0
+ '@lit/reactive-element': 2.0.4
+ lit-html: 3.2.1
+ dev: true
+
+ /lit-html@3.2.1:
+ resolution: {integrity: sha512-qI/3lziaPMSKsrwlxH/xMgikhQ0EGOX2ICU73Bi/YHFvz2j/yMCIrw4+puF2IpQ4+upd3EWbvnHM9+PnJn48YA==}
+ dependencies:
+ '@types/trusted-types': 2.0.7
+ dev: true
+
+ /lit@3.2.1:
+ resolution: {integrity: sha512-1BBa1E/z0O9ye5fZprPtdqnc0BFzxIxTTOO/tQFmyC/hj1O3jL4TfmLBw0WEwjAokdLwpclkvGgDJwTIh0/22w==}
+ dependencies:
+ '@lit/reactive-element': 2.0.4
+ lit-element: 4.1.1
+ lit-html: 3.2.1
+ dev: true
+
+ /load-tsconfig@0.2.5:
+ resolution: {integrity: sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+ dev: true
+
+ /lodash.camelcase@4.3.0:
+ resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==}
+ dev: true
+
+ /lodash.iteratee@4.7.0:
+ resolution: {integrity: sha512-yv3cSQZmfpbIKo4Yo45B1taEvxjNvcpF1CEOc0Y6dEyvhPIfEJE3twDwPgWTPQubcSgXyBwBKG6wpQvWMDOf6Q==}
+ dev: true
+
+ /lodash.sortby@4.7.0:
+ resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==}
+ dev: true
+
+ /log-update@6.1.0:
+ resolution: {integrity: sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==}
+ engines: {node: '>=18'}
+ dependencies:
+ ansi-escapes: 7.0.0
+ cli-cursor: 5.0.0
+ slice-ansi: 7.1.0
+ strip-ansi: 7.1.0
+ wrap-ansi: 9.0.0
+ dev: true
+
+ /longest-streak@3.1.0:
+ resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==}
+ dev: true
+
+ /loose-envify@1.4.0:
+ resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==}
+ hasBin: true
+ dependencies:
+ js-tokens: 4.0.0
+ dev: true
+
+ /lru-cache@10.2.2:
+ resolution: {integrity: sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==}
+ engines: {node: 14 || >=16.14}
+ dev: true
+
+ /magic-string@0.30.12:
+ resolution: {integrity: sha512-Ea8I3sQMVXr8JhN4z+H/d8zwo+tYDgHE9+5G4Wnrwhs0gaK9fXTKx0Tw5Xwsd/bCPTTZNRAdpyzvoeORe9LYpw==}
+ dependencies:
+ '@jridgewell/sourcemap-codec': 1.5.0
+ dev: true
+
+ /map-or-similar@1.5.0:
+ resolution: {integrity: sha512-0aF7ZmVon1igznGI4VS30yugpduQW3y3GkcgGJOp7d8x8QrizhigUxjI/m2UojsXXto+jLAH3KSz+xOJTiORjg==}
dev: true
- /keygrip@1.1.0:
- resolution: {integrity: sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ==}
- engines: {node: '>= 0.6'}
- dependencies:
- tsscmp: 1.0.6
+ /markdown-table@3.0.3:
+ resolution: {integrity: sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==}
dev: true
- /koa-compose@4.1.0:
- resolution: {integrity: sha512-8ODW8TrDuMYvXRwra/Kh7/rJo9BtOfPc6qO8eAfC80CnCvSjSl0bkRM24X6/XBBEyj0v1nRUQ1LyOy3dbqOWXw==}
+ /mdast-util-find-and-replace@3.0.1:
+ resolution: {integrity: sha512-SG21kZHGC3XRTSUhtofZkBzZTJNM5ecCi0SK2IMKmSXR8vO3peL+kb1O0z7Zl83jKtutG4k5Wv/W7V3/YHvzPA==}
+ dependencies:
+ '@types/mdast': 4.0.4
+ escape-string-regexp: 5.0.0
+ unist-util-is: 6.0.0
+ unist-util-visit-parents: 6.0.1
dev: true
- /koa-convert@2.0.0:
- resolution: {integrity: sha512-asOvN6bFlSnxewce2e/DK3p4tltyfC4VM7ZwuTuepI7dEQVcvpyFuBcEARu1+Hxg8DIwytce2n7jrZtRlPrARA==}
- engines: {node: '>= 10'}
+ /mdast-util-from-markdown@2.0.2:
+ resolution: {integrity: sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==}
dependencies:
- co: 4.6.0
- koa-compose: 4.1.0
+ '@types/mdast': 4.0.4
+ '@types/unist': 3.0.3
+ decode-named-character-reference: 1.0.2
+ devlop: 1.1.0
+ mdast-util-to-string: 4.0.0
+ micromark: 4.0.0
+ micromark-util-decode-numeric-character-reference: 2.0.1
+ micromark-util-decode-string: 2.0.0
+ micromark-util-normalize-identifier: 2.0.0
+ micromark-util-symbol: 2.0.0
+ micromark-util-types: 2.0.0
+ unist-util-stringify-position: 4.0.0
+ transitivePeerDependencies:
+ - supports-color
dev: true
- /koa-etag@4.0.0:
- resolution: {integrity: sha512-1cSdezCkBWlyuB9l6c/IFoe1ANCDdPBxkDkRiaIup40xpUub6U/wwRXoKBZw/O5BifX9OlqAjYnDyzM6+l+TAg==}
+ /mdast-util-gfm-autolink-literal@2.0.1:
+ resolution: {integrity: sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==}
dependencies:
- etag: 1.8.1
+ '@types/mdast': 4.0.4
+ ccount: 2.0.1
+ devlop: 1.1.0
+ mdast-util-find-and-replace: 3.0.1
+ micromark-util-character: 2.1.0
dev: true
- /koa-send@5.0.1:
- resolution: {integrity: sha512-tmcyQ/wXXuxpDxyNXv5yNNkdAMdFRqwtegBXUaowiQzUKqJehttS0x2j0eOZDQAyloAth5w6wwBImnFzkUz3pQ==}
- engines: {node: '>= 8'}
+ /mdast-util-gfm-footnote@2.0.0:
+ resolution: {integrity: sha512-5jOT2boTSVkMnQ7LTrd6n/18kqwjmuYqo7JUPe+tRCY6O7dAuTFMtTPauYYrMPpox9hlN0uOx/FL8XvEfG9/mQ==}
dependencies:
- debug: 4.3.4
- http-errors: 1.8.1
- resolve-path: 1.4.0
+ '@types/mdast': 4.0.4
+ devlop: 1.1.0
+ mdast-util-from-markdown: 2.0.2
+ mdast-util-to-markdown: 2.1.2
+ micromark-util-normalize-identifier: 2.0.0
transitivePeerDependencies:
- supports-color
dev: true
- /koa-static@5.0.0:
- resolution: {integrity: sha512-UqyYyH5YEXaJrf9S8E23GoJFQZXkBVJ9zYYMPGz919MSX1KuvAcycIuS0ci150HCoPf4XQVhQ84Qf8xRPWxFaQ==}
- engines: {node: '>= 7.6.0'}
+ /mdast-util-gfm-strikethrough@2.0.0:
+ resolution: {integrity: sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==}
dependencies:
- debug: 3.2.7
- koa-send: 5.0.1
+ '@types/mdast': 4.0.4
+ mdast-util-from-markdown: 2.0.2
+ mdast-util-to-markdown: 2.1.2
transitivePeerDependencies:
- supports-color
dev: true
- /koa@2.15.3:
- resolution: {integrity: sha512-j/8tY9j5t+GVMLeioLaxweJiKUayFhlGqNTzf2ZGwL0ZCQijd2RLHK0SLW5Tsko8YyyqCZC2cojIb0/s62qTAg==}
- engines: {node: ^4.8.4 || ^6.10.1 || ^7.10.1 || >= 8.1.4}
+ /mdast-util-gfm-table@2.0.0:
+ resolution: {integrity: sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==}
dependencies:
- accepts: 1.3.8
- cache-content-type: 1.0.1
- content-disposition: 0.5.4
- content-type: 1.0.5
- cookies: 0.9.1
- debug: 4.3.4
- delegates: 1.0.0
- depd: 2.0.0
- destroy: 1.2.0
- encodeurl: 1.0.2
- escape-html: 1.0.3
- fresh: 0.5.2
- http-assert: 1.5.0
- http-errors: 1.8.1
- is-generator-function: 1.0.10
- koa-compose: 4.1.0
- koa-convert: 2.0.0
- on-finished: 2.4.1
- only: 0.0.2
- parseurl: 1.3.3
- statuses: 1.5.0
- type-is: 1.6.18
- vary: 1.1.2
+ '@types/mdast': 4.0.4
+ devlop: 1.1.0
+ markdown-table: 3.0.3
+ mdast-util-from-markdown: 2.0.2
+ mdast-util-to-markdown: 2.1.2
transitivePeerDependencies:
- supports-color
dev: true
- /lighthouse-logger@1.4.2:
- resolution: {integrity: sha512-gPWxznF6TKmUHrOQjlVo2UbaL2EJ71mb2CCeRs/2qBpi4L/g4LUVc9+3lKQ6DTUZwJswfM7ainGrLO1+fOqa2g==}
+ /mdast-util-gfm-task-list-item@2.0.0:
+ resolution: {integrity: sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==}
dependencies:
- debug: 2.6.9
- marky: 1.2.5
+ '@types/mdast': 4.0.4
+ devlop: 1.1.0
+ mdast-util-from-markdown: 2.0.2
+ mdast-util-to-markdown: 2.1.2
transitivePeerDependencies:
- supports-color
dev: true
- /lilconfig@3.1.1:
- resolution: {integrity: sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==}
- engines: {node: '>=14'}
+ /mdast-util-gfm@3.0.0:
+ resolution: {integrity: sha512-dgQEX5Amaq+DuUqf26jJqSK9qgixgd6rYDHAv4aTBuA92cTknZlKpPfa86Z/s8Dj8xsAQpFfBmPUHWJBWqS4Bw==}
+ dependencies:
+ mdast-util-from-markdown: 2.0.2
+ mdast-util-gfm-autolink-literal: 2.0.1
+ mdast-util-gfm-footnote: 2.0.0
+ mdast-util-gfm-strikethrough: 2.0.0
+ mdast-util-gfm-table: 2.0.0
+ mdast-util-gfm-task-list-item: 2.0.0
+ mdast-util-to-markdown: 2.1.2
+ transitivePeerDependencies:
+ - supports-color
dev: true
- /lilconfig@3.1.2:
- resolution: {integrity: sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==}
- engines: {node: '>=14'}
+ /mdast-util-phrasing@4.1.0:
+ resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==}
+ dependencies:
+ '@types/mdast': 4.0.4
+ unist-util-is: 6.0.0
dev: true
- /lines-and-columns@1.2.4:
- resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==}
+ /mdast-util-to-markdown@2.1.2:
+ resolution: {integrity: sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==}
+ dependencies:
+ '@types/mdast': 4.0.4
+ '@types/unist': 3.0.3
+ longest-streak: 3.1.0
+ mdast-util-phrasing: 4.1.0
+ mdast-util-to-string: 4.0.0
+ micromark-util-classify-character: 2.0.0
+ micromark-util-decode-string: 2.0.0
+ unist-util-visit: 5.0.0
+ zwitch: 2.0.4
dev: true
- /lint-staged@15.2.9:
- resolution: {integrity: sha512-BZAt8Lk3sEnxw7tfxM7jeZlPRuT4M68O0/CwZhhaw6eeWu0Lz5eERE3m386InivXB64fp/mDID452h48tvKlRQ==}
- engines: {node: '>=18.12.0'}
- hasBin: true
+ /mdast-util-to-string@4.0.0:
+ resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==}
dependencies:
- chalk: 5.3.0
- commander: 12.1.0
- debug: 4.3.6
- execa: 8.0.1
- lilconfig: 3.1.2
- listr2: 8.2.4
- micromatch: 4.0.7
- pidtree: 0.6.0
- string-argv: 0.3.2
- yaml: 2.5.0
- transitivePeerDependencies:
- - supports-color
+ '@types/mdast': 4.0.4
dev: true
- /listr2@8.2.4:
- resolution: {integrity: sha512-opevsywziHd3zHCVQGAj8zu+Z3yHNkkoYhWIGnq54RrCVwLz0MozotJEDnKsIBLvkfLGN6BLOyAeRrYI0pKA4g==}
- engines: {node: '>=18.0.0'}
+ /mdast-util-toc@7.1.0:
+ resolution: {integrity: sha512-2TVKotOQzqdY7THOdn2gGzS9d1Sdd66bvxUyw3aNpWfcPXCLYSJCCgfPy30sEtuzkDraJgqF35dzgmz6xlvH/w==}
dependencies:
- cli-truncate: 4.0.0
- colorette: 2.0.20
- eventemitter3: 5.0.1
- log-update: 6.1.0
- rfdc: 1.4.1
- wrap-ansi: 9.0.0
+ '@types/mdast': 4.0.4
+ '@types/ungap__structured-clone': 1.2.0
+ '@ungap/structured-clone': 1.2.0
+ github-slugger: 2.0.0
+ mdast-util-to-string: 4.0.0
+ unist-util-is: 6.0.0
+ unist-util-visit: 5.0.0
dev: true
- /lit-element@4.0.5:
- resolution: {integrity: sha512-iTWskWZEtn9SyEf4aBG6rKT8GABZMrTWop1+jopsEOgEcugcXJGKuX5bEbkq9qfzY+XB4MAgCaSPwnNpdsNQ3Q==}
+ /memoizerific@1.11.3:
+ resolution: {integrity: sha512-/EuHYwAPdLtXwAwSZkh/Gutery6pD2KYd44oQLhAvQp/50mpyduZh8Q7PYHXTCJ+wuXxt7oij2LXyIJOOYFPog==}
dependencies:
- '@lit-labs/ssr-dom-shim': 1.2.0
- '@lit/reactive-element': 2.0.4
- lit-html: 3.1.3
+ map-or-similar: 1.5.0
+ dev: true
+
+ /meow@13.2.0:
+ resolution: {integrity: sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==}
+ engines: {node: '>=18'}
+ dev: true
+
+ /merge-stream@2.0.0:
+ resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==}
+ dev: true
+
+ /merge2@1.4.1:
+ resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
+ engines: {node: '>= 8'}
+ dev: true
- /lit-html@3.1.3:
- resolution: {integrity: sha512-FwIbqDD8O/8lM4vUZ4KvQZjPPNx7V1VhT7vmRB8RBAO0AU6wuTVdoXiu2CivVjEGdugvcbPNBLtPE1y0ifplHA==}
+ /micromark-core-commonmark@2.0.1:
+ resolution: {integrity: sha512-CUQyKr1e///ZODyD1U3xit6zXwy1a8q2a1S1HKtIlmgvurrEpaw/Y9y6KSIbF8P59cn/NjzHyO+Q2fAyYLQrAA==}
dependencies:
- '@types/trusted-types': 2.0.7
+ decode-named-character-reference: 1.0.2
+ devlop: 1.1.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.1.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.1
+ micromark-util-symbol: 2.0.0
+ micromark-util-types: 2.0.0
+ dev: true
- /lit@3.1.3:
- resolution: {integrity: sha512-l4slfspEsnCcHVRTvaP7YnkTZEZggNFywLEIhQaGhYDczG+tu/vlgm/KaWIEjIp+ZyV20r2JnZctMb8LeLCG7Q==}
+ /micromark-extension-gfm-autolink-literal@2.1.0:
+ resolution: {integrity: sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==}
dependencies:
- '@lit/reactive-element': 2.0.4
- lit-element: 4.0.5
- lit-html: 3.1.3
+ micromark-util-character: 2.1.0
+ micromark-util-sanitize-uri: 2.0.0
+ micromark-util-symbol: 2.0.0
+ micromark-util-types: 2.0.0
+ dev: true
- /load-tsconfig@0.2.5:
- resolution: {integrity: sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==}
- engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+ /micromark-extension-gfm-footnote@2.1.0:
+ resolution: {integrity: sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==}
+ dependencies:
+ devlop: 1.1.0
+ micromark-core-commonmark: 2.0.1
+ micromark-factory-space: 2.0.0
+ micromark-util-character: 2.1.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
dev: true
- /lodash.assignwith@4.2.0:
- resolution: {integrity: sha512-ZznplvbvtjK2gMvnQ1BR/zqPFZmS6jbK4p+6Up4xcRYA7yMIwxHCfbTcrYxXKzzqLsQ05eJPVznEW3tuwV7k1g==}
+ /micromark-extension-gfm-strikethrough@2.1.0:
+ resolution: {integrity: sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==}
+ dependencies:
+ devlop: 1.1.0
+ micromark-util-chunked: 2.0.0
+ micromark-util-classify-character: 2.0.0
+ micromark-util-resolve-all: 2.0.0
+ micromark-util-symbol: 2.0.0
+ micromark-util-types: 2.0.0
dev: true
- /lodash.camelcase@4.3.0:
- resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==}
+ /micromark-extension-gfm-table@2.1.0:
+ resolution: {integrity: sha512-Ub2ncQv+fwD70/l4ou27b4YzfNaCJOvyX4HxXU15m7mpYY+rjuWzsLIPZHJL253Z643RpbcP1oeIJlQ/SKW67g==}
+ dependencies:
+ devlop: 1.1.0
+ micromark-factory-space: 2.0.0
+ micromark-util-character: 2.1.0
+ micromark-util-symbol: 2.0.0
+ micromark-util-types: 2.0.0
dev: true
- /lodash.sortby@4.7.0:
- resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==}
+ /micromark-extension-gfm-tagfilter@2.0.0:
+ resolution: {integrity: sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==}
+ dependencies:
+ micromark-util-types: 2.0.0
dev: true
- /lodash@4.17.21:
- resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==}
+ /micromark-extension-gfm-task-list-item@2.1.0:
+ resolution: {integrity: sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==}
+ dependencies:
+ devlop: 1.1.0
+ micromark-factory-space: 2.0.0
+ micromark-util-character: 2.1.0
+ micromark-util-symbol: 2.0.0
+ micromark-util-types: 2.0.0
dev: true
- /log-update@4.0.0:
- resolution: {integrity: sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==}
- engines: {node: '>=10'}
+ /micromark-extension-gfm@3.0.0:
+ resolution: {integrity: sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==}
dependencies:
- ansi-escapes: 4.3.2
- cli-cursor: 3.1.0
- slice-ansi: 4.0.0
- wrap-ansi: 6.2.0
+ micromark-extension-gfm-autolink-literal: 2.1.0
+ micromark-extension-gfm-footnote: 2.1.0
+ micromark-extension-gfm-strikethrough: 2.1.0
+ micromark-extension-gfm-table: 2.1.0
+ micromark-extension-gfm-tagfilter: 2.0.0
+ micromark-extension-gfm-task-list-item: 2.1.0
+ micromark-util-combine-extensions: 2.0.0
+ micromark-util-types: 2.0.0
dev: true
- /log-update@6.1.0:
- resolution: {integrity: sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==}
- engines: {node: '>=18'}
+ /micromark-factory-destination@2.0.0:
+ resolution: {integrity: sha512-j9DGrQLm/Uhl2tCzcbLhy5kXsgkHUrjJHg4fFAeoMRwJmJerT9aw4FEhIbZStWN8A3qMwOp1uzHr4UL8AInxtA==}
dependencies:
- ansi-escapes: 7.0.0
- cli-cursor: 5.0.0
- slice-ansi: 7.1.0
- strip-ansi: 7.1.0
- wrap-ansi: 9.0.0
+ micromark-util-character: 2.1.0
+ micromark-util-symbol: 2.0.0
+ micromark-util-types: 2.0.0
dev: true
- /loose-envify@1.4.0:
- resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==}
- hasBin: true
+ /micromark-factory-label@2.0.0:
+ resolution: {integrity: sha512-RR3i96ohZGde//4WSe/dJsxOX6vxIg9TimLAS3i4EhBAFx8Sm5SmqVfR8E87DPSR31nEAjZfbt91OMZWcNgdZw==}
dependencies:
- js-tokens: 4.0.0
+ devlop: 1.1.0
+ micromark-util-character: 2.1.0
+ micromark-util-symbol: 2.0.0
+ micromark-util-types: 2.0.0
dev: true
- /loupe@3.1.1:
- resolution: {integrity: sha512-edNu/8D5MKVfGVFRhFf8aAxiTM6Wumfz5XsaatSxlD3w4R1d/WEKUTydCdPGbl9K7QG/Ca3GnDV2sIKIpXRQcw==}
+ /micromark-factory-space@2.0.0:
+ resolution: {integrity: sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==}
dependencies:
- get-func-name: 2.0.2
+ micromark-util-character: 2.1.0
+ micromark-util-types: 2.0.0
dev: true
- /loupe@3.1.2:
- resolution: {integrity: sha512-23I4pFZHmAemUnz8WZXbYRSKYj801VDaNv9ETuMh7IrMc7VuVVSo+Z9iLE3ni30+U48iDWfi30d3twAXBYmnCg==}
+ /micromark-factory-title@2.0.0:
+ resolution: {integrity: sha512-jY8CSxmpWLOxS+t8W+FG3Xigc0RDQA9bKMY/EwILvsesiRniiVMejYTE4wumNc2f4UbAa4WsHqe3J1QS1sli+A==}
+ dependencies:
+ micromark-factory-space: 2.0.0
+ micromark-util-character: 2.1.0
+ micromark-util-symbol: 2.0.0
+ micromark-util-types: 2.0.0
dev: true
- /lru-cache@10.2.2:
- resolution: {integrity: sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==}
- engines: {node: 14 || >=16.14}
+ /micromark-factory-whitespace@2.0.0:
+ resolution: {integrity: sha512-28kbwaBjc5yAI1XadbdPYHX/eDnqaUFVikLwrO7FDnKG7lpgxnvk/XGRhX/PN0mOZ+dBSZ+LgunHS+6tYQAzhA==}
+ dependencies:
+ micromark-factory-space: 2.0.0
+ micromark-util-character: 2.1.0
+ micromark-util-symbol: 2.0.0
+ micromark-util-types: 2.0.0
dev: true
- /lru-cache@6.0.0:
- resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==}
- engines: {node: '>=10'}
+ /micromark-util-character@2.1.0:
+ resolution: {integrity: sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==}
dependencies:
- yallist: 4.0.0
+ micromark-util-symbol: 2.0.0
+ micromark-util-types: 2.0.0
dev: true
- /lru-cache@7.18.3:
- resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==}
- engines: {node: '>=12'}
+ /micromark-util-chunked@2.0.0:
+ resolution: {integrity: sha512-anK8SWmNphkXdaKgz5hJvGa7l00qmcaUQoMYsBwDlSKFKjc6gjGXPDw3FNL3Nbwq5L8gE+RCbGqTw49FK5Qyvg==}
+ dependencies:
+ micromark-util-symbol: 2.0.0
dev: true
- /lru-cache@8.0.5:
- resolution: {integrity: sha512-MhWWlVnuab1RG5/zMRRcVGXZLCXrZTgfwMikgzCegsPnG62yDQo5JnqKkrK4jO5iKqDAZGItAqN5CtKBCBWRUA==}
- engines: {node: '>=16.14'}
+ /micromark-util-classify-character@2.0.0:
+ resolution: {integrity: sha512-S0ze2R9GH+fu41FA7pbSqNWObo/kzwf8rN/+IGlW/4tC6oACOs8B++bh+i9bVyNnwCcuksbFwsBme5OCKXCwIw==}
+ dependencies:
+ micromark-util-character: 2.1.0
+ micromark-util-symbol: 2.0.0
+ micromark-util-types: 2.0.0
dev: true
- /lz-string@1.5.0:
- resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==}
- hasBin: true
+ /micromark-util-combine-extensions@2.0.0:
+ resolution: {integrity: sha512-vZZio48k7ON0fVS3CUgFatWHoKbbLTK/rT7pzpJ4Bjp5JjkZeasRfrS9wsBdDJK2cJLHMckXZdzPSSr1B8a4oQ==}
+ dependencies:
+ micromark-util-chunked: 2.0.0
+ micromark-util-types: 2.0.0
dev: true
- /magic-string@0.30.12:
- resolution: {integrity: sha512-Ea8I3sQMVXr8JhN4z+H/d8zwo+tYDgHE9+5G4Wnrwhs0gaK9fXTKx0Tw5Xwsd/bCPTTZNRAdpyzvoeORe9LYpw==}
+ /micromark-util-decode-numeric-character-reference@2.0.1:
+ resolution: {integrity: sha512-bmkNc7z8Wn6kgjZmVHOX3SowGmVdhYS7yBpMnuMnPzDq/6xwVA604DuOXMZTO1lvq01g+Adfa0pE2UKGlxL1XQ==}
dependencies:
- '@jridgewell/sourcemap-codec': 1.5.0
+ micromark-util-symbol: 2.0.0
dev: true
- /make-dir@4.0.0:
- resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==}
- engines: {node: '>=10'}
+ /micromark-util-decode-string@2.0.0:
+ resolution: {integrity: sha512-r4Sc6leeUTn3P6gk20aFMj2ntPwn6qpDZqWvYmAG6NgvFTIlj4WtrAudLi65qYoaGdXYViXYw2pkmn7QnIFasA==}
dependencies:
- semver: 7.6.2
+ decode-named-character-reference: 1.0.2
+ micromark-util-character: 2.1.0
+ micromark-util-decode-numeric-character-reference: 2.0.1
+ micromark-util-symbol: 2.0.0
dev: true
- /map-or-similar@1.5.0:
- resolution: {integrity: sha512-0aF7ZmVon1igznGI4VS30yugpduQW3y3GkcgGJOp7d8x8QrizhigUxjI/m2UojsXXto+jLAH3KSz+xOJTiORjg==}
+ /micromark-util-encode@2.0.0:
+ resolution: {integrity: sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==}
+ dev: true
+
+ /micromark-util-html-tag-name@2.0.0:
+ resolution: {integrity: sha512-xNn4Pqkj2puRhKdKTm8t1YHC/BAjx6CEwRFXntTaRf/x16aqka6ouVoutm+QdkISTlT7e2zU7U4ZdlDLJd2Mcw==}
dev: true
- /marky@1.2.5:
- resolution: {integrity: sha512-q9JtQJKjpsVxCRVgQ+WapguSbKC3SQ5HEzFGPAJMStgh3QjCawp00UKv3MTTAArTmGmmPUvllHZoNbZ3gs0I+Q==}
+ /micromark-util-normalize-identifier@2.0.0:
+ resolution: {integrity: sha512-2xhYT0sfo85FMrUPtHcPo2rrp1lwbDEEzpx7jiH2xXJLqBuy4H0GgXk5ToU8IEwoROtXuL8ND0ttVa4rNqYK3w==}
+ dependencies:
+ micromark-util-symbol: 2.0.0
dev: true
- /media-typer@0.3.0:
- resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==}
- engines: {node: '>= 0.6'}
+ /micromark-util-resolve-all@2.0.0:
+ resolution: {integrity: sha512-6KU6qO7DZ7GJkaCgwBNtplXCvGkJToU86ybBAUdavvgsCiG8lSSvYxr9MhwmQ+udpzywHsl4RpGJsYWG1pDOcA==}
+ dependencies:
+ micromark-util-types: 2.0.0
dev: true
- /memoizerific@1.11.3:
- resolution: {integrity: sha512-/EuHYwAPdLtXwAwSZkh/Gutery6pD2KYd44oQLhAvQp/50mpyduZh8Q7PYHXTCJ+wuXxt7oij2LXyIJOOYFPog==}
+ /micromark-util-sanitize-uri@2.0.0:
+ resolution: {integrity: sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==}
dependencies:
- map-or-similar: 1.5.0
+ micromark-util-character: 2.1.0
+ micromark-util-encode: 2.0.0
+ micromark-util-symbol: 2.0.0
dev: true
- /merge-stream@2.0.0:
- resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==}
+ /micromark-util-subtokenize@2.0.1:
+ resolution: {integrity: sha512-jZNtiFl/1aY73yS3UGQkutD0UbhTt68qnRpw2Pifmz5wV9h8gOVsN70v+Lq/f1rKaU/W8pxRe8y8Q9FX1AOe1Q==}
+ dependencies:
+ devlop: 1.1.0
+ micromark-util-chunked: 2.0.0
+ micromark-util-symbol: 2.0.0
+ micromark-util-types: 2.0.0
dev: true
- /merge2@1.4.1:
- resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
- engines: {node: '>= 8'}
+ /micromark-util-symbol@2.0.0:
+ resolution: {integrity: sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==}
+ dev: true
+
+ /micromark-util-types@2.0.0:
+ resolution: {integrity: sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==}
+ dev: true
+
+ /micromark@4.0.0:
+ resolution: {integrity: sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==}
+ dependencies:
+ '@types/debug': 4.1.12
+ debug: 4.3.6
+ decode-named-character-reference: 1.0.2
+ devlop: 1.1.0
+ micromark-core-commonmark: 2.0.1
+ micromark-factory-space: 2.0.0
+ micromark-util-character: 2.1.0
+ micromark-util-chunked: 2.0.0
+ micromark-util-combine-extensions: 2.0.0
+ micromark-util-decode-numeric-character-reference: 2.0.1
+ 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.1
+ micromark-util-symbol: 2.0.0
+ micromark-util-types: 2.0.0
+ transitivePeerDependencies:
+ - supports-color
dev: true
/micromatch@4.0.5:
@@ -3888,18 +3309,6 @@ packages:
picomatch: 2.3.1
dev: true
- /mime-db@1.52.0:
- resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==}
- engines: {node: '>= 0.6'}
- dev: true
-
- /mime-types@2.1.35:
- resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==}
- engines: {node: '>= 0.6'}
- dependencies:
- mime-db: 1.52.0
- dev: true
-
/mimic-fn@2.1.0:
resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==}
engines: {node: '>=6'}
@@ -3915,11 +3324,6 @@ packages:
engines: {node: '>=18'}
dev: true
- /min-indent@1.0.1:
- resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==}
- engines: {node: '>=4'}
- dev: true
-
/minimatch@9.0.4:
resolution: {integrity: sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==}
engines: {node: '>=16 || 14 >=14.17'}
@@ -3927,40 +3331,19 @@ packages:
brace-expansion: 2.0.1
dev: true
- /minimist@1.2.8:
- resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==}
- dev: true
-
/minipass@7.1.1:
resolution: {integrity: sha512-UZ7eQ+h8ywIRAW1hIEl2AqdwzJucU/Kp59+8kkZeSvafXhZjul247BvIJjEVFVeON6d7lM46XX1HXCduKAS8VA==}
engines: {node: '>=16 || 14 >=14.17'}
dev: true
- /mitt@3.0.1:
- resolution: {integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==}
- dev: true
-
- /mkdirp@0.5.6:
- resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==}
- hasBin: true
- dependencies:
- minimist: 1.2.8
- dev: true
-
- /mkdirp@1.0.4:
- resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==}
- engines: {node: '>=10'}
- hasBin: true
- dev: true
-
- /ms@2.0.0:
- resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==}
- dev: true
-
/ms@2.1.2:
resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
dev: true
+ /ms@2.1.3:
+ resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
+ dev: true
+
/mz@2.7.0:
resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==}
dependencies:
@@ -3969,24 +3352,14 @@ packages:
thenify-all: 1.6.0
dev: true
- /nanocolors@0.2.13:
- resolution: {integrity: sha512-0n3mSAQLPpGLV9ORXT5+C/D4mwew7Ebws69Hx4E2sgz2ZA5+32Q80B9tL8PbL7XHnRDiAxH/pnrUJ9a4fkTNTA==}
- dev: true
-
/nanoid@3.3.7:
resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==}
engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
hasBin: true
dev: true
- /negotiator@0.6.3:
- resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==}
- engines: {node: '>= 0.6'}
- dev: true
-
- /netmask@2.0.2:
- resolution: {integrity: sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==}
- engines: {node: '>= 0.4.0'}
+ /node-releases@2.0.18:
+ resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==}
dev: true
/normalize-path@3.0.0:
@@ -4013,23 +3386,6 @@ packages:
engines: {node: '>=0.10.0'}
dev: true
- /object-inspect@1.13.1:
- resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==}
- dev: true
-
- /on-finished@2.4.1:
- resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==}
- engines: {node: '>= 0.8'}
- dependencies:
- ee-first: 1.1.1
- dev: true
-
- /once@1.4.0:
- resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
- dependencies:
- wrappy: 1.0.2
- dev: true
-
/onetime@5.1.2:
resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==}
engines: {node: '>=6'}
@@ -4051,10 +3407,6 @@ packages:
mimic-function: 5.0.1
dev: true
- /only@0.0.2:
- resolution: {integrity: sha512-Fvw+Jemq5fjjyWz6CpKx6w9s7xxqo3+JCyM0WXWeCSOboZ8ABkyvP8ID4CZuChA/wxSx+XSJmdOm8rGVyJ1hdQ==}
- dev: true
-
/open@8.4.2:
resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==}
engines: {node: '>=12'}
@@ -4064,44 +3416,6 @@ packages:
is-wsl: 2.2.0
dev: true
- /pac-proxy-agent@7.0.1:
- resolution: {integrity: sha512-ASV8yU4LLKBAjqIPMbrgtaKIvxQri/yh2OpI+S6hVa9JRkUI3Y3NPFbfngDtY7oFtSMD3w31Xns89mDa3Feo5A==}
- engines: {node: '>= 14'}
- dependencies:
- '@tootallnate/quickjs-emscripten': 0.23.0
- agent-base: 7.1.1
- debug: 4.3.4
- get-uri: 6.0.3
- http-proxy-agent: 7.0.2
- https-proxy-agent: 7.0.4
- pac-resolver: 7.0.1
- socks-proxy-agent: 8.0.3
- transitivePeerDependencies:
- - supports-color
- dev: true
-
- /pac-resolver@7.0.1:
- resolution: {integrity: sha512-5NPgf87AT2STgwa2ntRMr45jTKrYBGkVU36yT0ig/n/GMAa3oPqhZfIQ2kMEimReg0+t9kZViDVZ83qfVUlckg==}
- engines: {node: '>= 14'}
- dependencies:
- degenerator: 5.0.1
- netmask: 2.0.2
- dev: true
-
- /parse5@6.0.1:
- resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==}
- dev: true
-
- /parseurl@1.3.3:
- resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==}
- engines: {node: '>= 0.8'}
- dev: true
-
- /path-is-absolute@1.0.1:
- resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==}
- engines: {node: '>=0.10.0'}
- dev: true
-
/path-key@3.1.1:
resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
engines: {node: '>=8'}
@@ -4112,10 +3426,6 @@ packages:
engines: {node: '>=12'}
dev: true
- /path-parse@1.0.7:
- resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
- dev: true
-
/path-scurry@1.11.1:
resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==}
engines: {node: '>=16 || 14 >=14.18'}
@@ -4129,19 +3439,6 @@ packages:
engines: {node: '>=8'}
dev: true
- /pathval@2.0.0:
- resolution: {integrity: sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==}
- engines: {node: '>= 14.16'}
- dev: true
-
- /pend@1.2.0:
- resolution: {integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==}
- dev: true
-
- /picocolors@1.0.1:
- resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==}
- dev: true
-
/picocolors@1.1.1:
resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==}
dev: true
@@ -4162,22 +3459,6 @@ packages:
engines: {node: '>= 6'}
dev: true
- /playwright-core@1.44.0:
- resolution: {integrity: sha512-ZTbkNpFfYcGWohvTTl+xewITm7EOuqIqex0c7dNZ+aXsbrLj0qI8XlGKfPpipjm0Wny/4Lt4CJsWJk1stVS5qQ==}
- engines: {node: '>=16'}
- hasBin: true
- dev: true
-
- /playwright@1.44.0:
- resolution: {integrity: sha512-F9b3GUCLQ3Nffrfb6dunPOkE5Mh68tR7zN32L4jCk4FjQamgesGay7/dAAe1WaMEGV04DkdJfcJzjoCKygUaRQ==}
- engines: {node: '>=16'}
- hasBin: true
- dependencies:
- playwright-core: 1.44.0
- optionalDependencies:
- fsevents: 2.3.2
- dev: true
-
/polished@4.3.1:
resolution: {integrity: sha512-OBatVyC/N7SCW/FaDHrSd+vn0o5cS855TOmYi4OkdWUMSJCET/xip//ch8xGUvtr3i44X9LVyWwQlRMTN3pwSA==}
engines: {node: '>=10'}
@@ -4185,17 +3466,6 @@ packages:
'@babel/runtime': 7.26.0
dev: true
- /portfinder@1.0.32:
- resolution: {integrity: sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg==}
- engines: {node: '>= 0.12.0'}
- dependencies:
- async: 2.6.4
- debug: 3.2.7
- mkdirp: 0.5.6
- transitivePeerDependencies:
- - supports-color
- dev: true
-
/possible-typed-array-names@1.0.0:
resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==}
engines: {node: '>= 0.4'}
@@ -4217,8 +3487,8 @@ packages:
yaml: 2.4.2
dev: true
- /postcss@8.4.47:
- resolution: {integrity: sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==}
+ /postcss@8.4.49:
+ resolution: {integrity: sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==}
engines: {node: ^10 || ^12 || >=14}
dependencies:
nanoid: 3.3.7
@@ -4232,25 +3502,11 @@ packages:
hasBin: true
dev: true
- /pretty-format@27.5.1:
- resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==}
- engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
- dependencies:
- ansi-regex: 5.0.1
- ansi-styles: 5.2.0
- react-is: 17.0.2
- dev: true
-
/process@0.11.10:
resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==}
engines: {node: '>= 0.6.0'}
dev: true
- /progress@2.0.3:
- resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==}
- engines: {node: '>=0.4.0'}
- dev: true
-
/proper-lockfile@4.1.2:
resolution: {integrity: sha512-TjNPblN4BwAWMXU8s9AEz4JmQxnD1NNL7bNOY/AKUzyamc379FWASUhc/K1pL2noVb+XmZKLL68cjzLsiOAMaA==}
dependencies:
@@ -4259,88 +3515,15 @@ packages:
signal-exit: 3.0.7
dev: true
- /proxy-agent@6.4.0:
- resolution: {integrity: sha512-u0piLU+nCOHMgGjRbimiXmA9kM/L9EHh3zL81xCdp7m+Y2pHIsnmbdDoEDoAz5geaonNR6q6+yOPQs6n4T6sBQ==}
- engines: {node: '>= 14'}
- dependencies:
- agent-base: 7.1.1
- debug: 4.3.4
- http-proxy-agent: 7.0.2
- https-proxy-agent: 7.0.4
- lru-cache: 7.18.3
- pac-proxy-agent: 7.0.1
- proxy-from-env: 1.1.0
- socks-proxy-agent: 8.0.3
- transitivePeerDependencies:
- - supports-color
- dev: true
-
- /proxy-from-env@1.1.0:
- resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==}
- dev: true
-
- /pump@3.0.0:
- resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==}
- dependencies:
- end-of-stream: 1.4.4
- once: 1.4.0
- dev: true
-
/punycode@2.3.1:
resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==}
engines: {node: '>=6'}
dev: true
- /puppeteer-core@22.8.2:
- resolution: {integrity: sha512-Gg9jUdJeF+UDbYPhwD602ky1LeS+AXDksl6sludrti1b7Sv/U4ZGY1LFyejarkIBCSHiPWL9SngXKCNcdZWBgQ==}
- engines: {node: '>=18'}
- dependencies:
- '@puppeteer/browsers': 2.2.3
- chromium-bidi: 0.5.19(devtools-protocol@0.0.1273771)
- debug: 4.3.4
- devtools-protocol: 0.0.1273771
- ws: 8.17.0
- transitivePeerDependencies:
- - bufferutil
- - supports-color
- - utf-8-validate
- dev: true
-
- /qs@6.12.1:
- resolution: {integrity: sha512-zWmv4RSuB9r2mYQw3zxQuHWeU+42aKi1wWig/j4ele4ygELZ7PEO6MM7rim9oAQH2A5MWfsAVf/jPvTPgCbvUQ==}
- engines: {node: '>=0.6'}
- dependencies:
- side-channel: 1.0.6
- dev: true
-
- /queue-microtask@1.2.3:
- resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
- dev: true
-
- /queue-tick@1.0.1:
- resolution: {integrity: sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==}
- dev: true
-
- /raw-body@2.5.2:
- resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==}
- engines: {node: '>= 0.8'}
- dependencies:
- bytes: 3.1.2
- http-errors: 2.0.0
- iconv-lite: 0.4.24
- unpipe: 1.0.0
- dev: true
-
- /react-confetti@6.1.0(react@18.3.1):
- resolution: {integrity: sha512-7Ypx4vz0+g8ECVxr88W9zhcQpbeujJAVqL14ZnXJ3I23mOI9/oBVTQ3dkJhUmB0D6XOtCZEM6N0Gm9PMngkORw==}
- engines: {node: '>=10.18'}
- peerDependencies:
- react: ^16.3.0 || ^17.0.1 || ^18.0.0
- dependencies:
- react: 18.3.1
- tween-functions: 1.2.0
- dev: true
-
+ /queue-microtask@1.2.3:
+ resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
+ dev: true
+
/react-dom@18.3.1(react@18.3.1):
resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==}
peerDependencies:
@@ -4351,10 +3534,6 @@ packages:
scheduler: 0.23.2
dev: true
- /react-is@17.0.2:
- resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==}
- dev: true
-
/react@18.3.1:
resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==}
engines: {node: '>=0.10.0'}
@@ -4377,54 +3556,92 @@ packages:
esprima: 4.0.1
source-map: 0.6.1
tiny-invariant: 1.3.3
- tslib: 2.6.2
+ tslib: 2.8.1
dev: true
- /redent@3.0.0:
- resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==}
- engines: {node: '>=8'}
+ /regenerator-runtime@0.14.1:
+ resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==}
+ dev: true
+
+ /remark-behead@3.1.0:
+ resolution: {integrity: sha512-rKns7st91lgppaD5YaH58O4ECFVXTVnkyYQBuCw4ISRE2TFK/iVySMaKbvV2pVbUVIjAaDciugrTI/tyuPOlWQ==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
dependencies:
- indent-string: 4.0.0
- strip-indent: 3.0.0
+ unist-util-find: 1.0.4
+ unist-util-find-all-after: 4.0.1
+ unist-util-find-all-before: 4.0.1
+ unist-util-find-all-between: 2.1.0
+ unist-util-visit: 4.1.2
dev: true
- /regenerator-runtime@0.14.1:
- resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==}
+ /remark-gfm@4.0.0:
+ resolution: {integrity: sha512-U92vJgBPkbw4Zfu/IiW2oTZLSL3Zpv+uI7My2eq8JxKgqraFdU8YUGicEJCEgSbeaG+QDFqIcwwfMTOEelPxuA==}
+ dependencies:
+ '@types/mdast': 4.0.4
+ mdast-util-gfm: 3.0.0
+ micromark-extension-gfm: 3.0.0
+ remark-parse: 11.0.0
+ remark-stringify: 11.0.0
+ unified: 11.0.5
+ transitivePeerDependencies:
+ - supports-color
dev: true
- /require-directory@2.1.1:
- resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==}
- engines: {node: '>=0.10.0'}
+ /remark-github@12.0.0:
+ resolution: {integrity: sha512-ByefQKFN184LeiGRCabfl7zUJsdlMYWEhiLX1gpmQ11yFg6xSuOTW7LVCv0oc1x+YvUMJW23NU36sJX2RWGgvg==}
+ dependencies:
+ '@types/mdast': 4.0.4
+ mdast-util-find-and-replace: 3.0.1
+ mdast-util-to-string: 4.0.0
+ to-vfile: 8.0.0
+ unist-util-visit: 5.0.0
+ vfile: 6.0.3
dev: true
- /resolve-from@5.0.0:
- resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==}
- engines: {node: '>=8'}
+ /remark-parse@11.0.0:
+ resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==}
+ dependencies:
+ '@types/mdast': 4.0.4
+ mdast-util-from-markdown: 2.0.2
+ micromark-util-types: 2.0.0
+ unified: 11.0.5
+ transitivePeerDependencies:
+ - supports-color
dev: true
- /resolve-path@1.4.0:
- resolution: {integrity: sha512-i1xevIst/Qa+nA9olDxLWnLk8YZbi8R/7JPbCMcgyWaFR6bKWaexgJgEB5oc2PKMjYdrHynyz0NY+if+H98t1w==}
- engines: {node: '>= 0.8'}
+ /remark-stringify@11.0.0:
+ resolution: {integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==}
dependencies:
- http-errors: 1.6.3
- path-is-absolute: 1.0.1
+ '@types/mdast': 4.0.4
+ mdast-util-to-markdown: 2.1.2
+ unified: 11.0.5
dev: true
- /resolve@1.22.8:
- resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==}
- hasBin: true
+ /remark-toc@9.0.0:
+ resolution: {integrity: sha512-KJ9txbo33GjDAV1baHFze7ij4G8c7SGYoY8Kzsm2gzFpbhL/bSoVpMMzGa3vrNDSWASNd/3ppAqL7cP2zD6JIA==}
dependencies:
- is-core-module: 2.13.1
- path-parse: 1.0.7
- supports-preserve-symlinks-flag: 1.0.0
+ '@types/mdast': 4.0.4
+ mdast-util-toc: 7.1.0
dev: true
- /restore-cursor@3.1.0:
- resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==}
- engines: {node: '>=8'}
+ /remark@15.0.1:
+ resolution: {integrity: sha512-Eht5w30ruCXgFmxVUSlNWQ9iiimq07URKeFS3hNc8cUWy1llX4KDWfyEDZRycMc+znsN9Ux5/tJ/BFdgdOwA3A==}
dependencies:
- onetime: 5.1.2
- signal-exit: 3.0.7
+ '@types/mdast': 4.0.4
+ remark-parse: 11.0.0
+ remark-stringify: 11.0.0
+ unified: 11.0.5
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /resolve-from@5.0.0:
+ resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /resolve-pkg-maps@1.0.0:
+ resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==}
dev: true
/restore-cursor@5.1.0:
@@ -4475,31 +3692,31 @@ packages:
fsevents: 2.3.3
dev: true
- /rollup@4.24.3:
- resolution: {integrity: sha512-HBW896xR5HGmoksbi3JBDtmVzWiPAYqp7wip50hjQ67JbDz61nyoMPdqu1DvVW9asYb2M65Z20ZHsyJCMqMyDg==}
+ /rollup@4.27.2:
+ resolution: {integrity: sha512-KreA+PzWmk2yaFmZVwe6GB2uBD86nXl86OsDkt1bJS9p3vqWuEQ6HnJJ+j/mZi/q0920P99/MVRlB4L3crpF5w==}
engines: {node: '>=18.0.0', npm: '>=8.0.0'}
hasBin: true
dependencies:
'@types/estree': 1.0.6
optionalDependencies:
- '@rollup/rollup-android-arm-eabi': 4.24.3
- '@rollup/rollup-android-arm64': 4.24.3
- '@rollup/rollup-darwin-arm64': 4.24.3
- '@rollup/rollup-darwin-x64': 4.24.3
- '@rollup/rollup-freebsd-arm64': 4.24.3
- '@rollup/rollup-freebsd-x64': 4.24.3
- '@rollup/rollup-linux-arm-gnueabihf': 4.24.3
- '@rollup/rollup-linux-arm-musleabihf': 4.24.3
- '@rollup/rollup-linux-arm64-gnu': 4.24.3
- '@rollup/rollup-linux-arm64-musl': 4.24.3
- '@rollup/rollup-linux-powerpc64le-gnu': 4.24.3
- '@rollup/rollup-linux-riscv64-gnu': 4.24.3
- '@rollup/rollup-linux-s390x-gnu': 4.24.3
- '@rollup/rollup-linux-x64-gnu': 4.24.3
- '@rollup/rollup-linux-x64-musl': 4.24.3
- '@rollup/rollup-win32-arm64-msvc': 4.24.3
- '@rollup/rollup-win32-ia32-msvc': 4.24.3
- '@rollup/rollup-win32-x64-msvc': 4.24.3
+ '@rollup/rollup-android-arm-eabi': 4.27.2
+ '@rollup/rollup-android-arm64': 4.27.2
+ '@rollup/rollup-darwin-arm64': 4.27.2
+ '@rollup/rollup-darwin-x64': 4.27.2
+ '@rollup/rollup-freebsd-arm64': 4.27.2
+ '@rollup/rollup-freebsd-x64': 4.27.2
+ '@rollup/rollup-linux-arm-gnueabihf': 4.27.2
+ '@rollup/rollup-linux-arm-musleabihf': 4.27.2
+ '@rollup/rollup-linux-arm64-gnu': 4.27.2
+ '@rollup/rollup-linux-arm64-musl': 4.27.2
+ '@rollup/rollup-linux-powerpc64le-gnu': 4.27.2
+ '@rollup/rollup-linux-riscv64-gnu': 4.27.2
+ '@rollup/rollup-linux-s390x-gnu': 4.27.2
+ '@rollup/rollup-linux-x64-gnu': 4.27.2
+ '@rollup/rollup-linux-x64-musl': 4.27.2
+ '@rollup/rollup-win32-arm64-msvc': 4.27.2
+ '@rollup/rollup-win32-ia32-msvc': 4.27.2
+ '@rollup/rollup-win32-x64-msvc': 4.27.2
fsevents: 2.3.3
dev: true
@@ -4509,30 +3726,20 @@ packages:
queue-microtask: 1.2.3
dev: true
- /safe-buffer@5.2.1:
- resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
- dev: true
-
- /safer-buffer@2.1.2:
- resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==}
- dev: true
-
/scheduler@0.23.2:
resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==}
dependencies:
loose-envify: 1.4.0
dev: true
- /semver@7.6.0:
- resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==}
+ /semver@7.6.2:
+ resolution: {integrity: sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==}
engines: {node: '>=10'}
hasBin: true
- dependencies:
- lru-cache: 6.0.0
dev: true
- /semver@7.6.2:
- resolution: {integrity: sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==}
+ /semver@7.6.3:
+ resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==}
engines: {node: '>=10'}
hasBin: true
dev: true
@@ -4549,14 +3756,6 @@ packages:
has-property-descriptors: 1.0.2
dev: true
- /setprototypeof@1.1.0:
- resolution: {integrity: sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==}
- dev: true
-
- /setprototypeof@1.2.0:
- resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==}
- dev: true
-
/shebang-command@2.0.0:
resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
engines: {node: '>=8'}
@@ -4569,16 +3768,6 @@ packages:
engines: {node: '>=8'}
dev: true
- /side-channel@1.0.6:
- resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==}
- engines: {node: '>= 0.4'}
- dependencies:
- call-bind: 1.0.7
- es-errors: 1.3.0
- get-intrinsic: 1.2.4
- object-inspect: 1.13.1
- dev: true
-
/signal-exit@3.0.7:
resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==}
dev: true
@@ -4593,15 +3782,6 @@ packages:
engines: {node: '>=8'}
dev: true
- /slice-ansi@4.0.0:
- resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==}
- engines: {node: '>=10'}
- dependencies:
- ansi-styles: 4.3.0
- astral-regex: 2.0.0
- is-fullwidth-code-point: 3.0.0
- dev: true
-
/slice-ansi@5.0.0:
resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==}
engines: {node: '>=12'}
@@ -4618,30 +3798,6 @@ packages:
is-fullwidth-code-point: 5.0.0
dev: true
- /smart-buffer@4.2.0:
- resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==}
- engines: {node: '>= 6.0.0', npm: '>= 3.0.0'}
- dev: true
-
- /socks-proxy-agent@8.0.3:
- resolution: {integrity: sha512-VNegTZKhuGq5vSD6XNKlbqWhyt/40CgoEw8XxD6dhnm8Jq9IEa3nIa4HwnM8XOqU0CdB0BwWVXusqiFXfHB3+A==}
- engines: {node: '>= 14'}
- dependencies:
- agent-base: 7.1.1
- debug: 4.3.4
- socks: 2.8.3
- transitivePeerDependencies:
- - supports-color
- dev: true
-
- /socks@2.8.3:
- resolution: {integrity: sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==}
- engines: {node: '>= 10.0.0', npm: '>= 3.0.0'}
- dependencies:
- ip-address: 9.0.5
- smart-buffer: 4.2.0
- dev: true
-
/source-map-js@1.2.1:
resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==}
engines: {node: '>=0.10.0'}
@@ -4653,11 +3809,6 @@ packages:
requiresBuild: true
dev: true
- /source-map@0.7.4:
- resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==}
- engines: {node: '>= 8'}
- dev: true
-
/source-map@0.8.0-beta.0:
resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==}
engines: {node: '>= 8'}
@@ -4665,22 +3816,8 @@ packages:
whatwg-url: 7.1.0
dev: true
- /sprintf-js@1.1.3:
- resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==}
- dev: true
-
- /statuses@1.5.0:
- resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==}
- engines: {node: '>= 0.6'}
- dev: true
-
- /statuses@2.0.1:
- resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==}
- engines: {node: '>= 0.8'}
- dev: true
-
- /storybook@8.4.1(prettier@3.3.3):
- resolution: {integrity: sha512-0tfFIFghjho9FtnFoiJMoxhcs2iIdvEF81GTSVnTsDVJrYA84nB+FxN3UY1fT0BcQ8BFlbf+OhSjZL7ufqqWKA==}
+ /storybook@8.4.4(prettier@3.3.3):
+ resolution: {integrity: sha512-xBOq3q/MuUUg3zM0imMMaK5ziKq3TO388jsnaiemJ4Uf0ZGwcHjM8HDBCDt0s5/CfsOQ49zo1ouZ3aNlu0qsUg==}
hasBin: true
peerDependencies:
prettier: ^2 || ^3
@@ -4688,7 +3825,7 @@ packages:
prettier:
optional: true
dependencies:
- '@storybook/core': 8.4.1(prettier@3.3.3)
+ '@storybook/core': 8.4.4(prettier@3.3.3)
prettier: 3.3.3
transitivePeerDependencies:
- bufferutil
@@ -4696,20 +3833,6 @@ packages:
- utf-8-validate
dev: true
- /stream-read-all@3.0.1:
- resolution: {integrity: sha512-EWZT9XOceBPlVJRrYcykW8jyRSZYbkb/0ZK36uLEmoWVO5gxBOnntNTseNzfREsqxqdfEGQrD8SXQ3QWbBmq8A==}
- engines: {node: '>=10'}
- dev: true
-
- /streamx@2.16.1:
- resolution: {integrity: sha512-m9QYj6WygWyWa3H1YY69amr4nVgy61xfjys7xO7kviL5rfIEc2naf+ewFiOA+aEJD7y0JO3h2GoiUv4TDwEGzQ==}
- dependencies:
- fast-fifo: 1.3.2
- queue-tick: 1.0.1
- optionalDependencies:
- bare-events: 2.2.2
- dev: true
-
/string-argv@0.3.2:
resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==}
engines: {node: '>=0.6.19'}
@@ -4766,13 +3889,6 @@ packages:
engines: {node: '>=12'}
dev: true
- /strip-indent@3.0.0:
- resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==}
- engines: {node: '>=8'}
- dependencies:
- min-indent: 1.0.1
- dev: true
-
/sucrase@3.35.0:
resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==}
engines: {node: '>=16 || 14 >=14.17'}
@@ -4787,57 +3903,6 @@ packages:
ts-interface-checker: 0.1.13
dev: true
- /supports-color@5.5.0:
- resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==}
- engines: {node: '>=4'}
- dependencies:
- has-flag: 3.0.0
- dev: true
-
- /supports-color@7.2.0:
- resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
- engines: {node: '>=8'}
- dependencies:
- has-flag: 4.0.0
- dev: true
-
- /supports-preserve-symlinks-flag@1.0.0:
- resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
- engines: {node: '>= 0.4'}
- dev: true
-
- /table-layout@3.0.2:
- resolution: {integrity: sha512-rpyNZYRw+/C+dYkcQ3Pr+rLxW4CfHpXjPDnG7lYhdRoUcZTUt+KEsX+94RGp/aVp/MQU35JCITv2T/beY4m+hw==}
- engines: {node: '>=12.17'}
- hasBin: true
- dependencies:
- '@75lb/deep-merge': 1.1.1
- array-back: 6.2.2
- command-line-args: 5.2.1
- command-line-usage: 7.0.1
- stream-read-all: 3.0.1
- typical: 7.1.1
- wordwrapjs: 5.1.0
- dev: true
-
- /tar-fs@3.0.5:
- resolution: {integrity: sha512-JOgGAmZyMgbqpLwct7ZV8VzkEB6pxXFBVErLtb+XCOqzc6w1xiWKI9GVd6bwk68EX7eJ4DWmfXVmq8K2ziZTGg==}
- dependencies:
- pump: 3.0.0
- tar-stream: 3.1.7
- optionalDependencies:
- bare-fs: 2.3.0
- bare-path: 2.1.2
- dev: true
-
- /tar-stream@3.1.7:
- resolution: {integrity: sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==}
- dependencies:
- b4a: 1.6.6
- fast-fifo: 1.3.2
- streamx: 2.16.1
- dev: true
-
/thenify-all@1.6.0:
resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==}
engines: {node: '>=0.8'}
@@ -4851,24 +3916,10 @@ packages:
any-promise: 1.3.0
dev: true
- /through@2.3.8:
- resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==}
- dev: true
-
/tiny-invariant@1.3.3:
resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==}
dev: true
- /tinyrainbow@1.2.0:
- resolution: {integrity: sha512-weEDEq7Z5eTHPDh4xjX789+fHfF+P8boiFB+0vbWzpbnbsEr/GRaohi/uMKxg8RZMXnl1ItAi/IUHWMsjDV7kQ==}
- engines: {node: '>=14.0.0'}
- dev: true
-
- /tinyspy@3.0.2:
- resolution: {integrity: sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==}
- engines: {node: '>=14.0.0'}
- dev: true
-
/to-regex-range@5.0.1:
resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
engines: {node: '>=8.0'}
@@ -4876,9 +3927,10 @@ packages:
is-number: 7.0.0
dev: true
- /toidentifier@1.0.1:
- resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==}
- engines: {node: '>=0.6'}
+ /to-vfile@8.0.0:
+ resolution: {integrity: sha512-IcmH1xB5576MJc9qcfEC/m/nQCFt3fzMHz45sSlgJyTWjRbKW1HAkJpuf3DgE57YzIlZcwcBZA5ENQbBo4aLkg==}
+ dependencies:
+ vfile: 6.0.3
dev: true
/tr46@1.0.1:
@@ -4887,18 +3939,15 @@ packages:
punycode: 2.3.1
dev: true
- /tr46@3.0.0:
- resolution: {integrity: sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==}
- engines: {node: '>=12'}
- dependencies:
- punycode: 2.3.1
- dev: true
-
/tree-kill@1.2.2:
resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==}
hasBin: true
dev: true
+ /trough@2.2.0:
+ resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==}
+ dev: true
+
/ts-dedent@2.2.0:
resolution: {integrity: sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==}
engines: {node: '>=6.10'}
@@ -4908,17 +3957,8 @@ packages:
resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==}
dev: true
- /ts-simple-type@2.0.0-next.0:
- resolution: {integrity: sha512-A+hLX83gS+yH6DtzNAhzZbPfU+D9D8lHlTSd7GeoMRBjOt3GRylDqLTYbdmjA4biWvq2xSfpqfIDj2l0OA/BVg==}
- dev: true
-
- /tslib@2.6.2:
- resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==}
- dev: true
-
- /tsscmp@1.0.6:
- resolution: {integrity: sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==}
- engines: {node: '>=0.6.x'}
+ /tslib@2.8.1:
+ resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==}
dev: true
/tsup@8.0.2(typescript@5.6.3):
@@ -4960,13 +4000,15 @@ packages:
- ts-node
dev: true
- /tween-functions@1.2.0:
- resolution: {integrity: sha512-PZBtLYcCLtEcjL14Fzb1gSxPBeL7nWvGhO5ZFPGqziCcr8uvHp0NDmdjBchp6KHL+tExcg0m3NISmKxhU394dA==}
- dev: true
-
- /type-fest@0.21.3:
- resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==}
- engines: {node: '>=10'}
+ /tsx@4.19.2:
+ resolution: {integrity: sha512-pOUl6Vo2LUq/bSa8S5q7b91cgNSjctn9ugq/+Mvow99qW6x/UZYwzxy/3NmqoT66eHYfCVvFvACC58UBPFf28g==}
+ engines: {node: '>=18.0.0'}
+ hasBin: true
+ dependencies:
+ esbuild: 0.23.1
+ get-tsconfig: 4.8.1
+ optionalDependencies:
+ fsevents: 2.3.3
dev: true
/type-fest@2.19.0:
@@ -4974,20 +4016,6 @@ packages:
engines: {node: '>=12.20'}
dev: true
- /type-is@1.6.18:
- resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==}
- engines: {node: '>= 0.6'}
- dependencies:
- media-typer: 0.3.0
- mime-types: 2.1.35
- dev: true
-
- /typescript@5.2.2:
- resolution: {integrity: sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==}
- engines: {node: '>=14.17'}
- hasBin: true
- dev: true
-
/typescript@5.4.5:
resolution: {integrity: sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==}
engines: {node: '>=14.17'}
@@ -5005,47 +4033,135 @@ packages:
engines: {node: '>=8'}
dev: true
- /typical@7.1.1:
- resolution: {integrity: sha512-T+tKVNs6Wu7IWiAce5BgMd7OZfNYUndHwc5MknN+UHOudi7sGZzuHdCadllRuqJ3fPtgFtIH9+lt9qRv6lmpfA==}
- engines: {node: '>=12.17'}
+ /undici-types@6.19.8:
+ resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==}
dev: true
- /unbzip2-stream@1.4.3:
- resolution: {integrity: sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==}
+ /unified@11.0.5:
+ resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==}
dependencies:
- buffer: 5.7.1
- through: 2.3.8
+ '@types/unist': 3.0.3
+ bail: 2.0.2
+ devlop: 1.1.0
+ extend: 3.0.2
+ is-plain-obj: 4.1.0
+ trough: 2.2.0
+ vfile: 6.0.3
dev: true
- /undici-types@6.19.8:
- resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==}
+ /unist-util-find-all-after@4.0.1:
+ resolution: {integrity: sha512-AO8++e6HJfwNoTrqkV7xSeW65e6uSsLRQST/9LWi8FmFSz1gS7TBd+DkL/CYiElsSZIQgT4J5U54v5/kJX5Nqg==}
+ dependencies:
+ '@types/unist': 2.0.11
+ unist-util-is: 5.2.1
+ dev: true
+
+ /unist-util-find-all-before@4.0.1:
+ resolution: {integrity: sha512-xg4UHtZ6VbcjQbfDtmLZch6kQYQFF3nfaW05Ie3+t2UectzeqSx/iqLmh/wWogwU+YDWnD40PjZKK7ORmCma+g==}
+ dependencies:
+ '@types/unist': 2.0.11
+ unist-util-is: 5.2.1
+ dev: true
+
+ /unist-util-find-all-between@2.1.0:
+ resolution: {integrity: sha512-OCCUtDD8UHKeODw3TPXyFDxPCbpgBzbGTTaDpR68nvxkwiVcawBqMVrokfBMvUi7ij2F5q7S4s4Jq5dvkcBt+w==}
+ engines: {node: '>=10'}
+ dependencies:
+ unist-util-find: 1.0.4
+ unist-util-is: 4.1.0
+ dev: true
+
+ /unist-util-find@1.0.4:
+ resolution: {integrity: sha512-T5vI7IkhroDj7KxAIy057VbIeGnCXfso4d4GoUsjbAmDLQUkzAeszlBtzx1+KHgdsYYBygaqUBvrbYCfePedZw==}
+ dependencies:
+ lodash.iteratee: 4.7.0
+ unist-util-visit: 2.0.3
+ dev: true
+
+ /unist-util-is@4.1.0:
+ resolution: {integrity: sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==}
+ dev: true
+
+ /unist-util-is@5.2.1:
+ resolution: {integrity: sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==}
+ dependencies:
+ '@types/unist': 2.0.11
+ dev: true
+
+ /unist-util-is@6.0.0:
+ resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==}
+ dependencies:
+ '@types/unist': 3.0.3
+ dev: true
+
+ /unist-util-stringify-position@4.0.0:
+ resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==}
+ dependencies:
+ '@types/unist': 3.0.3
+ dev: true
+
+ /unist-util-visit-parents@3.1.1:
+ resolution: {integrity: sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg==}
+ dependencies:
+ '@types/unist': 2.0.11
+ unist-util-is: 4.1.0
+ dev: true
+
+ /unist-util-visit-parents@5.1.3:
+ resolution: {integrity: sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==}
+ dependencies:
+ '@types/unist': 2.0.11
+ unist-util-is: 5.2.1
+ dev: true
+
+ /unist-util-visit-parents@6.0.1:
+ resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==}
+ dependencies:
+ '@types/unist': 3.0.3
+ unist-util-is: 6.0.0
+ dev: true
+
+ /unist-util-visit@2.0.3:
+ resolution: {integrity: sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q==}
+ dependencies:
+ '@types/unist': 2.0.11
+ unist-util-is: 4.1.0
+ unist-util-visit-parents: 3.1.1
dev: true
- /universalify@2.0.1:
- resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==}
- engines: {node: '>= 10.0.0'}
+ /unist-util-visit@4.1.2:
+ resolution: {integrity: sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==}
+ dependencies:
+ '@types/unist': 2.0.11
+ unist-util-is: 5.2.1
+ unist-util-visit-parents: 5.1.3
dev: true
- /unpipe@1.0.0:
- resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==}
- engines: {node: '>= 0.8'}
+ /unist-util-visit@5.0.0:
+ resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==}
+ dependencies:
+ '@types/unist': 3.0.3
+ unist-util-is: 6.0.0
+ unist-util-visit-parents: 6.0.1
dev: true
- /unplugin@1.15.0:
- resolution: {integrity: sha512-jTPIs63W+DUEDW207ztbaoO7cQ4p5aVaB823LSlxpsFEU3Mykwxf3ZGC/wzxFJeZlASZYgVrWeo7LgOrqJZ8RA==}
+ /unplugin@1.16.0:
+ resolution: {integrity: sha512-5liCNPuJW8dqh3+DM6uNM2EI3MLLpCKp/KY+9pB5M2S2SR2qvvDHhKgBOaTWEbZTAws3CXfB0rKTIolWKL05VQ==}
engines: {node: '>=14.0.0'}
- peerDependencies:
- webpack-sources: ^3
- peerDependenciesMeta:
- webpack-sources:
- optional: true
dependencies:
acorn: 8.14.0
webpack-virtual-modules: 0.6.2
dev: true
- /urlpattern-polyfill@10.0.0:
- resolution: {integrity: sha512-H/A06tKD7sS1O1X2SshBVeA5FLycRpjqiBeqGKmBwBDBy28EnRjORxTNe269KSSr5un5qyWi1iL61wLxpd+ZOg==}
+ /update-browserslist-db@1.1.1(browserslist@4.24.0):
+ resolution: {integrity: sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==}
+ hasBin: true
+ peerDependencies:
+ browserslist: '>= 4.21.0'
+ dependencies:
+ browserslist: 4.24.0
+ escalade: 3.2.0
+ picocolors: 1.1.1
dev: true
/util@0.12.5:
@@ -5063,22 +4179,22 @@ packages:
hasBin: true
dev: true
- /v8-to-istanbul@9.2.0:
- resolution: {integrity: sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==}
- engines: {node: '>=10.12.0'}
+ /vfile-message@4.0.2:
+ resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==}
dependencies:
- '@jridgewell/trace-mapping': 0.3.25
- '@types/istanbul-lib-coverage': 2.0.6
- convert-source-map: 2.0.0
+ '@types/unist': 3.0.3
+ unist-util-stringify-position: 4.0.0
dev: true
- /vary@1.1.2:
- resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==}
- engines: {node: '>= 0.8'}
+ /vfile@6.0.3:
+ resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==}
+ dependencies:
+ '@types/unist': 3.0.3
+ vfile-message: 4.0.2
dev: true
- /vite@5.4.10(@types/node@22.4.1):
- resolution: {integrity: sha512-1hvaPshuPUtxeQ0hsVH3Mud0ZanOLwVTneA1EgbAM5LhaZEqyPWGRQ7BtaMvUrTDeEaC8pxtj6a6jku3x4z6SQ==}
+ /vite@5.4.11(@types/node@22.4.1):
+ resolution: {integrity: sha512-c7jFQRklXua0mTzneGW9QVyxFjUgwcihC4bXEtujIo2ouWCe1Ajt/amn2PCxYnhYfd5k09JX3SB7OYWFKYqj8Q==}
engines: {node: ^18.0.0 || >=20.0.0}
hasBin: true
peerDependencies:
@@ -5110,43 +4226,20 @@ packages:
dependencies:
'@types/node': 22.4.1
esbuild: 0.21.5
- postcss: 8.4.47
- rollup: 4.24.3
+ postcss: 8.4.49
+ rollup: 4.27.2
optionalDependencies:
fsevents: 2.3.3
dev: true
- /web-component-analyzer@2.0.0:
- resolution: {integrity: sha512-UEvwfpD+XQw99sLKiH5B1T4QwpwNyWJxp59cnlRwFfhUW6JsQpw5jMeMwi7580sNou8YL3kYoS7BWLm+yJ/jVQ==}
- hasBin: true
- dependencies:
- fast-glob: 3.3.2
- ts-simple-type: 2.0.0-next.0
- typescript: 5.2.2
- yargs: 17.7.2
- dev: true
-
/webidl-conversions@4.0.2:
resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==}
dev: true
- /webidl-conversions@7.0.0:
- resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==}
- engines: {node: '>=12'}
- dev: true
-
/webpack-virtual-modules@0.6.2:
resolution: {integrity: sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==}
dev: true
- /whatwg-url@11.0.0:
- resolution: {integrity: sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==}
- engines: {node: '>=12'}
- dependencies:
- tr46: 3.0.0
- webidl-conversions: 7.0.0
- dev: true
-
/whatwg-url@7.1.0:
resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==}
dependencies:
@@ -5186,20 +4279,6 @@ packages:
proper-lockfile: 4.1.2
dev: true
- /wordwrapjs@5.1.0:
- resolution: {integrity: sha512-JNjcULU2e4KJwUNv6CHgI46UvDGitb6dGryHajXTDiLgg1/RiGoPSDw4kZfYnwGtEXf2ZMeIewDQgFGzkCB2Sg==}
- engines: {node: '>=12.17'}
- dev: true
-
- /wrap-ansi@6.2.0:
- resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==}
- engines: {node: '>=8'}
- dependencies:
- ansi-styles: 4.3.0
- string-width: 4.2.3
- strip-ansi: 6.0.1
- dev: true
-
/wrap-ansi@7.0.0:
resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==}
engines: {node: '>=10'}
@@ -5227,25 +4306,8 @@ packages:
strip-ansi: 7.1.0
dev: true
- /wrappy@1.0.2:
- resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
- dev: true
-
- /ws@7.5.9:
- resolution: {integrity: sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==}
- engines: {node: '>=8.3.0'}
- peerDependencies:
- bufferutil: ^4.0.1
- utf-8-validate: ^5.0.2
- peerDependenciesMeta:
- bufferutil:
- optional: true
- utf-8-validate:
- optional: true
- dev: true
-
- /ws@8.17.0:
- resolution: {integrity: sha512-uJq6108EgZMAl20KagGkzCKfMEjxmKvZHG7Tlq0Z6nOky7YF7aq4mOx6xK8TJ/i1LeK4Qus7INktacctDgY8Ow==}
+ /ws@8.18.0:
+ resolution: {integrity: sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==}
engines: {node: '>=10.0.0'}
peerDependencies:
bufferutil: ^4.0.1
@@ -5257,15 +4319,6 @@ packages:
optional: true
dev: true
- /y18n@5.0.8:
- resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==}
- engines: {node: '>=10'}
- dev: true
-
- /yallist@4.0.0:
- resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==}
- dev: true
-
/yaml@2.4.2:
resolution: {integrity: sha512-B3VqDZ+JAg1nZpaEmWtTXUlBneoGx6CPM9b0TENK6aoSu5t73dItudwdgmi6tHlIZZId4dZ9skcAQ2UbcyAeVA==}
engines: {node: '>= 14'}
@@ -5278,36 +4331,6 @@ packages:
hasBin: true
dev: true
- /yargs-parser@21.1.1:
- resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==}
- engines: {node: '>=12'}
- dev: true
-
- /yargs@17.7.2:
- resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==}
- engines: {node: '>=12'}
- dependencies:
- cliui: 8.0.1
- escalade: 3.1.2
- get-caller-file: 2.0.5
- require-directory: 2.1.1
- string-width: 4.2.3
- y18n: 5.0.8
- yargs-parser: 21.1.1
- dev: true
-
- /yauzl@2.10.0:
- resolution: {integrity: sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==}
- dependencies:
- buffer-crc32: 0.2.13
- fd-slicer: 1.1.0
- dev: true
-
- /ylru@1.4.0:
- resolution: {integrity: sha512-2OQsPNEmBCvXuFlIni/a+Rn+R2pHW9INm0BxXJ4hVDA8TirqMj+J/Rp9ItLatT/5pZqWwefVrTQcHpixsxnVlA==}
- engines: {node: '>= 4.0.0'}
- dev: true
-
- /zod@3.22.4:
- resolution: {integrity: sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==}
+ /zwitch@2.0.4:
+ resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==}
dev: true
diff --git a/scripts/docs.ts b/scripts/docs.ts
new file mode 100644
index 0000000..916b917
--- /dev/null
+++ b/scripts/docs.ts
@@ -0,0 +1,171 @@
+/**
+ * Copyright 2024 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import fs from "node:fs";
+import { fromMarkdown } from "mdast-util-from-markdown";
+import prettier from "prettier";
+import { remark } from "remark";
+import remarkBehead from "remark-behead";
+import remarkGfm from "remark-gfm";
+import remarkGithub from "remark-github";
+import remarkToc from "remark-toc";
+import type { Node } from "unist";
+import {
+ h1,
+ h2,
+ inlineCode,
+ table,
+ tableCell,
+ tableRow,
+ text,
+} from "./lib/builder";
+
+import type { ClassMethod } from "custom-elements-manifest";
+import type {
+ CustomElementDeclaration,
+ Declaration,
+ Package,
+} from "custom-elements-manifest/schema";
+import type { Root } from "mdast";
+import * as CELLS from "./lib/cells";
+
+const START = "";
+const END = "";
+
+const manifest = JSON.parse(
+ fs.readFileSync("custom-elements.json", "utf-8"),
+) as Package;
+
+function isCustomElementDeclaration(
+ declaration?: Declaration,
+): declaration is CustomElementDeclaration {
+ return (declaration as CustomElementDeclaration)?.customElement === true;
+}
+
+function makeTable(title, cells: CELLS.CELL[], rows: T[]): Node[] {
+ return [
+ h2(text(title)),
+ table(
+ tableRow(...cells.map((header) => tableCell(text(header.heading)))),
+ ...rows.map((row) => tableRow(...cells.map((cell) => cell.get(row)))),
+ ),
+ ];
+}
+
+const customElements = manifest.modules
+ .flatMap((module) => module.declarations)
+ .filter(isCustomElementDeclaration)
+ .sort((a, b) => a.tagName?.localeCompare(b.tagName ?? "") ?? 0);
+
+const nodes: Node[] = [];
+
+for (const element of customElements) {
+ nodes.push(h1(inlineCode(`<${element.tagName}/>`)));
+
+ nodes.push(fromMarkdown(element.description ?? ""));
+ nodes.push(
+ ...makeTable(
+ "Attributes",
+ [CELLS.NAME, CELLS.TYPE, CELLS.DESCRIPTION],
+ element.attributes ?? [],
+ ),
+ );
+ const events = (element.events ?? []).filter((e) => e.description);
+ if (events.length > 0) {
+ nodes.push(
+ ...makeTable(
+ "Events",
+ [CELLS.NAME, CELLS.TYPE, CELLS.DESCRIPTION],
+ events,
+ ),
+ );
+ }
+ const slots = (element.slots ?? []).filter((s) => s.description);
+
+ if (slots.length > 0) {
+ nodes.push(
+ ...makeTable("Slots", [CELLS.SLOT_NAME, CELLS.DESCRIPTION], slots),
+ );
+ }
+ const publicMembers =
+ element.members?.filter((member) => member.privacy === "public") ?? [];
+
+ const methods: ClassMethod[] =
+ publicMembers.filter(
+ (member): member is ClassMethod => member.kind === "method",
+ ) ?? [];
+
+ const properties: ClassMethod[] =
+ publicMembers.filter(
+ (member): member is ClassMethod => member.kind === "field",
+ ) ?? [];
+
+ if (properties.length > 0) {
+ nodes.push(
+ ...makeTable(
+ "Properties",
+ [CELLS.NAME, CELLS.TYPE, CELLS.DESCRIPTION],
+ properties,
+ ),
+ );
+ }
+
+ if (methods.length > 0) {
+ nodes.push(
+ ...makeTable(
+ "Methods",
+ [CELLS.NAME, CELLS.DESCRIPTION, CELLS.RETURN],
+ methods,
+ ),
+ );
+ }
+}
+const processor = remark().use(remarkGfm);
+
+const docs = processor.stringify(
+ (await processor.use(remarkBehead, { minDepth: 3 }).run({
+ type: "root",
+ children: nodes,
+ } as Root)) as Root,
+);
+
+const readme = fs.readFileSync("README.md", "utf-8");
+const startIdx = readme.indexOf(START) + START.length;
+const endIdx = readme.indexOf(END);
+
+let ast = remark()
+ .use(remarkGfm)
+ .parse(
+ `${readme.substring(0, startIdx)}\n${docs}\n${readme.substring(endIdx)}`,
+ );
+
+ast = (await remark()
+ .use(remarkToc, { heading: "Index", tight: true, maxDepth: 3 })
+ .use(remarkGithub, {
+ repository: "googleworkspace/drive-picker-element",
+ })
+ .run(ast)) as Root;
+
+const markdown = remark()
+ .use(remarkGfm)
+ .stringify(ast as Root);
+
+fs.writeFileSync(
+ "README.md",
+ await prettier.format(markdown, {
+ parser: "markdown",
+ }),
+);
diff --git a/scripts/lib/builder.ts b/scripts/lib/builder.ts
new file mode 100644
index 0000000..44efabe
--- /dev/null
+++ b/scripts/lib/builder.ts
@@ -0,0 +1,82 @@
+/**
+ * Copyright 2024 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import type {
+ Heading,
+ Html,
+ InlineCode,
+ Paragraph,
+ PhrasingContent,
+ Text,
+} from "mdast";
+import type { Table, TableCell, TableRow } from "mdast";
+
+export const inlineCode = (value: string): InlineCode => ({
+ type: "inlineCode",
+ value,
+});
+
+export const text = (value: string): Text => ({
+ type: "text",
+ value,
+});
+
+export const table = (...children: TableRow[]): Table => ({
+ type: "table",
+ children,
+});
+
+export const tableRow = (...children: TableCell[]): TableRow => ({
+ type: "tableRow",
+ children,
+});
+
+export const tableCell = (...children: PhrasingContent[]): TableCell => ({
+ type: "tableCell",
+ children,
+});
+
+export const paragraph = (...children: PhrasingContent[]): Paragraph => ({
+ type: "paragraph",
+ children,
+});
+
+const heading = (
+ depth: 1 | 2 | 3 | 4 | 5 | 6,
+ ...children: PhrasingContent[]
+): Heading => ({
+ type: "heading",
+ depth,
+ children,
+});
+
+export const h1 = (...children: PhrasingContent[]): Heading =>
+ heading(1, ...children);
+export const h2 = (...children: PhrasingContent[]): Heading =>
+ heading(2, ...children);
+export const h3 = (...children: PhrasingContent[]): Heading =>
+ heading(3, ...children);
+export const h4 = (...children: PhrasingContent[]): Heading =>
+ heading(4, ...children);
+export const h5 = (...children: PhrasingContent[]): Heading =>
+ heading(5, ...children);
+export const h6 = (...children: PhrasingContent[]): Heading =>
+ heading(6, ...children);
+
+export const html = (value: string): Html => ({
+ type: "html",
+ value,
+});
diff --git a/scripts/lib/cells.ts b/scripts/lib/cells.ts
new file mode 100644
index 0000000..ebf73c3
--- /dev/null
+++ b/scripts/lib/cells.ts
@@ -0,0 +1,79 @@
+/**
+ * Copyright 2024 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import type {
+ Attribute,
+ ClassField,
+ ClassMember,
+ ClassMethod,
+} from "custom-elements-manifest/schema";
+import type { TableCell } from "mdast";
+import { fromMarkdown } from "mdast-util-from-markdown";
+import { inlineCode, tableCell, text } from "./builder";
+
+export type CELL = {
+ heading: string;
+ get: (x: T) => TableCell;
+};
+
+const formatParam = (param: { name?: string; type?: { text: string } }) =>
+ `${param?.name}${param?.type?.text ? `: ${param.type.text}` : ""}`;
+
+export const DEFAULT: CELL = {
+ heading: "Default",
+ get: (x) => tableCell(inlineCode(x.default ?? "")),
+};
+export const NAME: CELL = {
+ heading: "Name",
+ get: (x) => tableCell(inlineCode(x.name)),
+};
+export const SLOT_NAME: CELL = {
+ ...NAME,
+ get: (x) => tableCell(x.name ? inlineCode(x.name) : text("default")),
+};
+
+export const ATTR_FIELD: CELL = {
+ heading: "Field",
+ get: (x) => tableCell(text(x.fieldName ?? "")),
+};
+export const INHERITANCE: CELL = {
+ heading: "Inherited From",
+ get: (x) => tableCell(text(x.inheritedFrom?.name ?? "")),
+};
+
+export const RETURN: CELL = {
+ heading: "Return",
+ get: (x) => tableCell(inlineCode(x.return?.type?.text ?? "")),
+};
+export const TYPE: CELL = {
+ heading: "Type",
+ get: (x) => tableCell(inlineCode(x.type?.text ?? "")),
+};
+
+export const DESCRIPTION: CELL = {
+ heading: "Description",
+ get: (x) => {
+ const description = x.description ?? "";
+ const root = fromMarkdown(description);
+ const node = root.children[0];
+
+ if (node?.type === "paragraph") {
+ return tableCell(...node.children);
+ }
+
+ return tableCell(text(description));
+ },
+};
diff --git a/src/drive-picker/drive-picker-docs-view-element.ts b/src/drive-picker/drive-picker-docs-view-element.ts
index 34a8088..2683074 100644
--- a/src/drive-picker/drive-picker-docs-view-element.ts
+++ b/src/drive-picker/drive-picker-docs-view-element.ts
@@ -13,82 +13,24 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+import { setBoolAttrWithDefault } from "../utils";
-import { LitElement } from "lit";
-import { customElement, property } from "lit/decorators.js";
-
-export type ViewId = keyof typeof google.picker.ViewId;
-type DocsViewMode = keyof typeof google.picker.DocsViewMode;
-
-export interface DrivePickerDocsViewElementProps {
- /**
- * Indicates whether to enable drives in the view.
- */
- enableDrives?: boolean;
-
- /**
- * Indicates whether to include folders in the view.
- */
- includeFolders?: boolean;
-
- /**
- * The MIME types to filter the view by.
- *
- * @see https://developers.google.com/drive/api/v3/mime-types
- */
- mimeTypes?: string;
-
- /**
- * The mode of the view. This should be one of the values of the `google.picker.DocsViewMode` enum.
- *
- * @see https://developers.google.com/drive/picker/reference#docs-view-mode
- */
- mode?: DocsViewMode;
-
- /**
- * Indicates whether to show only files owned by the user in the view.
- */
- ownedByMe?: boolean;
-
- /**
- * The ID of the parent folder to restrict the view to.
- */
- parent?: string;
-
- /**
- * The query string to filter the view by.
- *
- * @see https://developers.google.com/drive/api/v3/search-files
- */
- query?: string;
-
- /**
- * Indicates whether selecting folders is enabled in the view.
- */
- selectFolderEnabled?: boolean;
-
- /**
- * Indicates whether to show only starred files in the view.
- */
- starred?: boolean;
-
- /**
- * The ID of the view. This should be one of the values of the
- * `google.picker.ViewId` enum.
- *
- * Note: The default value is `DOCS` which corresponds to the
- * `google.picker.ViewId.DOCS` enum value in the Google Drive Picker API and
- * corresponsds to all Google Drive document types.
- *
- * @see https://developers.google.com/drive/picker/reference#view-id
- */
- viewId?: ViewId;
-}
+type ViewId = keyof typeof google.picker.ViewId;
/**
- * The `drive-picker-docs-view` element is used to define a view for the Google Drive Picker.
+ * The `drive-picker-docs-view` element is used to define a [`google.picker.DocsView`](https://developers.google.com/drive/picker/reference/picker.docsview).
*
* @element drive-picker-docs-view
+ * @attr {"default"|"true"|"false"} enable-drives - Whether to allow the user to select files from shared drives.
+ * @attr {"default"|"true"|"false"} include-folders - Whether to include folders in the view.
+ * @attr {string} mime-types - A comma-separated list of MIME types to filter the view.
+ * @attr {string} mode - The mode of the view.
+ * @attr {"default"|"true"|"false"} owned-by-me - Whether to show files owned by the user.
+ * @attr {string} parent - The ID of the folder to view.
+ * @attr {string} query - The query string to filter the view.
+ * @attr {"default"|"true"|"false"} select-folder-enabled - Whether to allow the user to select folders.
+ * @attr {"default"|"true"|"false"} starred - Whether to show starred files.
+ * @attr {string} view-id - The `keyof typeof google.picker.ViewId`. For example, `"DOCS"`, which is equivalent to `google.picker.ViewId.DOCS`.
*
* @example
*
@@ -96,98 +38,70 @@ export interface DrivePickerDocsViewElementProps {
*
* ```
*
- * @see https://developers.google.com/drive/picker/reference#docs-view
+ * @see https://developers.google.com/drive/picker/reference/picker.docsview
*
*/
-@customElement("drive-picker-docs-view")
-export class DrivePickerDocsViewElement
- extends LitElement
- implements DrivePickerDocsViewElementProps
-{
- @property({ type: String })
- label?: string;
-
- @property({ type: String, attribute: "view-id" })
- viewId: ViewId = "DOCS";
-
- @property({ type: String, attribute: "mime-types" })
- mimeTypes?: string;
-
- @property({ type: String })
- query?: string;
-
- @property({ type: Boolean, attribute: "enable-drives" })
- enableDrives?: boolean;
-
- @property({ type: Boolean, attribute: "include-folders" })
- includeFolders?: boolean;
-
- @property({ type: Boolean, attribute: "select-folder-enabled" })
- selectFolderEnabled?: boolean;
-
- @property({ type: String })
- mode: DocsViewMode = "GRID";
-
- @property({ type: Boolean, attribute: "owned-by-me" })
- ownedByMe?: boolean;
-
- @property({ type: String })
- parent?: string;
-
- @property({ type: Boolean })
- starred?: boolean;
+export class DrivePickerDocsViewElement extends HTMLElement {
+ static get observedAttributes() {
+ return [
+ "enable-drives",
+ "include-folders",
+ "mime-types",
+ "mode",
+ "owned-by-me",
+ "parent",
+ "query",
+ "select-folder-enabled",
+ "starred",
+ "view-id",
+ ];
+ }
/**
- * Gets the Google Drive Picker view based on the current property values.
+ * Gets the Google Drive Picker view based on the current attribute values.
* @returns {google.picker.DocsView} The Google Drive picker view.
*/
public get view(): google.picker.DocsView {
- const view = new google.picker.DocsView(
- this.viewId && google.picker.ViewId[this.viewId],
+ const view = new window.google.picker.DocsView(this.viewId);
+
+ setBoolAttrWithDefault("enable-drives", this, view.setEnableDrives, view);
+ setBoolAttrWithDefault(
+ "include-folders",
+ this,
+ view.setIncludeFolders,
+ view,
);
+ setBoolAttrWithDefault("owned-by-me", this, view.setOwnedByMe, view);
+ setBoolAttrWithDefault(
+ "select-folder-enabled",
+ this,
+ view.setSelectFolderEnabled,
+ view,
+ );
+ setBoolAttrWithDefault("starred", this, view.setStarred, view);
- if (this.enableDrives !== undefined) {
- view.setEnableDrives(this.enableDrives);
- }
-
- if (this.includeFolders !== undefined) {
- view.setIncludeFolders(this.includeFolders);
- }
-
- if (this.mimeTypes) {
- view.setMimeTypes(this.mimeTypes);
- }
-
- if (this.mode) {
- view.setMode(google.picker.DocsViewMode[this.mode]);
- }
-
- if (this.ownedByMe !== undefined) {
- view.setOwnedByMe(this.ownedByMe);
- }
-
- if (this.parent) {
- view.setParent(this.parent);
- }
+ const mimetypes = this.getAttribute("mime-types");
+ if (mimetypes !== null) view.setMimeTypes(mimetypes);
- if (this.query) {
- view.setQuery(this.query);
- }
+ const mode = this.getAttribute("mode");
+ if (mode)
+ view.setMode(
+ google.picker.DocsViewMode[
+ mode as keyof typeof google.picker.DocsViewMode
+ ],
+ );
- if (this.selectFolderEnabled !== undefined) {
- view.setSelectFolderEnabled(this.selectFolderEnabled);
- }
+ const parent = this.getAttribute("parent");
+ if (parent !== null) view.setParent(parent);
- if (this.starred !== undefined) {
- view.setStarred(this.starred);
- }
+ const query = this.getAttribute("query");
+ if (query !== null) view.setQuery(query);
return view;
}
-}
-declare global {
- interface HTMLElementTagNameMap {
- "drive-picker-docs-view": DrivePickerDocsViewElement;
+ private get viewId(): google.picker.ViewId | undefined {
+ const viewId = this.getAttribute("view-id");
+ return viewId ? window.google.picker.ViewId[viewId as ViewId] : undefined;
}
}
diff --git a/src/drive-picker/drive-picker-element.ts b/src/drive-picker/drive-picker-element.ts
index e467ead..1b8c206 100644
--- a/src/drive-picker/drive-picker-element.ts
+++ b/src/drive-picker/drive-picker-element.ts
@@ -1,6 +1,3 @@
-import { LitElement, html } from "lit";
-import { customElement, property, state } from "lit/decorators.js";
-import { loadApi, retrieveAccessToken } from "../utils";
/**
* Copyright 2024 Google LLC
*
@@ -17,184 +14,224 @@ import { loadApi, retrieveAccessToken } from "../utils";
* limitations under the License.
*/
-export type View = google.picker.DocsView;
+import {
+ getBoolAttr,
+ getNumberAttribute,
+ loadApi,
+ retrieveAccessToken,
+ setBoolAttrWithDefault,
+} from "../utils";
-export interface PickerViewElement extends HTMLElement {
+type View = google.picker.DocsView;
+
+interface DrivePickerDocsViewElement extends HTMLElement {
view: google.picker.DocsView;
}
-export interface DrivePickerElementProps {
- // Required properties
- appId: string;
- clientId: string;
- // Optional properties
- developerKey?: string;
- hideTitleBar?: boolean;
- locale?: string;
- maxItems?: number;
- multiselect?: boolean;
- oauthToken?: string;
- origin?: string;
- relayUrl?: string;
- scope?: string;
- title?: string;
- visible?: boolean;
-}
+type DrivePickerEventDetail = google.picker.ResponseObject & {
+ picker: google.picker.Picker;
+};
-export interface DrivePickerElementEventListeners {
- addEventListener(
- type: "cancel" | "picked",
- listener: (ev: CustomEvent) => void,
- options?: boolean | AddEventListenerOptions,
- ): void;
- removeEventListener(
- type: "cancel" | "picked",
- listener: (ev: CustomEvent) => void,
- options?: boolean | EventListenerOptions,
- ): void;
+declare global {
+ interface GlobalEventHandlersEventMap {
+ "picker:authenticated": CustomEvent;
+ "picker:canceled": CustomEvent;
+ "picker:picked": CustomEvent;
+ "picker:loaded": CustomEvent;
+ }
}
/**
- * The `drive-picker` web component provides a convenient way to integrate the Google Picker API into your web applications. The Google Picker API is a JavaScript API that allows users to select or upload Google Drive files. This component acts as a "File Open" dialog for accessing and interacting with files stored on Google Drive.
- *
- * Features:
- * - Provides a similar look-and-feel to the Google Drive UI.
- * - Offers several views showing previews and thumbnail images of Drive files.
- * - Displays as an inline, modal window, ensuring users never leave the main application.
- *
- * Note: The Google Picker API does not support file organization, moving, or copying. For these operations, you should use either the Google Drive API or the Drive UI.
+ * The `drive-picker` web component provides a convenient way to declaratively
+ * build
+ * [`google.picker.Picker`](https://developers.google.com/drive/picker/reference/picker)
+ * by using the component attributes and
+ * [`google.picker.PickerBuilder`](https://developers.google.com/drive/picker/reference/picker.pickerbuilder)
+ * and load OAuth tokens.
*
* @element drive-picker
*
- * @fires {CustomEvent} cancel - Triggered when the user cancels the picker dialog.
- * @fires {CustomEvent} picked - Triggered when the user picks one or more items.
+ * @fires picker:authenticated - Triggered when the user authenticates with the
+ * provided OAuth client ID and scope.
+ * @fires picker:canceled - Triggered when the user cancels the picker dialog.
+ * @fires picker:picked - Triggered when the user picks one or more items.
+ * @fires picker:loaded - Triggered when the picker is loaded.
*
- * @slot - The View elements to display in the picker. Each View element should implement a property `view` of type `google.picker.View`.
+ * @slot - The default slot contains View elements to display in the picker.
+ * Each View element should implement a property `view` of type
+ * `google.picker.View`.
+ * @attr {string} app-id - The Google Drive app ID.
+ * @attr {string} client-id - The OAuth 2.0 client ID.
+ * @attr {string} developer-key - The API key for accessing Google Picker API.
+ * @attr {"default"|"true"|"false"} hide-title-bar - Hides the title bar of the
+ * picker if set to true.
+ * @attr {string} locale - The locale to use for the picker.
+ * @attr {number} max-items - The maximum number of items that can be selected.
+ * @attr {boolean} mine-only - If set to true, only shows files owned by the
+ * user.
+ * @attr {boolean} multiselect - Enables multiple file selection if set to true.
+ * @attr {boolean} nav-hidden - Hides the navigation pane if set to true.
+ * @attr {string} oauth-token - The OAuth 2.0 token for authentication.
+ * @attr {string} origin - The origin parameter for the picker.
+ * @attr {string} relay-url - The relay URL for the picker.
+ * @attr {string} scope - The OAuth 2.0 scope for the picker.
+ * @attr {string} title - The title of the picker.
*
* @example
*
- * ```html
- *
- *
- *
- * ```
+ *```html
+ *
+ *
+ *
+ *```
*
*/
-@customElement("drive-picker")
-export class DrivePickerElement
- extends LitElement
- implements DrivePickerElementProps, DrivePickerElementEventListeners
-{
- protected picker: google.picker.Picker | undefined;
- protected observer: MutationObserver | undefined;
-
- @state()
- private _oauthToken: string | undefined;
-
- /**
- * The Google Drive app ID.
- */
- @property({ type: String, attribute: "app-id" })
- appId!: string;
-
- /**
- * The Google API client ID.
- */
- @property({ type: String, attribute: "client-id" })
- clientId!: string;
-
- /**
- * The Google API developer key.
- */
- @property({ type: String })
- developerKey?: string;
+export class DrivePickerElement extends HTMLElement {
+ static get observedAttributes() {
+ return [
+ "app-id",
+ "client-id",
+ "developer-key",
+ "hide-title-bar",
+ "locale",
+ "max-items",
+ "mine-only",
+ "multiselect",
+ "nav-hidden",
+ "oauth-token",
+ "origin",
+ "relay-url",
+ "scope",
+ "title",
+ ];
+ }
+ private picker: google.picker.Picker | undefined;
+ private observer: MutationObserver | undefined;
+ private google: typeof google | undefined;
+ private loading: Promise | undefined;
/**
- * The height of the picker dialog.
+ * The visibility of the picker.
*/
- @property({ type: Number })
- height?: number;
+ public get visible(): boolean {
+ return Boolean(this.picker?.isVisible());
+ }
/**
- * Whether to hide the title bar of the picker dialog.
+ * Controls the visibility of the picker after the picker dialog has been
+ * closed. If any of the attributes change, the picker will be rebuilt and
+ * the visibility will be reset.
*/
- @property({ type: Boolean, attribute: "hide-title-bar" })
- hideTitleBar?: boolean;
+ set visible(value: boolean) {
+ this.picker?.setVisible(value);
+ }
- /**
- * The locale of the picker dialog.
- */
- @property({ type: String })
- locale?: string;
+ attributeChangedCallback() {
+ this.build();
+ return;
+ }
- /**
- * The maximum number of items that the user can select.
- */
- @property({ type: Number, attribute: "max-items" })
- maxItems?: number;
+ private async build() {
+ this.picker?.dispose();
- /**
- * Whether the user can select multiple items.
- */
- @property({ type: Boolean })
- multiselect?: boolean;
+ // this await is necessary as an attribute may have changed
+ // prior to the API initialy being loaded
+ await this.loading;
- /**
- * The OAuth token to authenticate the user.
- */
- @property({ type: String, attribute: "oauth-token" })
- oauthToken?: string;
+ if (!this.google) return;
- /**
- * The origin of the picker dialog.
- */
- @property({ type: String })
- origin?: string;
+ let builder = new this.google.picker.PickerBuilder().setCallback(
+ (data: google.picker.ResponseObject) => {
+ this.callbackToDispatchEvent(data);
+ },
+ );
+
+ const appId = this.getAttribute("app-id");
+ if (appId !== null) builder = builder.setAppId(appId);
+
+ const developerKey = this.getAttribute("developer-key");
+ if (developerKey !== null) builder = builder.setDeveloperKey(developerKey);
+
+ const locale = this.getAttribute("locale");
+ if (locale !== null)
+ builder = builder.setLocale(locale as google.picker.Locales);
+
+ const maxItems = getNumberAttribute(this, "max-items");
+ if (maxItems !== null) builder = builder.setMaxItems(maxItems);
+
+ const origin = this.getAttribute("origin");
+ if (origin !== null) builder = builder.setOrigin(origin);
+
+ const relayUrl = this.getAttribute("relay-url");
+ if (relayUrl !== null) builder = builder.setRelayUrl(relayUrl);
+
+ const title = this.getAttribute("title");
+ if (title !== null) builder = builder.setTitle(title);
+
+ setBoolAttrWithDefault(
+ "hide-title-bar",
+ this,
+ builder.hideTitleBar,
+ builder,
+ );
+
+ // OAuth token is required either as an attribute or from the OAuth flow using the client ID and scope
+ const oauthToken =
+ this.getAttribute("oauth-token") ??
+ (await retrieveAccessToken(
+ // biome-ignore lint/style/noNonNullAssertion: just let the error bubble up when null
+ this.getAttribute("client-id")!,
+ this.getAttribute("scope") ??
+ "https://www.googleapis.com/auth/drive.file",
+ ).then((token) => {
+ this.dispatchEvent(
+ new CustomEvent("picker:authenticated", { detail: token }),
+ );
+ return token;
+ }));
+
+ // biome-ignore lint/style/noNonNullAssertion:
+ builder = builder.setOAuthToken(oauthToken!);
+
+ if (getBoolAttr(this, "multiselect")) {
+ builder = builder.enableFeature(
+ this.google.picker.Feature.MULTISELECT_ENABLED,
+ );
+ }
- /**
- * The relay URL to use for cross-origin communication.
- */
- @property({ type: String, attribute: "relay-url" })
- relayUrl?: string;
+ if (getBoolAttr(this, "mine-only")) {
+ builder = builder.enableFeature(this.google.picker.Feature.MINE_ONLY);
+ }
- /**
- * The scope of the OAuth token.
- */
- @property({ type: String })
- scope = "https://www.googleapis.com/auth/drive.file";
+ if (getBoolAttr(this, "nav-hidden")) {
+ builder = builder.enableFeature(this.google.picker.Feature.NAV_HIDDEN);
+ }
- /**
- * The title of the picker dialog.
- */
- @property({ type: String })
- title = "";
+ for (const view of this.views) {
+ builder = builder.addView(view);
+ }
- /**
- * Whether the picker dialog is visible.
- */
- @property({ type: Boolean, reflect: true })
- visible = true;
+ this.picker = builder.build();
- /**
- * The width of the picker dialog.
- */
- @property({ type: Number })
- width?: number;
+ this.picker.setVisible(true);
+ }
/**
* The `google.Picker.View` objects to display in the picker as defined by the slot elements.
*/
- protected get views(): (View | google.picker.ViewId)[] {
+ private get views(): (View | google.picker.ViewId)[] {
const views = nestedViews(this);
return views.length ? views : ["all" as google.picker.ViewId];
}
- override async connectedCallback(): Promise {
- super.connectedCallback();
- await loadApi();
+ async connectedCallback(): Promise {
+ this.loading = loadApi().then((google) => {
+ this.google = google;
+ this.build();
+ });
// Watch for changes in the picker element slot and their attributes
this.observer = new MutationObserver((mutations) => {
@@ -205,7 +242,7 @@ export class DrivePickerElement
);
if (filteredMutations.length) {
- this.requestUpdate();
+ this.build();
}
});
@@ -216,84 +253,38 @@ export class DrivePickerElement
});
}
- protected override update(changedProperties: Map) {
- // dispose the picker if any property other than visible is changed
- if (!(changedProperties.size === 1 && changedProperties.has("visible"))) {
- this.picker?.dispose();
- this.picker = undefined;
- }
-
- if (changedProperties.has("oauthToken")) {
- this._oauthToken = this.oauthToken;
- }
-
- if (
- (this.visible && changedProperties.has("clientId")) ||
- changedProperties.has("scope") ||
- !this._oauthToken
- ) {
- retrieveAccessToken(this.clientId, this.scope).then((oauthToken) => {
- this._oauthToken = oauthToken;
- this.requestUpdate();
- });
- }
- super.update(changedProperties);
- }
-
- protected override render() {
- if (!this.picker) {
- this.build();
- }
-
- this.picker?.setVisible(this.visible);
-
- return html``;
- }
-
- private build() {
- if (!this._oauthToken) {
- return;
- }
-
- let builder = new google.picker.PickerBuilder()
- .setOAuthToken(this._oauthToken)
- .setCallback((data: google.picker.ResponseObject) => {
- this.callbackToDispatchEvent(data);
- });
-
- for (const view of this.views) {
- builder = builder.addView(view);
+ private callbackToDispatchEvent(data: google.picker.ResponseObject) {
+ let eventType: keyof GlobalEventHandlersEventMap;
+
+ switch (data.action) {
+ case google.picker.Action.CANCEL:
+ eventType = "picker:canceled";
+ break;
+ case google.picker.Action.PICKED:
+ eventType = "picker:picked";
+ break;
+ case google.picker.Action.LOADED:
+ eventType = "picker:loaded";
+ break;
+ default:
+ console.warn(`Unknown action: ${data.action}`);
+ return;
}
- builder = setBuilderProperties(builder, this);
-
- this.picker = builder.build();
- }
-
- private callbackToDispatchEvent(data: google.picker.ResponseObject) {
- this.visible = Boolean(this.picker?.isVisible());
- this.dispatch(data.action, data);
+ this.dispatchEvent(
+ new CustomEvent(eventType, {
+ detail: { ...data, picker: this.picker },
+ }),
+ );
}
- override disconnectedCallback(): void {
+ disconnectedCallback(): void {
this.picker?.dispose();
- super.disconnectedCallback();
- }
-
- private dispatch(
- type: google.picker.Action,
- detail: google.picker.ResponseObject,
- ) {
- this.dispatchEvent(new CustomEvent(type, { detail }));
- }
-
- protected override createRenderRoot(): HTMLElement | DocumentFragment {
- return this;
}
}
-function isView(obj: HTMLElement): obj is PickerViewElement {
- return "view" in obj && obj.view instanceof google.picker.View;
+function isView(obj: HTMLElement): obj is DrivePickerDocsViewElement {
+ return "view" in obj && obj.view instanceof window.google.picker.View;
}
function filterElementsToViewOrViewGroup(
@@ -309,33 +300,3 @@ function nestedViews(target: HTMLElement, selector = "*"): Array {
Array.from(target.querySelectorAll(selector)),
);
}
-
-function setBuilderProperties(
- _builder: google.picker.PickerBuilder,
- { appId, developerKey, relayUrl, title }: DrivePickerElementProps,
-) {
- let builder = _builder;
- if (appId) {
- builder = builder.setAppId(appId);
- }
-
- if (developerKey) {
- builder = builder.setDeveloperKey(developerKey);
- }
-
- if (relayUrl) {
- builder = builder.setRelayUrl(relayUrl);
- }
-
- if (title) {
- builder = builder.setTitle(title);
- }
-
- return builder;
-}
-
-declare global {
- interface HTMLElementTagNameMap {
- "drive-picker": DrivePickerElement;
- }
-}
diff --git a/src/drive-picker/drive-picker.stories.ts b/src/drive-picker/drive-picker.stories.ts
deleted file mode 100644
index 9042683..0000000
--- a/src/drive-picker/drive-picker.stories.ts
+++ /dev/null
@@ -1,84 +0,0 @@
-/**
- * Copyright 2024 Google LLC
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-import { action } from "@storybook/addon-actions";
-import { withActions } from "@storybook/addon-actions/decorator";
-import type { Meta, StoryObj } from "@storybook/web-components";
-import { type TemplateResult, html } from "lit";
-import type { DrivePickerElementProps } from ".";
-import "./drive-picker-element";
-import { ifDefined } from "lit/directives/if-defined.js";
-
-const drivePickerTemplate = (
- { appId, clientId, oauthToken, visible }: DrivePickerElementProps,
- slot?: TemplateResult,
-) =>
- html`${slot}`;
-
-const meta: Meta = {
- title: "Drive Picker",
- tags: ["autodocs"],
- decorators: [withActions],
- parameters: {
- actions: { handles: ["picked", "cancel"] },
- },
- render: (props: DrivePickerElementProps) => drivePickerTemplate(props),
- argTypes: {
- appId: { control: "text" },
- clientId: { control: "text" },
- oauthToken: { control: "text" },
- visible: { control: "boolean" },
- },
- args: {
- visible: true,
- },
-};
-
-export default meta;
-type Story = StoryObj;
-
-export const Primary: Story = {
- args: {
- visible: true,
- clientId:
- "675807958095-nsptdcn5qdb6pl44cge1c6ghact9t5q0.apps.googleusercontent.com",
- developerKey: "AIzaSyAdqZwr-cdocUdGbt9l0zc5s58jnrGseOY",
- appId: "675807958095",
- },
-};
-
-export const DocsView: Story = {
- args: {
- visible: true,
- clientId:
- "675807958095-nsptdcn5qdb6pl44cge1c6ghact9t5q0.apps.googleusercontent.com",
- developerKey: "AIzaSyAdqZwr-cdocUdGbt9l0zc5s58jnrGseOY",
- appId: "675807958095",
- },
- render: (props: DrivePickerElementProps) =>
- drivePickerTemplate(
- props,
- html``,
- ),
-};
diff --git a/src/drive-picker/index.ts b/src/drive-picker/index.ts
index 5fe0a22..60fe20a 100644
--- a/src/drive-picker/index.ts
+++ b/src/drive-picker/index.ts
@@ -14,12 +14,6 @@
* limitations under the License.
*/
-export {
- DrivePickerElement,
- type DrivePickerElementProps,
-} from "./drive-picker-element";
+export { DrivePickerElement } from "./drive-picker-element";
-export {
- DrivePickerDocsViewElement,
- type DrivePickerDocsViewElementProps,
-} from "./drive-picker-docs-view-element";
+export { DrivePickerDocsViewElement } from "./drive-picker-docs-view-element";
diff --git a/src/index.ts b/src/index.ts
index 01e0bb1..bc4ad1d 100644
--- a/src/index.ts
+++ b/src/index.ts
@@ -14,4 +14,18 @@
* limitations under the License.
*/
-export * from "./drive-picker";
+import { DrivePickerDocsViewElement, DrivePickerElement } from "./drive-picker";
+
+customElements.define("drive-picker", DrivePickerElement);
+customElements.define("drive-picker-docs-view", DrivePickerDocsViewElement);
+
+declare global {
+ interface HTMLElementTagNameMap {
+ "drive-picker": DrivePickerElement;
+ }
+ interface HTMLElementTagNameMap {
+ "drive-picker-docs-view": DrivePickerDocsViewElement;
+ }
+}
+
+export type { DrivePickerElement, DrivePickerDocsViewElement };
diff --git a/src/stories/drive-picker-docs-view.stories.ts b/src/stories/drive-picker-docs-view.stories.ts
new file mode 100644
index 0000000..0b2cb00
--- /dev/null
+++ b/src/stories/drive-picker-docs-view.stories.ts
@@ -0,0 +1,77 @@
+/**
+ * Copyright 2024 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import type { Meta, StoryObj } from "@storybook/web-components";
+import type { LazyPreviewElement } from "./utils/lazy-preview-element";
+import { elementArgTypes, getElementEvents } from "./utils/manifest-helpers";
+
+import { setAttributes } from "./utils/attribute-helpers";
+import { APP_ID, CLIENT_ID, META_PARAMETERS } from "./utils/common";
+
+import "./utils/lazy-preview-element";
+import "..";
+
+const argTypes = elementArgTypes["drive-picker-docs-view"];
+
+const elementEventNames = getElementEvents("drive-picker").map(
+ (event) => event.name,
+);
+
+const meta: Meta = {
+ component: "drive-picker",
+ argTypes,
+ args: {},
+ parameters: META_PARAMETERS,
+ tags: ["autodocs"],
+};
+
+export default meta;
+
+const render = ({ ...args }) => {
+ const drivePicker = document.createElement("drive-picker");
+ drivePicker.setAttribute("app-id", APP_ID);
+ drivePicker.setAttribute("client-id", CLIENT_ID);
+
+ const drivePickerDocsView = document.createElement("drive-picker-docs-view");
+ setAttributes(drivePickerDocsView, args);
+ drivePicker.appendChild(drivePickerDocsView);
+
+ for (const eventName of elementEventNames) {
+ drivePicker.addEventListener(eventName, (e) => {
+ console.log(e);
+ });
+ }
+
+ const lazyPreviewElement = document.createElement(
+ "lazy-preview",
+ ) as LazyPreviewElement;
+
+ lazyPreviewElement.element = drivePicker;
+
+ // Use a template to show the drive-picker element only when the user clicks the preview button
+ const template = document.createElement("template");
+ template.innerHTML = drivePicker.outerHTML;
+ lazyPreviewElement.appendChild(template);
+
+ return lazyPreviewElement;
+};
+
+type Story = StoryObj;
+
+export const Default: Story = {
+ render,
+ args: {},
+};
diff --git a/src/stories/drive-picker.stories.ts b/src/stories/drive-picker.stories.ts
new file mode 100644
index 0000000..2f1ee16
--- /dev/null
+++ b/src/stories/drive-picker.stories.ts
@@ -0,0 +1,85 @@
+/**
+ * Copyright 2024 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import type { Meta, StoryObj } from "@storybook/web-components";
+import type { LazyPreviewElement } from "./utils/lazy-preview-element";
+import { elementArgTypes, getElementEvents } from "./utils/manifest-helpers";
+
+import { setAttributes } from "./utils/attribute-helpers";
+import { APP_ID, CLIENT_ID, META_PARAMETERS } from "./utils/common";
+
+import "./utils/lazy-preview-element";
+import "..";
+
+const argTypes = elementArgTypes["drive-picker"];
+
+const elementEventNames = getElementEvents("drive-picker").map(
+ (event) => event.name,
+);
+
+const meta: Meta = {
+ component: "drive-picker",
+ argTypes,
+ args: {
+ "app-id": APP_ID,
+ "client-id": CLIENT_ID,
+ },
+ parameters: META_PARAMETERS,
+ tags: ["autodocs"],
+};
+
+export default meta;
+
+const render = ({ ...args }) => {
+ const drivePicker = document.createElement("drive-picker");
+
+ setAttributes(drivePicker, args);
+
+ for (const eventName of elementEventNames) {
+ drivePicker.addEventListener(eventName, (e) => {
+ console.log(e);
+ });
+ }
+
+ const lazyPreviewElement = document.createElement(
+ "lazy-preview",
+ ) as LazyPreviewElement;
+
+ lazyPreviewElement.element = drivePicker;
+
+ // Use a template to show the drive-picker element only when the user clicks the preview button
+ const template = document.createElement("template");
+ template.innerHTML = drivePicker.outerHTML;
+ lazyPreviewElement.appendChild(template);
+
+ return lazyPreviewElement;
+};
+
+type Story = StoryObj;
+
+export const Default: Story = {
+ render,
+ args: {},
+};
+
+export const ExplicitScope: Story = {
+ name: "With explicit scope",
+ render,
+ args: {
+ scope:
+ "https://www.googleapis.com/auth/drive.metadata.readonly https://www.googleapis.com/auth/drive.file",
+ },
+};
diff --git a/src/stories/utils/attribute-helpers.ts b/src/stories/utils/attribute-helpers.ts
new file mode 100644
index 0000000..eac5cb0
--- /dev/null
+++ b/src/stories/utils/attribute-helpers.ts
@@ -0,0 +1,33 @@
+/**
+ * Copyright 2024 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+export const setAttributes = (
+ element: HTMLElement,
+ attributes: { [key: string]: string | boolean | number },
+) => {
+ for (const [key, value] of Object.entries(attributes)) {
+ if (key.startsWith("on")) {
+ continue;
+ }
+ if (value !== undefined) {
+ if (typeof value === "boolean") {
+ if (value) element.setAttribute(key, "");
+ } else if (typeof value === "string") {
+ element.setAttribute(key, value.toString());
+ }
+ }
+ }
+};
diff --git a/src/stories/utils/common.ts b/src/stories/utils/common.ts
new file mode 100644
index 0000000..914de58
--- /dev/null
+++ b/src/stories/utils/common.ts
@@ -0,0 +1,42 @@
+/**
+ * Copyright 2024 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+export const META_PARAMETERS = {
+ controls: {
+ matchers: {
+ color: /(background|color)$/i,
+ date: /Date$/,
+ },
+ },
+ docs: {
+ canvas: {
+ withToolbar: false,
+ sourceState: "shown",
+ },
+ source: {
+ format: "html",
+ language: "html",
+ dark: true,
+ // extract the template part of the source code
+ transform: (src: string) =>
+ (src.match(/(.*?)<\/template>/) ?? [])[1],
+ },
+ },
+};
+
+export const APP_ID = "675807958095";
+export const CLIENT_ID =
+ "675807958095-nsptdcn5qdb6pl44cge1c6ghact9t5q0.apps.googleusercontent.com";
diff --git a/src/stories/utils/lazy-preview-element.ts b/src/stories/utils/lazy-preview-element.ts
new file mode 100644
index 0000000..3cd78e2
--- /dev/null
+++ b/src/stories/utils/lazy-preview-element.ts
@@ -0,0 +1,70 @@
+/**
+ * Copyright 2024 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+export class LazyPreviewElement<
+ T extends HTMLElement = HTMLElement,
+> extends HTMLElement {
+ element: T | null = null;
+
+ connectedCallback() {
+ const style = document.createElement("style");
+ style.textContent = `
+lazy-preview {
+ display: flex;
+ justify-content: center;
+}
+
+lazy-preview button {
+ padding: 8px 16px;
+ border-radius: 4px;
+ border: none;
+ background-color: #1a73e8;
+ color: white;
+ cursor: pointer;
+}
+
+lazy-preview button:hover {
+ background-color: #4285f4;
+}
+ `;
+
+ this.appendChild(style);
+
+ const button = document.createElement("button");
+ button.textContent = "Preview";
+ this.appendChild(button);
+
+ button.addEventListener("click", () => {
+ this.preview();
+ });
+ }
+
+ preview() {
+ this.querySelector("drive-picker")?.remove();
+ if (!this.element) {
+ throw new Error("drive-picker not found");
+ }
+ this.appendChild(this.element);
+ }
+}
+
+customElements.define("lazy-preview", LazyPreviewElement);
+
+declare global {
+ interface HTMLElementTagNameMap {
+ "lazy-preview": LazyPreviewElement;
+ }
+}
diff --git a/src/stories/utils/manifest-helpers.ts b/src/stories/utils/manifest-helpers.ts
new file mode 100644
index 0000000..feeaa65
--- /dev/null
+++ b/src/stories/utils/manifest-helpers.ts
@@ -0,0 +1,90 @@
+/**
+ * Copyright 2024 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import type { StrictInputType } from "@storybook/csf";
+import type {
+ CustomElementDeclaration,
+ Declaration,
+ Event,
+ Package,
+} from "custom-elements-manifest/schema";
+import manifest from "../../../custom-elements.json";
+
+const pkg = manifest as Package;
+
+function isCustomElementDeclaration(
+ declaration?: Declaration,
+): declaration is CustomElementDeclaration {
+ return (declaration as CustomElementDeclaration)?.customElement === true;
+}
+export const manifestElements = Object.fromEntries(
+ pkg.modules.flatMap((module) =>
+ (module.declarations ?? [])
+ .filter(isCustomElementDeclaration)
+ .map((declaration) => [declaration.tagName, declaration]),
+ ),
+) as { [key: string]: CustomElementDeclaration };
+
+export const getElementEvents = (tagName: string): Event[] => {
+ const declaration = manifestElements[tagName];
+ return (declaration.events ?? []).filter((event) => event.name !== "type");
+};
+
+export const elementArgTypes: {
+ [k: string]: { [k: string]: StrictInputType };
+} = Object.fromEntries(
+ Object.entries(manifestElements).map(([tagName, declaration]) => [
+ tagName,
+ Object.fromEntries([
+ ...(declaration.attributes ?? []).map((attr) => {
+ const inputType: StrictInputType = {
+ name: attr.name,
+ description: attr.description,
+ table: { type: { summary: attr.type?.text }, category: "Attributes" },
+ control: {},
+ };
+
+ switch (attr.type?.text) {
+ case "boolean":
+ inputType.control = { type: "boolean" };
+ break;
+ case "string":
+ inputType.control = "text";
+ break;
+ case "number":
+ inputType.control = "number";
+ break;
+ case '"default"|"true"|"false"':
+ inputType.control = "select";
+ inputType.options = ["default", "true", "false"];
+ break;
+ default:
+ throw new Error(`Unsupported type: ${attr.type?.text}`);
+ }
+
+ return [attr.name, inputType];
+ }),
+ // ...getElementEvents(tagName).map((event) => [
+ // event.name,
+ // {
+ // name: event.name,
+ // description: event.description,
+ // table: { category: "Events", action: event.name },
+ // },
+ // ]),
+ ]),
+ ]),
+);
diff --git a/src/utils.ts b/src/utils.ts
index 2a35ec5..017f758 100644
--- a/src/utils.ts
+++ b/src/utils.ts
@@ -17,7 +17,7 @@
const GAPI_URL = "https://apis.google.com/js/api.js";
const GSI_URL = "https://accounts.google.com/gsi/client";
-export async function loadApi(api = "client:picker") {
+export async function loadApi(api = "client:picker"): Promise {
if (!window.gapi) {
await injectScript(GAPI_URL);
}
@@ -25,6 +25,8 @@ export async function loadApi(api = "client:picker") {
await new Promise((r) => {
window.gapi.load(api, r);
});
+
+ return window.google;
}
export async function retrieveAccessToken(
@@ -34,17 +36,16 @@ export async function retrieveAccessToken(
if (!window.google?.accounts?.oauth2) {
await injectScript(GSI_URL);
}
-
- return new Promise((resolve) => {
- const client = google.accounts.oauth2.initTokenClient({
+ return new Promise((resolve, reject) => {
+ const client = window.google.accounts.oauth2.initTokenClient({
client_id: clientId,
- scope,
+ scope: scope.replace(/,/g, " ").replace(/\s+/g, " "),
callback: ({ access_token }) => {
resolve(access_token);
},
error_callback: (error) => {
- throw error;
+ reject(error);
},
});
@@ -69,3 +70,58 @@ export async function injectScript(src: string): Promise {
}
});
}
+
+export function getNumberAttribute(
+ element: Element,
+ name: string,
+): number | null {
+ const value = element.getAttribute(name);
+ return value ? Number(value) : null;
+}
+
+export enum BoolAttrWithDefault {
+ FALSE = 0,
+ TRUE = 1,
+ DEFAULT = 2,
+}
+
+export function getBoolAttr(element: Element, name: string): boolean {
+ return element.hasAttribute(name);
+}
+
+export function getBoolAttrWithDefault(
+ element: Element,
+ name: string,
+): BoolAttrWithDefault {
+ const attributeValue = element.getAttribute(name)?.toUpperCase();
+
+ if (!attributeValue) {
+ return BoolAttrWithDefault.DEFAULT;
+ }
+
+ const value =
+ BoolAttrWithDefault[attributeValue as keyof typeof BoolAttrWithDefault];
+
+ if (value !== undefined) {
+ return value;
+ }
+
+ throw new Error(
+ `Invalid value, "${attributeValue}", for attribute ${name}. Must be one of ${Object.keys(BoolAttrWithDefault).filter(Number.isNaN).join(", ")}`,
+ );
+}
+
+export function setBoolAttrWithDefault(
+ name: string,
+ element: Element,
+ setter: (value: boolean) => T,
+ instance: T,
+): T {
+ const attr = getBoolAttrWithDefault(element, name);
+
+ if (attr === BoolAttrWithDefault.DEFAULT) {
+ return instance;
+ }
+
+ return setter.call(instance, attr === BoolAttrWithDefault.TRUE);
+}
diff --git a/tsconfig.json b/tsconfig.json
index 0b1ad72..4ac9b52 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -1,20 +1,14 @@
{
"compilerOptions": {
- "target": "ES2020",
- "experimentalDecorators": true,
- "useDefineForClassFields": false,
+ "target": "ESNext",
"module": "ESNext",
- "lib": ["ES2020", "DOM", "DOM.Iterable"],
+ "lib": ["ESNext", "DOM", "DOM.Iterable"],
"skipLibCheck": true,
"moduleResolution": "bundler",
- "allowImportingTsExtensions": true,
"resolveJsonModule": true,
"isolatedModules": true,
- "noEmit": true,
"strict": true,
- "noUnusedLocals": true,
- "noUnusedParameters": true,
- "noFallthroughCasesInSwitch": true
+ "outDir": "dist"
},
- "include": ["src"]
+ "include": ["src", "stories"]
}
diff --git a/tsup.config.ts b/tsup.config.ts
new file mode 100644
index 0000000..4e103c9
--- /dev/null
+++ b/tsup.config.ts
@@ -0,0 +1,87 @@
+/**
+ * Copyright 2024 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import browserslistToEsbuild from "browserslist-to-esbuild";
+import { type Options, defineConfig } from "tsup";
+
+const defaultOptions: Options = {
+ sourcemap: true,
+ splitting: false,
+ dts: true,
+ outDir: "dist",
+ outExtension,
+};
+
+export default defineConfig((overrideOptions) => [
+ ...andMinifiedVersion({
+ ...defaultOptions,
+ entry: ["src/index.ts"],
+ format: ["iife"],
+ dts: false,
+ target: browserslistToEsbuild([
+ "supports custom-elementsv1 and defaults",
+ // biome-ignore lint/suspicious/noExplicitAny: type not exported by tsup
+ ]) as any,
+ ...overrideOptions,
+ }),
+ {
+ ...defaultOptions,
+ entry: ["src/index.ts"],
+ format: ["esm"],
+ target: "es6",
+ ...overrideOptions,
+ },
+ {
+ ...overrideOptions,
+ ...defaultOptions,
+ entry: ["src/drive-picker/index.ts"],
+ format: ["esm"],
+ outDir: "dist/drive-picker",
+ splitting: true,
+ treeshake: false,
+ ...overrideOptions,
+ },
+]);
+
+function outExtension({ format, options }) {
+ let js = "";
+
+ if (format !== "esm") {
+ js += `.${format}`;
+ }
+
+ if (options.minify) {
+ js += ".min";
+ }
+
+ js += ".js";
+
+ return { js };
+}
+
+function andMinifiedVersion(options: Options): [Options, Options] {
+ return [
+ {
+ ...options,
+ minify: !options.watch,
+ dts: false,
+ metafile: true,
+ },
+ {
+ ...options,
+ },
+ ];
+}